* harbour/include/hbapifs.h
! default usage of BSD locks in *BSD systems for emulating
DOS/Windows DENY_* flags has been disabled because tests
on FreeBSD 6.2 and MacOSX shows that this implementation
can create self deadlock when used simultaneously with
POSIX locks - thanks to Phil and Lorenzo for locating the
problem and tests.
* harbour/contrib/hbct/screen2.c
! fixed possible vary bad bug (memory buffer overflow) in SCREENSTR()
* harbour/source/rtl/hbffind.c
! fixed possible GPF in some *nixes
* harbour/source/vm/classes.c
! do not execute the same destructor inherited from different parent
classes more then once
* harbour/source/rtl/transfrm.c
! fixed bug with '9' used as stop condition of function pattern
this character cannot be stripped, f.e.:
? transform( "abc", "@_99*" )
! fixed bug with '*' or '$' used with @), f.e.:
? transform( -12345, "@) $999999" )
! fixed replacing '.' with ',' when @E is used without picture part, f.e.:
? transform( 123.45, "@E" )
! fixed ',' conversions
? transform( 12.34,"@E ab,cd.ef9,9.99,.--" )
! fixed bug with picture starting with ".", f.e.:
? transform( 0.3456, ".999" )
! fixed "@(" and "@)" conversions, f.e.:
? transform( -12345, "@) 1999*999" )
! fixed late oveflow detection in "@(" and "@)", f.e.:
? transtest( -12345, "@( 6798^999" )
! fixed "@E" conversion for dates to keep user delimiters set in
_SET_DATEFORMAT, f.e.:
set( _SET_DATEFORMAT, "mm:dd:yyyy" ); ? transform( date(), "@E" )
set( _SET_DATEFORMAT, "yyyy<mm>dd" ); ? transform( date(), "@E" )
Please note that Harbour is not strictly Clipper compatible here
because it respects _SET_DATEFORMAT set by user.
! fixed 64bit integer conversion by eliminating conversion to
'double' f.e.:
? transform( 1234567890123456789, "99999999999999999999" )
? transform( -1234567890123456789, "99999999999999999999" )
! some other fixes, see regression test transtst.prg
% speed improvement in numeric conversions
+ harbour/tests/transtst.prg
+ added regression test for transform function
* harbour/utils/hbtest/rt_trans.prg
* disabled transform() tests for "@E" and result smaller then 5 bytes
CA-Cl*pper do not check result size and always exchanges
bytes 1-2 with bytes 4-5 for @E conversion. It's buffer overflow
bug and I do not want to replicate it inside our transform
implementation. It also causes that the results for for strings
smaller then 5 bytes behaves randomly.
In fact precise tests can show that it's not random behavior
but CA-Cl*pper uses static buffer for result and when current one
is smaller then 5 bytes then first two bytes are replaced with
4-5 bytes from previous result which was length enough, f.e.:
? transform( "0123456789", "" )
? transform( "AB", "@E" )
? transform( "ab", "@E" )
Replicating exact CA-Cl*pper behavior it's trivial (it will be enough
to use static buffer two and not check the size of current result) but
IMHO it's bug.
* harbour/source/rtl/round.c
* added strictly Clipper compatible code covered by HB_C52_STRICT
and comment about possible difference in Harbour.
* harbour/include/hbgtinfo.ch
* harbour/source/rtl/hbgtcore.c
* harbour/source/rtl/gtxwc/gtxwc.c
* harbour/source/rtl/gtsln/gtsln.c
* harbour/source/rtl/gttrm/gttrm.c
* harbour/source/rtl/gtwvt/gtwvt.c
+ added HB_GTI_ISUNICODE - it returns logical value with information
about Unicode mode in active GT driver - it's necessary for proper
CP initialization in some GTDs which can work in both mode depending
on client side settings
* harbour/source/rtl/gttrm/gttrm.c
* improved UTF-8 detection
* added automatic PuTTY detection
* improved PuTTY and some xterm key handling
* added some missing RXVT keys
* harbour/make_b32.mak
* Synchronized with make_vc.mak regarding HB_BUILD_ST and HB_BUILD_MODE
environment usage. There is still a difference between make_b32.mak
and make_vc.mak, because under BCC - ST mode is default, while under
MSVC - MT mode is default. To use MT mode under BCC one needs to
set HB_BUILD_ST to something different than a word "yes". For example:
set HB_BUILD_ST=no. The difference comes from the fact that so far
BCC build has always been done in ST mode. It will be changed after
a 1.0 release. Please note that harbour.dll is *always* built in MT
mode under BCC and MSVC.
* harbour/make_vc.mak
! Forced MT mode for harbour.dll
* Minor formating
* harbour/contrib/mtpl_vc.mak
! Fixed compilation using ST mode
* harbour/contrib/mtpl_b32.mak
! Fixed compilation of CPP files
+ Added ST/MT handling logic
* harbour/contrib/hbziparch/make_b32.bat
! Fixed compilation on some BCC instalations
* harbour/source/rtl/cdpapi.c
! fixed unicode values for control codes in default CP437 unicode table
* harbour/source/rtl/gtchrmap.c
! added missing default translation of chr(155) - it's control code
on most of terminals and should not be shown in non UFT-8 mode
* harbour/source/rtl/gttrm/gttrm.c
! do not use alternate character set for box drawing in UTF-8 mode
New Linux consoles disable UTF-8 mode when alternate character set
is enabled
* harbour/contrib/hbct/ctwin.c
* harbour/contrib/hbct/ctwin.h
* harbour/contrib/hbct/ctwfunc.c
* overload ReadKey() method for future window moving when scroll lock
is set and for KEYREAD() implementation.
* store real last key value in CTWIN GT.
* harbour/make_vc.mak
+ Added a possiblity to compile harbour in ST or MT mode by using
an environment variable called HB_BUILD_ST. Setting HB_BUILD_ST
to yes, causes Harbour+RTL+VM to be built in ST mode. Otherwise
MT mode is used.
* harbour/source/main/harbour.c
* harbour/source/common/hbfsapi.c
! fixed hb_fsFNameSplit()/hb_fsFNameMerge() to respect path delimiter
set by user
* harbour/contrib/hbct/ctwfunc.c
! fixed WFORMAT() called without parameters - it should reset
all existing margins
! fixed WSETSHADOW() to accept color also as character parameter
* harbour/contrib/hbfimage/make_gcc.sh
! Fixed CFLAGS settings from a proper FREEIMAGE_INC envvar
* harbour/contrib/hbziparch/make_vc.bat
! Disabled warnings about functions considered "depreciated" by MS
* harbour/contrib/mtpl_gcc.mak
* harbour/contrib/mtpl_gcc.sh
! Fixed HB_ARCHITECTIRE, CC and LD envvar settings
* harbour/contrib/mtpl_vc.mak
! Forced CPP mode compilation for a ".cpp.obj" rule
* harbour/source/rtl/direct.c
* fixed Clipper compatibility when last character of given path
is directory delimiter or drive delimiter
* harbour/source/rdd/dbf1.c
* added RT error when corrupted memo block address is detected
in DBF file.
* harbour/contrib/hbwhat32/make_gcc.sh
! Fixed compilation under MingW and Cygwin
* harbour/contrib/make_b32_all.bat
* harbour/contrib/make_vc_all.bat
+ Added hbwhat32 to a list of compiled contribs
* harbour/contrib/make_gcc_all.sh
- Removed hbzlib from a list of mandatory compiled contribs.
It still can be compiled conditionaly.
* common.mak
* source/lang/Makefile
+ source/lang/msgbgmik.c
+ source/lang/msgbe866.c
+ source/lang/msgbewin.c
+ source/lang/msghr437.c
+ source/lang/msghrwin.c
+ source/lang/msgua866.c
+ source/lang/msguakoi.c
+ source/lang/msguawin.c
+ Added some msg files from xhb. Some problems corrected.
(Belarussian ISO code, long filename and internal ID
for HR1250)
* harbour/config/w32/global.cf
* removed ' quoting from commands - *sh shells removed them but without
such shell they are passed to windows command interpreter and not
all version removed them
+ harbour/contrib/gtwvg/make_gcc.sh
+ harbour/contrib/hbapollo/make_gcc.sh
+ harbour/contrib/hbclipsm/make_gcc.sh
+ harbour/contrib/hbct/make_gcc.sh
+ harbour/contrib/hbfbird/make_gcc.sh
+ harbour/contrib/hbfimage/make_gcc.sh
+ harbour/contrib/hbgd/make_gcc.sh
+ harbour/contrib/hbgt/make_gcc.sh
+ harbour/contrib/hbmisc/make_gcc.sh
+ harbour/contrib/hbmsql/make_gcc.sh
+ harbour/contrib/hbmysql/make_gcc.sh
+ harbour/contrib/hbnf/make_gcc.sh
+ harbour/contrib/hbodbc/make_gcc.sh
+ harbour/contrib/hbole/make_gcc.sh
+ harbour/contrib/hbpgsql/make_gcc.sh
+ harbour/contrib/hbtip/make_gcc.sh
+ harbour/contrib/hbtpathy/make_gcc.sh
+ harbour/contrib/hbw32/make_gcc.sh
+ harbour/contrib/hbw32ddr/make_gcc.sh
+ harbour/contrib/hbwhat32/make_gcc.sh
+ harbour/contrib/hbziparch/make_gcc.sh
+ harbour/contrib/hbzlib/make_gcc.sh
+ harbour/contrib/rddads/make_gcc.sh
+ harbour/contrib/xhb/make_gcc.sh
+ Added missing files to allow compilation using non standard
build system. Please note that some contribs require external
packages, so to succesfuully compile them you will have to
set a proper environment variable, pointing to a list of
directories, containig required package header files. Those
envvars are listed below :
APOLLO_INC
FIREBIRD_INC
FREEIMAGE_INC
GD_INC
MYSQL_INC
PGSQL_INC
ZLIB_INC
ADS_INC
Note that those envvars may contain list of directories,
for example :
export ADS_INC="/usr/include include ."
Also note that on Windows systems, using MingW or Cygwin, you will
have to generate a proper import files from dlls, available in those
packages - using MingW or Cygwin dlltool - to build end user programs,
utilizing those packages.
* harbour/contrib/mtpl_gcc.mak
* harbour/contrib/mtpl_gcc.sh
* harbour/contrib/make_gcc_all.sh
+ Added the rest of contrib libs to compile
* harbour/contrib/hbtpathy/tplinux.c
* harbour/contrib/hbtpathy/tpos2.c
* harbour/contrib/hbtpathy/tpwin32.c
+ Added an operating system guard around the content of
thses files to allow including all three files in a
library.
* harbour/include/hbcomp.h
* harbour/include/hbmacro.h
* harbour/include/hbexprb.c
* harbour/source/vm/macro.c
* harbour/source/compiler/hbmain.c
! fixed name conflict in privates/publics declaration.
Harbour allows to declare memvars with the same name as file
wide statics or fields but this extensions was not working well
in some cases and can cause unexpected results in variable
declaration, f.e. try this code:
static v:="static"
proc main()
public v:="public"
? v, M->v
return
compiled with -n -w switches and also with -n -w -a before
this fix.
! fixed some compile time warnings in memvars declaration to be
more Clipper compatible
! fixed compiling external modules (DO <procname> [WITH <params,...>])
when function <procname> is already declared but with different
letter case. Harbour does not convert <procname> in DO statement
to upper case to play well with case sensitive file systems and
it could cause confusing warning message:
Cannot open <procname>.prg, assumed external
* harbour/source/compiler/harbour.y
* harbour/source/compiler/harbour.yyc
! added protection against bug in bison destructors which might cause
multiple free the same memory block on syntax error due to
* harbour/source/rdd/dbf1.c
! added missing binary flag for daytime fields
* harbour/source/rdd/dbfntx/dbfntx1.c
! fixed possible memory leak during accessing corrupted NTX files
! fixed possible GPF during accessing corrupted NTX files
* harbour/source/compiler/genc.c
* minor cleanup
* harbour/config/os2/global.cf
! use FOR command to delete group of files
* harbour/config/lib.cf
* moved some definitions for easier detecting library build mode
* harbour/config/os2/dir.cf
* harbour/config/os2/global.cf
* some modifications which should help for old GNU make OS2 ports
and maybe also current ones
* harbour/config/os2/gcc.cf
* use OS2_LIB_ARCH as library name to avoid problems with DEL
* harbour/config/os2/global.cf
* use double backslash characters - hack to test if it's sufficient
workaround for problems mkdir on OS2
* harbour/harbour.spec
* harbour/harbour-ce-spec
* harbour/harbour-w32-spec
* updated for new library names
* harbour/ChangeLog
* harbour/include/hbexprb.c
* formatting
* harbour/source/rtl/net.c
! fixed casting
* harbour/harbour.spec
* harbour/harbour-ce-spec
* harbour/harbour-w32-spec
* harbour/contrib/Makefile
* removed hbzlib - it cannot be longer part of default build
because Viktor removed zlib header files. Viktor sorry but
IMHO you should revert it and also restore ace.h - it creates
serious problems without any valuable addition. Now we will
have to rebuild Harbour on many different platforms and often
it will not be possible to install some libraries. We cannot
force installing additional libs by people who will create
binaries for incoming releases so it's important to revert
it. Please do it.
* harbour/config/bsd/install.cf
* harbour/config/darwin/install.cf
* harbour/config/hpux/install.cf
* harbour/config/linux/install.cf
* harbour/config/sunos/install.cf
* harbour/config/dos/install.cf
* harbour/config/os2/install.cf
* harbour/config/w32/install.cf
* redirected echo error messages to stderr when *sh shell is used
* harbour/config/lib.cf
* harbour/config/bin.cf
* harbour/config/global.cf
* harbour/config/hpux/gcc.cf
* harbour/config/hpux/global.cf
* harbour/config/darwin/gcc.cf
* harbour/config/darwin/global.cf
* harbour/config/dos/owatcom.cf
* harbour/config/dos/global.cf
* harbour/config/dos/rsx32.cf
* harbour/config/global.cf
* harbour/config/linux/owatcom.cf
* harbour/config/linux/global.cf
* harbour/config/os2/gcc.cf
* harbour/config/os2/global.cf
* harbour/config/sunos/gcc.cf
* harbour/config/sunos/global.cf
* harbour/config/bsd/global.cf
* harbour/config/w32/owatcom.cf
* harbour/config/w32/bcc32.cf
* harbour/config/w32/gcc.cf
* harbour/config/w32/rsxnt.cf
* harbour/config/w32/global.cf
! fixed build process. DOS and WINDOWS users should make tests for
different compilers. I tested only DOS-OpenWatcom, DOS-DJGPP,
W32-BCC32, W32-OpenWatcom, W32-POCC, W32-XCC and corss builds
W32-MinGW, W32-MinGW-CE. OS2 version not testes at all - I hope
it will work. LINUX-GCC, LINUX-G++, LINUX-OpenWatcom, BSD-GCC,
HPUX-GCC tested and they are working. I hope that SunOS version
also works though I do not have any solaris installation where
I can make real tests.
+ contrib/examples/dbfdbt
+ contrib/examples/dbfdbt/dbfdbt1.c
+ contrib/examples/dbfdbt/Makefile
- source/rdd/dbfdbt
* Moved no longer used (superceded) core RDD code to
/contrib/examples/
+ contrib/examples/dbfdbt
+ contrib/examples/dbfdbt/dbfdbt1.c
+ contrib/examples/dbfdbt/Makefile
- source/rdd/dbfdbt
* Moved no longer used (superceded) core RDD code to
/contrib/examples/
* contrib/hbw32ddr/w32_ddrw.cpp
! Fixed compile error under MSVC.
! Fixed MSVC warning (strdup() -> hb_strdup())
Now compiles without warnings under MSVC.
! Reindented, some formatting.
* contrib/hbw32ddr/w32_ddrw.cpp
! Fixed compile error under MSVC.
! Fixed MSVC warning (strdup() -> hb_strdup())
Now compiles without warnings under MSVC.
! Reindented, some formatting.