* source/rtl/gtwvt/gtwvt.c
! Fix to previous fix to maximize the window when the initial
size would be too big to fit on screen (stupid omission).
Now the previously cited sizing problem is alright.
* source/vm/fm.c
+ Replaced HB_NO_FM_STAT and HB_FM_STAT envvars
with HB_FM_STAT=yes|no (maybe 0|1 or on|off woud be
better or could be accepted as alternatives or
replacement). This is to avoid ambiguity when both
envvars were set or the app default is not known.
+ Added HB_FM_STATISTICS_DYN_OFF to turn off mem tracking
by default when stat module is linked in.
* source/common/hbverdsp.c
* Minor cosmetic.
* harbour/source/vm/fm.c
+ added support for enabling/disabling memory statistic when
application starts. To enable memory statistic it's enough
to set HB_FM_STAT environment variable to non empty value.
To disable memory statistic it's enough to set HB_NO_FM_STAT
envvar. The default setting may depend on build time option.
Now is enabled when memory statistic is compiled when harbour
is created. It may not work if C compiler does not allow to
check environment variables from startup code. F.e. functions
to access environment can be also part of dynamic library
registered after harbour.dll or harbour core code startup
functions.
Viktor I would like to ask you only about one thing.
Please do not remove current support for HB_FM_STATISTICS_OFF
from GNU make builds so Harbour user can still create binaries
without any memory statistic code using -[no]fmstat switch in
hb* scripts. The above feature is only for users who need support
for enabling/disabling memory statistic to test application
if foreign environment, f.e. at client computers. Of course if
it will work with given C compiler and/or type of application
(linked dynamically or statically). Please check.
* make_vc.mak
+ TOFIX added for the case when HB_CC_NAME is overridden
by user and MT/DLL targets are being created.
* common.mak
* source/common/hbver.c
% Minor opts.
* harbour/source/rdd/dbfcdx/dbfcdx1.c
! fixed bug in joined leaf pages size calculation which activated
error massage enabled by HB_CDX_DBGCODE_EXT macro.
Thanks to Saulius for reporting the problem.
* source/common/hbverdsp.c
* Streamlined the /build information screen. It's now
more compact and now show if tracing is enabled. Max
symbol length got removed, ANSI C startup also, because
it needs a custom C flag anyway.
* include/hbvmpub.h
* include/hbsetup.h
* HB_SYMBOL_NAME_LEN moved away from custom setup.
This isn't an option users should normally tinker.
* tests/run_prg.bat
* Minor.
* harbour/include/hbcompdf.h
* harbour/source/compiler/harbour.yyc
* harbour/source/compiler/harbour.y
! fixed compile time warnings for __enum* messages used in
simpled code block variables inside FOR EACH statement,
* source/rtl/console.c
! Fixed __EJECT() writing an EJECT only if output device
was "PRINTER". This fixes problem reported by Ciro, and
also a very old TOFIX which was removed very long ago
by mistake. (see thread "Bug: __EJECT() (David)" on 2000-07-27)
[TOMERGE 1.0]
* source/rtl/treport.prg
! Fixed some linefeed differences.
[TOMERGE 1.0]
* source/vm/set.c
* Minor formatting.
* harbour/include/hbapi.h
* harbour/source/common/hbstr.c
+ added hb_numToStr()
* harbour/source/vm/estack.c
* harbour/source/compiler/genc.c
* harbour/source/compiler/gencc.c
* use hb_numToStr() for integer number conversions
* harbour/source/vm/dlmalloc.c
* disable #pragma warning ... in MinGW builds. If some newer MinGW
versions support it and it's useful then it can be enabled after
checking MinGW version
* source/vm/fm.c
! Fixed missing abort() on WinCE. (for Pelles C only, but
the fix should work for any WinCE compilers).
; TOFIX: Now the only remaining showstopper for PellesC5 WinCE
support is:
../../math.c(652): error #3120: [asm] Symbol 'inf' is undefined.
* make_b32.mak
* make_vc.mak
! Added hbpp.lib and hbcommon.lib to HBRUN_DLL liblist.
* include/hbapi.h
* source/vm/cmdarg.c
* source/common/hbver.c
* source/common/hbverdsp.c
* source/rtl/console.c
* source/rtl/setcolor.c
* source/rtl/setcurs.c
+ Added HB_EXPORT to some functions to make it possible
to build hbrun-dll.exe.
For other reasons, it only works if Harbour built with
set C_USR=-DHB_DYNLIB.
; TODO: Make HB_DYNLIB the default build mode, do gradual
steps to remove separate DLL building pass, and
finally to remove HB_BUILD_DLL option.
The only drawback will be about 10-100K
(currently) overhead in final executable size due
to included export table for BCC and MSVC builds.
* contrib/xhb/hboutdbg.c
! Fixed to compile without warnings and with more
consistent behavior across platforms.
* source/rtl/gtwvt/gtwvt.c
* Minor formatting.
* tests/longstr.prg
* contrib/hbole/oleauto.prg
* contrib/hbole/ole2.c
* contrib/gtwvg/wvgutils.c
* contrib/gtwvg/wvgcore.c
* contrib/hbgd/gdbarcod.prg
* contrib/hbgd/gdbar.prg
* contrib/hbwin/win_tole.prg
* contrib/hbwin/win_ole.c
* contrib/hbvpdf/hbvpdf.prg
* contrib/examples/hbsqlit2/tests/hbsqlite.prg
* contrib/examples/hbsqlit2/TODO.txt
* contrib/examples/hbsqlit2/hbsqlit2.c
* source/debug/dbgwa.prg
* source/rtl/gtwin/gtwin.c
* source/rtl/tget.prg
* source/rtl/tgetint.prg
* source/compiler/gencobj.c
! Removed high chars from comments. This usually means
copyright holders' names. I apologize for touching
them, I also have one in mine, but it's better to
not use them in source code to avoid encoding problems.
* make_vc.mak
+ Added /nxcompat linker flag for non-WinCE, non-DLL,
HB_VISUALC_VER >= 80 MSVC executables.
This should add extra safety.
* include/hbextern.ch
* source/rtl/rat.c
+ Added HB_RAT() which is similar to RAT(), but also accepts
<nStart> and <nEnd> optional paramaters, similarly to HB_AT().
; Please test.
* source/rtl/at.c
* Minor formatting.
* harbour/source/vm/memvars.c
! fixed 3 tracelog messages
* harbour/source/rtl/hbgtcore.c
* declare core method table as const
* harbour/source/compiler/gencc.c
! fixed accessing data out of buffer in string to hex conversion and
logical expression used to divide strings
* ChangeLog
! Restored last non-UNICODE version, and readded
all entries and reapplied all changes since then.
; NOTE: Please never save any Harbour files in
UNICODE mode. Thank you.
* contrib/make_gcc_all.sh
* contrib/Makefile
- Removed hbdbgfx.
* source/pp/hbpp.c
* source/main/harbour.c
* Excluded hbwmain for __POCC__ WinCE.
; TOFIX: Warning: Not proper fix.
This way it won't link but at least it compiles.
* source/compiler/gencc.c
* Switched to hexadecimal format for high chars, because
octal was tried to be converted to Windows codepage, by
PellesC.
* config/w32/poccce.cf
- Removed -DSTRSAFE_NO_DEPRECATE switch.
* config/w32/pocc.cf
+ Added -MT switch.
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_dll.c
* source/rtl/hbhex.c
* source/rdd/hbsix/sxcompat.prg
* Minor formatting.
* harbour/contrib/gtwvg/gtwvg.c
* harbour/contrib/gtwvg/gtwvg.h
* harbour/source/rtl/gtwvt/gtwvt.c
* harbour/source/rtl/gtwvt/gtwvt.h
+ BOOL bResizing
+ BOOL bAlreadySizing
To control unnecessary code execution while sizing operation is
being carried out. Now the flickering of console window should be
greatly minimized, IMO, please test.
! Fixed behavior of some function not to recreate font if one is already
created given other parameters are the same. SetMode() does nothing if
nRows, nCols are the same as with console prior to calling this function.
; NOTE: Please test extensively as this is one gray area of GTWVT we all
are in a quest to fix.
* source/vm/set.c
! _SET_EVENTMASK RTE removed to be Clipper compatible.
! _SET_VIDEOMODE RTE removed to be Clipper compatible.
! _SET_MBLOCKSIZE default value set to 64 (was 0) to be Clipper compatible.
(pls correct me if this was intentionally wrong)
* utils/hbtest/rt_misc.prg
+ Added one C5.2 SET()s for two simple tests.
+ Added all C5.3 SET()s for two simple tests each.
; NOFIX: _SET_VIDEOMODE has the type wrong.
; NOTE: It wouldn't be a bad idea to add some more comprehensive
tests for SET()s.
* harbour/make_gcc.sh
* harbour/make_gnu.bat
* harbour/make_gnu.sh
* harbour/config/lib.cf
* harbour/config/bin.cf
+ added MK_USR to pass GNU MAKE flags
* harbour/source/vm/set.c
* minor cleanup and simplifications in hb_setSetItem().
* grouped SETs with the same item type in hb_setSetItem() function
together.
* source/rtl/gtwvt/gtwvt.c
* hb_gt_wvt_ResetWindowSize(): Not very good looking (or
overly efficient) solution added for the windows
resize/positioning problem in case the initally set size
cannot fit on the screen (Windows desktop).
* source/vm/set.c
+ Implemented rest of hb_setSetItem() values.
; TODO: Please review.
! Fixed HB_SET_FILECASE and HB_SET_DIRCASE to not allow
invalid numeric values to be set.
! Added missing 'break;' to hb_setSetItem2();
* source/rtl/gtwvt/gtwvt.c
! Fixed a few places where '+' operator was used
instead of '|'.
* Minor opt/formatting.
; TOFIX: The window positioning bug is still to be solved.
* source/rdd/usrrdd/rdds/arrayrdd.prg
* Changed AR_CREATE( nWA, aOpenInfo ) behaviour, now it not checks
if a table exists in memory but act as dbCreate() does.
+ Added hb_FileArrayRDD() function to check existence of a table
in memory.
* Changed EraseArrayRDD() -> hb_EraseArrayRDD()
* removed string lenght limit in case of a Memo field
* source/rtl/gtwvt/gtwvt.c
* Formatting.
* config/w32/owatcom.cf
* Added support for L_USR in link options.
* Removed debug switch -d2 from compiler command line.
For debug builds 'C_USR=-d2' and 'L_USR=debug all'
should be added.
; Untested.
* bin/hbmk.bat
+ Added support for 'owatcom' as HB_COMPILER.
; NOTE: If there are no objections I'll remove Harbour
support for 'watcom' HB_COMPILER, which was
used for old non-opensource version of this
compiler, but I guess it doesn't make too much
sense having them anymore.
* source/common/hbverdsp.c
* Minor change in /build output.
* include/hbver.ch
* source/rtl/version.c
* Changed ordering of parameter constants to make more sense.
* bin/hbmk.bat
* config/w32/owatcom.cf
* Removed 'debug all' linker option to make executable sizes
significantly smaller by default. If you need debug info,
use 'L_USR=debug all'.
; NOTE: I'd suggest doing the same for other platform supported
by owatcom. If there are no objections I can do this.
* source/rtl/gtwvt/gtwvt.c
* Typo, minor formatting.
* harbour/include/hbset.h
* harbour/source/vm/set.c
+ added hb_setSetItem2() C function for SETs which needs two parameters
+ added support for HB_SET_DECIMALS and HB_SET_EPOCH in hb_setSetItem()
Still 22 SETs are marked as TODO
+ added internal function hb_setSetFile() for HB_SET_ALTFILE,
HB_SET_EXTRAFILE, HB_SET_PRINTFILE - function body marked as TODO.
I'll implement it later.
* harbour/include/hbwmain.c
* pacified unused variable warning
* harbour/include/hbpp.h
* harbour/source/pp/ppcore.c
! do not report #if expression errors in #if PP directives when they are
in codedis activated by parent #if[def]/#elif/#else. It allows
to compiler code like:
#ifdef DEFINE
#if DEFINE >= 0x100
...
#endif
#endif
+ added logical expression reduction to not report #if expression errors
in code like:
#ifdef DEFINE && DEFINE >= 0x100
...
#endif
! fixed possible division by 0error in #if exporessions like #if 1 / 0
Now #if expression compiler error is generated
! restored some bit operators in #if directives wrongly disabled with
xHarbour stuff
* harbour/source/vm/hashfunc.c
% removed unnecessary hb_itemUnRef()
* common.mak
* source/vm/Makefile
* source/vm/vmmt/Makefile
* source/common/Makefile
* source/rtl/Makefile
- source/vm/fmhb.c
+ source/rtl/fmhb.c
- source/vm/hbmem.c
+ source/common/hbmem.c
* Moved hbfm (MEMORY() .prg function) from VM to RTL.
* Moved hbmem (hb_xmem*() C functions) from VM to COMMON.
- contrib/hbziparc/hbzipcpp.old
- Removed.
* contrib/hbcurl/hbcurl.c
% Removed two Harbour level functions not really
adding to functionality but forcing linkage of these
(otherwise unused) curl interfaces.
CURL_SHARE_STRERROR()
CURL_MULTI_STRERROR()
INCOMPATIBLE (but I doubt even a single user would be affected)
* source/rtl/version.c
! Fix to prev.
* make_vc.mak
* -GA option only used for HB_VISUALC_VER >= 70.
Please update this if older versions also support it.
* include/hbver.ch
* source/common/hbver.c
* Some more fiddling with version number terminology and
hb_version() values:
HB_VERSION_MICRO -> HB_VERSION_RELEASE
HB_VERSION_BLD_DATE_STR -> HB_VERSION_BUILD_DATE_STR
HB_VERSION_BLD_DATE -> HB_VERSION_BUILD_DATE
HB_VERSION_BLD_TIME -> HB_VERSION_BUILD_TIME
HB_VERSION_CHANGELOG_REV -> HB_VERSION_CHANGELOG_ID
Third part of version number could also be: PATCH, MICRO, BUILD
SVN revision could also be: BUILD
BUILD is inherently connected with a physical binary, so
I dropped it, PATCH is limiting and negativ, MICRO is not
very common (otherwise good), so a finally opted for
RELEASE. REVISION kept as is.
; If there are no objections I'll HB_VER_REVISION macro to
HB_VER_RELEASE. This will be an INCOMPATIBLE change, but
I expect not too many ppl being affected.
* TODO
- Removed MT as a TODO. Thanks Przemek for the nice job.
* harbour/include/hbapi.h
* harbour/source/vm/hashes.c
* harbour/source/vm/hashfunc.c
* changed hb_hSort() to execute sorting when hash is marked as needed
resorting instead of marking hash for resorting
* harbour/source/vm/fm.c
* formatting
* harbour/contrib/hbdbgfx/dbgfxc.c
! fixed casting in ASCII build
+ added support for UNICODE builds
* harbour/contrib/gtwvg/gtwvg.c
* cover LWA_ALPHA usage by #if ( _WIN32_WINNT >= 0x0500 )
to keep at least compile time compatibility with older systems
* common.mak
* source/vm/Makefile
* source/vm/vmmt/Makefile
* source/vm/fm.c
+ source/vm/fmhb.c
+ source/vm/hbmem.c
+ Moved functions not depending on FM_STATISTICS setting,
to separate files.
; NOTE: MEMORY() function should IMO move to rtl, and
hb_xmem*() functions to common lib.
* harbour/include/hbapi.h
* harbour/source/vm/hashfunc.c
* harbour/source/vm/hashes.c
+ added support for binary key order
% enable binary internal key order by default for new hash arrays
+ added .prg function to enable/disable/retrive binary order in hash
items:
hb_hSetBinary( <hValue>, <lOnOff> ) => <hValue>
hb_hBinary( <hValue> [, <lBinary> ] ) => <lBinary>
+ added support for hash array resorting. It's activated automatically
on 1-st key access/assign after changing binary or casematch hash
array flag
+ added .prg function hb_hSort( <hValue> ) => <hValue> which marks
hash array for sorting
* harbour/source/rtl/itemseri.c
% improved performance of hash array deserialization
TODO: add support for hash array flags and hash default value
serialization