* include/hbapi.h
* include/hbapiitm.h
* include/hbcomp.h
* include/hberrors.h
* include/hbexpra.c
* include/hbpcode.h
* include/hbsetup.h
* source/common/expropt1.c
* source/compiler/expropta.c
* source/compiler/genc.c
* source/compiler/gencli.c
* source/compiler/harbour.c
* source/compiler/harbour.l
* source/compiler/harbour.y
* source/compiler/hbfix.c
* source/compiler/hbgenerr.c
* source/compiler/hbpcode.c
* source/macro/macroa.c
* source/vm/hvm.c
* source/vm/itemapi.c
+ tests/foreach.prg
+ added support for FOR EACH loop
FOR EACH var1 [,var255] IN expr1 [,expr255] [DESCEND]
NEXT
Note:
-expr can be a string or an array
if it is a string then assigments to the control
variable does not change the string
-after the loop the controlling variable(s) store the
value which they had before entering the loop
-the controlling variable supports the following properties
:__enumindex - the loop counter for variable
:__enumbase - the value that is being traversed
:__enumvalue - the value of variable
-see tests/foreach.prg for examples
+ added warnings in cases of duplicated loop variables
eg. FOR i:=1 TO 5
FOR i:=i TO i+5
-removed strong typing in the compiler (xHarbour too)
(reactivate it by compiling with -DHB_COMP_STRONG_TYPES)
NOTE:
The new pcodes were added - rebuild everything
* harbour/make_gnu.sh
+ harbour/make_xmingw.sh
* harbour/bin/hb-mkslib.sh
* harbour/bin/postinst.sh
* harbour/config/w32/mingw32.cf
* added support for cross compilation (Windows binaries at Linux) with
MinGW - borrowed from xHarbour Phil Krylov solution
* harbour/contrib/btree/hb_btree.c
* casting
* harbour/contrib/libct/files.c
! fixed iAttr initialization in SETFATTR()
* harbour/contrib/ole/ole2.c
! fixed names of included files
* harbour/contrib/rdd_ads/ace.h
* cover #pragma warning( error : 4706 ) by !defined( __GNUC__ )
* harbour/include/hbapi.h
* harbour/include/hbdefs.h
+ harbour/source/common/hbarch.c
* harbour/source/common/Makefile
* added functions for machine independent double and long long conversions
(my code borrowed from xHarbour)
* harbour/include/hbapifs.h
* synced file IO with xHarbour - it fixes some problems, adds some
missing functionality and long (64bit) file support for Windows.
For Linux I added it some time ago.
* harbour/include/hbcomp.h
* changed 'char cScope' to 'HB_SYMBOLSCOPE cScope'
* harbour/source/common/hbfsapi.c
! fixed some possible buffer overflow
* harbour/source/common/hbstr.c
* synced with xHarbour
* harbour/source/common/hbver.c
+ added hb_iswinnt() (borrowed from xHarbour)
* harbour/source/compiler/cmdcheck.c
+ added -undef: compiler switch (borrowed from xHarbour)
* harbour/source/compiler/gencobj.c
* cleanup
* harbour/source/pp/ppcore.c
! fixed path delimiters in included file names
* harbour/source/rtl/Makefile
+ harbour/source/rtl/fserror.c
+ added C -> OS file error trnalsations - not perfect but better then
the used hacks (borrowed from xHarbour)
* harbour/source/rtl/file.c
* use hb_fileNameConv() instead of hb_filecase() - hb_fileNameConv()
is the only one function to make file name conversions dependent on
some SETs.
* harbour/source/rtl/filesys.c
* synced file IO with xHarbour - it fixes some problems, adds some
missing functionality and long (64bit) file support for Windows.
For Linux I added it some time ago.
* harbour/source/rtl/fstemp.c
* synced with xHarbour
* harbour/source/rtl/strings.c
* use ULONG instead of size_t in hb_strnicmp declaration - we have to
decide what we should use. Using size_t or its Harbour version f.e.
HB_SIZE_T seems to be reasonable but it has to be global - redefining
single functions does not make sense and will create troubles only.
* source/rtl/tget.prg
! :displat fixed (again) to always call VarGet block
to be CA-Cl*pper compatible.
* config/w32/global.cf
! Fixed to properly create the obj directories when compiling
using GCC under XP. This broke in the near past.
* source/pp/ppcore.c
! Fixed two compiler warnings.
; Please review one of them if you made the change, since
I'm not sure what the intention was, here's the code snippet:
...
lenreal = IsMacroVar( *ptri, com_or_tra ); /* THIS LINE IS NOW COMMENTED OUT */
*ptri +=1;
lenreal = getExpReal( expreal+2, ptri, FALSE, maxlenreal, FALSE );
...
* source/codepage/cdphu852.c
! HU sorting order fixed to be more compatible with CA-Cl*pper.
(Still missing some non-852 chars though)
* source/common/hbver.c
! Fixed forming NT version number (5.01.2600 -> 5.1.2600)
* source/compiler/hbusage.c
+ Copyright year updated.
* harbour/source/rtl/idle.c
* Cleaned up a platform dependent code part.
* config/dos/global.cf
*restored creation of subdirectiories under plain DOS
* include/hbapi.h
* include/hbcomp.h
* include/hbdefs.h
* include/hbvm.h
* source/compiler/genc.c
* source/compiler/harbour.c
* source/compiler/hbpcode.c
* source/vm/dynsym.c
* source/vm/hvm.c
* source/vm/macro.c
*modified creation of symbols table
*symbol of function name never share a symbol of variable
*symbol for INIT/EXIT procedure has now '$' suffix - this means
that such procedures cannot be called from user code
(Clipper compatible)
See the following code:
PROCEDURE MAIN
aaa()
RETURN
INIT PROCEDURE aaa
? "In INIT procedure", PROCNAME(0)
RETURN
STATIC PROCEDURE aaa
? "In STATIC procedure", PROCNAME(0)
RETURN
It will print:
In INIT procedure aaa$
In STATIC procedure aaa
*fixed access to static functions in a macro compiler (symbols for
static functions never goes into dynamic symbols table)
* source/pp/ppcore.c
*increased numer of nested optional clauses (max 5 currently - work
in progress)
* harbour/hbgtmk.sh
* harbour/make_rpm.sh
* harbour/harbour.spec
* added flex to dependences
* added --without gpl swich to exclude code which needs 3-rd party
GPL libs (GPM, SLANG) - necessary for people who want to create
commercial closed source application
* harbour/make_gnu.sh
* modified DJGPP detection - try to use env var first
* set HB_GT_LIB depending on platform information
* check PREFIX env var for default installation
* harbour/make_tgz.sh
* modified to work with DJGPP and 8.3 file names
* harbour/bin/hb-func.sh
* DJGPP support
* harbour/bin/pack_src.sh
* autodetect Harbour version number
* harbour/config/linux/gcc.cf
* added small comment
+ harbour/config/linux/owatcom.cf
+ OpenWatcom support on Linux
* harbour/config/w32/global.cf
* harbour/config/w32/mingw32.cf
* small modification in clean procedure
+ added Phil's modification for MINGW cross compilation in Linux and BSD
* harbour/source/compiler/gencobj.c
+ added Phil's modification for MINGW cross compilation in Linux and BSD
* harbour/include/hbsetup.h
* added OS_HAS_DRIVE_LETTER, OS_PATH_DELIMITER_STRING, OS_FILE_MASK,
OS_DRIVE_DELIMITER and HOST_OS_UNIX_COMPATIBLE
* modified for OW on Linux and MINGW cross compilation
* added snprintf macro for compilers which do not support it
* harbour/source/rtl/mod.c
! fixed bug in mod(a,b) when a/b exceeds LONG limit
* harbour/source/rtl/filesys.c
* removed HB_FS_DRIVE_LETTER - use OS_HAS_DRIVE_LETTER
* modified for OW on Linux and MINGW cross compilation
* harbour/contrib/libct/files.c
* harbour/include/hb_io.h
* harbour/include/hbdefs.h
* harbour/source/rtl/diskspac.c
* harbour/source/rtl/disksphb.c
* harbour/source/rtl/fssize.c
* harbour/source/rtl/fstemp.c
* harbour/source/rtl/hbffind.c
* harbour/source/rtl/net.c
* harbour/source/rtl/seconds.c
* harbour/source/rtl/gtcrs/Makefile
* harbour/source/rtl/gtcrs/kbdcrs.c
* harbour/source/rtl/gtpca/gtpca.c
* harbour/source/rtl/gtsln/Makefile
* harbour/source/rtl/gtsln/gtsln.c
* harbour/source/rtl/gtsln/kbsln.c
* harbour/source/rtl/gtstd/gtstd.c
* harbour/source/vm/hvm.c
* harbour/source/vm/mainstd.c
* harbour/source/vm/mainwin.c
* modified for OW on Linux and MINGW cross compilation
* harbour/source/vm/memvars.c
- removed unnecessary checking for s_globalTable == NULL in
hb_memvarValueDecRef() - in Harbour it cannot happen
* harbour/source/vm/itemapi.c
- removed snprintf macros (see hbsetup.h)
* fixed possible GPF in hb_itemCopyC()
* modified hb_itemGetPtr() to check item type
* include/hbexprb.c
* source/compiler/exproptb.c
* source/macro/macrob.c
* fixed to compile with SIMPLEX defined
Notice: Simplex version is not updated for a long time and
it doesn't support all fixes from FLEX version
* include/hbcomp.h
* include/hbexprb.c
* include/hbmacro.h
* source/compiler/exproptb.c
* source/compiler/harbour.c
* source/compiler/hbgenerr.c
* source/macro/macrob.c
* source/vm/macro.c
* compiler reports error on the following syntax now (Clipper
compatibility):
{|| ¯ovar <operator> anysymbol}
"codeblock contains both macro and declared symbol reference"
Notice, that Clipper reports error even in this case:
MEMVAR mvar
{|| &mvar,mvar}
* source/vm/memvars.c
* restored initial and expand sizes for memvars table
* source/pp/ppcore.c
* some empty lines added
* harbour/source/compiler/cmdcheck.c
* replaced some free by hb_xfree
* harbour/source/compiler/genc.c
* replace non ID characters in name of local symbol table by '_'
* harbour/bin/hb-func.sh
* set proper X11 path for mixed (32/64bit) systems
* harbour/config/bsd/global.cf
+ added suppot for HB_COMMERCE and HB_WITHOUT_GTSLN env vars
* harbour/source/compiler/Makefile
* formating
* harbour/include/hbdefs.h
* harbour/source/vm/fm.c
* harbour/source/vm/garbage.c
+ added macro HB_ALLOC_ALIGNMENT which forces allocated memory
alignment in FM and GC modules to given value - by default used
only when set HB_OS_SUNOS with 8 bytes alignment
* harbour/bin/hb-func.sh
* changed 'sed' and 'tr' expresions to be compatible with SunOS
+ added Darwin dynlib support borrowed from xHarbour thanks
to Phil Krylov
* harbour/bin/hb-mkslib.sh
* minor modification
* harbour/bin/postinst.sh
* harbour/config/darwin/gcc.cf
+ Phil's modification for Darwin
* removed HB_OS_BSD and HB_BIG_ENDIAN - the first macro is set in
hbsetup.h when HB_OS_DARWIN is set, the second one should be
automatically detected inside hbdefs.h using C header files.
* harbour/config/sunos/gcc.cf
* removed HB_BIG_ENDIAN macro - the same as above
* harbour/include/hbapi.h
* harbour/source/vm/fm.c
* changed 16/32 bit hack #if UINT_MAX == ULONG_MAX for hb_xmem*()
functions to still not perfect but working on current platforms
#if UINT_MAX > USHRT_MAX
* harbour/include/hbdefs.h
+ added HB_DBL_LIM_INT24(d) and HB_LIM_INT24(l) macros
+ try to autodect byte order using information form system C header
files - it whoud work for Linux, BSD/Darwin, SunOS - maybe also
for some other *nixes
* removed some dangerous casting. [x]Harbour code still depnds on
8bytes double - in CDX for binary compatibility IEEE754 double is
necessary - if some architectures uses differ type of double value
for binary compatibility we will have to create proper conversion
functions for HB_{PUT|GET}_{LE|BE}_DOUBLE and HB_ORD2DBL/HB_DBL2ORD
macros
* harbour/include/hbsetup.h
* define HB_OS_UNIX when HB_OS_SUNOS set
* harbour/source/common/hbstr.c
* harbour/source/pp/ppcore.c
* casting
* harbour/source/compiler/harbour.c
* use HB_LIM_INT*() macros instead of hard coded values
* removed some unnecessary if () statement - always true
* harbour/source/compiler/harbour.l
* harbour/source/compiler/hbfix.c
* harbour/source/vm/macro.c
* use HB_LIM_INT*() macros instead of hard coded values
* harbour/source/rdd/dbfcdx/dbfcdx1.c
! minor fix
* harbour/source/rdd/dbfntx/dbfntx1.c
! small fix - the temporary index file was not removed
* do not force any name for temporary index files - important
in some cases (like DOS and short file names)
* harbour/source/rtl/diskspac.c
! fixed type in SunOS version
* harbour/source/rtl/gtsln/Makefile
* minor cleanups
* harbour/utils/hbtest/rt_math.prg
* changed to number results to be Clipper compatible.
* harbour/bin/hb-func.sh
* harbour/bin/pack_src.sh
+ harbour/config/sunos/dir.cf
+ harbour/config/sunos/gcc.cf
+ harbour/config/sunos/global.cf
+ harbour/config/sunos/install.cf
+ added SunOS support
* harbour/config/darwin/gcc.cf
* small modification for nicer work with OS-X installed
on SF compile farm - I'm not Darwin user and SF is the only
one place I can make tests - if someone may fix me and leave
some comments 'why?' it will be nice.
* harbour/contrib/Makefile
* exclude ADS RDD from Darwin build
* harbour/contrib/rdd_ads/adsfunc.c
* some minor modification to avoid compiler warnings.
* harbour/include/hbdefs.h
* fixed typo in HB_PUT_LE_DOUBLE() macro for big endian machines.
* harbour/source/compiler/genc.c
! fixed endian dependend code I left by mistake
* harbour/source/compiler/harbour.c
* harbour/source/compiler/harbour.sly
* harbour/source/compiler/harbour.y
! commented out hb_compSequenceFinish()
* harbour/source/pp/ppcore.c
+ added ( void * ) size as result of __ARCH{16,32,64}BIT__ and
__{LITTLE,BIG,PDP}_ENDIAN__ macros
* harbour/source/pp/pragma.c
! fixed possible string overflow
* harbour/source/vm/itemapi.c
* harbour/source/rtl/diskspac.c
* harbour/source/rtl/disksphb.c
* harbour/source/rtl/fstemp.c
* harbour/source/rtl/idle.c
* harbour/source/rtl/math.c
* harbour/source/rtl/gtcrs/Makefile
* harbour/source/rtl/gtcrs/gtcrs.c
* harbour/source/rtl/gtcrs/kbdcrs.c
* harbour/source/rtl/gtcrs/mousecrs.c
* modified for SunOS and Darwin support.
* harbour/Makefile
+ harbour/make_bsd.sh
+ harbour/make_drw.sh
* harbour/make_tgz.sh
+ harbour/bin/hb-func.sh
* harbour/bin/pack_src.sh
+ harbour/bin/postinst.bat
+ harbour/bin/postinst.sh
* harbour/config/dir.cf
* harbour/config/bsd/gcc.cf
* harbour/config/bsd/global.cf
+ harbour/config/darwin/dir.cf
+ harbour/config/darwin/gcc.cf
+ harbour/config/darwin/global.cf
+ harbour/config/darwin/install.cf
* harbour/config/dos/dir.cf
* harbour/config/dos/global.cf
* harbour/config/dos/install.cf
* harbour/config/dos/owatcom.cf
* harbour/config/dos/watcom.cf
* harbour/config/linux/gcc.cf
* harbour/config/linux/global.cf
* harbour/contrib/Makefile
* harbour/contrib/dot/pp_harb.ch
* harbour/contrib/libct/Makefile
* harbour/contrib/libct/bit1.c
* harbour/contrib/libct/bit2.c
* harbour/contrib/libct/bit3.c
* harbour/contrib/libct/files.c
* harbour/contrib/libct/ftoc.c
- harbour/contrib/libct/invertwin.prg
+ harbour/contrib/libct/invrtwin.prg
* harbour/contrib/libct/keyset.c
* harbour/contrib/libct/makefile.bc
* harbour/contrib/libmisc/dates2.c
* harbour/contrib/rdd_ads/ads1.c
* harbour/contrib/rdd_ads/adsfunc.c
* harbour/contrib/samples/date.c
* harbour/include/dbinfo.ch
* harbour/include/hbapi.h
* harbour/include/hbapicdp.h
* harbour/include/hbapifs.h
* harbour/include/hbapigt.h
* harbour/include/hbapiitm.h
* harbour/include/hbcomp.h
* harbour/include/hbdate.h
* harbour/include/hbdbf.h
* harbour/include/hbdbferr.h
* harbour/include/hbdefs.h
* harbour/include/hbexprb.c
* harbour/include/hbexprc.c
* harbour/include/hbexprop.h
* harbour/include/hbmacro.h
* harbour/include/hbmath.h
* harbour/include/hbpcode.h
* harbour/include/hbrddcdx.h
* harbour/include/hbrdddbf.h
* harbour/include/hbrdddbt.h
* harbour/include/hbrddfpt.h
* harbour/include/hbrddntx.h
* harbour/include/hbset.h
* harbour/include/hbsetup.h
* harbour/include/set.ch
* harbour/source/common/Makefile
* harbour/source/common/expropt1.c
* harbour/source/common/expropt2.c
- harbour/source/common/hbffind.c
* harbour/source/common/hbfsapi.c
* harbour/source/common/hbstr.c
* harbour/source/common/hbver.c
+ harbour/source/common/hbverdsp.c
* harbour/source/compiler/genc.c
* harbour/source/compiler/gencli.c
* harbour/source/compiler/harbour.c
* harbour/source/compiler/harbour.l
* harbour/source/compiler/harbour.slx
* harbour/source/compiler/harbour.sly
* harbour/source/compiler/harbour.y
* harbour/source/compiler/hbfix.c
* harbour/source/compiler/hbpcode.c
* harbour/source/compiler/hbusage.c
* harbour/source/compiler/simplex.c
* harbour/source/macro/macro.l
* harbour/source/macro/macro.slx
* harbour/source/macro/macro.y
* harbour/source/pp/ppcore.c
* harbour/source/rdd/dbcmd.c
* harbour/source/rdd/dbf1.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
- harbour/source/rdd/dbfcdx/dbfcdx1.h
* harbour/source/rdd/dbffpt/dbffpt1.c
* harbour/source/rdd/dbfntx/dbfntx1.c
* harbour/source/rtl/Makefile
* harbour/source/rtl/abs.c
* harbour/source/rtl/at.c
* harbour/source/rtl/datec.c
* harbour/source/rtl/dates.c
* harbour/source/rtl/dateshb.c
* harbour/source/rtl/datesx.c
* harbour/source/rtl/empty.c
* harbour/source/rtl/errorapi.c
* harbour/source/rtl/errorint.c
* harbour/source/rtl/filesys.c
* harbour/source/rtl/fstemp.c
+ harbour/source/rtl/hbffind.c
* harbour/source/rtl/hbrandom.c
* harbour/source/rtl/idle.c
* harbour/source/rtl/inkey.c
* harbour/source/rtl/math.c
* harbour/source/rtl/minmax.c
* harbour/source/rtl/pad.c
* harbour/source/rtl/padc.c
* harbour/source/rtl/padl.c
* harbour/source/rtl/padr.c
* harbour/source/rtl/philes.c
* harbour/source/rtl/round.c
* harbour/source/rtl/soundex.c
* harbour/source/rtl/str.c
* harbour/source/rtl/strcase.c
* harbour/source/rtl/strmatch.c
* harbour/source/rtl/strtran.c
* harbour/source/rtl/strzero.c
* harbour/source/rtl/substr.c
* harbour/source/rtl/val.c
* harbour/source/rtl/gtcrs/gtcrs.c
* harbour/source/rtl/gtcrs/kbdcrs.c
* harbour/source/rtl/gtdos/gtdos.c
* harbour/source/rtl/gtsln/gtsln.c
* harbour/source/rtl/gtsln/kbsln.c
* harbour/source/rtl/gtsln/keytrans.c
* harbour/source/vm/arrays.c
* harbour/source/vm/codebloc.c
* harbour/source/vm/estack.c
* harbour/source/vm/eval.c
* harbour/source/vm/extend.c
* harbour/source/vm/hvm.c
* harbour/source/vm/itemapi.c
* harbour/source/vm/macro.c
* harbour/source/vm/memvars.c
* harbour/source/vm/runner.c
* harbour/tests/bldtest/bldtest.c
* harbour/utils/hbtest/hbtest.prg
* harbour/utils/hbtest/rt_misc.prg
* harbour/utils/hbtest/rt_str.prg
* Sorry but it's too much modification for full description
cvs diff gives file 785982 bytes length. So I only count the
main things:
! cleand the code (no more warning messages under Linux and GCC and
DOS OpenWatcom) - some of them were real bugs
! cleaned all endian dependend code I've found - now Harbour can be
compiled on LITLE and BIG endian machines - for some other like
PDP ENDIAN it's enough to define proper macros in hbdefs.h
+ added macros for to get/put values in chosen byte order:
HB_GET_LE_[U]INT{16,24,32,64}( pPtr )
HB_GET_BE_[U]INT{16,24,32,64}( pPtr )
HB_PUT_LE_[U]INT{16,24,32,64}( pPtr, nVal )
HB_PUT_BE_[U]INT{16,24,32,64}( pPtr, nVal )
+ added macro HB_CAST_BYTE_NUMBERS_OFF which disables casting in
HB_{GET|PUT}_{LE|BE}_* macros - it's necessary for some platforms
like ALPHA DEC.
! cleaned the code for 64bit machines
* changed all parameters in hb_date* functions (day, month, year, week)
from LONG to int - it doesn't change binary compatibility for 32bit
machines but can cause troubles with compiling the old source
+ changed HB_IT_LONG type to HB_LONG which is mapped to long long
by default for 32 bit machines.
+ change HB_IT_INTEGER to be real 'int' C type not 'short int'
+ added HB_IS_NUMINT() macro
+ added hb_parnll, hb_stornll, hb_retnll, hbretnlllen, hb_itemPutNLL,
hb_itemPutNLLLen, hb_itemGetNLL which operates on LONGLONG
+ added hb_parnint, hb_stornint, hb_retnint, hb_retnintlen,
hb_itemPutNInt, hb_itemPutNIntLen, hb_itemGetNInt which operates on
HB_LONG
+ added HB_PUSHLONGLONG pcode
+ changed compiler and optimizer to use HB_LONG numbers and reduce
conversion from to double which may damage the 64bit number.
+ common functions for string to number conversions for compiler, RTL
and RDD to reduce problems with differ FL values for the same number:
hb_compStrToNum(), hb_valStrnToNum(), hb_strToNum(), hb_strnToNum()
+ common function hb_numRoun() which uses exactly the same algorithms
as string to number conversion for the same reason - please keep
this functions together.
+ hack inside hb_numRound() similar to the one used by CL5.3
+ hb_numInt() which uses uses the same hack as hb_numRound()
+ rewritten number to string conversion
+ some new string manipulation functions hb_strncpy(), hb_strncat(), ...
They works differ the the C one - always set 0 at the end, the buffer
has to be n+1 bytes length, the n is total size of buffer not the
left free space.
! cleaned some code which operates on ASCIIZ string to avoid potential
buffer overflow
+ updated RDD code - it's the first part - in few days I plan to change
workarea structure in both projects - it will break any 3rd party RDDs
so they have to be updated. I want to add SUPERTABLE into workarea
to allow creating new RDD on-line.
! cleaned the bugs with negating integers - on most machines (like x86)
the integers are not 0 symmetric - it means that x = -x does not work
for {INT,LONG,LONGLONG}_MIN (hb_vmNegate, ABS())
+ cleaned error messages to be Clipper compatible.
+ updated build process for .DEB packages - now hb* scripts and shared
libs are created by standard make install
* added new .prg #defines: __PLATFORM__<cPlatfrom>,
__ARCH{16|32|64}BIT__, __LITTLE_ENDIAN__|__BIG_ENDIAN__|__PDP_ENDIAN__
!!! cPlatfrom can have lower letters (for xHarbour compatibility)
If you do not like it please change it.
* others ...
* include/hbexpra.c
* source/compiler/expropta.c
* source/compiler/harbour.c
* source/macro/macroa.c
* source/rtl/tget.prg
* source/rtl/tgetint.prg
* fixed to be more Clipper compatible
* source/rtl/persist.prg
* fixed to not use xBase extensions
* source/rdd/dbf1.c
* source/rdd/dbfcdx/dbfcdx1.c
* source/rdd/dbfdbt/dbfdbt1.c
* source/rdd/dbffpt/dbffpt1.c
* source/rdd/dbfntx/dbfntx1.c
* source/rtl/is.c
* source/rtl/strcase.c
* source/rtl/transfrm.c
* updated to refer hb_cdp_page instead of s_cdpage
* source/vm/itemapi.c
* snprintf is used only in GCC/Linux and WatcomC
guarded with #ifdef HB_HAS_SNPRINTF
(this is ommision from my previous commit)
* include/hbexpra.c
* source/compiler/expropta.c
* source/macro/macroa.c
* source/vm/macro.c
* fixed bug cousing that some memory was deallocated
more then once
* source/debug/debugger.prg
* fixed support for .T./.F. in command window
* fixed issues when the application was using
SET EXACT ON
* source/compiler/gencli.c
* fixed warnings
* source/rtl/cdpapi.c
*fixed warnings (Can the author of the code check if
I correctly parenthesized multiple || and && conditions?)
* source/vm/classes.c
*fixed warning in gcc (commented out unused
static hb_clsScope function)
* source/rdd/dbfntx/dbfntx1.c
* source/rtl/fstemp.c
* fixed hb_fsCreateTemp() to use 'mkstemp' on Unix
* fixed sorting procedure to use hb_fsCreateTemp
wrapper function
* source/rtl/set.c
*hb_set.HB_SET_DIRSEPARATOR defaults to '/' on Unix
* include/hbexprb.c
* include/hbmacro.ch
* fixed support for strings as array of bytes
(in macro compiler)
* added a new #define HB_SM_ARRSTR as a flag
for HB_SETMACRO() to disable/enable strings
as array of bytes
* source/vm/macro.c
* added HB_SM_ARRSTR support
* fixed TYPE() function to return correct value when an
assigment to undeclared variable is checked (Clipper
creates the memvar variable) - thanks to Phil Krylov
* source/compiler/hbusage.c
* fixed typo for -ks switch
* include/hbapi.h
* source/vm/macro.c
* added HB_ITEM_PTR pError member to HB_MACRO structure
* fixed bug in macro compiler - calls to static
functions are not allowed in macro compiler
* source/common/expropt1.c
* source/common/hbffind.c
*fixed minor warnings reported by Randy Portnoff
* source/rtl/set.c
*SET(_SET_DEBUG) defaults to FALSE (Clipper compatible)
* source/rtl/idle.c
*small optimization of hb_idleState()
* source/compiler/harbour.y
*the compiler generates line number for DO CASE
(if debug info requested - to allow breakpoint)
* source/debug/debugger.prg
*the debugger shows the line number for modules where
no source code is available
* include/hberrors.h
* source/pp/ppcore.c
*fixed #define parsing of pseudofunctions in cases where
passed argument has the same name as declared parameter
*fixed #define parsing of pseudofunctions - the following
syntax is not allowed:
#define test(x,x) - duplicated parameters
#define test(x,) - missing parameter
#define test(x - missing parenthes
* source/common/expropt1.c
* fixed generation of pcode for &(macro)->() syntax
* source/compiler/harbour.l
* fixed GPF when string with unmatched terminator was used
* include/hbexprop.h
* source/compiler/harbour.y
* removed direct access to internals of expression
optimizer structure
* source/debug/debugger.prg
* fixed checking of path separator
+ source/rtl/altd.prg
+new file with ALTD() procedure code
* hrbdll.bc
* hrbdll.vc
* makefile.bc
* makefile.nt
* makefile.vc
* source/rtl/Makefile
*added a reference to rtl/altd.prg
* source/common/hbffind.c
*fixed to compile correctly with HB_OS_UNIX
* include/hbcomp.h
* include/hbexpra.c
* include/hbexprb.c
* include/hbexprop.h
* include/hbpcode.h
* source/common/expropt1.c
* source/compiler/expropta.c
* source/compiler/exproptb.c
* source/compiler/genc.c
* source/compiler/harbour.c
* source/compiler/harbour.y
* source/compiler/hbfix.c
* source/compiler/hbgenerr.c
* source/compiler/hbpcode.c
* source/macro/macro.y
* source/macro/macroa.c
* source/macro/macrob.c
* source/vm/hvm.c
+added missing support for @¯o and @M->memvar
+added new pcode HB_MACROPUSHREF (all sources have to be
recompiled)
* source/debug/dbgtwin.prg
* source/debug/debugger.prg
*fixed procedures callstack when modules with/without debug info
are linked together
*fixed the debugger activation when ALTD() is used in
a module with no debug info (the debugger shows up
on the first line with debug info after the ALTD()
is called)
NOTICE:
Some compilers may require that the debug library has to
be specified as an object file in order to get the
debugger linked in.
* souce/rtl/gtapi.c
! hb_gtSetColorStr() removed one suspicious assigment which
showed incompatible with CA-Cl*pper, whete CLR_UNSELECTED
was made equal to CLR_ENHANCED if missing from the color string.
* Using CLR_ constants instead of literals.
* source/rtl/tget.prg
! :ColorSpec() method unselected color defaulting fixed.
* source/compiler/hbusage.c
* Bumped year to 2004.
* source/compiler/harbour.c
* fixed generation of pcode in codeblocks with no
local variables or parameters
* source/debug/debugger.prg
* fixed refreshing of variables in monitor window
* source/compiler/harbour.c
* the compiler generates module name inside
'(_INITSTATICS)' function if -B option is used
* source/vm/hvm.c
* fixed hb_vmStaticName, hb_dbg_vmVarSGet,
hb_dbg_varSSet to use the static variables frame
* source/debug/dbgtmenu.prg
* source/debug/dbgtmitm.prg
* source/debug/debugger.prg
* fixed parsing of <var>:<name> in watchpoint
expressions
* fixed monitoring of static variables - the
debugger displays now static variables defined
in the current debugged prg file
* source/compiler/harbour.c
*fixed generation of codeblock's pcode with debugging info
* source/debug/dbgmenu.prg
* source/debug/dbgtmenu.prg
* source/debug/dbgtmitm.prg
* source/debug/dbgtwin.prg
* source/debug/debugger.prg
* source/debug/tbrwtext.prg
*added Tracepoint support
*added support for PPO files
*added monitoring of local variables used in a codeblock
*local variables are displayed correctly when the
callstack window is browsed
*other minor fixes
* source/vm/debug.c
*renamed '__vm*' functions to 'hb_dbg_*'
*fixed support for local variables inside of codeblock
* source/vm/hvm.c
*added 'hb_dbg_ProcLevel' function which return the
size of procedure stack calls (the debugger support)
* source/compiler/harbour.y
*fixed generation of line number's pcode related to
the debugger
* source/debug/dbgmenu.prg
* source/debug/debugger.prg
*added support for 'Run to cursor" command
*minor fixes in breakpoints handling (some code
lines are not allowed to set a breakpoint and
run to cursor)
* source/compiler/harbour.y
*fixed generation of line number's pcode related to
the debugger
* source/debug/dbgmenu.prg
* source/debug/debugger.prg
*fixed TRACE command
*added support for 'Codeblock trace' option
* other minor fixes to make the debugger usable
Additionally in my previous commit (2004-01-20 19:15)
* source/vm/hvm.c
*added call for hb_inkeyPoll to the main pcode execution
loop to correctly support Alt-D, Alt-C and Ctrl-C
requests (only if HB_GUI is not defined) - it is
called every 256 opcodes
* source/compiler/gencobj.c
! fixed to allow = for the C compiler options
( suggested by Przemyslaw Czerpak )
! added support of OpenWatcom C
! cleaned the verbose option
* source/rdd/dbfcdx/dbfcdx1.h
! changed to allow OpenWatcom C build
( suggested by Przemyslaw Czerpak )
* source/vm/itemapi.c
! added support of OpenWatcom C