* 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.
* 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/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.
* 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
* harbour/source/rtl/gtwvt/gtwvt.c
* disabled SetWindowLongPtr() in 32bit MSVC WinCE builds
* harbour/source/rtl/hbffind.c
* minor cleanup.
* harbour/source/rtl/filesys.c
+ implemented hb_fsGetAttr() and hb_fsGetFileTime() for DOS, MS-Win,
OS2 and *nixes. Please test it on different platforms.
* 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/source/rtl/gtwvt/gtwvt.h
* added some definitions which seems to be missing in some MSVC-WinCE
versions
* harbour/source/rtl/gtwvt/gtwvt.c
* cleaned SetWindowLongPtr()/SetWindowLong() usage so now all calls
are protected by the same #if condition
* 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