* harbour/contrib/rddado/adordd.prg
Instead of overloading FOUND method in ADO RDD it will be
more efficient to use standard implementation written in C
by Przemyslaw suggestion
* harbour/ChangeLog
* harbour/harbour.spec
* reverted translation to UTF8 - Tomaz please check your editor
settings and disable automatic translation to UTF8. It's not
the first as such situation happens.
* harbour/include/hbclass.ch
+ added two missing PP directives
! protected against some repeated external definitions
* harbour/source/pp/Makefile
* harbour/source/pp/hbppgen.c
* harbour/source/pp/ppcore.c
* harbour/source/common/hbver.c
* harbour/source/common/hbverdsp.c
* harbour/source/main/harbour.c
* harbour/source/vm/cmdarg.c
* harbour/utils/hbpp/hbpp.c
* harbour/include/hbpp.h
* harbour/include/hbcomp.h
* harbour/include/hbver.h
* harbour/include/hbapi.h
* harbour/make_vcce.mak
* harbour/make_b32.mak
* harbour/make_vc.mak
* harbour/make_gcc.mak
+ added support for dynamically set during compilation ChangeLog entry
ChangeLog ID and SVN revision and compilation flags
Now hbppgen creates in include directory hbverbld.h file with
information extracted from ChangeLog. New hbppgen parameters:
Syntax: ./hbppgen <file>[.prg] [options]
Options: -i<path> add #include file search path
-c[<file>] look for ChangeLog file
-o<file> creates .c file with PP rules
-v<file> creates .h file with version information
-w write preprocessed (.ppo) input file
-q disable information messages
+ added new C functions:
int hb_verSvnID( void )
- retrieves ChangeLog SVN revision number
const char * hb_verSvnChangeLogID( void )
- retrieves a static buffer containing ChangeLog ID string
const char * hb_verSvnLastEntry( void )
- retrieves a static buffer containing ChangeLog last entry string
const char * hb_verFlagsC( void )
- retrieves a static buffer containing build time C compiler
flags in C_USR envvar
const char * hb_verFlagsL( void )
- retrieves a static buffer containing build time linker
flags in L_USR envvar
const char * hb_verFlagsPRG( void )
- retrieves a static buffer containing build time Harbour compiler
flags in PRG_USR envvar
+ added new default PP defines which can be used in .prg code compiled
by Harbour compiler: HB_VER_LENTRY, HB_VER_CHLID, HB_VER_SVNID
* harbour/source/rtl/gtxwc/gtxwc.c
* formatting
* harbour/source/rtl/gttrm/gttrm.c
! fixed redrawing GPM mouse pointer after screen updating
* harbour/source/rtl/gtstd/gtstd.c
* harbour/source/rtl/gtpca/gtpca.c
* updated for compilation even if some POSIX macros are not supported
f.e. problems with some DJGPP versions reported recently
* harbour/source/debug/dbgentry.c
* harbour/source/debug/dbgtobj.prg
* harbour/source/debug/dbgbrwsr.prg
* harbour/source/debug/dbgthsh.prg
* harbour/source/debug/tbrwtext.prg
* harbour/source/debug/dbgwa.prg
* harbour/source/debug/debugger.prg
* harbour/source/debug/dbghelp.prg
* harbour/source/debug/dbgtarr.prg
! Fixed object inspector in the debugger.
! Added HbDbBrowser:invalidate() message. Fixes work area browsing in debugger.
! Added an minimalistic TBrowse implementation that is just enough
for internal use by the debugger. Fixes miscellaneous problems e.g.
when debugging a piece of code with RELATIONs turned on.
Fixes by Phil Krylov borrowed from xHarbour.
* harbour/source/rtl/gtos2/gtos2.c
* small changes, removed some un-needed code
- by Maurilio Longo in xHarbour
! use screen buffer in BYTEs instead of USHORTs to avoid possible
problems on big endian machines. I do not know if such OS2 ports
exist but this code should be also endian independent like rest
of Harbour code
* harbour/source/rtl/hbgtcore.c
! Fixed screen buffer corruption on little-endian platforms in
hb_gt_def_ColdArea() - fixed by Phil Krylov in xHarbour - many thanks
* harbour/common.mak
* harbour/source/lang/Makefile
+ harbour/source/lang/msgskiso.c
+ harbour/source/lang/msgskwin.c
+ harbour/source/lang/msgskkam.c
+ harbour/source/lang/msgsk852.c
+ added Slovak national messages by Gyula Bartal - many thanks
* harbour/include/hbapi.h
* harbour/source/vm/arrays.c
! Guarded hb_arraySetNLL() declaration with #ifndef HB_LONG_LONG_OFF.
! Fixed trace in hb_arraySetNInt().
By Phil Krylov borrowed from xHarbour
* harbour/include/hbgtcore.h
! added missing HB_EXTERN_BEGIN / HB_EXTERN_END
By Ron Pinkas borrowed from xHarbour
* harbour/source/rtl/gtos2/gtos2.c
% updated for much faster screen updating in OS2 console - many
thanks for Maurilio Longo for tests and code.
* harbour/source/rtl/cdpapi.c
! fixed CP string translation for CPs with accented equal characters
+ added HB_UTF8CHR( <nUniVal> ) -> <cUtf8Char>
It's compatible with the function HB_UTF8CHR() by Phil Krylov in
xHarbour
* harbour/source/rtl/gtsln/gtsln.h
* removed repeated #include <unistd.h>
* harbour/contrib/hbct/files.c
! fixed FILESEEK() called with 3-rd parameter set to .T. (exact
attribute match)
* harbour/config/os2/global.cf
! added fixes by David Arturo Macias Corona
+ harbour/make_os2_gcc.cmd
+ added build file for GCC OS2 users with minimal environment settings
* harbour/include/hbapi.h
* harbour/source/common/hbver.c
* harbour/source/rtl/gttone.c
* added hb_iswince() and fixed TONE() for WinCE
* harbour/source/rtl/math.c
! added workaround for SIGFPE platforms which generate it instead of
setting errno during execution of math functions
* harbour/source/rtl/gtcrs/hb-charmap.def
! remap 0x9b (155) to '.' in Linux terminals - it's control code
* harbour/source/rdd/dbsql.c
* harbour/source/rdd/workarea.c
* harbour/source/rdd/dbf1.c
! always restore current workarea in WA EVAL() method
! always use EVAL() method for user codeblocks and macros
* harbour/source/rdd/dbcmd.c
! fixed DBRELATION() called without numeric parameters or with 0 to
return first relation expression (Clipper compatible)
* harbour/contrib/hbtip/thtml.prg
! fixed wrongly ported to Harbour xHarbour specific code
* harbour/source/common/hbstr.c
+ added missing const in one declaration
* formatting
* harbour/source/rtl/transfrm.c
! fixed casting for C++ compilers
* harbour/source/rtl/errorapi.c
* harbour/source/rdd/dbfntx/dbfntx1.c
! cleanup warnings
* harbour/source/common/hbtrace.c
* harbour/source/rdd/dbcmdx.c
* harbour/source/rdd/wafunc.c
* harbour/source/rdd/dbffpt/dbffpt1.c
* harbour/source/rdd/hbsix/sxcrypt.c
* formatting
* 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