* contrib/hbziparc/hbziparc.prg
! RTE fixed when not specifying some optional params.
! Fixed to parse the right array, and thus not exluding
all filenames to be zipped.
; Disclaimer: I'm not a user of these functions, and
I've admittedly not tested them besides tests/unzipa.prg
and tests/zipa.prg (which are pretty basic cases), so
bumps are expected. If you find some bugs, please try
to provide patches to fix them. Thanks.
* contrib/hbziparc/make_b32.bat
* contrib/hbziparc/make_vc.bat
% Special C flags not needed anymore.
- contrib/hbziparc/hbzipold.cpp
+ contrib/hbziparc/hbzipcpp.old
* Renamed to not look like something live.
* harbour-ce-spec
* make_deb.sh
* harbour-w32-spec
* harbour.spec
* contrib/Makefile
* contrib/make_b32_all.bat
* contrib/make_gcc_all.sh
* contrib/make_vc_all.bat
+ contrib/hbziparc
- contrib/hbziparch
+ hbziparc readded to default contrib list, as it
creates no more harm now.
; NOTE: And now that this is about ready, we might
step forward to develop a .7z interface ;)
* contrib/hbziparch/Makefile
* contrib/hbziparch/common.mak
- contrib/hbziparch/hbziparc.c
- contrib/hbziparch/hbxdirec.c
* contrib/hbziparch/hbzipnew.cpp
* Merged Harbour C parts to .cpp file.
* Made full low-level interface static.
* contrib/hbziparch/hbziparc.c
* contrib/hbziparch/hbzipnew.cpp
% Merged slightly different internal functions, thus
removing significant redundancy.
Higher level hb_unzipFile(), hb_unzipFileIndex(), hb_unzipAllFile()
are now functionally the same, since the only difference was
how the file list parameter was handled.
! Removed any remaining Win32 dependency.
* contrib/hbziparch/hbziparc.c
* contrib/hbziparch/hbzipnew.cpp
* Complete cleanup/refactor/fixes.
(original functions and internal logic was kept,
except some shady path/curdir manipulations, which
were removed, along with any directory changes)
The code got significantly easier to oversee, so if
someone wants to find out how this interface works,
now the code is much easier to read. If we want to
keep this in Harbour, maybe we could just swap the
low-level interface to utilize hbmzip calls instead
of ZipArchive ones. We would lose the segmented
archive feature though, but I'm not sure how
important this is these days, when there is no
floppy disk anymore.
Code size is now 40% smaller than in 1.0.0.
It's still far from being perfect, but now it's at
least possible to fix.
* utils/hbmake/hbmake.prg
; Applied patch by Bill Robertson:
! Fixed previously introduced (by me actually) bug. Thanks.
% Removed "non-extended" codepath, since it was never used.
! UI elements fixed to properly accomodate to any
screen dimensions.
* utils/hbmake/hbmake.prg
! Fixed to not change casing of files, plus a few other minor fixes.
! Made one filename comparison multiplatform by using hb_FileMatch()
; Added TOFIXes where filename comparison is not multiplatform.
% Removed some dead or commented code.
- contrib/hbw32ddr
* contrib/Makefile
* contrib/make_b32_all.bat
* contrib/make_gcc_all.sh
* contrib/make_vc_all.bat
- Removed contrib hbw32ddr.
For those wanting to peek into this code, or
pick up development, the exact source can be
found in Harbour 1.0.0 release.
* contrib/hbziparch/hbziparc.c
* contrib/hbziparch/hbzipnew.cpp
% Cleanups, optimizations, fixes. Now it's possible to
oversee what the code actually tries to do.
* Statics reduced to one, not changing current dir anymore.
; It may happen that something is not working as it was, please test.
Path handling is/was very shady. Unix support is (and was)
not working at places.
; NOTE: 'Kiss of death' change.
Please be prepared that I plan to remove hbziparch
from the repository sometimes this week. If you have
a strong reason not to do so (or some alternative
proposal), pls write to the list.
If someone wants to continue using it, it can be accessed
from past revisions of the SVN, or the 1.0.0 binary and
source releases.
Someone could as well upload the lastest (or latest stable)
revision to our website.
- contrib/hbziparch/hbziparc.h
* contrib/hbziparch/hbziparc.c
* contrib/hbziparch/hbzipnew.cpp
* contrib/hbziparch/tests/unzipa.prg
% Further cleanups, optimizations.
% Removed adding current directory to .zip filename
if it didn't contain a path. If a file doesn't contain
path, the OS will create it by default in the current dir.
If someone knows why this hack was there, please tell.
* contrib/hbziparch/hbziparc.h
* contrib/hbziparch/hbziparc.c
* contrib/hbziparch/hbzipnew.cpp
! Fixed several potential leaks.
% Optimized out several unnecessary allocations.
% Optimized out several unnecessary string copying.
% Cleaned all global variables.
% Cleaned all static variables in C code.
% Using HB_ERR_FUNCNAME.
! Returning empty values instead of NULL.
! Fixed potential GPFs.
! Using manifest constants instead of literals.
* Cleaned header file and constant usage.
* Other minor fixes and optimizations.
* Formatting.
; The code is still a mess.
* contrib/hbziparch/hbziparc.h
* contrib/hbziparch/hbziparc.c
* contrib/hbziparch/hbzipnew.cpp
* contrib/hbziparch/hbxdirec.c
% Cleanups: Unused headers, types, one #define,
one BCC582 warning, one Linux/GCC/MinGW #ifdef oddness.
; NOTE: Need to test this on Linux.
* utils/hbmake/hbmake.prg
; Applied cleanup and fix patch from Bill Robertson:
! LIBFILES -> HBLIBS
EXTERNLIB -> CONTRIBLIB
EXTLIBFILES -> CONTRIBLIBS
* ALLLIB = $(USERLIBS) $(LIBFILES) ... ->
ALLLIB = $(USERLIBS) $(CONTRIBLIBS) $(HBLIBS) ...
% Removed CONTRIBLIB = YES from makefile output as it did nothing.
% Combined two ShowHelp() secs into one and put together
with ShowCredits() at top of program.
% Simplied Flag checks somewhat but it's still awkward. I fixed
a mingw bug where a flag was set to .t. in one place and .f.
later because of inconsistent use of letters, capitals/lower, etc.
Still lots of checking for lower(...), upper(...), etc. of the
command-line params.
* Changed Help screen to reflect current program options better.
* Made some alert message a little clearer and minor formatting.
! Initalized s_nMakeFileHandle to F_ERROR and reset it to F_ERROR
whenever the file was closed. Didn't seem to be a current problem,
just good practice.
* utils/hbmake/hbmake.prg
* Removed separate /credits switch and added content to
main help screen.
% Removed a few CLS commands from command-line orientated
places.
% Removed -elx and -ex from help screen (as these are the
same as -el and -e). They are still accepted though.
* source/compiler/hbusage.c
+ Added Bill Robertson to credits list.
* contrib/hbole/oleauto.prg
* contrib/hbw32/w32_tole.prg
* MessageBox() calls converted to Alert()s.
A #translate added for the to be reconverted to MessageBox(),
since I'm not sure why should we use MessageBox()es here?
IMO it'd be better to throw RTEs, or handle these cases more
"natively". Opinions?
* contrib/hbole/oleauto.prg
+ Modified to generate RTE when the object could not
be created, so that it works more like OLE in hbw32.lib,
and the test doesn't crash in this case. I don't have
Excel, and this is what I could fix without it.
* contrib/hbw32/w32_tole.prg
* contrib/hbw32/w32_ole.c
! Typos, minor formatting.
* common.mak
* source/hbpcre/Makefile
* source/hbpcre/cnv_hb2o.bat
* source/hbpcre/cnv_o2hb.bat
- source/hbpcre/ucpinter.h
- source/hbpcre/ucptable.h
- source/hbpcre/pcrefind.c
+ source/hbpcre/pcreucd.c
* source/hbpcre/pcrevutf.c
* source/hbpcre/pcre.h
* source/hbpcre/pcreconf.c
* source/hbpcre/pcreinfo.c
* source/hbpcre/pcremktb.c
* source/hbpcre/config.h
* source/hbpcre/pcrenewl.c
* source/hbpcre/pcreoutf.c
* source/hbpcre/chartabs.c
* source/hbpcre/pcrerefc.c
* source/hbpcre/pcreget.c
* source/hbpcre/pcrefinf.c
* source/hbpcre/pcretryf.c
* source/hbpcre/pcreexec.c
* source/hbpcre/pcreinal.h
* source/hbpcre/pcretabs.c
* source/hbpcre/pcredfa.c
* source/hbpcre/pcrever.c
* source/hbpcre/pcrecomp.c
* source/hbpcre/pcrexcls.c
* source/hbpcre/pcrestud.c
* source/hbpcre/ucp.h
+ Updated to PCRE 7.8 RC1
(will be updated to final pretty soon)
This version contains the small patches we
so far had locally in Harbour. Thanks to
Philip Hazel for applying them.
* utils/hbmake/hbmake.prg
; Applied patch created by Bill Robertson:
* The following functions aren't used in hbmake and were removed:
FindCfile(), TestforPrg(), AsDll(), ExtenPrg(), GetMakeDir()
* ChangeLog
! Minor typo.
* utils/hbmake/hbmake.prg
% Minor cleanup.
* source/common/hbver.c
* Further cleanup of constant usage.
+ Changed Borland to CodeGear to BCC5.9 and above.
(borrowed from xhb / Andi Jahja)
* config/w32/gcc.cf
* config/w32/dm.cf
* contrib syslibs moved to separate lines.
* source/rtl/gtchrmap.c
* source/rtl/hbgtcore.c
* source/vm/hvm.c
+ Added three TOFIXes regarding namespace violations.
s_pszLinkedMain -> hb_vm_pszLinkedMain
s_defaultGT -> hb_gt_szNameDefault
s_szDefaultCharMapFile -> hb_gt_szCharMapFileDefault
TOFIX: These should be fixed in 1.1 (or maybe even in
1.0.1 if this isn't such a big problem for 3rd
parties).
* contrib/gtwvg/wvgutils.c
! Fixed to use documented Harbour API hb_winmainArgGet()
instead of the (since cleaned away) undocumented Harbour
global variable hb_hInstance.
* make_vc.bat
* Updated usage text.
* include/hbwince.h
! Fix for Pelles C 5.0 in WinCE/ARM mode.
* include/hbsetup.h
+ Detecting Pelles C 5.0 in ARM mode as HB_WINCE.
* ChangeLog
- Removed some advices not valid anymore from previous entry.
* contrib/mtpl_b32.bat
* contrib/mtpl_vc.bat
* Synced with /make_*.bat so that the name of the .mak
file is now hard-wired instead of being HB_CC_NAME dependent.
This way contribs may be built for WinCE in the future
(this still needs adding WinCE support to mtpl_vc.mak).
* contrib/mtpl_gcc.sh
+ Darwin autodetection was missing.
* contrib/hbfimage/fi_winfu.c
! Added CBM_INIT definition for Pellec C in WinCE mode.
* source/rtl/gtclip.c
+ Added GMEM_MOVEABLE definiction for Pelles C in WinCE mode.
+ config/w32/poccce.cf
+ Added Pellec C WinCE make file.
+ config/w32/msvcce.cf
+ Added WinCE GNU make file for MSVC. Untested, probably not working,
this is just a small step to make the GNU-make equal in feature
with the non-GNU make one.
* config/w32/bcc32.cf
* Minor sync of C options with non-GNU make file.
* config/w32/msvc.cf
* Attempt to sync C options with non-GNU make file.
* contrib/hbfbird/firebird.c
* Minor formatting.
; NOTE1: For better consistency I'd like to rename GNU make compiler names
'mingw32' to 'mingw' (they've dropped '32' long ago), and
'cemgw' to 'mingwce'.
; NOTE2: Pelles C WinCE build still generates following errors:
POLINK: error: Unresolved external symbol 'GetModuleFileNameA'.
POLINK: error: Unresolved external symbol 'RegOpenKeyExA'.
../../math.c(605): error #3120: [asm] Symbol 'inf' is undefined.
contrib\gtwvg\gtwvg.h(78): fatal error #1035: Can't find include file <olectl.h>.
../../ctmath2.c(324): error #3120: [asm] Symbol 'inf' is undefined.
../../win32.c(70): error #2048: Undeclared identifier 'CS_OWNDC'.
../../win32.c(75): error #2048: Undeclared identifier 'IDI_APPLICATION'.
../../win32.c(75): error #2140: Type error in argument 2 to 'LoadIconA'; found 'int', expected 'const char *'.
../../win32.c(181): error #2048: Undeclared identifier 'MFS_DISABLED'.
../../win32.c(194): warning #2027: Missing prototype for 'InsertMenuItem'.
../../win32.c(219): warning #2027: Missing prototype for 'SetMenu'.
../../odbc.c(94): fatal error #1035: Can't find include file <sql.h>.
contrib\hbsqlit3\sqlite3\sqlite3.c(9936): warning #2027: Missing prototype for 'localtime'. [ ... ]
../../w32_ole.c(403): error #2152: Unknown field 'pllVal' of 'union (no name)'.
../../w32_ole.c(403): error #2168: Operands of = have incompatible types 'int' and 'long long int *'.
../../w32_ole.c(408): error #2152: Unknown field 'llVal' of 'union (no name)'.
../../w32_ole.c(786): error #2152: Unknown field 'pllVal' of 'union (no name)'.
../../w32_ole.c(786): error #2144: Type error: pointer expected.
../../w32_ole.c(792): error #2152: Unknown field 'llVal' of 'union (no name)'.
../../hbsyslog.c(31): error #2140: Type error in argument 2 to 'RegisterEventSourceW'; found 'const char *', expected 'const wchar_t *'.
../../hbsyslog.c(97): error #2140: Type error in argument 8 to 'ReportEventW'; found 'const char * *', expected 'const wchar_t * *'.
../../firebird.c(448): error #2149: Undefined size for 'times' with type '(incomplete) struct tm'.
../../firebird.c(479): error #2152: Unknown field 'tm_year' of '(incomplete) struct tm'.
../../firebird.c(480): error #2152: Unknown field 'tm_mon' of '(incomplete) struct tm'.
../../firebird.c(481): error #2152: Unknown field 'tm_mday' of '(incomplete) struct tm'.
../../firebird.c(482): error #2152: Unknown field 'tm_hour' of '(incomplete) struct tm'.
../../firebird.c(483): error #2152: Unknown field 'tm_min' of '(incomplete) struct tm'.
../../firebird.c(484): error #2152: Unknown field 'tm_sec' of '(incomplete) struct tm'.
../../firebird.c(493): error #2152: Unknown field 'tm_year' of '(incomplete) struct tm'.
../../firebird.c(493): error #2152: Unknown field 'tm_mon' of '(incomplete) struct tm'.
../../firebird.c(493): error #2152: Unknown field 'tm_mday' of '(incomplete) struct tm'.
../../firebird.c(502): error #2152: Unknown field 'tm_hour' of '(incomplete) struct tm'.
../../firebird.c(503): error #2152: Unknown field 'tm_min' of '(incomplete) struct tm'.
../../firebird.c(504): error #2152: Unknown field 'tm_sec' of '(incomplete) struct tm'.
../../fi_winfu.c(97): warning #2027: Missing prototype for 'CreateDIBitmap'.
../../fi_winfu.c(98): error #2048: Undeclared identifier 'CBM_INIT'.
../../fi_winfu.c(99): error #2168: Operands of = have incompatible types 'HBITMAP' and 'int'.
../../fi_winfu.c(150): warning #2027: Missing prototype for 'GetDIBits'.
[ lots of them with hbmysql ]
* make_b32.bat
* make_vc.bat
* exit_err.bat -> hbmkpost.bat
Please update your environment if you used this feature.
INCOMPATIBLE.
* make_vcce.bat
! Adjusted to latest change.
* make_gnu.bat
* Minor formatting.
* make_b32.bat
* make_vc.bat
! Made makefile name independent of the HB_CC_NAME envvar.
NOTE: If this poses a limitation for someone, please shout,
we may add an additional variable to control/override
makefile name (but it cannot directly depend on
HB_CC_NAME now that make_vc.mak and make_vcce.mak
got merged.)
* make_vcce.bat
! Fixed.
* contrib/rddads/make_vc.bat
! Undone previous modification. Quotes are needed to support
dirs containing spaces (this is actually the case for the
default install dir of ACE SDK).
For very old MSVC compilers not understanding quotes
in -I (and possibly other) switches, pls specify the
external package #include directories directly through:
set C_USR=-IC:\mypath\pkg\include
and so on. MSVC98 is a very old product and there is
probably no way to make all features of our build systems
100% compatible with it, but with this manual workaround,
it can properly work (until a recommended VC upgrade :).
* utils/hbmake/hbmake.prg
; Applied patches made by Bill Robertson. (Thanks!)
% Removed Function C( STRING ) as it was only used in the function,
Attention(), to center a line on the screen.
% Removed Static Function IsWin() since it wasn't being used.
! Replace all remaining calls to hb_OSNewLine() with s_cEOL.
! Changed some calls from OutStd() to OutErr() since they were
essentially errors mesages.
% Replaced some long series of FWrite()s with a single FWrite()
where convientent so I could see what was being written to
the makefile easier.
! Replaced some comparisons from '=' to '=='.
* source/rtl/filesys.c
! Disabled hb_fsPOpen() body for __CYGWIN__.
This way __CYGWIN__ compiles cleanly.
(although I'm not sure how important Cygwin support is)
* source/rtl/hbinet.c
! Bad workaround for the '__WSAFDIsSet unresolved' problem
in Pelles C 5.00.13 AMD64 mode, to make final executables
link at all. Some hbinet.c features (or the whole module)
won't properly work though.
This possible bug has been reported on the Pellec C forums:
http://forum.pellesc.de/index.php?topic=2590.0
* include/hbinit.h
* source/rtl/gtwin/gtwin.c
* source/rtl/gtwvt/gtwvt.c
* source/compiler/genc.c
+ Enabled init functions for MSVC 64-bit in C mode.
; NOTE: You get the idea, please comment. If there is
no simpler/easier/shorter way to achieve this,
I'll update the rest 150 files, too.