* harbour-ce-spec
* harbour-w32-spec
* include/hbver.h
* harbour.spec
* RC1 -> RC2
* contrib/hbziparch/hbziparc.c
! Fixed potential GPF in HBZIPCLEANUP().
! HBZIPCLEANUP() changed to be a HB_FUNC() (from HB_EXIT_FUNC()),
so now it has to be called manually, but at least it's
now doing something useful. (HB_EXIT_FUNC() in .c code
never gets executed by itself).
* harbour/harbour-ce-spec
* harbour/harbour-w32-spec
* define whole contrib library list for new contrib/Makefile
+ added header files to respect differences between platform
native and Windows only headers
* harbour/harbour.spec
* define whole contrib library list for new contrib/Makefile
* divided libraries which needs external references into
separated packages
! removed unnecessary dependences in binaries rebuild in shared
mode
* harbour/contrib/hbodbc/odbc.c
* pacified warnings
% minor optimization
* harbour/contrib/hbcurl/hbcurl.c
* harbour/contrib/hbfbird/firebird.c
* harbour/source/vm/extrap.c
* casting to pacify warnings
* harbour/contrib/gtwvg/gtwvg.c
! fixed pointer comparison - C uses different precedence for !
operator then Clipper/xbase
* harbour/source/rtl/hbinet.c
! fixed GPF HB_INET[GS]ET{SND,RCV}BUFSIZE() when wrong
socket parameter is passed. Please remember that after
RT error the control is returned to application.
% removed any hardcoded limits for size of data passed in
single read/write call during normal stream operations
- removed iSndBufSize/iRcvBufSize
* contrib/hbapollo/Makefile
* contrib/hbcurl/Makefile
* contrib/hbfbird/Makefile
* contrib/hbfimage/Makefile
* contrib/hbgd/Makefile
* contrib/hbhpdf/Makefile
* contrib/hbmysql/Makefile
* contrib/hbpgsql/Makefile
* contrib/rddads/Makefile
* Changed to use default for all architecture.
Let's hope that checking existence for mixed platform
paths won't create problems on any platforms.
+ Added include path detection logic to hbapollo, too.
+ Added Darwin path to hbgd include path list.
+ Added std Linux path to hbfbird include path list.
; TOFIX: Seems that 'ifneq ($(HB_INC_*_OK),)' doesn't
really work if no path in the path list is valid.
* contrib/hbmysql/make_b32.bat
* contrib/hbmysql/make_vc.bat
* contrib/hbmysql/Makefile
- Removed -DBIG_JOINS. If someone needs this, it can be
specified via C_USR, but to me it seem this is a MySQL
build-time switch, and it has no effect for interface
code.
* contrib/hbapollo/Makefile
* contrib/hbcurl/Makefile
* contrib/hbfbird/Makefile
* contrib/hbfimage/Makefile
* contrib/hbgd/Makefile
* contrib/hbhpdf/Makefile
* contrib/hbmysql/Makefile
* contrib/hbpgsql/Makefile
* contrib/rddads/Makefile
+ Now possible to specify external header location using
the HB_INC_* envars (similar to the ones used in non-GNU
makefiles). In GNU make, multiple dirs can be specified,
and the make system will always autodetect whether the
headers are really there. If not, the build process will
be skipped for that contrib.
Additionally in Linux, the HB_INC_* vars will be inited
with a default, if not specified by the builder. These
default should be verified by Linux users and extended/fixed
accordingly. Most of them were already initialized for
Linux, so there should be no big surprises here.
* contrib/hbmysql/make_b32.bat
* contrib/hbmysql/make_vc.bat
+ Synced C options with GNU make. (-DBIG_JOINS=1 added)
* contrib/hbmysql/make_vc.bat
- Removed -D__WIN32__. Now it seems to work without it.
* contrib/hbcurl/make_gcc.sh
! Fixed example dir in comment.
* include/hbapi.h
* source/rtl/set.c
* source/vm/fm.c
! Fixed _SET_HBOUTLOG, _SET_HBOUTLOGINFO handling in fm.c.
hb_setget*() functions cannot be used here as the set
system is deinited at this point. So local buffers are
holding the values.
* contrib/gtwvg/Makefile
* contrib/hbapollo/Makefile
* contrib/hbbtree/Makefile
* contrib/hbclipsm/Makefile
* contrib/hbct/Makefile
* contrib/hbfbird/Makefile
* contrib/hbfimage/Makefile
* contrib/hbgd/Makefile
* contrib/hbhpdf/Makefile
* contrib/hbmisc/Makefile
* contrib/hbmsql/Makefile
* contrib/hbmysql/Makefile
* contrib/hbmzip/Makefile
* contrib/hbnf/Makefile
* contrib/hbodbc/Makefile
* contrib/hbpgsql/Makefile
* contrib/hbsqlit2/Makefile
* contrib/hbsqlit3/Makefile
* contrib/hbtip/Makefile
* contrib/hbtpathy/Makefile
* contrib/hbvpdf/Makefile
* contrib/hbw32/Makefile
* contrib/hbw32ddr/Makefile
* contrib/hbwhat32/Makefile
* contrib/rddado/Makefile
* contrib/rddads/Makefile
! CFLAGS -> C_USR
* var = var + x -> var += x
! Added header install rules for all places where such
headers are defined. I wonder why isn't this the default
in our GNU-make system.
* few other minor cleanups.
* contrib/rddads/Makefile
* Experimenting with HB_INC_ADS implementation in GNU-make system.
HB_INC_ADS can now used to enable to rddads builds.
In GNU-make HB_INC_ADS can contain a list of possible places
where headers may be found. GNU-make will validate these and
if the headers were found in any of these places, rddads will
be built. For Linux there are some default dirs which will
always be checked.
'HB_WITHOUT_ADS' and 'ACE_DIRS' is not longer used.
; Please test. If this works out okay, we can use this method
for the rest of 3rd party dependent contribs.
* contrib/rddads/Makefile
% Don't define WIN32 in GNU-makefiles for w32.
* contrib/hbmisc/Makefile
! Don't include non-existing 'test' dir in make.
* contrib/gtwvg/Makefile
* contrib/gtwvg/common.mak
! Not installing private .h file to common include dir.
* contrib/hbw32ddr/w32_ddrw.cpp
! Fixed one GCC warning. (Some remain)
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/gtwvg.h
* contrib/gtwvg/hbgtwvg.ch
+ Implemented application to run as a System Tray Icon.
; IMPLEMENTATION:
Hb_GtInfo( HB_GTI_SPEC, HB_GTS_SYSTRAYICON, ;
{ nMode /*NIM_ADD/MODIFY/DELETE*/, ;
nIconType /*NIT_FILE/RESOURCEBYNAME/RESOURCEBYID*/, ;
cnFileNameOrResourceName|Id, ;
cTooltip } )
Right-click on SysTrayIcon will restore the appln in its original state.
: TOKNOW: Does it qualify for GTWVT?
* tests/wvtext.prg
! Modified to show the SysTrayIcon feature if linked with GTWVG.
Link Guarded againt __GTWVG__ define.
* source/vm/extrap.c
+ Added Windows GPF detailed information dump (with some
modifications) provided by Mindaugas Kavaliauskas.
Many thanks.
; It would be very nice to have similar for Linux, OS/2,
Darwin.
* tests/extend2.c
* source/debug/dbgentry.c
* contrib/hbodbc/odbc.c
* contrib/hbw32/tprinter.c
* contrib/hbziparch/hbziparc.c
* contrib/hbziparch/hbzipnew.cpp
* contrib/hbpgsql/postgres.c
! Changed strcpy() -> hb_strncpy()
! Changed strcat() -> hb_strncat()
! Some possible buffer overruns fixed along the way in hbziparch.lib
! Fixed some filename buffer sizes in hbziparch.lib
; TOFIX: There are still some remaining strcpy()/strcat()
calls in Harbour code:
core: dbgentry.c, hbwince.c
contrib: hbnf, hbw32, hbwhat32, hbtip
foreign code: zlib, sqlite2/3
Not all of these are necessarily bugs (but it's
difficult to know without checking each).
* include/set.ch
* include/hbset.h
* source/rtl/set.c
* source/vm/fm.c
* source/vm/extrap.c
+ Added: Set( _SET_HBOUTLOGINFO[, <cValue>] ) -> <cOldValue>
Default value: ""
This user defined text will be included in each hb_out.log
messages. This way it's possible to include custom information
in these entries to help identify and locate them.
! Fixed a few string not marked with HB_I_() translation
marker.
* contrib/hbtip/client.prg
* contrib/hbtip/ftpcln.prg
* contrib/hbtip/httpcln.prg
* contrib/hbtip/mail.prg
* contrib/hbtip/sendmail.prg
+ Added methods setget to interrogate buffer size send/recive
METHOD InetRcvBufSize( SocketCon, nSizeBuff )
METHOD InetSndBufSize( SocketCon, nSizeBuff )
+ Added data members to assign default buffer sizes
DATA nDefaultRcvBuffSize
DATA nDefaultSndBuffSize
+ Asigned default buffer size to 64kb only for FTP transfer, previous to open sockets
::nDefaultSndBuffSize := 65536
::nDefaultRcvBuffSize := 65536
* Fixed port ftp protocol.
* source/rtl/hbinet.c
* now works with default system buffer, for example 8kb at W2000. instead of harcoded 1400
* contrib/hbwhat32/wincorec.c
* contrib/hbwhat32/_winwnd.c
* contrib/hbwhat32/wincore.prg
+ hb_retnl()/hb_parnl() calls replaced with hb_retptr()/hb_parptr().
This way it won't break on Win64.
; NOTE1: Functions dealing with wndproc/dlgproc functions on the
Harbour level will now return/require POINTER types instead
of numerics. App level code should be updated accordingly.
INCOMPATIBLE.
; NOTE2: There might be other places in hbwhat32 where such conversion
would be necessary.
; Please test.
* harbour/source/pp/ppcore.c
! fixed GPF in expressions like:
#command CMD => #translate abc => \
problem located by Ron in xHarbour
* harbour/source/pp/hbpp.c
* extended string escaping to also quote " and ? (possible trigraph)
* harbour/source/compiler/gencc.c
; comment formatting
* contrib/Makefile
* After this change, HB_CONTRIBLIBS will _override_ the
default list of contribs, rather than adding them to
the default list (which BTW contains everything since
this week, so there's no much point anyway, besides if
someone was hosting local contribs in the Harbour contrib
dir).
* include/hbver.h
- Removed recenly added HB_VERSION 0x010000.
* Instead I've changed both .prg level and .c level __HARBOUR__
to contain this more granular (full) version number.
; NOTE: If someone is relying on the value of __HARBOUR__ in
.prg code, the values should be multiplied by 256.
* contrib/hbgf/hbgfgtk/creamenu.c
- Removed deprecated pre GTK2 API call with no equivalent
in newer versions.
If someone needs the menu shadow functionality for GTK1,
please give some hint how to guard it, and we can add it
back.
* include/hbstdgen.ch
* include/hbver.h
* include/hbdefs.h
* source/pp/pplib.c
* source/pp/ppcore.c
* source/pp/hbpp.c
* source/common/hbver.c
* source/common/hbverdsp.c
* contrib/hbsqlit3/hbsqlit3.c
* contrib/examples/pp/hbppdef.h
* Changed .c level __HARBOUR__ to have the same value
as the existing .prg level one.
* PP now gets the __HARBOUR__ define directly from the .c
level instead of generating it locally.
; QUESTION: Should or shouldn't we change __HARBOUR__
to contain revision number too? (0x0100 -> 0x01000)
This would allow for a greater level of development
opportunities between minor revisions, more "agile"
development.
* include/hbpp.h
* source/pp/ppcore.c
- Two __XHARBOUR__ guards removed.
* contrib/hbmysql/mysql.c
* contrib/hbmysql/tmysql.prg
* contrib/hbmsql/msql.c
* contrib/hbmsql/tmsql.prg
! Fixed again to use hb_parptr()/hb_retptr()
instead of hb_parnl()/hb_retnl(). This fixes these libs
on 64 bit systems.
This is an INCOMPATIBLE change, users of these libs will
have to update their code when dealing with return values
of the following functions:
- hbmysql / SQLCONNECT()
- hbmysql / SQLSTORER()
- hbmysql / SQLUSERES()
- hbmsql / MSQLSTORER()
- hbmsql / MSQLLISTFI()
They will now return pointer type instead of a number,
so error checking will have to be changed from r > 0,
r ==/=/!=/> 0 to !Empty( r ).
; Please test.
* contrib/hbgf/hbgfw32/win32.c
* contrib/hbgf/hbgfos2/os2pm.c
* contrib/hbgf/hbgfos2/os2pm.ch
* Some cleanups.
; Please test for OS/2.
* harbour/contrib/hbmsql/msql.c
! changed msqlGetErrMsg( NULL ) => msqlErrMsg
* harbour/contrib/hbsqlit3/hbsqlit3.c
! include harbour header files after sqlite3.c which needs some
extra sets for system header files
* harbour/contrib/hbgf/hbgfw32/win32.c
! removed wrongly used TEXT( hb_parc( 1 ) ) macro. The TEXT()
macro can be used _ONLY_ for literal strings.
* harbour/contrib/hbgf/hbgfgtk/Makefile
* harbour/contrib/hbgf/hbgfgtk/dispatch.c
* harbour/contrib/hbgf/hbgfgtk/msginfo.c
* harbour/contrib/hbgf/hbgfgtk/form.prg
* harbour/contrib/hbgf/hbgfgtk/creawin.c
! fixed compilation in Linux
* harbour/source/rtl/gtclip.c
* pacified warning
* source/common/hbver.c
* Changed version information layout:
"Harbour a build x.y-z" -> "Harbour x.y.za" format.
* contrib/gtwvg/gtwvg.c
! Fixed compile error. (commented line, please check this code)
[ pGT->iLocalGTHandle = pWVT->iHandle; ]
* contrib/gtwvg/wvtutils.c
* contrib/gtwvg/wvtcore.c
* contrib/gtwvg/wvtpaint.prg
* contrib/gtwvg/wvtclass.prg
% hb_arraySet( ..., hb_itemPut*() ) -> hb_arraySet*( ... )
* if() -> iif()
* != on strings to IS*() macros.
; TODO: I'd suggest to change "WVT" references to "WVG"
to avoid confusion with core WVT. At least in those places
which wouldn't break compatibility (like source names).
If there is no objection I can do it.
* source/rtl/gtwvt/gtwvt.c
* Minor cleanup.
* harbour/contrib/gtwvg/gtwvg.c
* Some futuristic additions and synchronization with GTWVT.
* harbour/contrib/gtwvg/tests/demowvg.prg
* Update to recognize all key events.
;DONE: I am done with the update og GTWVG.
Open to previous modifications, Viktor?
* contrib/hbfimage/fi_winfu.c
* contrib/hbfimage/fi_wrp.c
! I cannot test it right now, but this should fix the
build problem for hbfimage under Linux.
* source/rtl/gtwvt/gtwvt.c
* Slightly changed the way CLOSE button works.
Now the close button, if enabled, will always
force a shutdown. So this setting is made independent
of SetCancel(). I choose this because there might
be cases when we need to use <Alt+C> in app code, yet
we want to allow closing the window. Previously it was
also easy to create confusing scenarios by using various
combinations of HB_GTI_CLOSABLE + SetCancel(). Another
kind of fix - without the advantage above - would be
to fully sync SetCancel() with HB_GTI_CLOSABLE.
* contrib/hbtpathy/tplinux.c
! Fixed embedded comments in Linux code.
* contrib/hbziparch/hbziparc.h
! Fixed header casing.
* contrib/hbmsql/msql.c
* contrib/hbmysql/mysql.c
! Partially undone previous change where hb_par/retnl()
calls were swapped for hb_par/retptr(). HB_PAR/RETPTR()
macros are used in the time being, until .prg level
code isn't updated to expect pointers rather then
numerics. The problem is that these pointers are checked
for zero on the .prg level. Notice that using par/retnl()
for pointers makes these function fail on Win64.
TOFIX: Two solutions come to mind: 1) extend HVM to make
it possible to compare pointer types against zero.
2) develop different ways to return errors and modify
.prg level code accordingly.
I'd vote for 1) if doable.
* contrib/hbfimage/fi_winfu.c
* contrib/hbfimage/fi_wrp.c
* contrib/hbfimage/Makefile
* __GNUC__ macro requirement moved to C source
from GNU-make CFLAGS.
* source/rtl/tgetlist.prg
! Fixed Settle() calls.
! Removed type constraint from ::nLastExitState.
(this value may be of any type, even in TGet())
* Formatting.