* src/3rd/zlib/Makefile
* src/3rd/zlib/*
* updated to 1.2.7 from 1.2.6. Using 3rdpatch.hb and .dif reapplied manually.
* src/rtl/hbzlibgz.c
+ HB_GZOPEN() updated to use new in zlib 1.2.7 wide gzopen()
on Windows. It means now it supports unicode filenames.
* contrib/hbmzip/3rd/minizip/zip.c
* updated manually from zlib 1.2.7 (two warnings fixed)
* src/rtl/fslink.c
* contrib/hbmzip/mzip.c
! fixed missing Windows macro for legacy C compilers (bcc, lcc, dmc)
regression from 2012-03-28 20:09 UTC+0200 and 2012-03-19 12:55 UTC+0100
reported by Grigory Filatov
* src/rtl/fstemp.c
* hb_fsCreateTempEx(): changed to have only one return point
! hb_fsCreateTempEx(): do not call hb_fsNameConv() before
calling hb_fsCreateEx(). Latter does this since a few
commits, causing a regression here.
! low level hb_fsTempName() fixed to use HB_FSNAMECONV()
instead of HB_TCHAR_*() macros. This is slightly inappropriate
for 'prefix' parameter, but will do for now.
! low level hb_fsTempName() fixed to convert back result
to _SET_OSCODEPAGE. This fixes caller hb_fsCreateTemp()
which passes the value to hb_fsCreateEx().
! hb_fsTempDir(): fixed to convert result to _SET_OSCODEPAGE.
; NOTE: These are supposed to fix some recent and not so recent
oddities with HB_FCREATETEMP[EX]() and HB_DIRTEMP()
functions when used with non-ASCII chars, especially
on Windows. Tests done only on Windows, please review
and test, also on other platforms, non-UNICODE mode.
Regressions are possible.
Oddly, HB_FCREATETEMP() won't work well without properly
set _SET_OSCODEPAGE, probably something requiring further
fixes (and/or internal unicode support?).
; NOTE: As a loose rule of thumb, each Harbour high-level (.prg)
and low-level (.c) public APIs should expect and return
strings in _SET_CODEPAGE, while applying FSCONV transformations
on input filenames, and converting to/from _SET_OSCODEPAGE
when interfacing with OS-level FS APIs (_SET_OSCODEPAGE
should be ignored if OS-level FS APIs are capable of
handling unicode, f.e. in Windows default build mode).
Currently, low-level code uses a mixture of different
methods to achieve this, HB_TCHAR_* macros and equivalent
APIs, HB_FSNAMECONV(), hb_osDecodeCP()/hb_osEncodeCP(),
hb_fsNameConv(), Str API.
* contrib/hbmzip/mzip.c
+ Changed to use HB_FSNAMECONV() instead of HB_TCHAR_*() macros.
; review me!
* harbour/contrib/hbmzip/mzip.c
! fixed typo in DOS/Windows/OS2 READONLY attribute translation
! fixed EXECUTE attribute setting for *.sh files extracted
from non *nix ZIP archives
% eliminated repeated GetFileAttributes() calls in windows builds
! fixed attribute setting in *nix builds when filenames are
translated due to some of filename releated _SET_* settings.
! enable (unintentionally disabled by typo) automatic attribute
translation for archives created in DOS/Windows/OS2 without
*nix attributes (i.e. by some local ZIP implementations)
* harbour/contrib/hbmzip/tests/myunzip.prg
! translate datetime to date before is shown on the screen - it fixes
output formatting
* contrib/hbpgsql/hbpgsql.hbx
* contrib/hbpgsql/hbpgsql.hbp
- contrib/hbpgsql/hdbcpg.prg
- Deleted HDBC class layer due references to deprecated
wrapper function which caused link errors in dynamic builds
or HDBC apps. Please readd the file if interested in making
this technially simple fix.
* contrib/hbmzip/mzip.c
% eliminated one local variable in HB_UNZIPFILEREAD()
* contrib/hbziparc/ziparc.prg
+ HB_UNZIPFILE(): added progress bar support.
Patch by Leandro Damasio, with following changes:
! refixed to use cPath when forming target filename
! missing hHandle declaration
% FERASE() removed, FCREATE() will recreate it
% Left() eliminated from FWRITE() call
* minor symbol casing
; I didn't test this code, so please do it.
* contrib/hbexpat/hbexpat.ch
+ added constants for attr array element positions
* contrib/hbexpat/tests/test.prg
* contrib/hbexpat/tests/tohash.prg
+ using them
* contrib/hbmxml/3rd/minixml/mxml.hbp
* contrib/hbmzip/hbmzip.hbp
* C std-level related tweaks [Tamas Tevesz]
* contrib/hbmzip/mzip.c
! fixed to honor core filename settings and OS codepage
! fixed OS/2 to check for wrong filename in hb_zipStoreFile()
when finding out file attributes.
; please review me and beware of regressions both build-time
and runtime.
* utils/hbmk2/hbmk2.prg
+ Added experimental -c=[iso90|iso99|iso1x|gnu90|gnu99|gnu1x] and
-cpp=[iso98|iso0x|gnu98|gnu0x] hbmk2 options to select
C/C++ dialect in a C compiler and built setting independent way.
It will currently affect GCC and compatible family of compilers.
If you happen to know about C dialect/std selection in other
compilers, pls tell and they can be mapped to this option.
F.e. in other win compilers the adaptation to C/C++ stds is very
fuzzy, where such option exists at all (f.e. BCC -A* options),
mostly it's just toggling some compiler extensions.
Comments are welcome of course.
+ Added TOFIX for vxworks with potential disagreement on C std level.
I used hardwired C99 forcage hack while porting Harbour to it.
+ Added internal logic for C- and C++-only options.
; NOTE: Behavior with Objective C sources is yet to be tested.
* contrib/hbmzip/3rd/minizip/minizip.hbp
* contrib/hbunix/hbunix.hbp
* contrib/gtalleg/gtalleg.hbm
* contrib/xhb/xhb.hbp
* contrib/hbqt/hbqt_common.hbm
* contrib/rddads/rddads.hbp
* contrib/hbfimage/hbfimage.hbp
* contrib/hbpre.hbm
* contrib/hbssl/hbssl.hbm
+ -cflag=-std=... => -c=gnu90 hbmk2 option.
* utils/hbmk2/hbmk2.prg
+ new filter values: lngcpp and lngc. Can be used to
check forced C++/C mode.
* contrib/hbmzip/3rd/minizip/ioapi.h
* contrib/hbmzip/3rd/minizip/zip.h
* contrib/hbmzip/3rd/minizip/minizip.dif
! C++ -> ANSI C comments
* contrib/hbmzip/3rd/minizip/minizip.hbp
! Override c89 mode with gnu89. For f*64() functions.
* contrib/rddads/rddads.hbp
! Override c89 mode with gnu89. ADS headers need it.
* contrib/hbpre.hbm
+ Forcing c89 mode for GCC family compilers (in non C++ forced mode)
Results were pretty good and Harbour/3rd party code complies
very well.
* contrib/hbunix/hbunix.hbp
* contrib/hbcurl/hbcurl.hbm
* contrib/hbnetio/hbnetio.hbp
* contrib/gtwvg/gtwvg.hbp
* contrib/hbwin/hbwin.hbp
* contrib/hbsqlit3/hbsqlit3.hbp
* contrib/hbexpat/hbexpat.hbp
* contrib/hbmemio/hbmemio.hbp
- Deleted just added local c89 mode forcage. Now it's done global.
* contrib/hbqt/qtgui/hbqtgui.h
! Fixed HBQT_TYPE_QIcon redefinintion. Pls check, I didn't rebuild the
whole package after the mod.
* harbour/src/vm/procaddr.c
! removed dummy entry at the end of function table
* harbour/src/common/hbstr.c
* harbour/src/rdd/dbfcdx/dbfcdx1.c
* harbour/src/rdd/hsx/hsx.c
* harbour/contrib/xhb/fparse.c
* pacified warnings
* harbour/include/hbsetup.h
* disabled flatten function attribute in ANDROID builds,
it causes that Android_NDK-GCC GPFs compiling src/vm/procaddr.c
* harbour/include/hbdate.h
* enabled localtime_r() in Android builds
* harbour/src/common/hbgete.c
* enabled setenv() in Android builds
* harbour/src/common/hbtrace.c
! fixed ANDROID_LOG_* flags
; QUESTION: why Android log is used instead of syslog?
It causes that harbour has to be linked with
log library (-llog).
* harbour/src/common/hbprintf.c
* disabled modfl() in Android builds
* harbour/src/rtl/filesys.c
* added hack for missing functions in android libc library
* harbour/src/rtl/diskspac.c
* harbour/src/rtl/disksphb.c
* use statfs instead of statvfs in Android builds
* harbour/contrib/hbct/dattime3.c
* disabled stime() in Android builds
* harbour/contrib/hbmzip/3rd/minizip/ioapi.h
* do not use 64bit FILE functions in Android builds
* harbour/contrib/xhb/hbsyslog.c
* disabled using Android log in Android builds - use standard syslog
instead. This code needs deeper modification to switch to Android log.
; I have just recompiled whole Harbour code for android-3, android-5
and android-9 at ARM using standard Harbour Linux build files.
Android does not have pthread and rt libraries (they are merged
with android c library) so to avoid link errors I simply created
soft links from libpthread.a and librt.a to libc.a.
With this hack could use unmodified hbmk2 and linux .mk files.
BTW exporting HB_CPU="arm" was not enough to switch to cross build
in my x86@64 Linux machine so I had to export HB_HOST_BIN and set
HB_BUILD_3RDEXT="no"
* contrib/hbqt/hbmk2_qt.hbs
% Deleted now unnecessary .prg wrapper generation logic.
* Moved .qth processing to "pre_c" phase.
! Deleted HB_FUNC_EXTERN for constructor now declared locally.
! Added constructor to symbol table.
* contrib/3rd/sqlite3/sqlite3.hbp
* contrib/hbbz2/3rd/bz2/bz2.hbp
* contrib/hbexpat/3rd/expat/expat.hbp
* contrib/hbhpdf/3rd/libhpdf/libhpdf.hbp
* contrib/hblzf/3rd/liblzf/lzf.hbp
* contrib/hbmlzo/3rd/minilzo/minilzo.hbp
* contrib/hbmzip/3rd/minizip/minizip.hbp
* contrib/hbmxml/3rd/minixml/mxml.hbp
* contrib/hbxdiff/3rd/libxdiff/xdiff.hbp
+ Added -pic option to 3rd party libs. This switch will
make them use -pic when creating their static libs,
which allows to link them to contrib dynlibs when
using HB_BUILD_CONTRIB_DYN=yes.
* contrib/hbwin/tests/dlg.prg
* Minor formatting.
* debian/control
* Update.
* contrib/hbmzip/3rd/minizip/minizip.dif
* contrib/hbmzip/3rd/minizip/ioapi.h
! Fixed type for haiku/beos.
; [Tamas Tevesz]
* contrib/hbxbp/xbpappevent.prg
! Renamed XbpAppEventToQKeyEvent() to hbxbp_AppEventToQKeyEvent()
; TOFIX: Demessify these public function names:
HBXBPAPPDESKTOP
HBXBP_APPEVENTTOQKEYEVENT
HBXBP_CLEAREVENTBUFFER
HBXBP_CONVERTAFACTFROMXBP
HBXBP_GETNEXTID
HBXBP_INITIALIZEEVENTBUFFER
HBXBP_SETEVENTLOOP
XBP_SETPRESPARAM
XBP_SETPRESPARAMIFNIL
XBP_XBPTOQTNAME
Probably HBXBP_ should be used consistently in all above.
* contrib/hbmzip/3rd/minizip/minizip.dif
* contrib/hbmzip/3rd/minizip/ioapi.h
! Fixed for cygwin. [Tamas Tevesz]
* contrib/hblzf/3rd/liblzf/lzfP.h
* contrib/hblzf/3rd/liblzf/liblzf.dif
! Fixed for bcc. [Tamas Tevesz]
* utils/hbmk2/hbmk2.prg
! Fixed to include hbmainstd after converting cygwin from
compiler to platform.
; QUESTION: should we use hbmainwin for cygwin apps in -gui mode?
* contrib/hbmzip/hbmzip.hbp
* Changed header used for minizip autodetection.
zip.h is also used by component named libzip.
Thanks to Przemek for the hint.
[ looking for multiple headers (possibly connected by various
bool operators) is too huge work for so far too little gain, so
for now I pass it.]
* contrib/hbrun/hbrun.prg
+ Use HB_GTI_FULLSCREEN to detect if the GT is capable of non-console
mode of operation (formely hard-wired check for GTCGI was done).
Pls verify me.
* config/postinst.hbs
+ Show msg that postinst.hbs is finished (and errlev) [Tamas]
* contrib/hbmxml/3rd/minixml/mxml.hbp
* contrib/3rd/sqlite3/sqlite3.hbp
* contrib/hbmzip/3rd/minizip/minizip.hbp
* contrib/hblzf/3rd/liblzf/lzf.hbp
* contrib/hbxdiff/3rd/libxdiff/xdiff.hbp
* contrib/hbexpat/3rd/expat/expat.hbp
* contrib/hbbz2/3rd/bz2/bz2.hbp
* contrib/hbhpdf/3rd/libhpdf/libhpdf.hbp
! Do not create dynamic version of 3rd party dependencies hosted
locally. It should fix some problems on *nix builds with
HB_BUILD_CONTRIB_DYN=yes.
* contrib/hbrun/hbrun.hbp
+ -o option.
* utils/hbmk2/hbmk2.prg
+ Added dynlib dir + prefix to --hbinfo output.
* examples/gtwvw/wvwfuncs.c
* Renamed WIN_RECTANGLE() to WVW_RECTANGLE()
* Renamed WIN_SETBKMODE() to WVW_SETBKMODE()
- Deleted WIN_LOWORD()
- Deleted WIN_HIWORD()
; INCOMPATIBILITY: If you used WIN_RECTANGLE() or WIN_SETBKMODE()
specifically from GTWVW, change these calls to
the neww WVW_*() versions.
If you used WIN_LOWORD() or WIN_HIWORD(),
link hbwin lib (hbwin.hbc) to your app.
* contrib/*/*.hbx
* Regenerated.
* src/rtl/hbsocket.c
* contrib/xhb/xhb.hbp
* contrib/3rd/sqlite3/sqlite3.hbp
* contrib/hbmzip/3rd/minizip/minizip.dif
* contrib/hbmzip/3rd/minizip/ioapi.h
* INSTALL
; Further Minix patch from Tamas:
* contains small touchups to src/rtl/hbsocket.c to bring the previous
modifications in line with the rest, plus typo fixes
* disables contrib/xhb until minix gets the features needed
* disables contrib/3rd/sqlite3, pending investigation
* makes contrib/hbmzip work
* adds some notes to INSTALL
* utils/hbmk2/hbmk2.prg
+ HB_HAS_<name> hbmk2 macro is now defined, in case a given
dependency gets detected.
+ HB_HAS_<name>_LOCAL hbmk2 macro is now defined, in case a
given dependency gets detected on a local path.
+ Added -depfinish=<name> option which will tell hbmk2 to
not expect any more <name> related dependency information,
and do the detection right there while processing options.
Combined with above macros, now it's possible to use
filters based dependency detection results.
* contrib/hbsqlit3/hbsqlit3.hbp
* contrib/hbmzip/hbmzip.hbp
* contrib/hbexpat/hbexpat.hbp
* contrib/hbbz2/hbbz2.hbp
* contrib/hbhpdf/hbhpdf.hbp
* contrib/sddsqlt3/sddsqlt3.hbp
+ By using above hbmk2 feature, now the locally hosted
dependency won't be referenced (and thus won't be built)
if the dependency is detected on a user supplied or
system path.
This effectively restores previous behavior (before
moving 3rd party libs to hbmk2 build system / contrib
area), and f.e. if a Linux user has sqlite3 installed
as a system package, the locally hosted version won't
be built.
* contrib/hbexpat/3rd/expat/expat.hbp
* expat locally hosted sources are now not excluded from
*nix builds, and they will be used if it's not installed
as a system package.
- external/zlib
- external/png
- external/jpeg
- external/hbpmcom
- external/pcre
- external/Makefile
+ src/3rd
+ src/3rd/zlib
* src/3rd/zlib/Makefile
+ src/3rd/png
* src/3rd/png/Makefile
+ src/3rd/hbpmcom
* src/3rd/hbpmcom/Makefile
+ src/3rd/jpeg
* src/3rd/jpeg/Makefile
+ src/3rd/pcre
* src/3rd/pcre/Makefile
+ src/3rd/Makefile
* Moved /external to /src/3rd
; This way all core components reside in core.
; NOTE: png, jpeg are not referenced by core components,
so they may be moved to contrib area in the future.
* config/detect.mk
* Makefile
* src/Makefile
* src/rtl/hbcom.c
* contrib/hbmzip/hbmzip.hbp
* contrib/hbmzip/3rd/minizip/minizip.hbp
* contrib/hbhpdf/hbhpdf.hbp
* contrib/hbhpdf/3rd/libhpdf/libhpdf.hbp
* contrib/hbhpdf/3rd/libhpdf/hpdf.h
* contrib/hbwin/hbwin.hbp
* Updated to reflect above change.
; NOTE: Now -j builds can be optimized to better overlap with
3rd component builds. Please do it in src/Makefile.
* contrib/hbplist
* Updated.
* contrib/hbhpdf/hbhpdf.hbp
* contrib/hbhpdf/hbhpdf.hbc
* contrib/hbexpat/3rd/expat/expat.hbc
! Fixed for 'HB_BUILD_CONTRIB_DYN=yes'
* external/Makefile
- external/libhpdf
+ contrib/hbhpdf/3rd
+ contrib/hbhpdf/3rd/libhpdf
* contrib/hbhpdf/3rd/libhpdf/libhpdf.hbc
* contrib/hbhpdf/3rd/libhpdf/libhpdf.hbp
* Moved to contrib local dir.
+ Added support for 'HB_BUILD_CONTRIB_DYN=yes'
* contrib/hbhpdf/3rd/libhpdf/hpdf.h
! Fixed for dynamic build.
; TODO: Regenerate .dif. For me it restored original copy for some reason :(
* contrib/hbsqlit3/hbsqlit3.hbc
* contrib/sddsqlt3/sddsqlt3.hbc
* Using .hbc file for 3rd party lib.
* contrib/3rd/sqlite3/sqlite3.hbp
* contrib/hbhpdf/3rd/libhpdf/libhpdf.hbp
* contrib/hbmzip/3rd/minizip/minizip.hbp
* contrib/hbexpat/3rd/expat/expat.hbp
! Changed -warn=no to -warn=low, which is equivalent to 'HB_BUILD_WARN := no'
in Makefile.
* utils/hbmk2/hbmk2.prg
* Changed the way target selection (-hblib, -hbdyn*, -hbexe, etc)
options are handled. So far the last one specified remained
active, now the first one specified will stay active.
IOW: 'hbmk2 -hbdyn mylib.hbp' will result in dynamic lib target,
even if mylib.hbp contains -hblib option.
; Beware of some regressions or incompatibility with certain
build configs.
* contrib/hbpost.hbm
* contrib/hbpre.hbm
* Moved -hbdyn option to hbpre.hbm. This makes it possible
for .hbp files to act differently when built as dynamic lib.
; Such will be required for
* external/libhpdf/libhpdf.hbp
* Cleared TOFIX after above changes.
* contrib/hbplist
* contrib/hbmzip/hbmzip.hbp
* contrib/hbmzip/hbmzip.hbc
- external/minizip
+ contrib/hbmzip/3rd
+ contrib/hbmzip/3rd/minizip
* contrib/hbmzip/3rd/minizip/minizip.hbc
* contrib/hbmzip/3rd/minizip/minizip.hbp
- contrib/hbmzip/3rd/minizip/Makefile
* Moved minizip dir under the contrib that uses it.
; Please test.
* harbour/src/rtl/gtstd/gtstd.c
* updated to compile with WinCE
* harbour/package/harbour.spec
* modified to work with new HBMK2 translations
* harbour/contrib/hbmzip/hbmzip.c
! fixed function order
* harbour/contrib/hbwin/axcore.c
* include <olectl.h>
! fixed buffer sizes in debug function
* removed trailing spaces and tabs
* harbour/contrib/hbwin/hbolesrv.c
* include <tchar.h> - for some compilers which do not make it
with OLE header files
* harbour/utils/hbmk2/hbmk2.prg
* use "~hbmk" instead of ".hbmk" as temporary directory name in DOS
builds to avoid problem with unsupported file names.
TODO: for better customization we need new function:
HB_FNameCheck( <cFileName> ) -> <lNameOK>
* harbour/contrib/hbmzip/hbmzip.c
! fixed GPF when file datetime is passed as 3-rd argument to
HB_ZipFileCreate()
% eliminated repeated code
* harbour/include/hbcom.ch
* updated few comments
* harbour/include/hbapicom.h
* harbour/src/rtl/hbcom.c
+ added new C function:
HB_FHANDLE hb_comGetDeviceHandle( int iPort );
* small cleanup in OS2 flow control setting
* harbour/src/rtl/hbcomhb.c
+ added new PRG function
HB_COMGETDEVICEHANDLE( nPort ) --> nHandle | F_ERROR
* modified HB_COMFLOWCONTROL() to not change existing flow control
when 3-rd parameter is missing:
HB_COMFLOWCONTROL( nPort, @nOldFlow [, nNewFlow] ) --> lSuccess
* harbour/contrib/hbmzip/hbmzip.c
! fixed date setting in HB_ZIPFILECREATE()
* contrib/hbmzip/hbmzip.c
! Fixed potential GPF in HB_ZIPDELETEFILE() and HB_UNZIPFILEINFO()
Report and patch by Leandro Damasio. Thanks.
* INSTALL
- Deleted actual example value from HB_QTPOSTFIX. Users were setting
this unnecessarily thinking they need it. The minority how really
need this will know what this is about anyway.
* contrib/make.hbs
+ Reworked, simplified internals to support multiple projects
inside one package directory (currently hbtip is the only one)
+ Implemented to honor directories in .hbc references.
(clearing one item in TODO list)
; HB_BUILD_CONTRIB_DYN feature is out of experimental status
as far as make.hbs is concerned.
* contrib/hbmzip/hbmzip.hbc
* contrib/hbxbp/hbxbp.hbc
* contrib/hbnetio/hbnetio.hbc
+ Added experimental support to request libs in dynamic (.dll) flavour.
Currently this can be enabled by setting envvar: __HB_DYN__=_dll
To make this work one has to build all contribs using HB_BUILD_CONTRIB_DYN=yes
beforehand.