* doc/whatsnew.txt
* Extended releases notes/issues section.
* config/w32/dm.cf
! Fixed to exclude "possible extraneous ';'" warnings
for every for()/while()/etc constructs with an empty body.
! Further fixes to link/lib rules.
; TOFIX1: odbc.c, gtwvg.c still don't compile.
; TOFIX2: Harbour executables won't run, by simply doing nothing.
* source/rtl/gtwvt/gtwvt.c
! Fixed to compile with __DMC__.
; NOTE: Przemek, could you please check these?
* include/hbsetup.h
! snprintf() for __DMC__.
* contrib/hbw32/dllcall.c
! Fixed casting for __DMC__.
* contrib/hbsqlit3/hbsqlit3.c
! Workaround for Pelles C 4.5 and Open Watcom, so that
sqlite3.c won't be included for these compilers.
Pelles C 4.5 crashes, Open Watcom 1.7 goes into an
infinite loop on this huge file. For thes compilers
the sqlite3 library should be supplied by the users.
* contrib/hbapollo/apollo.c
! Fixed to compile with Open Watcom.
* source/vm/mainwin.c
* source/vm/hvm.c
! Fix for __DMC__ startup problem:
'OPTLINK : Warning 134: No Start Address'
* include/hbsetup.h
* config/hpux/gcc.cf
* config/linux/gcc.cf
* config/os2/gcc.cf
* config/bsd/gcc.cf
! Never force the platform from the make files, rather
rely on the autodetection in hbsetup.h.
Compiling default parts of the software should only rely
on manually set macros if there is no reasonable chance to
make the detection automatic.
! HB_OS_LINUX, HB_OS_HPUX autodetection supposedly made more robust.
* include/hbsetup.ch
* include/hbapi.h
* source/rtl/hbffind.c
- Removed HB_FILE_VER stuff. It's lost it's importancy with SVN.
* include/Makefile
* include/hbcommon.ch
- Removed hbcommon.ch no longer needed. It only contained
HB_FILE_VER related stuff.
* contrib/rddado/Makefile
! Excluded from OS/2 builds.
* config/sunos/gcc.cf
! Fixed to include required system libs for hbinet.c.
- Removed HB_OS_SUNOS command-line macro. Now relying on
autodetection.
* include/hbsetup.h
* Extended autodetection for HB_OS_SUNOS.
* source/vm/itemapi.c
! Fixed to check for HB_OS_SUNOS macro after
including Harbour headers.
* harbour/include/hbextern.ch
* include scalar classes only when HB_REQUEST_SCALLAR define is set
* harbour/source/rtl/tobject.prg
! use <obj>:className instead of __objGetClsName( <obj> ) in error
message
* doc/whatsnew.txt
* bin/hb-mkslib.sh
! Changed the way harbour.dylib is created on Darwin systems
to support universal builds. Please review and test.
! Fixed generating links for .dylibs on Darwin.
! Removed one excessive 'cd "${OTMPDIR}"' command.
(I hope this is right)
! Removed previously added $(L_USR) from Darwin dynamic
lib creation command line, as the L_USR "-arch" flags
(and probably others) cannot work here.
; TOFIX: 'ld: library not found for -lharbour' is still
present.
* include/hbsetup.h
+ Added autodetection for HB_OS_DARWIN (based on __APPLE__).
* config/darwin/gcc.cf
! Not forcing HB_OS_DARWIN from the command-line,
we're relying on the autodetection.
* source/rtl/hbzlib.c
* include/hbextern.ch
* doc/whatsnew.txt
* Harbour level functions renamed:
HB_COMPRESS -> HB_ZCOMPRESS
HB_COMPRESSBOUND -> HB_ZCOMPRESSBOUND
HB_UNCOMPRESS -> HB_ZUNCOMPRESS
HB_UNCOMPRESSLEN -> HB_ZUNCOMPRESSLEN
This is to avoid collision with xhb functions
with similar name but different parameter list.
Please modify your programs to use the new interface.
INCOMPATIBLE.
* utils/hbextern/hbextern.prg
* Disabled scanning C HB_FUNC functions in .prg files.
* Minor formatting.
* include/hbapigt.h
! Minor cosmetic.
* source/vm/runner.c
* include/hbextern.ch
* doc/whatsnew.txt
* contrib/examples/hscript/hscript.prg
* utils/hbrun/hbrun.prg
* Harbour level functions renamed:
__HRBRUN -> HB_HRBRUN
__HRBLOAD -> HB_HRBLOAD
__HRBDO -> HB_HRBDO
__HRBUNLOAD -> HB_HRBUNLOAD
__HRBGETFU -> HB_HRBGETSYMBOL
__HRBDOFU -> HB_HRBDOSYMBOL
.hrb API functions moved to the documented namespace.
Old function names still function, but are deprecated.
Please modify your programs to use the new interface.
; NOTE: HB_DBG_*() function should I believe correctly
named as __DBG*(), as they are indeed internal
functions, not meant to guaranteed for final apps.
We should do this cleanup in the future.
* tests/Makefile
- tests/spawn.prg
- tests/spawn2.prg
! Removed two obsolete tests.
* harbour/make_deb.sh
* harbour/make_tgz.sh
* harbour/make_rpm.sh
* harbour/make_rpmce.sh
* harbour/make_rpmw32.sh
* harbour/bin/pack_src.sh
* force using BASH in all files which includes hb-func.sh
* harbour/include/hbgtcore.h
* harbour/include/hbapigt.h
* harbour/include/hbextern.ch
* harbour/source/rtl/hbgtcore.c
* harbour/source/rtl/inkeyapi.c
* harbour/source/rtl/inkey.c
+ added HB_KEYINS() which works like HB_KEYPUT() but numeric
key values puts at the beginning of keyboard buffer.
It does not clear keyboard buffer contents.
* include/hbdefs.h
! Changed HB_SYMBOL_UNUSED() to better work for all
compilers, notably Pelles C.
! Fix to PFLL, although it didn't fix all GCC 4.3.1 warnings.
These remained:
../../genc.c:1582: warning: unknown conversion type character 'l' in format
../../genc.c:1582: warning: too many arguments for format
[ This changed got merged with existing commit. ]
; Thanks to Przemek for these patches.
* contrib/hbfbird/firebird.c
% Using PFLL instead of local logic.
* contrib/gtwvg/wvgutils.c
! Reverted some wrong fixes from previous commit.
* harbour/include/hbdefs.h
! fixed default printf length modifier for long long integer values
* harbour/harbour.spec
* harbour/harbour-ce-spec
* harbour/harbour-w32-spec
! fixed for new FM library name
* harbour/bin/hb-func.sh
* harbour/source/vm/hvm.c
* harbour/source/rtl/hbgtcore.c
* added const to s_defaultGT and s_pszLinkedMain declarations
* make s_pszLinkedMain visible and functional for platforms
which does not use HARBOUR_START_PROCEDURE
* harbour/source/vm/extrap.c
+ added exception trap for SIGSEGV, SIGILL, SIGFPE and SIGBUS
for *nixes which support sigaltstack()
* harbour/include/hbwmain.c
* harbour/source/vm/mainwin.c
* use of WinMain() from hbwmain.c
* harbour/source/pp/pplib.c
* ignore all #pragma directives setting compiler switches instead
of generating RT error when user uses PP in .prg code by __PP_*()
functions
* harbour/source/Makefile
+ harbour/source/hbextern
+ harbour/source/hbextern/hbextern.prg
+ harbour/source/hbextern/Makefile
* harbour/common.mak
* harbour/make_b32.mak
* harbour/make_gcc.mak
* harbour/make_vc.mak
* harbour/make_vcce.mak
* harbour/bin/hb-func.sh
+ added hbextern library
+ added hbextern to harbour shared library. Now all functions
are registered and visible for dynamically linked applications
not only .prg ones and .c functions explicitly bound with some
.prg code
* harbour/utils/hbrun/Makefile
* harbour/utils/hbrun/hbrun.prg
* use hbextern library instead of #include "hbextern.ch"
It has no noticeable effect on static builds but greatly
reduce the size of dynamic builds, f.e. current hbrun
linked dynamically in my Linux box has 12KB.
* include/hbdefs.h
! Fixed 4 remaining warnings in BCC 5.8.2 builds.
Many thanks to Przemek for the patch.
NOTE: Now BCC58 core is warning-free and there are
two warnings in its own header files, exploited
by contrib hbcurl/libcurl.
* source/pp/ppcore.c
* doc/whatsnew.txt
! __PLATFORM__* macros now all #defined in full uppercase.
F.e.:
__PLATFORM__Windows becomes __PLATFORM_WINDOWS
__PLATFORM__Linux becomes __PLATFORM__LINUX
INCOMPATIBLE.
* contrib/xhb/hbcompat.ch
+ Added compatibility #defines for __PLATFORM__* macros.
* include/hbdefs.h
! Minor formatting.
* harbour-ce-spec
* harbour-w32-spec
* make_xmingw.sh
* make_xmingwce.sh
* source/debug/debugger.prg
* contrib/hbtpathy/telepath.prg
* contrib/hbw32/w32_tole.prg
* contrib/hbw32/w32_tprn.prg
* utils/hbdot/hbdot.prg
* utils/hbmake/hbmake.prg
* Changed __PLATFORM__* #define according to latest changes.
; NOTE: I find this kind of compile-time platform dependency
quite wrong in an normal application, and we should
definitely avoid it in core Harbour.
In core Harbour there is one place where it would
better be eliminated, and in order to do this, we'd
need to have a filename equality comparison FS
function. Maybe we already have one, I don't know.
* include/hbdefs.h
! Patch added to workaround following phoney warnings
when using BCC 5.8 compiler (tested with 5.8.2):
Warning W8017 C:\devl\BCC58\Include\stdint.h 77: Redefinition of 'INT16_MIN' is not identical
Warning W8017 C:\devl\BCC58\Include\stdint.h 78: Redefinition of 'INT32_MIN' is not identical
Warning W8017 C:\devl\BCC58\Include\stdint.h 79: Redefinition of 'INT64_MIN' is not identical
Warning W8017 C:\devl\BCC58\Include\stdint.h 82: Redefinition of 'INT16_MAX' is not identical
Warning W8017 C:\devl\BCC58\Include\stdint.h 83: Redefinition of 'INT32_MAX' is not identical
Warning W8017 C:\devl\BCC58\Include\stdint.h 84: Redefinition of 'INT64_MAX' is not identical
Warning W8017 C:\devl\BCC58\Include\stdint.h 87: Redefinition of 'UINT16_MAX' is not identical
Warning W8017 C:\devl\BCC58\Include\stdint.h 88: Redefinition of 'UINT32_MAX' is not identical
Warning W8017 C:\devl\BCC58\Include\stdint.h 89: Redefinition of 'UINT64_MAX' is not identical
Many thanks to Przemek for this patch.
* include/hbextern.ch
+ EXTERNAL __OBJGETPROPERTIES
* doc/whatsnew.txt
+ Updated with new functions.
* source/hbpcre/_hbconf.h
! Silenced a #pragma warning for MSVC 12.x.
; NOTE: Some notable MSVC 12.x warnings in Harbour code:
source\rdd\hbsix\sxcompr.c(532) : warning C4244: '=' : conversion from 'long ' to 'short ', possible loss of data
source\rdd\hbsix\sxcompr.c(533) : warning C4244: '=' : conversion from 'long ' to 'short ', possible loss of data
source\rdd\hbsix\sxcompr.c(539) : warning C4244: '=' : conversion from 'long ' to 'short ', possible loss of data
source\rdd\hbsix\sxcompr.c(540) : warning C4244: '=' : conversion from 'long ' to 'short ', possible loss of data
There are 3 more known warnings, the rest is common integer difference warning.
* harbour/contrib/hbmzip/zip.c
! fixed access to uninitialized member of z_stream by simple
initialization. Anyhow it's minor bug in MINIZIP code exploited
HB_ZipDeleteFile() which causes that TEXT flag is not set after
raw binary file updating. There is also no API call to make it
manually.
* harbour/contrib/hbmzip/hbmzip.c
* harbour/contrib/hbmzip/readme.txt
+ added HB_ZipDeleteFile( cZipFile, cFileMask ) --> nError
* harbour/common.mak
* harbour/source/rtl/Makefile
+ harbour/source/rtl/dirscan.prg
+ added HB_DirScan( cPath, cFileMask, cAttr )
* harbour/source/rtl/strmatch.c
+ added HB_FileMatch( cFile, cPattern )
* harbour/include/hbextern.ch
+ added HB_DirScan(), HB_FileMatch()
* harbour/contrib/xhb/dirrec.prg
* changed to use HB_DirScan()
* harbour/contrib/hbmzip/hbmzip.c
! fixed storing/setting file date, time and attributes in *nixes
* harbour/include/hbapifs.h
* harbour/source/rtl/hbffind.c
* harbour/source/rtl/filesys.c
! replaced hack with direct bit conversion in *nixes attributes
by bit testing
* include/hbapifs.h
* source/rtl/filesys.c
+ Added skeletons for hb_fsGetAttr() and hb_fsGetFileTime()
TODO: Implementation.
* contrib/hbclipsm/common.mak
* contrib/hbclipsm/Makefile
- contrib/hbclipsm/dbf.c
! Removed duplicate implementation of DBF() from hbclipsm.lib
; TOFIX:
I'm getting these new warnings under BCC55:
Warning W8080 source\rtl\filesys.c 2718: '_fstat(int,_stat *)' is declared but never used
Warning W8080 source\rtl\filesys.c 2718: '_disable()' is declared but never used
Warning W8080 source\rtl\filesys.c 2718: '_enable()' is declared but never used
Warning W8080 source\rtl\fssize.c 142: '_fstat(int,_stat *)' is declared but never used
* harbour/contrib/hbw32/dllcall.c
* minor cleanup in return values
* harbour/contrib/hbole/ole2.c
* cleaned casting in UNICODE conversions
* harbour/source/common/expropt2.c
* replicate CA-Cl*pper compile time optimization bugs:
"" $ <literString> => .T.
AT( "", <literString> ) => 1
CHR( 256 ) => ""
only when Harbour extensions (-kh) are not enabled, f.e.
in strict Clipper compatibility mode (-kc)
* harbour/utils/hbtest/rt_hvma.prg
* harbour/utils/hbtest/rt_str.prg
* updated to test Clipper and Harbour compile time modes in
the above situations
* harbour/common.mak
* harbour/source/rtl/Makefile
- harbour/source/rtl/strings.c
* harbour/source/common/hbstr.c
* moved hb_strEmpty() from RTL to COMMON library
* harbour/include/hbexprb.c
* harbour/include/hbexprop.h
* harbour/source/common/expropt2.c
+ added compile time optimization for EMPTY() function
; removed 'TODO: empty optimization' note
* harbour/source/rtl/itemseri.c
% compress trailing spaces during string item serialization
* harbour/include/hbapi.h
* harbour/source/vm/hashes.c
+ added hb_hashAddNew() - works like hb_hashAdd() but it adds item
only if new key is used
* harbour/source/vm/hvm.c
* use hb_hashAddNew() instead of hb_hashAdd() for HB_P_HASHGEN
I cannot revert the order of hash item during compilation because
it will also change the order of user expression evaluation.
* harbour/include/dbedit.ch
* harbour/source/rtl/dbedit.prg
+ added support for undocumented Clipper DE_APPEND mode - code
covered by HB_C52_UNDOC
% ignore K_MOUSEMOVE events to avoid flickering just like CA-Cl*pper
does
+ added support for cell positioning with mouse left key - CL53
compatible behavior covered by HB_COMPAT_C53 macro
* changed static function name dbEditCallUser() to CallUser() for
strict Clipper compatibility - some user function code may check
PROCNAME()
* some minor optimizations and fixes
* harbour/contrib/hbmzip/hbmzip.c
* indenting
* harbour/source/vm/hvm.c
* formatting
* harbour/include/hbwince.h
* harbour/source/common/hbwince.c
+ added SetFileAttributesA() for WinCE builds
* harbour/source/rtl/filesys.c
* replaced UNICODE translations for SetFileAttributes()
with direct call to SetFileAttributesA()
* harbour/include/hbapifs.h
* harbour/source/rtl/spfiles.c
* harbour/source/rtl/fstemp.c
* harbour/source/rtl/hbffind.c
* harbour/source/rtl/direct.c
* harbour/source/rtl/filesys.c
* changed internal representation for file attributes from USHORT
to ULONG
+ added support for POSIX permission attributes in .c code
; added some comments about used attribute translations which
should be cleand
* harbour/include/hbdate.h
* harbour/source/common/hbdate.c
+ added hb_timeStampEncode()
* harbour/include/hbapifs.h
* harbour/source/rtl/filesys.c
+ added hb_fsSetFileTime()
+ added POSIX file attributes with some macros to convert Harbour
definitions into OS ones.
+ added initial version of hb_fsSetAttr() - work in progress, I should
finish it in the evening.
* harbour/contrib/hbmzip/hbmzip.c
* added setting file attribute in DJGPP builds
! fixed some small typos in OS2 builds reported by David
* harbour/source/vm/fm.c
* changed hb_xrealloc() to be ANSI-C realloc() compatible
* harbour/include/hbrddcdx.h
* harbour/source/rdd/dbfcdx/dbfcdx1.c
! fixed casting for indexes with key length greater then 196 bytes
created on tables with record number smaller then 256. In such
case if keys have equal value then after decoding they may need
more then 32767 bytes and casting to SHORT gives negative indexes.
Thanks to Saulius Zrelskis for example.
% changed some SHORT to INT to reduce runtime overhead
* contrib/hbziparch/Makefile
! Fixed commented file in file list.
; This may fix some GNU-make problems regarding hbziparch.
; hbziparch may not work in RC2 GNU-make builds for this
reason.
* harbour-ce-spec
* harbour-w32-spec
* doc/whatsnew.txt
* include/hbver.h
* harbour.spec
* RC2 -> rc2
; We should use lowercase for 'RC' in the future, for consistency
with 'alpha', 'beta' (and with other projects too). It looks
smoother too.
* source/rtl/errorint.c
! hb_setGetCPtr( HB_SET_HBOUTLOG ) checked for NULL value.
I'm not sure if this is required in real life, so this may
be unnecessary safety.
* utils/Makefile
* Formatting.
* include/hbdefs.h
! Fixed DLL creation for MSVC (and maybe compilers, too).
Thanks to Marek Paliwoda for the hint.
* contrib/hbtpathy/tpos2.c
! Blind attempt to fix OS/2 compile error.
* harbour-ce-spec
* harbour-w32-spec
* include/hbver.h
* harbour.spec
* RC1 -> RC2
* contrib/hbziparch/hbziparc.c
! Fixed potential GPF in HBZIPCLEANUP().
! HBZIPCLEANUP() changed to be a HB_FUNC() (from HB_EXIT_FUNC()),
so now it has to be called manually, but at least it's
now doing something useful. (HB_EXIT_FUNC() in .c code
never gets executed by itself).
* include/hbapi.h
* source/rtl/set.c
* source/vm/fm.c
! Fixed _SET_HBOUTLOG, _SET_HBOUTLOGINFO handling in fm.c.
hb_setget*() functions cannot be used here as the set
system is deinited at this point. So local buffers are
holding the values.
* include/set.ch
* include/hbset.h
* source/rtl/set.c
* source/vm/fm.c
* source/vm/extrap.c
+ Added: Set( _SET_HBOUTLOGINFO[, <cValue>] ) -> <cOldValue>
Default value: ""
This user defined text will be included in each hb_out.log
messages. This way it's possible to include custom information
in these entries to help identify and locate them.
! Fixed a few string not marked with HB_I_() translation
marker.
* contrib/Makefile
* After this change, HB_CONTRIBLIBS will _override_ the
default list of contribs, rather than adding them to
the default list (which BTW contains everything since
this week, so there's no much point anyway, besides if
someone was hosting local contribs in the Harbour contrib
dir).
* include/hbver.h
- Removed recenly added HB_VERSION 0x010000.
* Instead I've changed both .prg level and .c level __HARBOUR__
to contain this more granular (full) version number.
; NOTE: If someone is relying on the value of __HARBOUR__ in
.prg code, the values should be multiplied by 256.
* include/hbstdgen.ch
* include/hbver.h
* include/hbdefs.h
* source/pp/pplib.c
* source/pp/ppcore.c
* source/pp/hbpp.c
* source/common/hbver.c
* source/common/hbverdsp.c
* contrib/hbsqlit3/hbsqlit3.c
* contrib/examples/pp/hbppdef.h
* Changed .c level __HARBOUR__ to have the same value
as the existing .prg level one.
* PP now gets the __HARBOUR__ define directly from the .c
level instead of generating it locally.
; QUESTION: Should or shouldn't we change __HARBOUR__
to contain revision number too? (0x0100 -> 0x01000)
This would allow for a greater level of development
opportunities between minor revisions, more "agile"
development.
* include/hbpp.h
* source/pp/ppcore.c
- Two __XHARBOUR__ guards removed.
* include/hbapierr.h
* source/rtl/errorapi.c
* source/rdd/hbsix/sxtable.c
* contrib/hbct/charonly.c
* contrib/hbct/charevod.c
* contrib/hbct/charone.c
* contrib/hbct/pos1.c
* contrib/hbct/ascpos.c
* contrib/hbct/token1.c
* contrib/hbct/atnum.c
* contrib/hbct/count.c
* contrib/hbct/replace.c
* contrib/hbct/ctpad.c
* contrib/hbct/justify.c
* contrib/hbct/remove.c
* contrib/xhb/hbxml.c
* contrib/hbmzip/hbmzip.c
* contrib/hbtip/utils.c
* Changed remaining &hb_errFuncName -> HB_ERR_FUNCNAME
+ Added compatibility comments.
! Fixed hb_errFuncName value (changed to 1 to be the
same as HB_ERR_FUNCNAME).
; NOTE: 3rd party developers are encouraged to use
HB_ERR_FUNCNAME instead of hb_errFuncName.
There is no change in functionality.
[TOMERGE 1.0.0RC1]