* source/rtl/getsys.prg
! GETACTIVE() function fixed to work even if an app
manages getlist on its own. In this case GETACTIVE()
will maintain the GET object in its own STATIC variable.
This should fix the SuperLib problem reported by Bruno Luciani.
* examples/superlib/hbsuper.dif
+ Will now automatically enable CLIPPER53 protected code
if Harbour was built with HB_COMPAT_C53 setting. This
enables SuperLib to use C53's build-in mouse functions.
* harbour/source/rtl/lang.c
% simplified HB_USERLANG() code
* harbour/include/hbdefs.h
* use inline functions for HB_PUT_PTR() and HB_GET_PTR() macros in
GCC builds. It makes GCC builds alignment free and fixes the problem
with broken strict aliasing rules.
* harbour/include/hbwmain.c
* casting
* source/rtl/lang.c
* source/rtl/isprint.c
* contrib/hbwin/win_prn2.c
! Fixed most mingw/C++ warnings:
warning: deprecated conversion from string constant to 'char*'
* Added 'const' to hb_PrinterIsReady() string parameter.
; Please review me.
; TOFIX: These remain of this type of warning:
../../../../../include/hbwmain.c:78: warning: deprecated conversion from string constant to 'char*'
../../ctnet.c:182: warning: deprecated conversion from string constant to 'char*'
../../print.c:204: warning: deprecated conversion from string constant to 'char*'
../../print.c:205: warning: deprecated conversion from string constant to 'char*'
../../win_prn2.c:437: warning: deprecated conversion from string constant to 'CHAR*'
../../../maindllp.c:429: warning: deprecated conversion from string constant to 'char*'
../../../maindllp.c:454: warning: deprecated conversion from string constant to 'char*'
* contrib/gtwvg/wincallb.c
! Added cast to avoid error in mingw/C++ mode.
Thanks Pritpal, it worked.
* contrib/gtwvg/Makefile
+ Reenabled for mingw/C++
* INSTALL
+ Added iccia64 build example.
* source/vm/fm.c
+ Added C++ new/delete operator override to hb_xgrab()/hb_xfree().
Thanks to Xavi.
Please make any required correction, I didn't do tests with it.
* utils/hbmk2/hbmk2.prg
+ Added support for linux/icc compiler. (untested)
; Tested win/icc support (static exe, shared exe, lib, dll).
It worked, except that in shared mode it will display this,
when the MinGW built .dll is used (instead of its own):
Unrecoverable error 9012: Can't locate the starting procedure: 'MAIN'
* source/vm/extend.c
* Minor formatting.
* source/rtl/mlcfunc.c
! Fixed warning in HB_C52_STRICT mode.
* contrib/hbxbp/xbp.ch
! Fixed HB_OUTDEBUG() macro to work also in codeblocks when
not in debug mode, and also to better handle the case when
parameter is a variable.
* ChangeLog
+ Added incompat NOTE to hb_par*/hb_stor*() change.
* harbour/source/rtl/mlcfunc.c
! fixed missing ulLen declaration in if() branch
% restored a little bit optimized Viktor's code - now it's safe to
call hb_par*() expecting default value on wrong type even if given
parameter is array
* harbour/include/hbapi.h
* harbour/source/vm/extend.c
* renamed existing hb_par*() and hb_stor*() functions which supports
variable number of parameters (...) into hb_parv*() and hb_storv*()
* added new hb_par*() and hb_stor*() functions which use strict number
of parameters. New hb_par*() functions do not make hidden conversion
between types, f.e. hb_parl() returns 1 only for logical parameters
which contain .T.
* harbour/include/extend.api
* map Clipper _par*() functions to hb_parv*()
* map Clipper _stor*() functions to hb_storv*()
* harbour/source/vm/dynsym.c
* harbour/source/vm/hvm.c
* harbour/source/vm/maindllp.c
* harbour/source/vm/thread.c
* harbour/source/vm/classes.c
* harbour/source/rtl/cdpapi.c
* harbour/source/rtl/mlcfunc.c
* harbour/contrib/hbnf/dispc.c
* harbour/contrib/hbnf/mouse.c
* harbour/contrib/hbnf/getenvrn.c
* harbour/contrib/hbhpdf/harupdf.c
* harbour/contrib/gtwvg/wvgcuig.c
* harbour/contrib/gtwvg/wvgwin.c
* harbour/contrib/gtwvg/wvgutils.c
* harbour/contrib/gtwvg/wvgcore.c
* harbour/contrib/gtwvg/wvgwing.c
* harbour/contrib/rddads/adsfunc.c
* harbour/contrib/rddads/ads1.c
* harbour/contrib/rddads/adsmgmnt.c
* harbour/contrib/hbmisc/hb_f.c
* harbour/contrib/hbwin/wapi_commctrl.c
* replaced hb_par*() and hb_stor*() calls used with additional parameters
by hb_parv*() and hb_storv*()
TODO: update examples/hbwhat/*.c files
* harbour/examples/uhttpd2/socket.c
* harbour/examples/httpsrv/socket.c
* changed hb_parni() to hb_parnidef()
* harbour/source/vm/itemapi.c
* removed some conversion which are not necessary for CA-Cl*pper
compatibility
* harbour/source/macro/macrolex.c
* replaced HB_LEX_IS*() macros by by HB_IS*() ones
* source/vm/fm.c
! Renamed s_fInited to s_fInitedFM to avoid collision
with similarly named variable in estack.c when using
HB_FM_STATISTICS and HB_HVM_ALL at the same time.
Thanks Xavi for the find.
* harbour/include/hbhrb.ch
* harbour/source/vm/runner.c
+ added support for HB_HRB_BIND_LAZY flag.
Lazy binding with public external functions allows to load .hrb files
with unresolved or cross function references.
- harbour/include/hbhrb.ch
+ harbour/include/hbhrb.ch
* replaced hbhrb.ch with slightly different version and set SVN
attributes:
svn:keywords : Author Date Id Revision
svn:eol-style : native
Now optional HB_HRBLOAD()/HB_HRBRUN() parameter is bitfield and
the following predefined values can be used to control function
bindings in loaded .hrb files:
HB_HRB_BIND_DEFAULT - do not overwrite any functions, ignore
public HRB functions if functions with
the same names already exist in HVM
HB_HRB_BIND_LOCAL - do not overwrite any functions
but keep local references, so
if module has public function FOO and
this function exists also in HVM
then the function in HRB is converted
to STATIC one
HB_HRB_BIND_OVERLOAD - overload all existing public functions
HB_HRB_BIND_FORCELOCAL - covert all public functions to
STATIC ones
Other HB_HRB_* defines will be added in the future
* harbour/include/hbvm.h
* declared hb_vmSetFunction() as internal function
* harbour/source/vm/hvm.c
* modified hb_vmSetFunction() to update references also in unused
modules.
* harbour/source/vm/runner.c
* removed CanUnload - it was not fully functional. Modules which
overloads public functions cen be unload just like any other ones
but unloading does not restore references to overloaded functions.
Now such references are simply lost and this should be fixed in the
future.
+ added support for HB_HRB_BIND_FORCELOCAL
! fixed <nOptions> parameter decoding in HB_HRBLOAD() to strictly
follow declaration:
HB_HRBLOAD( [ <nOptions>, ] <cHrb> [, <xparams,...> ] )
! fixed init procedures parameters in HB_HRBLOAD() to no pass <nOptions>
+ added support for <nOptions> to HB_HRBRUN()
HB_HRBRUN( [ <nOptions>, ] <cHrb> [, <xparams,...> ] ) -> <retVal>
* changed HB_HRBRUN() return value - now it's the result of executed
function instead of .T.
! fixed public symbol updating to keep valid references to HB_FS_LOCAL
function
! fixed possible memory leak
% added const to some char * declarations
TOFIX/TODO: add support for restoring overloaded functions when module
is unloaded.
* tests/testhrb.prg
* tests/Makefile
* include/Makefile
* include/hbhrb.ch
* source/vm/runner.c
! Added new files to Makefiles.
! Fixed to use hbhrb.ch from .c rather than replicating #defines.
(also fixed comments to be ANSI)
! Added self protection to .ch.
! Made .hrb file lowercase in testhrb.prg
! Deleted double license header from .ch.
* utils/hbmk2/hbmk2.prg
+ Added logic to move embedded compilers under a common subdir.
To stay compatible with 2.0.0beta1 release I didn't yet set
this, but it will be for final release.
Probably 'comp', or maybe 'opt'. Sorry for asking for opininons,
but they're welcome anyway.
* vm/runner.c
FIXED ;
../../runner.c:413: error: '_HB_SYMB' undeclared (first use in this function)
+ include/hbhrb.ch: HB_HRBLOAD() mode #define new file
+ tests/testhrb.prg: test program fro new params
+ tests/exthrb.prg: test program to be compiled as .HRB using /gh option
* source/vm/runner.c
* Formatted.
; TOFIX:
../../runner.c: In function 'hb_hrbLoad':
../../runner.c:413: error: '_HB_SYMB' undeclared (first use in this function)
../../runner.c:413: error: (Each undeclared identifier is reported only once
../../runner.c:413: error: for each function it appears in.)
* include/hbextern.ch
* source/rtl/mousehb.c
* source/rdd/rddinfo.c
* source/rdd/dbdrop.c
* source/rdd/dbexists.c
* source/rdd/fieldhb.c
* Rest of similar to STOD() status functions also
protected with ! HB_C52_STRICT.
* include/hbextern.ch
* source/rtl/datesx.c
* STOD() function not protected by HB_COMPAT_XPP anymore.
Instead it's turned off only in HB_C52_STRICT mode.
+ contrib/xpp/xppextrn.ch
+ Added.
* contrib/hbwin/win_misc.c
+ Added WIN_HIWORD() and WIN_LOWORD() functions (from GTWVG).
But commented because of colliding names.
* contrib/hbblat/blatcls.prg
! Added type checks for all params.
% File() -> hb_FileExists()
* Minor formatting.
* source/rtl/browdbx.prg
* Minor formatting in comment.
* contrib/xpp/Makefile
+ contrib/xpp/dbcmdx.c
+ contrib/xpp/tgetx.prg
+ contrib/xpp/tbcolumx.prg
+ contrib/xpp/dbjoinx.prg
+ contrib/xpp/idlex.c
+ contrib/xpp/typefilx.prg
+ contrib/xpp/philesx.c
+ contrib/xpp/browdbx.prg
+ contrib/xpp/dbdetacx.c
+ contrib/xpp/dblistx.prg
+ contrib/xpp/binnumx.c
+ contrib/xpp/mousex.c
+ contrib/xpp/dbupdatx.prg
+ contrib/xpp/dbfuncsx.prg
+ contrib/xpp/oemansix.c
+ contrib/xpp/tbrowsex.prg
+ contrib/xpp/thfuncx.prg
+ contrib/xpp/dbtotalx.prg
+ contrib/xpp/datesx.c
+ contrib/xpp/tthreadx.prg
+ contrib/xpp/dbstruxx.prg
+ contrib/xpp/dbsortx.prg
+ Made a copy of all Xbase++ related Harbour core components
into this separate lib. As we're starting to have a larger
and larger amount of Xbase++ functions, to not pollute core,
to have a clear separation of components and to allow
toggling Xbase++ compatibility at user level (instead of
Harbour level), it's a good time to make this long planned
first step. This means that now Harbour can be built with
HB_COMPAT_XPP turned off, yet - with this lib - all Xbase++
feature can still be used, and this is the recommended way.
The name of the lib is tentative and in the future it may
even be moved or renamed. 2.0.0 final version will still
have HB_COMPAT_XPP enabled in core.
; NOTE: Please add new Xbase++ compatibility functions to this lib.
; TOFIX: xpp_TBrowse() needs some internal parts from tbrowse.prg,
so current solution isn't finished.
; TOFIX: A few Xbase++ compatibility features are embedded
into core source. These should be resolved by other
means. (f.e. compiler time/runtime/hbmk2 switches, but
for that we need to move back this lib inside core)
; TODO: Decide about the status of STOD() function, which is
currently an XPP compatibility function, not in Harbour
namespace, yet it's widely used with same functionality.
* harbour/source/compiler/hbmain.c
* extended -n2 to work also with code without starup procedure but with
local variables
* harbour/utils/hbrun/hbrun.prg
+ added -n2 to compiler parameters when .prg file is compiled and
executed. It allows to use with hbrun .prg files with and without
startup procedure
* harbour/source/rtl/hbinet.c
! fixed bad typo introduced in last days probably during some code
formatting which broke HB_INETRECVLINE() and some other functions
* harbour/include/hbapirdd.h
* harbour/source/rdd/wafunc.c
+ added HB_ERRCODE hb_rddEvalWA( PHB_ITEM pBlock )
* harbour/source/rdd/dbcmd.c
+ added HB_WAEVAL( <pBlock> ) function which evaluates given
<pBlock> in each used worakrea. The workarea iteration is
interrupted if <pBlock> returns .F.
* harbour/source/rdd/wafunc.c
* restore workarea number in hb_rddCloseAllParentRelations()
* harbour/source/rdd/workarea.c
* added small protection against releasing WA by user codeblock in
EVALBLOCK() method
* harbour/source/rdd/wacore.c
* added small protection against releasing WA by user code during
area iteration
* utils/hbmk2/hbmk2.prg
+ Added preliminary support for autosetup for several more
compilers: win/watcom, win/pocc, win/pocc64, wce/poccarm,
dos/djgpp, dos/watcom.
Only these were tested: dos/djgpp, win/watcom, win/pocc.
This means it's now possible to "bundle" DJGPP, watcom or
pocc _compiler tools_ with Harbour and hbmk2 will be able
to detect them, or user can choose between them using
-arch/-comp switches, then hbmk2 will just be able to use
them "as is", without the need to change anything on the
environment. zero-conf usage in essence, just like we
already had for mingw family.
; NOTE: Before the release I'll rethink placement of these
tools inside the Harbour directory tree. Currently
they are detected in the Harbour root dir, but with
multiple compilers this is not ideal.
* source/vm/thread.c
! Fixed compile error after 2009-06-16 08:55 UTC+0200.
* harbour/contrib/hbct/token1.c
% use explicit constant value instead of HB_MKULONG() macro
* harbour/source/compiler/cmdcheck.c
! fixed few typos in bit manipulation used to calculate result in
PackDateTime() function by rewriting it to use bitfield union.
* include/hbextern.ch
* source/vm/thread.c
+ Added HB_MUTEXWAITERSCOUNT() to core.
(slightly rewritten using local functions)
- examples/uhttpd2/umutex.c
- No longer needed.
* harbour/source/vm/mainstd.c
* forced '\' in argv[0] instead of '/' in DJGPP builds
* disabled using SHELL envvar and forced COMSPEC in system() function
in DJGPP builds (it effects __run() and hb_run() .prg functions)
* harbour/source/pp/Makefile
! fixed / used as directory separator in $(RM) command with non *nix like
shells
* restored wildcard hack for some dynamic shortcut redirectors, f.e.
DOSEMU
* INSTALL
* Updated.
* source/pp/Makefile
! Fixed to ignore clean command result which is a TOFIX.
(anyone to help here?)
! Changed ChangeLog file detection to specifically look
for CHANGE~1 and to not look for CHANGE~* and CHANG~*
where the latter cannot exist and the former may
accidentally pick up wrong file.
* harbour/contrib/gtwvg/wvgwin.c
! fixed wrongly used & operator
* harbour/source/rtl/hbproces.c
* added TODO warning in OpenWatcom Linux builds
* harbour/make_gnu.sh
! fixed test_param() function definition - it has to be defined it's
before use
* harbour/include/hbexpra.c
* harbour/include/hbexprb.c
* harbour/source/common/expropt1.c
* harbour/source/rtl/round.c
* removed unnecessary <math.h>
* harbour/source/vm/hvm.c
* harbour/source/common/expropt2.c
* harbour/contrib/hbct/ctmath.h
* harbour/contrib/hbclipsm/num.c
* harbour/contrib/hbclipsm/numfloor.c
* harbour/contrib/hbclipsm/numceil.c
* use "hbmath.h" instead of <math.h> to avoid possible desynchronization
between used math libraries and header files
* harbour/source/pp/Makefile
! fixed real DOS compilation - replaced Windows only hack by wildcard
function usage
* harbour/config/dos/dir.cf
* removed intermediate sh call from executed commands
* harbour/source/vm/Makefile
* disabled HB_HVM_ALL in all Watcom builds - it works but the compilation
time is very huge so user who wants to use it should set envvar
HB_HVM_ALL=yes
* enabled HB_HVM_ALL for DJGPP builds
* source/pp/Makefile
! Fixed (almost) to delete include/hbverbld.h on clean.
Keeping this file there hid DOS build problems when using
Windows host.
; TOFIX: Filename in delete command for all platforms.
; TOFIX: HB_CHANGELOG value for DOS builds. It's currently
broken for MS-DOS hosts. To avoid these problems
we should use 'CHANGES' instead of 'ChangeLog'...
; TOFIX: I applied Przemek's patch to make_gnu.sh wrongly,
and have no idea how to fix it.
* include/hbextern.ch
* source/vm/hashfunc.c
+ Added HB_HGETDEF( <hHash>, <xKey>[, <xDefault> ] ) -> <value>
This function will return <xDefault> when <xKey> isn't
found in the hash table. If <xDefault> isn't passed, it
will return NIL.
* source/rtl/achoice.prg
! Partially reverted this commit:
https://sourceforge.net/apps/trac/harbour-project/changeset/10605
After this change, activating DBU menus with all items disabled
(f.e. F7/F8) caused app hang.
This line:
nUserFunc := iif( nMode != AC_NOITEM,;
Do( xUserFunc, nMode, nPos, nPos - nAtTop ), NIL )
Was now changed back to this:
nUserFunc := Do( xUserFunc, nMode, nPos, nPos - nAtTop )
ac_test2.prg still seem to function fine after this, but
I'd kindly like to ask Vladislav Lavrecky to make tests
again, maybe we need another fix here.
* source/vm/evalhb.c
* Minor formatting.
* contrib/hbtip/client.prg
* Minor formatting.
! :ReadToFile() nMode param check.
* utils/hbmk2/hbmk2.prg
* Cleanup to variable name prefixes.
* contrib/xhb/Makefile
+ contrib/xhb/xthrow.prg
+ Added THROW() function for xhb compatibility.
This is written in Harbour, based on hbcompat.ch
and has Harbour license + exception.
+ contrib/xhb/xcstr.prg
+ contrib/xhb/xdbmodst.prg
* contrib/xhb/Makefile
+ Ported following old functions from xhb:
CSTRTOVAL(), STRINGTOLITERAL(), VALTOPRG(), PRGEXPTOVAL()
+ Ported following new functions from xhb:
VALTOARRAY(), VALTODATE(), VALTOHASH(), VALTOLOGICAL()
VALTONUMBER(), VALTOARRAY(), VALTOTYPE(),
DBMODIFYSTRUCTURE(), DBIMPORT(), DBMERGE()
(borrowed from xhb, work of Ron Pinkas)
* source/debug/dbgentry.c
* contrib/xhb/hbxml.c
* contrib/hbbtree/hb_btree.c
% hb_itemRelease( hb_itemReturn() ) -> hb_itemReturnRelease()
* contrib/xhb/hbxml.c
! Applied this fix from xhb:
2008-11-06 20:00 UTC+0100 Jose F. Gimenez <jfgimenez/at/wanadoo.es>
! 'Escape' characters, such & or " were not written correctly in node attribute values
! 'Escape' characters in the form &#NN; and &#xHH; were not allowed when reading