* 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/source/rtl/diskspac.c
* formatting
* harbour/source/rtl/disksphb.c
! fixed typo in numeric drive parameter, now 1->A, 2->B, ..., 0->default
* extract drive letter only when second letter in path is
OS_DRIVE_DELIMITER
* harbour/source/rtl/diskspac.c
* harbour/source/rtl/disksphb.c
! casting for C++ compilers
* harbour/source/rtl/hbinet.c
* added hack for unimplemented in Linux OpenWatcom version
h_errno and hstrerror()
* harbour/source/rtl/hbregex.c
* harbour/source/hbpcre/pcreglob.c
* harbour/contrib/btree/hb_btree.c
* workaround for C/C++ compilers which may use different calling
convention for standard C functions
* harbour/source/rtl/diskspac.c
* harbour/source/rtl/disksphb.c
* use statvfs() instead of statfs() in *nixes - unlike statfs()
statvfs() is documented POSIX function
* respect superuser status in calculating free space in DISKSPACE()
* respect _SET_FILECASE, _SET_DIRCASE in HB_DISKSPACE()
* accept numeric parameter with driver number in systems
which supports drive letters
* harbour/source/rtl/binnum.c
* harbour/source/rtl/binnumx.c
* force positive return value in BIN2W() and BIN2U()
* harbour/makefile.gc
* Added a DIRTY hack for Windows systems to allow
building either CONSOLE or GUI programs with gcc.
A new library libmainstd.a is created. This library
should be added to a link libraries if programs are
CONSOLE based.
* harbour/include/hbapi.h
* harbour/source/vm/arrays.c
* harbour/source/vm/extend.c
! fixed hb_stor*() functions return value to be Clipper compatible.
These functions should return 1 _ONLY_ when the operation is really
successful; otherwise, they return zero.
+ added hb_storclen_buffer(), hb_arraySetPtrGC()
* harbour/config/darwin/gcc.cf
* harbour/config/hpux/gcc.cf
* harbour/config/dos/rsx32.cf
* harbour/config/os2/gcc.cf
* harbour/config/sunos/gcc.cf
* harbour/config/w32/gcc.cf
* harbour/config/w32/rsxnt.cf
+ added rtl library after gt drivers for linker which do not support
backward references
* harbour/utils/hbdot/hbdot.prg
* some minor modifications for GT drivers which allow to change
the size of console window
* changed the order of requested GTs for CYGWIN builds
* harbour/source/rtl/gttrm/gttrm.c
* enable automatic LF->CR+LF translation on TTY device
* harbour/utils/hbdot/hbdot.prg
* do not clear screen when hbdot executed with -h or --help switch
* harbour/utils/hbtest/hbtest.prg
* use stdout(<cMsg>) instead of fwrite(1,<cMsg>) - now GT driver
can catch and redirect output if necessary
* harbour/source/rtl/gttrm/gttrm.c
* set cursor position at beginning of new line on application exit
* harbour/include/hbextern.ch
+ added missing functions (CDPs, LANGs, HSX, ...)
* harbour/utils/hbdot/Makefile
* harbour/utils/hbrun/Makefile
+ added codepage library
* harbour/include/hbgtcore.h
* harbour/source/rtl/hbgtcore.c
+ added new GT method: SEMICOLD()
* harbour/source/rtl/gtxwc/gtxwc.c
* use SEMICOLD() for late console window initialization
* harbour/source/rtl/gttrm/gttrm.c
* use SEMICOLD() to not erase startup screen contnts.
Now applications which uses GTTRM and only simple QOUT()/QQOUT()
output will work like with GTSTD. It means that in *nixes we can
use GTTRM as default GT driver for all Harbour utilities.
* harbour/make_gcc.sh
* harbour/make_tgz.sh
* harbour/harbour.spec
* changed default GT driver for *nixes from to GTSTD to GTTRM
* harbour/makefile.bc
* harbour/makefile.vc
* harbour/makefile.gc
* harbour/common.mak
* always pass all GT libraries to linked library list so compiled
programs can use REQUEST HB_GT_*
+ added HBDOT
* harbour/include/hbpp.h
* harbour/include/hbcomp.h
* harbour/include/hbcompdf.h
* harbour/source/pp/ppcore.c
* harbour/source/rtl/gttrm/gttrm.c
* harbour/source/main/harbour.c
* harbour/source/compiler/hbmain.c
* harbour/source/compiler/cmdcheck.c
* harbour/source/compiler/hbcomp.c
* harbour/source/compiler/hbcmplib.c
* harbour/source/compiler/ppcomp.c
* added 'const' to some 'char *' declarations
+ added hb_pp_inBuffer()
+ extended hb_compMain() to accept source code passed as ASCIIZ
string
+ .prg function HB_COMPILEFROMBUF()
+ added support for -q2 compiler switch - it disables _ALL_ stdout/stderr
messages
* harbour/utils/Makefile
+ harbour/utils/hbdot
+ harbour/utils/hbdot/hbdot.prg
+ harbour/utils/hbdot/Makefile
+ added hbdot utility program.
It's a "DOt Prompt" Console for the Harbour Language
Syntax: hbdot [<hrbfile[.prg]> [<parameters,...>]]
It should look and work in similar way to pp/xBaseScript
by Ron Pinkas but unlike xBaseScript is does not have preprocessor
or simulated runtime environment but simply uses Harbour pp and
compiler libraries to preprocess and compile commands. It means
that it supports all language constructions also statements, f.e.:
"for i:=1 to 10; ? i; next"
Additionally it can also compile and execute .prg files given as
first parameter just like hbrun.
Please test it. If it will work as expected then we can remove
'pp' (contrib/dot) from standard packages
* harbour/harbour.spec
! added workaround for undefined Epoch tag
* harbour/source/rtl/Makefile
* harbour/common.mak
- harbour/source/rtl/terror.prg
- removed .prg level ERROR class
* harbour/include/hbapierr.h
* harbour/source/rtl/errorapi.c
+ added ERROR class supported at .c level and updated all necessary
functions to work without PCODE execution - it should allow to
create and update ERROR object when HVM has active exceptions
* harbour/utils/hbtest/rt_hvma.prg
* harbour/utils/hbtest/rt_misc.prg
* harbour/utils/hbtest/rt_array.prg
* update HBTEST for new ERROR object structure
* source/rtl/tget.prg
! Recent missing date picture mask bug fixed in another
different way. Now without any side-effects, tested with
the regression test suit.
! Fixed a minor incompatibility in some rare situations.
This is grey area even in C5.2 so compatibility is not 100%
here.
* harbour/include/hbexprb.c
* do not generate error for QSELF()[...] - Clipper allows such
operation and because some valid Clipper code needs it then
I disabled error message.
* harbour/common.mak
* harbour/source/rtl/Makefile
+ harbour/source/rtl/einstvar.prg
+ added undocumented CA-Cl*pper function _eInstVar() used to validate
variable type in assign messages.
* harbour/include/hbapi.h
* harbour/source/vm/arrays.c
* changed 'char *' to 'const char *' in hb_arraySetC() and hb_arraySetCL()
* harbour/source/rdd/dbcmd.c
* cleaned DBSKIPPER() code
* harbour/source/rtl/browdb.prg
* use written in C DBSKIPPER() function instead of static .prg Skipped()
when HB_COMPAT_XPP macro is enabled
* harbour/source/rtl/browse.prg
! fixes in BROWSE() function:
! displaying box characters
+ added CL53 compatible mouse actions
+ added mouse wheel actions
+ added support for deleting records (K_DEL)
+ added support for edit mode
+ added support for append mode
* source/rtl/tget.prg
! Fixed incompatible setting of ::TypeOut in certain
situations. As an example this could cause infinite
loops in the get reader when a bad date was entered
like: 2007.12.32 (very old bug)
! Recent missing date picture mask bug fixed in a different
way, because the previous one caused some regressions.
! Fixed ::TypeOut behaviour for non-editable types.
* source/rtl/tget.prg
! Fixed bug where negative number in get buffer beginning
with a decimal sign was erroneously converted back to
a numeric. (like: -.58)
% Minor optimization in @E handling.
* source/rtl/tget.prg
! Fixed bug where negativ number in ge buffer beginning
with a decimal sign was erroneously converted back to
a numeric. (like: -.58)
Please test!
% Minor optimization in @E handling.
* source/rtl/tget.prg
! Fixed bug where mask was missing for date var type when
no explicit picture was used.
* contrib/libct/makefile.bc
! Added missing lines.
* harbour/contrib/libnf/ftattr.c
! fixed to work with GT drivers which do not use VGA compatible
screen buffer
* harbour/contrib/libnf/proper.c
! fixed to not change passed string and possible buffer overflow
* harbour/contrib/libnf/dispc.c
! fixed hard coded item type and updated some old code for current GTs
* harbour/contrib/libnf/getenvrn.c
+ added support for nixes
* borrowed W32 version from xHarbour
* include/hbcompat.ch
* include/hbextern.ch
* contrib/libnf/fttext.c
* source/vm/arrayshb.c
+ xhb RASCAN() added to Harbour without HB_COMPAT_XHB
switch, under the name HB_RASCAN().
Translation from RASCAN() is done via hbcompat.ch
! NFLib/FT_FRSEEK() now works in Harbour regardless
of the HB_COMPAT switches.
* harbour/contrib/libnf/at2.prg
* harbour/contrib/libnf/min2dhm.prg
* harbour/contrib/libnf/ontick.c
* harbour/contrib/libnf/sqzn.prg
* harbour/contrib/libnf/bytexor.prg
* harbour/contrib/libnf/asum.prg
* harbour/contrib/libnf/sleep.prg
* harbour/contrib/libnf/any2any.prg
* harbour/contrib/libnf/origin.c
* harbour/contrib/libnf/mouse.c
* harbour/contrib/libnf/stod.c
* harbour/contrib/libnf/vertmenu.prg
* harbour/contrib/libnf/aredit.prg
* harbour/contrib/libnf/n2color.c
* harbour/contrib/libnf/xbox.prg
* harbour/contrib/libnf/hex2dec.prg
* harbour/contrib/libnf/getver.c
* harbour/contrib/libnf/Makefile
* harbour/contrib/libnf/invclr.prg
* harbour/contrib/libnf/popadder.prg
* harbour/contrib/libnf/d2e.prg
* harbour/contrib/libnf/anomatch.prg
* harbour/contrib/libnf/color2n.c
* harbour/contrib/libnf/datecnfg.prg
* harbour/contrib/libnf/easter.prg
* harbour/contrib/libnf/ntow.prg
* harbour/contrib/libnf/floptst.prg
* harbour/contrib/libnf/pchr.prg
* harbour/contrib/libnf/tbwhile.prg
* harbour/contrib/libnf/e2d.prg
* harbour/contrib/libnf/sysmem.prg
* harbour/contrib/libnf/dfile.prg
* harbour/contrib/libnf/clrsel.prg
+ harbour/contrib/libnf/fttext.c
+ harbour/contrib/libnf/putkey.c
* basic cleanup and syncing with some of xHarbour fixes and extensions.
I'd like to ask Windows users to update non GNU make file
* harbour/source/pp/ppcore.c
+ added support for .T., .F., .Y., .N. in PP and #IF ... / #ELIF ...
expressions. It was reported by Nick Van Dyck on xHarbour devel list
that old PP supported it. I haven't known that old PP suported .T.
and .F. in #IF directive. Please not that there are other diferences
between new PP and the old one in expresions which can be used in
#IF ... / #ELIF directives. New PP supports C like expressions with
support for pseudo functions like defined(), operates on integer
numbers only to not damage 64bit values during conversion to double
and keep C compatible results (the old one used double values) and
is much more restrictive in checking for valid expression.
* harbour/include/hbclass.ch
! fixed typo: AddClsMthds() => AddClsMethod()
+ added support for executing InitClass() constructor - it's not
exact Class(y) behavior but rather sth what xHarbour does now.
It will be change in the future when we will have real class
methods and variables.
* harbour/contrib/libct/blank.prg
! fixed typo
* harbour/contrib/libct/dbftools.c
* added function list in header
* harbour/contrib/libct/screen1.c
+ added SCREENTEXT()
* harbour/contrib/libct/disk.c
- removed DELETEFILE() and FILEMOVE()
* harbour/contrib/libct/files.c
+ added DELETEFILE(), RENAMEFILE(), FILEMOVE()
* harbour/contrib/libct/ctwfunc.c
! fixed typo in parameters numbers in WFORMAT()
+ harbour/contrib/libct/charsprd.c
+ added CHARSPREAD()
+ harbour/contrib/libct/scrmark.prg
+ added SCREENMARK()
+ harbour/contrib/libct/expand.c
+ added EXPAND()
+ harbour/contrib/libct/fcopy.prg
+ added FILECOPY(), FILECOPEN(), FILECCLOSE(), FILEAPPEND(), FILECDATI()
it's modified and fixed code by Frederic J. Bell borrowed from
xHarbour
* harbour/contrib/libct/Makefile
* harbour/contrib/libct/makefile.bc
* harbour/contrib/libct/makefile.vc
* update for new files. makefile.bc will have to be modified yet
(some files were missing and I added them to file list) but I'd
like to leave it for BCC users who can test modifications
* harbour/contrib/libct/Makefile
+ harbour/contrib/libct/keysec.prg
+ harbour/contrib/libct/keytime.prg
+ added KEYSEC() and KEYTIME() modified code by Pavel Tsarenko
borrowed from xHarbour
* harbour/contrib/libct/Makefile
* harbour/contrib/libct/makefile.bc
* harbour/contrib/libct/makefile.vc
* updated for new files
- harbour/debian/rules.cf
+ harbour/debian/rules
* renamed rules.cf to rules - I forgot to make it before commit
* removed link to not installed hbverfix.1
* changed default INSTDIR