* contrib/make_b32_all.bat
* contrib/make_vc_all.bat
* contrib/make_gcc_all.sh
* Disabled following contribs, to be in sync with the default
GNU-make setup:
hbsqlit2 - Too many warnings in unsupported foreign code. Replacement: hbsqlit3
hbw32ddr - C++, not maintained, incomplete, warnings.
hbwhat32 - Problems and warnings, non 64 bit compatible.
hbziparch - C++, foreign code not well portable, interface
code not Harbour quality. Replacement: hbmzip
; NOTE: We should consider what to do with these contribs.
* 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
* contrib/hbcurl/hbcurl.c
! Disabled string hashing for curl_formadd() with
CURLFORM_COPYNAME. I've misread the docs (sorry Przemek),
hashing is only needed for CURLFORM_PTRNAME, which we
currently don't use. I've disbled some code to avoid
unused function warnings, but other than that it may
be good to have the possibility for hashing for future
functions too.
! Fixed/Added support for CURLFORM_COPYNAME parameter
with embedded zeroes by passing the string length
using CURLFORM_NAMELENGTH. Not tested.
* harbour/contrib/hbcurl/hbcurl.c
* activate string hasing in all builds for curl_formadd() with
CURLFORM_COPYNAME
* do not use string hasing fro curl_slist_append()
Many thanks to Viktor for help.
* harbour/source/common/hbwince.c
* formatting
* harbour/contrib/hbcurl/hbcurl.c
+ use hash table to keep strings passed to CURL library accessible
even if HVM destroys them. It should allow to safely use HBCURL
wrapper also with CURL library older then 7.17.0 though it can
be a little bit expensive in some cases. The allocated strings
are freed when CURL pointer is destroyed (directly or by
CURL_EASY_CLEANUP()) or reset by CURL_EASY_RESET().
This feature is enabled only when compiled for CURL libraries
older then 7.17.0 or when user set explicitly compile time macro
HB_CURL_HASH_STRINGS
Viktor, you are more familiar with this code so please check it.
* harbour/contrib/hbmzip/zip.c
* set OS version information in ZIP header when ZIP archive is
created by *nix Harbour build. It's necessary to inform some
zip packages (f.e. infozip/unzip) that they should respect POSIX
file permission during decompression.
* 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/ChangeLog
* harbour/contrib/hbtip/ChangeLog
* replaced TABs with SPACEs
* harbour/source/compiler/genobj32.c
! fixed memory leak
TODO: disable this module in default builds until it will not
be fixed to generate valid OMF .obj files
* 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/contrib/hbmysql/Makefile
* harbour/contrib/hbodbc/Makefile
* harbour/contrib/hbsqlit3/Makefile
* harbour/contrib/hbfbird/Makefile
* harbour/contrib/hbcurl/Makefile
* harbour/contrib/hbhpdf/Makefile
* harbour/contrib/hbpgsql/Makefile
* harbour/contrib/hbfimage/Makefile
* harbour/contrib/hbgd/Makefile
* harbour/contrib/hbgf/hbgfgtk/Makefile
* do not add default system include directory to C_USR during testing
for foreign header files when HB_XBUILD variable is set - protection
against including wrong header files in cross builds
* harbour/contrib/hbtpathy/ChangeLog
* changed SVN EOL style to 'native'
* harbour/contrib/hbbmcdx/bmdbfcdx.c
* pacified warning
* 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
* contrib/hbbmcdx/bmdbfcdx.c
* contrib/hbbmcdx/hbbmcdx.h
! 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/hbziparc.c
! fixed some unused variables.
* minor sintax corrections.
* 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
* source/rtl/gtwvt/gtwvt.c
* contrib/gtwvg/gtwvg.c
! Restored previous change.
In Harbour, passing NULL to hb_itemPutC() is valid and
will result in an empty string being stored in an optimized way.
hb_itemPutCLPtr() should be used instead of hb_itemPutCPtr().
The GPF in question used to happen when setting the clipboard,
and it looks to happen inside the OS. I'm still investigating.
* contrib/hbapollo/tests/bld_b32.bat
* contrib/hbapollo/tests/bld_vc.bat
! Fixed external .lib name.
* contrib/hbcurl/hbcurl.c
! CURL_EASY_GETINFO() will now return the proper type
(with an empty value) if the given info type is not
supported in the libcurl version used at build-time.
(This makes the test program not crash after latest
hbcurl changes.)
* contrib/hbodbc/odbc.c
! Fixed compilation error with Pelles C 5.00.1.
* Some formatting.
* contrib/hbw32/dllcall.c
+ Two TOFIXes added for Win64 support.
! One Warning fixed under Win64.
* contrib/hbfimage/make_gcc.sh
* contrib/hbfimage/make_b32.bat
* contrib/hbfimage/make_vc.bat
! Corrected to look in Dist subdir instead of 'source',
so that simple .dll ditribution is enough to compile.
* contrib/hbodbc/odbc.c
! Fixed all ODBC handles to be pointers. This way it's Win64
compatible. This is an INCOMPATIBLE change. Since normal
app code is using ODBC error values to check for error
conditions, the type of handles shouldn't be a concern for
most app code.
I'd ask everyone using hbodbc to do some tests.
+ TOFIXes added where deprecated (and potentially dangerous)
APIs are used.
* contrib/hbw32/dllcall.c
! Using hb_parnint()/hb_retnint() instead of hb_parnl()/hb_retnl()
to make Harbour level .dll functions compatible with Win64, and
at the same time stay compatible with XBase++.
* contrib/rddado/adordd.prg
! Fixed a few places where _SET_EXACT dependent string
comparisons were used. One of them could cause
problems updating field values.
* contrib/hbodbc/todbc.prg
* Formatting.
* contrib/hbodbc/tests/odbcdemo.prg
* contrib/hbodbc/tests/odbccall.prg
* contrib/hbodbc/tests/testodbc.prg
! Made them work out of the box.
; TOFIX: All of them gives "unrecognized database format" for harbour.mdb.
* source/compiler/genhrb.c
* contrib/hbtip/utils.c
! Changed octal values in strings (and chars too) to make
these functions work with Pelles C 5.00.1.
* contrib/xhb/xhbfunc.c
! Changed hb_ArrayID() to be in sync with xhb, and at the
same time fixing the Win64 compatibility issue.
Thanks Przemek.
* ChangeLog
! Typo.
* source/vm/arrayshb.c
* contrib/xhb/xhbfunc.c
! Moved hb_ArrayID() Harbour level function to xhb.lib.
; NOTE: This function is not compatible with x64 architecture.
* source/vm/extrap.c
! Warning fixed.
* contrib/hbmysql/mysql.c
* contrib/hbmysql/tmysql.prg
! sqlListF() return value changed to pointer from numeric.
Now compatible with Win64.
INCOMPATIBLE.
* contrib/hbw32/w32_prn.c
! Warning suppressed (pointer to BOOL conversion).
* contrib/hbw32/dllcall.c
* contrib/hbhpdf/harupdf.c
* contrib/hbfimage/fi_winfu.c
* contrib/hbgf/hbgfw32/win32.c
! Fixed several pointer (handle) passings to be 64bit compatible.
* contrib/hbw32/w32_reg.prg
* Minor formatting.
; TOFIX: There are still some PellesC 64bit warnings to be fixed.
(posted separately)
* 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.
* contrib/hbmzip/hbmzip.c
+ Reenabled new OS/2 code.
! Fixed defines in OS/2 part. Requested definitions.
Fixed one potential error. Pls review and test, all
this was done blindly.