* harbour/include/hbapi.h
* harbour/source/vm/dynsym.c
+ added hb_dynsymIsFunction()
* harbour/source/rtl/filehb.c
* updated comment
* harbour/source/rtl/philes.c
* renamed HB_F_EOF() to HB_FEOF()
* harbour/source/rtl/scroll.c
* harbour/source/rtl/transfrm.c
* harbour/source/rtl/file.c
* formatting
* harbour/source/rtl/substr.c
* harbour/source/rtl/trim.c
% optimization
* harbour/source/rtl/typefile.prg
% use HB_ATOKENS() instead of static .prg function
* harbour/source/rtl/setkey.c
% optimization and protection aganst possible GPF when wrong array
is passed to HB_SETKEYSAVE()
* harbour/source/rtl/xhelp.c
! do not generate RT error when HELP symbol exist
(f.e. after PUBLIC HELP) but HELP() function doesn't
! keep reference in parametes passed by reference to __XHELP()
* use only PHB_DYNS instead of PHB_SYMB
* harbour/source/rtl/seconds.c
+ added WIN32 version borrowed from XHARBOUR
* harbour/source/rtl/trace.c
! protection against possible GPF when wrong parameters are passed
* harbour/source/rtl/samples.c
! protection against possible GPF when wrong parameters are passed
Warning! We have in this file few functions without HB_ prefix.
Some of them may create conflicts with future functions for TIMEDATE
items.
* harbour/source/rtl/inkey.c
+ added support for passing array with key codes as __KEYBOARD()
parameter, covered by HB_EXTENSION macro - this is xHarbour compatible
extension. I do not like it but we already had extension with numeric
parameters and probably it would be hard to remove it now and keep
__KEYBOARD() code clean so I decided to add support also for arrays
instead of creating new function and adding conditional code covered
by HB_COMPAT_XHB macro.
* harbour/source/rtl/setfunc.prg
* accept extended __KEYBOARD() parameters when HB_EXTENSION macro
is set.
* harbour/include/hbapi.h
* harbour/source/rtl/console.c
* changed hb_conOutAlt() from static to global function.
* harbour/include/hbapi.h
* harbour/source/common/hbver.c
+ added hb_verBuildDate()
* harbour/source/rtl/accept.c
! Fixed ACCEPT to respect SET CONSOLE and similar sets.
* harbour/source/rtl/hbgtcore.c
* harbour/contrib/libct/ctwin.c
! fixed chr(8) console output - it should erase character on the screen
* harbour/include/set.ch
* harbour/include/hbset.h
* harbour/source/rtl/set.c
* harbour/source/rtl/filesys.c
+ added _SET_TRIMFILENAME - when enabled low level hb_fs*() functions
strip trailing and leading spaces from file names to emulate DOS
like behavior - switch compatible with xHarbour
* harbour/source/rtl/run.c
* remove compiler type checking - if system() is not supported by
some platform/compiler then I'd prefer to exclude it explicitly.
* harbour/source/rtl/dircmd.prg
+ added support for extended DBF types and replaced some of
Bin2W() by ASC()
* harbour/source/rtl/defpath.c
* use OS_HAS_DRIVE_LETTER macro to detect if platform supports drive
letters
* harbour/source/rtl/philes.c
+ added HB_FCOMMIT(), HB_OSERROR(), HB_OSDRIVESEPARATOR()
Question: why we have HB_F_EOF() instead HB_FEOF()
* harbour/source/rtl/oldbox.c
* harbour/source/rtl/box.c
! fixed __BOX() to be Clipper compatible
* harbour/source/rtl/math.c
* harbour/source/rtl/dateshb.c
* formatting and some minor improvements
* harbour/source/rtl/isprint.c
* harbour/source/vm/itemapi.c
* harbour/source/rtl/ampm.c
* harbour/source/rtl/inkey.c
* harbour/source/rtl/gete.c
* harbour/source/rtl/fkmax.c
* harbour/source/rtl/langapi.c
* harbour/source/rtl/colorind.c
* harbour/source/rtl/mouseapi.c
* harbour/source/rtl/readvar.prg
* harbour/source/rtl/devoutp.prg
* harbour/source/rtl/readkey.prg
* code checking and formatting
! some minor fixes
% some speed improvements
* harbour/source/rtl/menuto.prg
* harbour/source/rtl/radiogrp.prg
* harbour/source/rtl/listbox.prg
* harbour/source/rtl/checkbox.prg
* harbour/source/rtl/pushbtn.prg
* harbour/source/rtl/radiobtn.prg
* code checking and formatting
! added fixes borrowed from xHarbour
! some other fixes
% some speed improvements
* harbour/source/rtl/filehb.c
+ added commment
* harbour/source/rtl/transfrm.c
! fixed integer numbers transformation when _SET_FIXED is on to
be Clipper compatible
* harbour/source/rtl/version.c
+ added HB_PCODEVER() and HB_BUILDDATE()
* harbour/source/rtl/copyfile.c
! fixed __COPYFILE() - source and destination files should respect
_SET_DEFAULT
* harbour/include/hbcomp.h
* harbour/include/hbexpra.c
* harbour/include/hbexprb.c
* harbour/include/hbexprc.c
* harbour/include/hbmacro.h
* harbour/include/hbpcode.h
* harbour/include/hbxvm.h
* harbour/source/common/hbdate.c
* harbour/source/compiler/genc.c
* harbour/source/compiler/gencc.c
* harbour/source/compiler/harbour.c
* harbour/source/compiler/harbour.y
* harbour/source/compiler/harbour.yyc
* harbour/source/compiler/hbdead.c
* harbour/source/compiler/hbfix.c
* harbour/source/compiler/hblbl.c
* harbour/source/compiler/hbopt.c
* harbour/source/compiler/hbpcode.c
* harbour/source/compiler/hbstripl.c
* harbour/source/rtl/abs.c
* harbour/source/rtl/at.c
* harbour/source/rtl/chrasc.c
* harbour/source/rtl/datec.c
* harbour/source/rtl/dateshb.c
* harbour/source/rtl/diskspac.c
* harbour/source/rtl/disksphb.c
* harbour/source/rtl/gtfunc.c
* harbour/source/rtl/left.c
* harbour/source/rtl/len.c
* harbour/source/rtl/math.c
* harbour/source/rtl/minmax.c
* harbour/source/rtl/mod.c
* harbour/source/rtl/philes.c
* harbour/source/rtl/philesx.c
* harbour/source/rtl/replic.c
* harbour/source/rtl/round.c
* harbour/source/rtl/set.c
* harbour/source/rtl/space.c
* harbour/source/rtl/strcase.c
* harbour/source/rtl/strpeek.c
* harbour/source/rtl/transfrm.c
* harbour/source/rtl/trim.c
* harbour/source/rtl/type.c
* harbour/source/rtl/val.c
* harbour/source/rtl/word.c
* harbour/source/vm/hvm.c
* harbour/source/vm/macro.c
* added some PCODEs to cover all possible combination of ++, --, <op>=
operations in the same way and keep Clipper compatible RT errors.
* added some other PCODEs to optimize some commonly used expressions/
statements
* use HB_ERR_ARGS_BASEPARAMS instead of hb_paramError()
* some other cleanups and minor optimizations
* harbour/utils/hbtest/rt_math.prg
* update expected result for MOD() - it was not Clipper compatible and
it will be hard to make it compatible without introducing some Clipper's
side effects
* harbour/bin/hb-func.sh
* do not pass linking parameters to GCC/G++ when is used for
compilation only
* harbour/contrib/rdd_ads/Makefile
* set -DWIN32 for W32 compilation
* harbour/contrib/rdd_ads/makefile.bc
* formatting
* harbour/include/hbapi.h
* harbour/source/rtl/strcase.c
+ added hb_charUpper() and hb_charLower()
* harbour/include/hbapigt.h
* harbour/include/hbgtcore.h
* harbour/source/rtl/gtapi.c
* harbour/source/rtl/hbgtcore.c
+ added support for ALERT() on GT level - C functions: hb_gtAlert()/
hb_gt_Alert()
To replicate some details of Clipper and CT3 behavior ALERT() cannot
be implement only on upper level as .prg function
* harbour/source/rtl/gtfunc.c
+ added .prg function HB_GTALLERT()
* harbour/source/rtl/alert.prg
* redirected ALERT() to HB_GTALLERT()
* harbour/source/rtl/fstemp.c
* use the same case conversion as in low level hb_fs*() functions to
avoid possible problems with national characters
* harbour/source/rtl/dates.c
* harbour/source/rtl/set.c
* harbour/source/rtl/strmatch.c
* harbour/source/rtl/transfrm.c
* use hb_charUpper()
* casting
* harbour/bin/hb-func.sh
* harbour/bin/hb-mkslib.sh
* harbour/bin/postinst.sh
* harbour/config/bsd/gcc.cf
* harbour/config/darwin/gcc.cf
* harbour/config/dos/owatcom.cf
* harbour/config/hpux/gcc.cf
* harbour/config/linux/gcc.cf
* harbour/config/linux/owatcom.cf
* harbour/config/os2/gcc.cf
* harbour/config/sunos/gcc.cf
* harbour/config/w32/watcom.cf
* harbour/contrib/rdd_ads/ads1.c
* harbour/contrib/rdd_ads/adsfunc.c
* harbour/include/hbapifs.h
* harbour/include/hbexprc.c
* harbour/include/hbsetup.h
* harbour/source/common/expropt2.c
* harbour/source/common/hbdate.c
* harbour/source/common/hbgete.c
* harbour/source/common/hbstr.c
* harbour/source/common/hbver.c
* harbour/source/common/hbverdsp.c
* harbour/source/compiler/cmdcheck.c
* harbour/source/compiler/fixflex.c
* harbour/source/compiler/gencobj.c
* harbour/source/compiler/genobj32.c
* harbour/source/compiler/harbour.c
* harbour/source/compiler/harbour.l
* harbour/source/compiler/harbour.y
* harbour/source/compiler/harbour.yyc
* harbour/source/compiler/hbfix.c
* harbour/source/compiler/hbfunchk.c
* harbour/source/pp/ppcore.c
* harbour/source/pp/ppgen.c
* harbour/source/pp/pplib.c
* harbour/source/rdd/dbcmd.c
* harbour/source/rdd/workarea.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* harbour/source/rdd/dbffpt/dbffpt1.c
* harbour/source/rdd/hsx/hsx.c
* harbour/source/rtl/accept.c
* harbour/source/rtl/ampm.c
* harbour/source/rtl/console.c
* harbour/source/rtl/defpath.c
* harbour/source/rtl/errorint.c
* harbour/source/rtl/filesys.c
* harbour/source/rtl/fkmax.c
* harbour/source/rtl/fstemp.c
* harbour/source/rtl/hbffind.c
* harbour/source/rtl/hbgtcore.c
* harbour/source/rtl/langapi.c
* harbour/source/rtl/seconds.c
* harbour/source/rtl/set.c
* harbour/source/rtl/tobject.prg
* harbour/source/rtl/transfrm.c
* harbour/source/rtl/gtcrs/chrmap.c
* harbour/source/rtl/gtcrs/gtcrs.c
* harbour/source/rtl/gtcrs/gtcrs.h
* harbour/source/rtl/gtpca/gtpca.c
* harbour/source/rtl/gtwvt/gtwvt.c
* harbour/source/rtl/gtxwc/gtxwc.c
* harbour/source/vm/classes.c
* harbour/source/vm/cmdarg.c
* harbour/source/vm/debug.c
* harbour/source/vm/estack.c
* harbour/source/vm/fm.c
* harbour/source/vm/hvm.c
* harbour/source/vm/macro.c
* harbour/source/vm/proc.c
* harbour/source/vm/runner.c
* harbour/utils/hbmake/hbmlang.c
* harbour/utils/hbpp/hbpp.c
* harbour/utils/hbpp/hbppcomp.c
* harbour/utils/hbpp/hbppcore.c
* harbour/utils/hbpp/hbpplib.c
* harbour/utils/hbpp/pragma.c
* harbour/utils/hbver/hbverfix.c
* general code cleanup: all strcpy() and strcat() replaced hb strn*()
and hb_strn*(), sprintf() by snprintf(), etc.
It fixed some possible buffer overflow but it's also possible that
it will exploit some some hidden so far problems but I strongly
prefer to know about them ASAP to fix them before final 1.0 release.
! fixed bug I introduce in codeblock falgs which disabled early macro
evaluation in codeblocks.
! added missing protection against execution by bison destructor for
used CBSTART token on syntax error.
% use PP stringify logik added for FLEX support to remove all redundant
spaces in stringified for early macro evaluation codeblocks and add
spaces between operators if after preprocessing they were removed.
Now we are supporting also some code which cannot be compiled by
Clipper.
% cleaned and improved the speed of printer redirecting in console code.
Chen please check if CG still reports problems and if not ubdate
TODO/TOFIX or inform me about them.
* some cleanups in building process for different *nixes: MacOSX, SunOS,
*BSD, etc.
* removed not longer necessary (I hope) compiler flag to force default
'char' type as signed. Now Harbour should work with signed and unsigned
char without any problems. To other developers: please remember that
when you are using 'char' as 8 bytes signed integer then it's a bug.
Always explicitly use: 'signed char' in such case. On some platforms
it's not possible to set default type for 'char' so if you hardcode
that 'char' is signed or unsigned somewhere then code will not be
portable. Chen if you will find a while to also rebuild Harbour with
BCC and -K switch to make some tests with CG then I'll be thankful.
* harbour/bin/hb-func.sh
* added support for -L<librarypath> in xhbmk
* set the highest priority to user libraries specified by
-l<libname> linker option
* harbour/include/hbapicdp.h
* harbour/source/rtl/cdpapi.c
* added UTF8 related functions: hb_cdpUTF8StringLength(),
hb_cdpStringInUTF8Length(), hb_cdpUTF8ToStrn().
* Changed name of hb_cdpStrnToUTF() function to hb_cdpStrnToUTF8()
to avoid confusions with UTF16
* harbour/include/hberrors.h
* harbour/source/compiler/hbgenerr.c
* harbour/source/compiler/harbour.c
+ added to new errors (memory corruption and memory overflow) for
compiler level FM statistic.
* harbour/source/compiler/hbfix.c
! fixed stupid typo in copy and past which broke conditional jump
reduction
* harbour/include/hbgtcore.h
* harbour/source/rtl/hbgtcore.c
* harbour/include/hbgtinfo.ch
* harbour/source/rtl/gtdos/gtdos.c
* harbour/source/rtl/gtos2/gtos2.c
* harbour/source/rtl/gtwin/gtwin.c
* added new method to change screen buffer state (hot/cold/scroll)
and use them in some GTs.
* harbour/source/rtl/gx.c
* use screen dimensions as default values for SETMODE() not maxrow()/
maxcol()
* harbour/source/rtl/gtxwc/gtxwc.c
* harbour/source/rtl/gtxwc/gtxwc.h
* added support for clipboard
* added support for cursor shape - like in DOS/VGA
* harbour/source/rdd/workarea.c
* harbour/source/rdd/dbffpt/dbffpt1.c
* cleaned some redundant extern declarations
* xharbour/contrib/rdd_ads/ads1.c
* xharbour/contrib/rdd_ads/adsfunc.c
* removed some unnecessary #include ...
* harbour/source/rtl/str.c
* harbour/source/rtl/transfrm.c
* harbour/source/vm/itemapi.c
! fixed some small incompatibilities with Clipper in number to string
conversions
* source/rtl/transform.c
* TRANSFORM(1.23,"999.") correctly returns " 1." now
instead of empty string
* source/rtl/tget.prg
* fixed to correctly display buffer when negative value
and '0' was pressed in the position next to decimal
point
e.g. -1230. was displayed as -123-.
* fixed support for '9999.' picture
* 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)
! Fix with numeric values and pictures with spaces and pictures with
severals dot.
The return values are compliant with Clipper.
eg: Transform( 1234, "9 999" )
eg: Transform( 123.123456, "999.99.99.99" )
Reported by Richard Chidiak
+ Add @) template.
! Fix @D with numeric expressions.
! Fix bug with @D in string expressions.
eg: Transform( "1", "@D" )
This example generate an GPF or strange memory errors.
! Better support for mask with initial comma, period or space.
! Better support for later mask.
! Replace comma, period or the correspondient space with an '*'
when previous character is '*' too.
eg: Transform( 99999, "9.999" ) -> Before: "* ***" Now: "*****"
Transform( 99, "*.***" ) -> Before: "* *99" Now: "***99"