* 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.
* harbour/source/rtl/achoice.prg
+ Added functionality for K_MOUSEMOVE.
Now if the moouse is moved over the AChoice area,
prompt ready for selection will also change, just like
in Windows.
* harbour/bin/hb-func.sh
+ recognize -mwindows -mconsole MinGW-GCC switches and update
library list for them
* harbour/source/rtl/gtwvt/gtwvt.h
* harbour/source/rtl/gtwvt/gtwvt.c
+ added support HB_SET{TERM|DISP|KEY}CP() in non Unicode builds
* harbour/harbour-ce-spec
* harbour/harbour-w32-spec
! set HB_XBUILD evvar
* harbour/bin/hb-func.sh
! do not move harbour.dll to HB_BIN_INSTALL directory when
HB_XBUILD envvar is set
* harbour/source/hbzlib/deflate.c
* pacified warning
* source/hbzlib/zconf.h
* Undone previous ZLIB_DLL related change, as it causes these
warnings, when compiled with MSVS:
hbzlib.obj : warning LNK4217: locally defined symbol _inflateEnd imported in function _hb_zlibUncompressedSize
hbzlib.obj : warning LNK4217: locally defined symbol _inflate imported in function _hb_zlibUncompressedSize
hbzlib.obj : warning LNK4217: locally defined symbol _inflateInit_ imported in function _hb_zlibUncompressedSize
hbzlib.obj : warning LNK4217: locally defined symbol _zlibVersion imported in function _HB_FUN_HB_ZLIBVERSION
hbzlib.obj : warning LNK4217: locally defined symbol _compressBound imported in function _HB_FUN_HB_COMPRESSBOUND
hbzlib.obj : warning LNK4217: locally defined symbol _compress imported in function _HB_FUN_HB_COMPRESS
hbzlib.obj : warning LNK4217: locally defined symbol _compress2 imported in function _HB_FUN_HB_COMPRESS
hbzlib.obj : warning LNK4217: locally defined symbol _uncompress imported in function _HB_FUN_HB_UNCOMPRESS
hbzlib.obj : warning LNK4217: locally defined symbol _gzclose imported in function _hb_gz_Destructor
hbzlib.obj : warning LNK4217: locally defined symbol _gzopen imported in function _HB_FUN_HB_GZOPEN
hbzlib.obj : warning LNK4217: locally defined symbol _gzdopen imported in function _HB_FUN_HB_GZDOPEN
hbzlib.obj : warning LNK4217: locally defined symbol _gzsetparams imported in function _HB_FUN_HB_GZSETPARAMS
hbzlib.obj : warning LNK4217: locally defined symbol _gzread imported in function _HB_FUN_HB_GZREAD
hbzlib.obj : warning LNK4217: locally defined symbol _gzwrite imported in function _HB_FUN_HB_GZWRITE
hbzlib.obj : warning LNK4217: locally defined symbol _gzgets imported in function _HB_FUN_HB_GZGETS
hbzlib.obj : warning LNK4217: locally defined symbol _gzputs imported in function _HB_FUN_HB_GZPUTS
hbzlib.obj : warning LNK4217: locally defined symbol _gzgetc imported in function _HB_FUN_HB_GZGETC
hbzlib.obj : warning LNK4217: locally defined symbol _gzungetc imported in function _HB_FUN_HB_GZUNGETC
hbzlib.obj : warning LNK4217: locally defined symbol _gzflush imported in function _HB_FUN_HB_GZFLUSH
hbzlib.obj : warning LNK4217: locally defined symbol _gzseek imported in function _HB_FUN_HB_GZSEEK
hbzlib.obj : warning LNK4217: locally defined symbol _gzrewind imported in function _HB_FUN_HB_GZREWIND
hbzlib.obj : warning LNK4217: locally defined symbol _gztell imported in function _HB_FUN_HB_GZTELL
hbzlib.obj : warning LNK4217: locally defined symbol _gzeof imported in function _HB_FUN_HB_GZEOF
hbzlib.obj : warning LNK4217: locally defined symbol _gzdirect imported in function _HB_FUN_HB_GZDIRECT
hbzlib.obj : warning LNK4217: locally defined symbol _gzerror imported in function _HB_FUN_HB_GZERROR
hbzlib.obj : warning LNK4217: locally defined symbol _gzclearerr imported in function _HB_FUN_HB_GZCLEARERR
* source/compiler/hbusage.c
+ Updated credit list based on contributors
committing ChangeLog entries.
If anyone has someone to recommend to add to the list,
please do this on the devl-list.
* source/compiler/hbusage.c
* source/compiler/cmdcheck.c
+ -k? switches made case-insensitive.
* 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.
* source/hbpcre/_hbconf.h
* source/hbzlib/zconf.h
* source/hbzlib/ChangeLog
! Fixed to pass down Harbour DLL creation flag to
integrated 3rd party sources.
After this, pcre and zlib public symbols should be
properly exported on Windows platform.
; NOTE: Harbour uses __EXPORT__ to signal DLL creation,
which is not very ideal, so I'd suggest to
switch to HB_DLL in future versions.
* harbour/bin/postinst.sh
* added workaround for wrongly detected harbour root path in some
environments
* harbour/source/vm/extrap.c
* minor modification
* harbour/contrib/rddads/adsfunc.c
! fixed possibly unclosed AdsCloseSQLStatement()
* harbour/contrib/rddads/ads1.c
* minor cleanup and protection against possible strange results
caused by indexes without tags
* harbour/source/rtl/hbinet.c
! added protection against using wrong handles
! fixed possible resource leak (unclosed handle) when open handle is
passed to HB_INETCONNECT[IP]()
* harbour/source/rtl/filesys.c
* cleaned warnings
* harbour/common.mak
* harbour/source/compiler/Makefile
* harbour/source/compiler/cmdcheck.c
* harbour/source/compiler/hbmain.c
* harbour/source/compiler/hbusage.c
* disabled support for unfinished -gw compiler switch in
default builds. It can be enabled by developers who will
want to work on this code by recompiling Harbour with
HB_GEN_W32_OBJ macro (f.e. by setting it in C_USR envvar)
* harbour/source/debug/dbgentry.c
! fixed some possible memory leaks or GPFs when wrong parameters
are passed to debug functions
* moved module name conversions (path stripping) into one place
so in the future it will be easier to add automatic path detection
* harbour/source/pp/ppcore.c
* cleaned warning
* harbour/source/rtl/set.c
* do not attach ".prn" extension to known device names also
in DOS and Windows builds
* recognize "CON" as device name in DOS, Win and OS2 builds
* source/debug/debugger.prg
! Avoided __PLATFORM__* macros in core code by using
hb_FileMatch() instead of some local logic to make
filename comparisons portable.
Someone please check me if this is right.
* 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/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/source/vm/classes.c
+ adding 2-nd parameter to __clsGetProperties()
When it's TRUE then __clsGetProperties() returns also exported
messages which have corresponding assign messages (with "_" prefix)
* harbour/source/rtl/objfunc.prg
+ added __objGetProperties( oObject, [ lAllExported = .F. ] ) ->
aMsgAndValues
This function returns list of PROPERTY message with their values,
when 2-nd parameter is true it also returns exported messages which
which have corresponding assign messages (with "_" prefix)
This function is designed to use in object inspectors.
* harbour/source/rtl/mlcfunc.c
! skip SOFTCR when it's on the end of extracted line.
; NOTE: MPOSTOLC() is not exactly CA-Cl*pper compatible
The returned value is intentionally updated to be
MLCTOPOS() so conversions are revertable. For me
it's a bug in CA-Cl*pper.
* harbour/source/rtl/tget.prg
! fixed translation comma/dot translation for pictures with "@E"
Viktor, please test it - I'm not very familiar with GET code
and it's possible that I made sth wrong
* 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/xhb/Makefile
* harbour/contrib/xhb/common.mak
+ harbour/contrib/xhb/dirrec.prg
+ added DirectoryRecurse() function. It's not exactly xHarbour
compatible as I wanted at the beginning. But when I begin
to carefully check what xHarbour exactly does then I dropped
the strict compatibility due to problems with xHarbour
implementation which have to be fixed. I left this note in the
dirrec.prg header:
This implementation uses different rules then xHarbour one.
It does not change current drive or current directory so
unlike the xHarbour version it's MT safe.
It also returns relative paths which are more similar to
DIRECTORY() function results so they can be easy used
directly in other code, f.e. to create archive without
absolute paths. Please note that user can easy convert
relative paths to absolte ones by simple adding curdir()
and/or cPath parameter passed to DirectoryRecurse() but
reverted conversion may not be possible in some cases.
The 3-rd xHarbour parameter <lCaseMach> is ignored because
harbour uses platform native rules to check filename mask
respecting SET FILECASE and SET DIRCASE settings.
xHarbour does not add "D" to attribute list used for directory
tree scanning so user always have to add it manually and later
it ignores it so it's not possible to extract file list with
directories entries. In Harbour it's fixed.
* harbour/source/rtl/philes.c
+ added hb_osFileMask()
* harbour/source/rtl/direct.c
% minor optimization
* harbour/source/rtl/hbinet.c
! fixed possible data file corruption due to wrong use of 0 handle.
0 handle is perfectly valid. By default it points to stdin but
it can be closed and then reused for any other thing, f.e. data
file. In such case any data written to socket was written to
such file and this situation was very easy to replicate with
old hbinet code.
! fixed resource leak due to unclosed handles in few cases
! fixed possible double close of the some handle what could cause
that other object handles reusing the same handle number between
first and second close (f.e. data files) was wrongly closed
! fixed s_inetRecvPattern()/HB_INETRECVLINE() - the end pattern
was wrongly checked and the code didn't detect end pattern in
streams like: "...\r\r\n" when end pattern was "\r\n"
NOTE: this code needs some general cleanup. IMHO it should be
joined with adding hbinet C API.