* harbour/source/vm/thread.c
! fixed the typo in order of sending signals in _hb_thread_cond_signal()
_hb_thread_cond_broadcast() for OS2. By mistake it was LIFO instead of
FIFO.
* harbour/include/hbthread.h
* harbour/source/vm/thread.c
! added support for conditional variables working like in PTHREADS
in OS2 builds - it fixes the problem with possible dead lock or
starvation effect which can also cause dead lock in some cases.
OS2 users please test current code.
* source/vm/cmdarg.c
* little hack from Przemyslaw to make it work under OS/2 where
executable name hasen't got extension if extension was not give when
executable was started.
* utils/hbmk/hbmk2.prg
* Changed to work under OS/2 with GCC; other OS/2 compilers not tested.
* config/win/bcc32.cf
* Synced flags with non-GNU make. This adds MT support.
* config/win/install.cf
! Install command modified to not give errors and block
the whole build process if the target file already exists.
The workaround consisted of changing 'copy' to 'xcopy /d /y'.
* include/inkey.ch
+ Added comments on K_MM*DOWN codes.
These also should be protected, and moved to
local the local headers belonging to GTs
supporting this feature (GTWVG notably).
* source/rtl/gtwvt/gtwvt.c
+ Protected non-Clipper compatible extension regarding
K_MM*DOWN with __HB_GTWVT_GEN_K_MMDOWN_EVENTS #define.
Also see notes in about app level code modification
needed if you want to continue using default Harbour build:
2009-02-18 12:20 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/hbextern.ch
* common.mak
* source/rtl/Makefile
* source/rtl/mouse53.c
+ Added HB_MMIDDLEDOWN() functions, plus MMIDDLEDOWN() alias.
These are always available regardless of the CLIP53
compatibility setting.
; TOFIX: K_MM*DOWN events _override_ C5.3 compatible
K_MOUSEMOVE events (in GTWVT only), which created
an unfortunate incompatibility with our target
C5.x compiler when using some specific GT. Ideas
are welcome how to fix this. We should probably
either send out both codes and let the inkey queue
do the filtering as requested by app (we need a
new filter then), or remove these event code and
generate proper K_MOUSEMOVE events instead. Apps
using this these incompatible keycodes are encouraged
to replace expressions:
'( key == K_KK*DOWN )' with the compatible:
'( key == K_MOUSEMOVE .AND. M*DOWN() )' to prepare
for the fix.
* harbour/include/hbapi.h
* harbour/source/vm/cmdarg.c
* harbour/source/vm/hvm.c
* added hb_cmdargUpdate() function which makes final argc/argv updating
(code moved from hb_cmdargInit())
! use hb_cmdargUpdate() - it fixes GPF in MT mode when some fs* functions
were called before allocating HVM stack
; TOFIX: change some hb_setGet*() functions to work without HVM stack.
* harbour/source/rtl/hbtoken.c
* formatting
* source/rtl/listbox.prg
! Restored _SET_EXACT dependent code parts to have the
same logic as before my modifications a few years ago.
Przemek, is it right now? I honestly didn't understand
the issue here.
- tests/hbmk_gnu.bat
- Removed.
* contrib/examples/uhttpd/hbmk.bat
* contrib/examples/dbu/hbmk.bat
* contrib/examples/rl/hbmk.bat
* Made them compatible with Win9x/NT systems again.
* source/lang/msg_tpl.c
+ Added NOTE about date format.
* source/lang/msgbe866.c
* source/lang/msgbewin.c
* source/lang/msgbg866.c
* source/lang/msgbgiso.c
* source/lang/msgbgmik.c
* source/lang/msgbgwin.c
* source/lang/msgit.c
* source/lang/msgnl.c
* source/lang/msgsl437.c
* source/lang/msgsl852.c
* source/lang/msgsliso.c
* source/lang/msgslwin.c
! Fixed date formats to only contain YYYY MM and DD.
Plus the format itself corrected in a few places.
* utils/hbmk/hbmk.prg
+ Added TODO
% Added ANNOUNCE HB_GTSYS / REQUEST HB_GT_STD_DEFAULT.
Since this tools doesn't need anything fullscreen, and
this way it's faster smaller, yet portable.
* ChangeLog
* Few old TODO/TOFIX statuses updated.
* harbour/include/dbinfo.ch
+ added DBI_ISTEMPORARY
* harbour/include/hbapirdd.h
* harbour/source/rdd/wafunc.c
+ added hb_rddCreateTableTemp() C function to create temporary
table which are automatically deleted on close. All indexes and
memo files for such tables are also in temporary files and
automatically deleted on close. Please remember that Harbour uses
OS functions to create temporary files so it's installation dependent
how much disk space is available for them. Some RDDs may also do
not create temporary files but keep everything in memory if they
decide it's more efficient.
* harbour/source/rdd/dbcmd.c
+ added .prg function to create temporary files:
dbCreateTemp( <cAlias>, <aStruct>, <cRDD>, ;
<cCodePage>, <nConnection> ) -> <lSuccess>
Not all RDDs have to support it. It's verified by support for
DBI_ISTEMPORARY dbInfo() action.
* harbour/include/hbrdddbf.h
* harbour/include/hbrddnsx.h
* harbour/include/hbrddcdx.h
* harbour/include/hbrddntx.h
* harbour/source/rdd/dbf1.c
* harbour/source/rdd/dbffpt/dbffpt1.c
* harbour/source/rdd/dbfntx/dbfntx1.c
* harbour/source/rdd/dbfnsx/dbfnsx1.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
+ added support for temporary tables in native RDDs.
Most of above modifications were done by Viktor Szakats.
* harbour/source/vm/thread.c
! fixed typo in PTHREAD (*nixes) version of hb_threadMutexTimedLock()
(.prg HB_MUTEXLOCK() with timeout parameter)
! unlock HVM in *nix version of hb_threadWait()
; added TODO note
* doc/dirstruc.txt
* Updated to reflect current state.
* source/compiler/hbusage.c
* source/lang/msghe862.c
* source/lang/msghewin.c
* source/rtl/tone.c
* source/rtl/gtos2/gtos2.c
* Update my email on source files
(didn't bother to change those under doc).
* source/compiler/hbusage.c
+ Added Vailton Renato to credit list.
* utils/hbmk/hbmk.prg
+ Cleanups and additions to help screen.
! Fixed dm/dmc compiler ID.
- config/win/dm.cf
+ config/win/dmc.cf
* contrib/gtalleg/Makefile
* contrib/hbwhat/Makefile
* Digital Mars C compiler ID changed from dm to dmc.
(they also have a D compiler f.e.)
* harbour/include/hbthread.h
* harbour/source/vm/thread.c
! fixed a bug on OS/2 MT implementation adding a new function,
_hb_cond_timed_wait() because when a semaphore gets posted it has
to be reset, otherwise it does not stop new threads entering it in a wait.
* harbour/include/hbpp.h
* harbour/source/pp/hbpp.c
* harbour/source/pp/ppcore.c
* harbour/source/compiler/hbmain.c
+ added support for dynamically calculated #define results
! removed old code which was adding __FILE__ #define constant
It was not working correctly like in other compilers ignoring
#include
+ added __FILE__ and __LINE__ #define directives using dynamically
calculated results - now it works as expected respecting #include
directives and the implementation is local to PP without any hacks
in core compiler code.
* harbour/contrib/hbct/files.c
* added support for optional milliseconds part in HB_FSETDATETIME()/
HB_FGETDATETIME().
* harbour/source/rtl/philes.c
! minor fix in return value
* source/lang/msgrukoi.c
* source/lang/msgruwin.c
* source/lang/msguakoi.c
* source/lang/msguawin.c
* source/lang/msgru866.c
* source/lang/msgua866.c
! Fixed date format to be DD.MM.YYYY.
* source/rtl/binnumx.c
* Added rewritten versions of these functions:
a proper license: BIN2U(), W2BIN(), U2BIN()
; Work of Przemek.
* source/rtl/binnum.c
! Readded old copyright holder as co-holder.
* COPYING
* doc/license.txt
* source/rtl/binnum.c
* Added rewritten versions of these functions, now with
a proper license: BIN2W(), BIN2I(), BIN2L(), I2BIN(), L2BIN()
; Thanks to Przemek.
* COPYING
* source/rtl/philes.c
! Fixed license to have the Harbour exception, in agreement
with the group and main copyright holders.
* Minor cleanup to HB_FGETDATETIME().
* harbour/include/hbextern.ch
* harbour/source/rtl/philes.c
+ added HB_FGETDATETIME(). A "brother" of function HB_FGETDATETIME().
; TODO: BTW, hb_fs*() functions can get a better precision
(milliseconds). It would be nice to support it also at .prg level.
* source/rtl/gtwvt/gtwvt.c
* BYTE -> CHAR (Windows) - UNDONE.
* include/hbdefs.h
+ Added (commented) new types. Work in progress, incomplete.
* contrib/hbssl/ssl.c
- Temporary disabled SSL_GET_READ_AHEAD() as a workaround for
BCC linking problem with SSL_get_read_ahead() OpenSSL
library function (symbol is unresolved due to missing
leading underscore in implib generated ssleay32.lib file).
* source/vm/set.c
% hb_fsFile() -> hb_fsFileExists()
* source/rtl/hbffind.c
* HB_WIN_32_MATCH -> HB_WIN_MATCH
* doc/whatsnew.txt
* include/hbsetup.h
* source/vm/fm.c
* #define HB_FM_WIN32_ALLOC renamed to HB_FM_WIN_ALLOC.
; INCOMPATIBLE: For those who are using this switch, please
update your make files.
* source/rtl/tpopup.prg
! Fixed to draw separator lines with BOX GT attributes,
so that they appear properly.
* harbour/include/hbapi.h
* harbour/source/vm/cmdarg.c
+ added const char * hb_cmdargARGVN( int argc )
* harbour/source/vm/cmdarg.c
* try to convert executable file name argument in argv[0] to
absolute path if it's relative one. Respect PATH envvar it necessary.
* harbour/source/common/hbdate.c
* formatting
* harbour/source/rtl/philes.c
* harbour/source/rtl/errorint.c
* harbour/source/rtl/filesys.c
! use hb_cmdargARGVN(n) instead of hb_cmdargARGV()[n] to avoid
possible GPF if some function will be called before argument
initialization
* removed additional logic which tries to convert relative paths
in file name from hb_fsBaseDirBuff() and HB_PROGNAME() functions
* contrib/hbssl/Makefile
+ Added new detection dir.
* source/rtl/gtwvt/gtwvt.c
+ Added support for HB_GTI_BOXCP.
(available for UNICODE builds only).
* source/rtl/filesys.c
+ Added (untested) support for *NIX system to
hb_fsBaseDirBuff() / HB_DIRBASE().
* harbour/source/vm/classes.c
* covered some old functions marked as deprecated long time ago
by HB_LEGACY_LEVEL2 macro
* harbour/source/rtl/hbgtcore.c
* harbour/contrib/hbct/ctwin.c
* harbour/contrib/hbct/keyset.c
* harbour/contrib/hbct/misc3.c
* harbour/contrib/hbnf/numlock.c
* harbour/contrib/hbnf/shift.c
* harbour/contrib/hbnf/alt.c
* harbour/contrib/hbnf/ctrl.c
* harbour/contrib/hbnf/caplock.c
* use memset( >Info, 0, sizeof( gtInfo ) ); to initialize
HB_GT_INFO structure - it also fixes possible problems with
uninitialized pNewVal2 member in few cases.