* contrib/hbcurl/hbcurl.hbc
* contrib/hbssl/hbssl.hbc
! Fixed to always look for dynamic version of own implib
(which is thus filtered out) and the dependencies when
used for building dynamic lib (IOW in this case disregard
the HB_STATIC_* setting), f.e. when HB_BUILD_CONTRIB_DYN=yes.
* include/harbour.hbx
+ Added HB_SOCKETGETHOSTNAME().
* contrib/hbcurl/hbcurls.hbp
* contrib/hbssl/hbssls.hbp
* Changed to not build dlls against static lib dependencies.
* contrib/hbssl/hbssl.hbp
! Fixed regression (in 2011-02-03 01:44 UTC+0100 Viktor Szakats)
causing implibs to not be generated for openssl.
* contrib/hbexpat/tests/test.prg
* contrib/hbexpat/tests/tohash.prg
* Tweaked to find example xml file out of the box.
* contrib/hbexpat/hbexpat.c
* contrib/hbcurl/hbcurl.c
* contrib/hbssl/ssl.c
* contrib/hbssl/pem.c
% Using hb_vmPush*() functions instead of less efficient
hb_evalBlock*().
Calls requiring UTF8 conversion were not optimized.
* contrib/hbzebra/coredraw.c
! Fixed to use HB_DEFAULT_DECIMALS instead of hard coded 2.
* contrib/hbmxml/hbmxml.c
! Fixed to use hb_itemPutC() instead of hb_itemPutCConst().
(use the latter for 'static const' strings only)
* contrib/hbmxml/tests/reminder.prg
* contrib/hbmxml/tests/test.prg
! Fixed warnings and errors preventing these
tests from building.
* contrib/hbexpat/hbexpat.c
* contrib/hbcurl/hbcurl.c
* contrib/hbssl/ssl.c
* contrib/hbssl/pem.c
+ Added support also for function pointers where codeblocks
were accepted. Please test it.
NOTE: It was easy change because PHB_ITEM was already
used to store the callback value and official Eval API
was used to call the callbacks.
* contrib/hbssl/tests/pem.prg
+ Added example for function pointer callback.
* contrib/hbssl/pem.c
% Minor optimization.
* contrib/hbcurl/hbcurl.hbc
* Changed to use 'libcurl' as implib name also for mingw.
This name will work for the implib generated
by Harbour build process. If you want to use something
else (f.e. one shipped with a prebuilt libcurl binary release),
update the .hbc file locally.
* utils/hbrun/hbrun.prg
* Minor stdization in recent output msgs.
* contrib/gtalleg/gtalleg.hbc
! Fixed allegro-config command to not contain output redirection.
* contrib/hbcurl/hbcurl.hbc
! Fixed lib name on non-win platforms.
* contrib/hbgd/hbgd.hbc
! Fixed gd lib name on Linux.
* contrib/hbodbc/hbodbc.hbp
* contrib/sddodbc/sddodbc.hbp
* contrib/hbssl/hbssls.hbp
* contrib/hbcurl/hbcurl.hbc
* contrib/hbcurl/hbcurls.hbp
% Using allwin instead of win|wce.
* utils/hbmk2/hbmk2.prg
+ Added trick to not corrupt version numbers in libnames when
adding extension. (it will check for extensions beginning
with numeric and add instead of replace extension in such case)
! Fixed pkg-config/*-config parser when result contained LF chars.
* config/postinst.hbs
* Do not create dynlib symlink on non-*nix platforms.
; Now HB_BUILD_CONTRIB_DYN works for all contribs also on Linux.
; TODO: Shouldn't harbour-2.1.0.so be called harbour.so.2.1.0 ?
; TODO: Creating versionless links for contribs.
* utils/hbmk2/hbmk2.prg
% Implemented optimized header parser code created by Przemek.
With these additions/modifications from previous algorithm:
+ Use FindHeader() to locate the referenced headers.
+ Use different algorithm to find C vc PRG headers.
% Completely skip known standard system headers.
% Do not go down to headers included as system (using <>)
IOW Check their timestamp but don't parse it for sub-headers.
Please review it, it was quite a tough task, so I may have
missed something. Here my reference build time went down
from ~4 to ~2.5secs.
! Above implementation had the nice side effect that it fixed
-autohbc feature in -inc mode.
! Fixed header finder code to always look in parent dir
(and don't look in current dir in such case).
I'd appreciate if this function (FindHeader() would be peer-reviewed
to verify if it really matches the way how Harbour and C compilers
try to find headers.
* config/postinst.hbs
! Fixed typo in a recent commit causing RTE.
* config/hbextern.hbs
* Hide stderr in lib listing call.
* contrib/hbcurl/hbcurl.c
% Use '#include <>' to refer to curl header.
* utils/hbmk2/hbmk2.prg
- Deleted handling of .hbi extension.
- Deleted -target and -alltarget cmdline options as an
effort for simplification. Now all cmdline options apply
to all targets.
+ .hbp file references will now be executed as sub-projects,
using an internal recursive call to the hbmk2 engine.
This means that projects can now be embedded. INCOMPATIBLE
if someone used .hbp file references inside other make
files. If you want to create common settings in a separate
file, always use .hbm extension.
Pls note that sub-projects will inherit all cmdline options
of original hbmk2 invocation.
+ Added ${hb_targetname} macro to return the parent project
name.
+ Added ${hb_targettype} macro. Returning target type.
+ Changed -run option to only run the top level project.
+ Changed --hbinfo to return a flat list of information
about all projects involved. Currently the main project
is the last one in the list (order of execution).
+ Filters can now be used also for file inclusion and -skip
options (which means they can now be used for all possible
cmdline and .hbm/.hbp options)
! Fixed the way automatic cmdline options based on
hbmk2's own filename are created. From now -hbcmp, -hblnk,
-hbcc, -rtlink, -xhb, -hb10 will be added to the left side
of the existing option (to precede everything else), while
the rest (f.e. -hblib, -hbexe, -hbdyn) will be added last.
; NOTE: Quite heavy changes so pls expect (and report) any
regressions. Most probably there will be room for
tweaks here and there to make the new cascading build
feature as smooth as possible.
* contrib/make.hbs
% Internally simplified since now the handling of sub-projects
is the job of hbmk2 and .hbp make files.
+ In standalone mode it will now detect the name of the project
in current dir, so the codepaths are much similar to the
GNU Make mode now and stdalone mode will also rely on pkglist,
instead of trying to detect what to build on its own.
+ Not require pkglist to list any sub-projects anymore, now
it's simple list of main .hbp files.
+ Changed along with hbmk2 to deal with multiple project
information returned by --hbinfo.
+ Avoid using the word "contrib", use "package" instead.
* contrib/pkglist
* Simplified to a mere list of main .hbp files for packages.
* utils/hbrun/hbrun.prg
* contrib/make.hbs
* config/postinst.hbs
* PathSepToSelf() rewritten to not make assumptions about
__PLATFORM__* macro vs hb_ps() value, instead use hb_ps()
value to decide what to do.
* utils/hbrun/hbrun.prg
! Fixed to not save the (empty) history after each non-interactive
session.
* config/win/cygwin.mk
! Fixed to add z and pcre libs if the locally hosted ones
aren't used.
* contrib/hbqt/generator/hbqtgen.prg
! Fixed OS names in doc output.
* Formatting.
* contrib/gtalleg/gtalleg.hbm
* contrib/gtalleg/gtalleg.hbp
* contrib/gtalleg/gtallegs.hbp
* contrib/hbcurl/hbcurl.hbm
* contrib/hbcurl/hbcurl.hbp
* contrib/hbcurl/hbcurls.hbp
* contrib/hbtip/hbtip.hbm
* contrib/hbtip/hbtip.hbp
* contrib/hbtip/hbtipssl.hbp
* contrib/hbssl/hbssl.hbm
* contrib/hbssl/hbssl.hbp
* contrib/hbssl/hbssls.hbp
* contrib/hbqt/hbqt_common.hbm
- contrib/hbqt/hbqt.hbm
+ contrib/hbqt/filelist.hbm
* contrib/hbqt/hbqt.hbp
* contrib/hbqt/hbqts.hbp
* contrib/hbqt/hbqtgui.hbp
* contrib/hbqt/hbqtguis.hbp
* contrib/hbqt/hbqtcore.hbp
* contrib/hbqt/hbqtcores.hbp
* contrib/hbqt/hbqtnetwork.hbp
* contrib/hbqt/hbqtnetworks.hbp
- contrib/hbqt/gtqtc/gtqtc.hbm
+ contrib/hbqt/gtqtc/filelist.hbm
* contrib/hbqt/gtqtc/gtqtc.hbp
* contrib/hbqt/gtqtc/gtqtcs.hbp
* contrib/hbqt/qtwebkit/hbqtwebkit.hbp
* contrib/hbqt/qtwebkit/hbqtwebkits.hbp
* contrib/hbqt/qtdesigner/hbqtdesigner.hbp
* contrib/hbqt/qtdesigner/hbqtdesigners.hbp
* contrib/hbqt/hbqscintilla/hbqscintilla.hbp
* Cleanup along with latest changes:
Using ${hb_targetname} instead of ${hb_name}, so it's safe to
use it inside .hbm file, instead of replicating them in every
.hbp file.
+ Now primary .hbp project files always reference the sub-project
.hbp files:
- hbqt
+ hbqts
+ hbqtcore
+ hbqtcores
+ hbqtgui
+ hbqtguis
+ hbqtnetwork
+ hbqtnetworks
Which means that 'hbmk2 hbqt.hbp' will rebuild the whole
stuff (all libs, and even static libs if requested) in one pass.
* Renamed some file for more uniform layout.
* INSTALL
* Documented how to [re]build one specific contrib package.
* INSTALL
* contrib/make.hbs
* Using 'contrib package' instead of 'contrib lib'.
* package/winuni/mpkg_win_uni_extra_copy.bat
* Do not install contrib utils sources anymore. If they
are important, they can be built as part of regular build
a shipped as binary.
* package/winuni/mpkg_win_uni_extra_copy.bat
* contrib/make.hbs
* contrib/hbqt/generator/hbqtgen.prg
- contrib/hbmysql/hbmysql.hbi
- contrib/hbmysql/Makefile
- contrib/gtalleg/gtalleg.hbi
- contrib/gtalleg/gtallegs
- contrib/gtalleg/Makefile
- contrib/hbct/Makefile
- contrib/sddmy/sddmy.hbi
- contrib/sddmy/Makefile
- contrib/hbodbc/Makefile
- contrib/xhb/Makefile
- contrib/sddfb/sddfb.hbi
- contrib/sddfb/Makefile
- contrib/hbtpathy/Makefile
- contrib/hbgt/Makefile
- contrib/hbsqlit3/Makefile
- contrib/hbmzip/Makefile
- contrib/hbblat/Makefile
- contrib/hbblat/hbblat.hbi
- contrib/hbqt/qtgui/qtguis
- contrib/hbqt/qtgui/Makefile
- contrib/hbqt/qtcore/qtcores
- contrib/hbqt/qtcore/Makefile
- contrib/hbqt/qtcore/filelist.mk
- contrib/hbqt/Makefile
- contrib/hbqt/detect.mk
- contrib/hbqt/filelist.mk
- contrib/hbqt/hbqts
- contrib/hbqt/gtqtc/gtqtcs
- contrib/hbqt/gtqtc/Makefile
- contrib/hbqt/moc.mk
- contrib/hbqt/qtnetwork/filelist.mk
- contrib/hbqt/qtnetwork/qtnetworks
- contrib/hbqt/qtnetwork/Makefile
- contrib/hbfbird/hbfbird.hbi
- contrib/hbfbird/Makefile
- contrib/sddpg/sddpg.hbi
- contrib/sddpg/Makefile
- contrib/hbziparc/Makefile
- contrib/hbxbp/Makefile
- contrib/hbbz2/Makefile
- contrib/hbblink/Makefile
- contrib/hbnf/Makefile
- contrib/hbcurl/hbcurl.hbi
- contrib/hbcurl/hbcurls
- contrib/hbcurl/Makefile
- contrib/hbmemio/Makefile
- contrib/hbxpp/Makefile
- contrib/hbfship/Makefile
- contrib/hbcups/Makefile
- contrib/rddbmcdx/Makefile
- contrib/hbfoxpro/Makefile
- contrib/hbnetio/Makefile
- contrib/rddsql/Makefile
- contrib/hbhpdf/hbhpdf.hbi
- contrib/hbhpdf/Makefile
- contrib/gtwvg/Makefile
- contrib/hbpgsql/hbpgsql.hbi
- contrib/hbpgsql/Makefile
- contrib/hbclipsm/Makefile
- contrib/rddads/rddads.hbi
- contrib/rddads/Makefile
- contrib/sddsqlt3/Makefile
- contrib/hbfimage/hbfimage.hbi
- contrib/hbfimage/Makefile
- contrib/sddodbc/Makefile
- contrib/hbgd/hbgd.hbi
- contrib/hbgd/Makefile
- contrib/hbmisc/Makefile
- contrib/sddoci/sddoci.hbi
- contrib/sddoci/Makefile
- contrib/hbcomm/Makefile
- contrib/hbtip/hbtipssl
- contrib/hbtip/Makefile
- contrib/hbcairo/hbcairo.hbi
- contrib/hbcairo/Makefile
- contrib/hbwin/Makefile
- contrib/hbssl/hbssls
- contrib/hbssl/hbssl.hbi
- contrib/hbssl/Makefile
- contrib/hbsms/Makefile
- Deleted references to .hbi and GNU Make files in contrib
area. Now hbmk2 is used here to create the targets.
This has a few consequences:
- From now on *.hbp / *.hbc files need to be updated
whenever files are added, deleted or renamed. Pls remember it.
- hbmk2 will have to be updated in sync with the GNU Make
system when adding new platforms and compilers.
- in-place 'make' won't work, pls see new method in
INSTALL. (it may still change)
* utils/hbmk2/hbmk2.prg
+ Added mingw/mingw64 version detection. Not very extensively
tested.
+ Added -depimplibs=, -depimplibd cmdline options, and depimplibs=
and depimplibd .hbc options. They serve to configure automatic
(without stdalone .hbi file using -hbimplib) import library
generation for dependencies. The internal logic is the same,
but now implibs can be generated for multiple dependencies
at once, using pure .hbp files (or eveb .hbc for that matter).
+ Filters now also support '<' and '>' operators.
+ Filters will now expand internal macros before looking for
envvars.
+ Added HB_COMP_VER macro, returning compiler version.
! Fixed to handle "*.hbs" passed as option.
! Fixed to do entry detection also for .hbs files.
* contrib/make.hbs
- Temply disabled .hbi handling, now it's done by .hbp files.
! Refixed to skip hbhrb/hbppo projects in stdalone mode.
* contrib/hbqt/tests/testbrow.prg
* Updated with Bacco's 'testedit.prg' sent to the list.
* Formatting. (pls try to format it like this)
* contrib/hbpost.hbm
+ Enabled 'dynamicbase' and 'nxcompat' exe generation flags
for newer versions of msvc and mingw, to be in sync with
our GNU Make settings (and safety).
* contrib/xhb/hbcompat.ch
! Fixed some wrong xhb to Harbour translations reported by Rossine.
* contrib/hbide/hbide.hbp
% Deleted -gc3. It made the executable 2MBs larger.
Pls report any performance problems after this
change.
* contrib/gtalleg/gtalleg.hbp
* contrib/hbblat/hbblat.hbp
* contrib/hbcairo/hbcairo.hbp
* contrib/hbcurl/hbcurl.hbp
* contrib/hbfbird/hbfbird.hbp
* contrib/hbfimage/hbfimage.hbp
* contrib/hbgd/hbgd.hbp
* contrib/hbhpdf/hbhpdf.hbp
* contrib/hbmysql/hbmysql.hbp
* contrib/hbpgsql/hbpgsql.hbp
* contrib/hbssl/hbssl.hbp
* contrib/rddads/rddads.hbp
* contrib/sddfb/sddfb.hbp
* contrib/sddmy/sddmy.hbp
* contrib/sddoci/sddoci.hbp
* contrib/sddpg/sddpg.hbp
+ Added new switches to enabled automatic import library
generation without .hbi files.
Please note that this means that now HB_WITH_BLAT will
have to be set from now on for hbblat lib.
* config/global.mk
* Minor.
* config/win/watcom.mk
! Fixed to add .exe extension to watcom tools to make it work
in wine-based cross build situations. [pls note that watcom
can create cross builds using its native tools, so this is
just the cherry on top :)]
Patch provided by Tamas Tevesz.
* include/hbdefs.h
+ Added HB_SIZE_SIGNED macro which enables signed HB_SIZE
types. It so far dangerous setting because it may generate
breakage without compiler warning, f.e. STUFF() GPFs
in hbtest after enabling it. Plus there is about 40-60
new warnings shown, I'm out of ideas how to fix most
of them.
* src/rtl/filesys.c
* Changed to pass LPDWORD to ReadFile()/WriteFile()
win32 branch, instead of *HB_SIZE. It caused warnings
for signed HB_SIZE.
; Please review me.
* ChangeLog
* Updated VxWorks notes in 2010-07-16 18:22 UTC+0200 Viktor Szakats
with missing hb_secondsCPU() support yet.
* contrib/gtalleg/gtallegs.hbp
* contrib/hbcurl/hbcurls.hbp
* contrib/hbssl/hbssls.hbp
* contrib/hbtip/hbtipssl.hbp
+ Added -hblib options to make it easy for tools to detect
target types.
* contrib/gtalleg/gtalleg.c
! Fixed C mode MSVC function pointer cast warning.
* src/rtl/hbsocket.c
* Minor cosmetic.
* contrib/hbqt/qtgui/QFormLayout.cpp
* contrib/hbqt/doc/en/*.txt
* Regenerated.
* contrib/hbqt/generator/hbqtgen.prg
! Fixed missing initialization for enums returned
by reference. An msvc warning was shown about them.
; TOFIX: I've reported similar warnings long ago with msvc. Anybody to fix them?
---
hbqt_hbqplaintextedit.cpp
...\qt\4.5.3\include\qtcore\../../src/corelib/concurrent/qtconcurrentiteratekernel.h(101) : warning C4512: 'QtConcurrent::BlockSizeManager' : assignment operator could not be generated
...\qt\4.5.3\include\qtcore\../../src/corelib/concurrent/qtconcurrentiteratekernel.h(83) : see declaration of 'QtConcurrent::BlockSizeManager'
hbqt_hbqsyntaxhighlighter.cpp
...\qt\4.5.3\include\qtcore\../../src/corelib/global/qglobal.h(2078) : warning C4512: 'QForeachContainer<T>' : assignment operator could not be generated
with
[
T=QMap<QString,HBQSyntaxHighlighter::HighlightingRule>
]
hbqt\hbqt_hbqsyntaxhighlighter.cpp(172) : see reference to class template instantiation 'QForeachContainer<T>' being compiled
with
[
T=QMap<QString,HBQSyntaxHighlighter::HighlightingRule>
]
moc_hbqt_hbqplaintextedit.cpp
...\qt\4.5.3\include\qtcore\../../src/corelib/concurrent/qtconcurrentiteratekernel.h(101) : warning C4512: 'QtConcurrent::BlockSizeManager' : assignment operator could not be generated
...\qt\4.5.3\include\qtcore\../../src/corelib/concurrent/qtconcurrentiteratekernel.h(83) : see declaration of 'QtConcurrent::BlockSizeManager'
QMimeData.cpp
...\qt\4.5.3\include\qtcore\../../src/corelib/global/qglobal.h(2078) : warning C4512: 'QForeachContainer<T>' : assignment operator could not be generated
with
[
T=QList<QUrl>
]
hbqt\qtcore\QMimeData.cpp(451) : see reference to class template instantiation 'QForeachContainer<T>' being compiled
with
[
T=QList<QUrl>
]
HBQPlainTextEdit.cpp
...\qt\4.5.3\include\qtcore\../../src/corelib/concurrent/qtconcurrentiteratekernel.h(101) : warning C4512: 'QtConcurrent::BlockSizeManager' : assignment operator could not be generated
...\qt\4.5.3\include\qtcore\../../src/corelib/concurrent/qtconcurrentiteratekernel.h(83) : see declaration of 'QtConcurrent::BlockSizeManager'
---
* utils/hbmk2/hbmk2.prg
! Fixed to honor -stop option in -hbimplib mode.
! Fixed --hbinfo when there is missing dependency.
* contrib/hbmysql/hbmysql.hbi
* contrib/gtalleg/gtalleg.hbi
* contrib/sddmy/sddmy.hbi
* contrib/sddfb/sddfb.hbi
* contrib/hbblat/hbblat.hbi
* contrib/hbfbird/hbfbird.hbi
* contrib/sddpg/sddpg.hbi
* contrib/hbcurl/hbcurl.hbi
* contrib/hbhpdf/hbhpdf.hbi
* contrib/hbpgsql/hbpgsql.hbi
* contrib/rddads/rddads.hbi
* contrib/hbfimage/hbfimage.hbi
* contrib/hbgd/hbgd.hbi
* contrib/sddoci/sddoci.hbi
* contrib/hbcairo/hbcairo.hbi
* contrib/hbssl/hbssl.hbi
+ Added -stop option in case HB_WITH_* var is empty.
This helps reducing some clutter in build log output.
* contrib/make.hbs
! Fixed to clear target type detection result from previous
contrib (even though such case cannot happen if hbmk2
does it's job right)
* contrib/hbdoc2/gentpl.prg
* contrib/hbdoc2/gentxt.prg
* contrib/hbdoc2/tmplates.prg
* contrib/hbdoc2/genxml.prg
* contrib/hbdoc2/genhtml.prg
* contrib/hbdoc2/hbdoc2.prg
* contrib/hbdoc2/hbdoc2.ch
% Peeling off unused code and other cleanup work.
(didn't retest)
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Added -instfile= option, instfiles= .hbc option and hbmk2 plugin
API to add new files to the list of files to be copied to
-instpath= targets. This option makes it possible to install
extra files along the target lib or exe itself, f.e. headers
or other supplementary files. This option only works for
-instpath= options which point to a dir (not a file).
* contrib/gtwvg/gtwvg.hbp
* contrib/hbblat/hbblat.hbp
* contrib/hbblink/hbblink.hbp
* contrib/hbbz2/hbbz2.hbp
* contrib/hbcairo/hbcairo.hbp
* contrib/hbclipsm/hbclipsm.hbp
* contrib/hbct/hbct.hbp
* contrib/hbcurl/hbcurl.hbp
* contrib/hbfimage/hbfimage.hbp
* contrib/hbfoxpro/hbfoxpro.hbp
* contrib/hbgd/hbgd.hbp
* contrib/hbhpdf/hbhpdf.hbp
* contrib/hbmysql/hbmysql.hbp
* contrib/hbmzip/hbmzip.hbp
* contrib/hbnf/hbnf.hbp
* contrib/hbodbc/hbodbc.hbp
* contrib/hbpgsql/hbpgsql.hbp
* contrib/hbqt/gtqtc/gtqtc.hbp
* contrib/hbqt/hbqt.hbp
* contrib/hbsqlit3/hbsqlit3.hbp
* contrib/hbssl/hbssl.hbp
* contrib/hbtip/hbtip.hbp
* contrib/hbtpathy/hbtpathy.hbp
* contrib/hbwin/hbwin.hbp
* contrib/hbxbp/hbxbp.hbp
* contrib/hbxpp/hbxpp.hbp
* contrib/rddads/rddads.hbp
* contrib/rddsql/rddsql.hbp
* contrib/xhb/xhb.hbp
+ Added -instfile= options for headers installed by Makefile.
; TODO: Make copying of headers to central dir unnecessary on
*nix platforms as well.
* contrib/makefile.hbs
* Updated TODOs.
* contrib/hbqt/gtqtc/gtqtc.hbp
% Deleted -pi= option.
* contrib/hbqt/gtqtc/gtqtcs/Makefile
* Not needed to install headers from secondary (static) Makefile.
* examples/gfspell/gfspell.hbp
* examples/gtwvw/gtwvw.hbp
* examples/hbapollo/hbapollo.hbp
* examples/hbbtree/hbbtree.hbp
* examples/hbdoc2/hbdoc2.hbp
* examples/hbextern/hbextern.hbp
* examples/hbsqlit2/hbsqlit2.hbp
* examples/hbvpdf/hbvpdf.hbp
* examples/ps32/ps32.hbp
* examples/rddado/rddado.hbp
* examples/superlib/superlib.hbp
+ Added -instfile= options for headers installed by Makefile.
+ Added -w option where missing.
- Deleted -q0, -l where present.
+ Synced output setup with contribs.
! Added hbxpp.hbc reference for ps32.
+ Added dependency detection for hbsqlit2, hbapollo.
! hbdoc2 GT changed to GTCGI.
; Now the contrib and examples .hbp files are completely on the same
feature level.
* ChangeLog
* Revised and updated status for pending TODOs TOFIXes of
this year.
* contrib/hbcurl/hbcurl.c
* contrib/hbcurl/hbcurl.ch
+ Added support for all new libcurl features introduced in
7.19.4, 7.20.0, 7.21.0
* Changed some recently added constants to be in sync libcurl
values.
* contrib/hbwin/Makefile
* contrib/hbwin/hbwin.hbp
+ contrib/hbwin/wapi_winnetwk.c
+ Added WAPI_WNETGETLASTERROR()
* contrib/hbct/ctnet.c
* NETREDIR(): Deleted Windows specific 4th parameter extension
which activated debug-style features (introduced in xhb)
based on WNetGetLastError() call. Such call was now added
separately to hbwin.
* contrib/hbide/hbide.prg
! Deleted hard-coded reference for specific QT version.
This should be solved differently.
; TOFIX: BTW the whole notion of having a special build
for a given distro is wrong. It should rather
do autodetection in all builds.
; Patches from Tamas Tevesz:
* src/rtl/memvarhb.prg
* Adjusted information on magic byte
+ Version number change to 1.
* src/rtl/hbcom.c
! Fix for linux/watcom link problem.
* bin/postinst.sh
* Ajustment for some undisclosed but probably weird system :)
* src/vm/itemapi.c
* src/vm/arrays.c
* src/vm/extend.c
* include/hbapi.h
* include/hbapiitm.h
* Changed new size API calls to use HB_ISIZ instead of HB_SIZE.
This is required until we switch HB_SIZE to be signed value,
and to not step backwards plus keep signedness compatibility
with 'long' API calls.
* contrib/xhb/xhbhasha.c
* contrib/hbcurl/hbcurl.c
+ Using size API.
* contrib/xhb/xhbhasha.c
! HAAGETREALPOS(): Fixed return value to be numeric.
* src/vm/runner.c
! Minor to prev.
* include/hbapi.h
* src/vm/extend.c
+ Added hb_parnsize(), hb_retnsize(), hb_stornsize() functions.
; NOTE: These should be used in place of hb_parnl(), hb_retnl(),
hb_stornl() when passing HB_SIZE types.
; TODO: Use them all accross Harbour if they are correct and
after being finalized.
* src/vm/itemapi.c
+ Added hb_itemGetNSize(), hb_itemPutNSize() functions.
* DATETIME stuff in hb_itemGetNL() marked as HB_LEGACY_LEVEL3.
; QUESTION: It's marked as to be deleted in the TODO, so maybe we should
rather delete it.
* include/hbapiitm.h
* src/rtl/filesys.c
+ hb_fsReadAt(), hb_fsWriteAt(): Added support for Win64 HB_SIZE.
; QUESTION: I assume these functions have the purpose of being
atomic seek + read without moving the file pointer,
which means current modification isn't safe. How
can this be solved given Windows doesn't seem to have
64-bit read/write API calls?
! Fixed old copy-paste typos in Windows OVERLAPPED initialization,
where the lines were ended with command instead of semicolon,
they didn't cause any harm though in their former location.
% Reverted a minor change from prev commit to make it
possibly a little bit faster, like it was before.
* src/rtl/hbzlib.c
+ Added casts (at external interface calls) and other fixes to
make it build for Win64 without warnings.
* src/rdd/dbfntx/dbfntx1.c
* src/rdd/dbfnsx/dbfnsx1.c
* src/rdd/dbfcdx/dbfcdx1.c
* src/rdd/dbffpt/dbffpt1.c
* contrib/rddbmcdx/bmdbfcdx.c
* HB_ULONG -> HB_SIZE where appropriate to avoid Win64 errors
and some warnings. I'm still not comfortable to touch this
code, but it could certainly need a type cleanup.
* include/hbdefs.h
+ Added HB_PFS macro which holds the printf() format string
for HB_SIZE value.
; TODO: Use it all accross Harbour.
* contrib/hbmysql/mysql.c
* contrib/sddmy/sddmy.c
* contrib/hbmzip/hbmzip.c
* contrib/hbcurl/hbcurl.c
* contrib/hbhpdf/harupdf.c
* contrib/hbpgsql/postgres.c
* contrib/rddads/adsfunc.c
* contrib/rddads/ads1.c
* contrib/hbfimage/fi_wrp.c
* contrib/sddodbc/sddodbc.c
* contrib/hbgd/gdwrp.c
* contrib/hbwin/wapi_wingdi.c
* contrib/hbwin/wapi_winbase.c
* contrib/hbwin/wapi_winuser.c
* contrib/hbwin/win_bmp.c
* contrib/hbwin/win_prn1.c
* contrib/hbwin/win_regc.c
* contrib/hbssl/evpciph.c
* contrib/hbssl/ssl.c
* contrib/hbssl/bio.c
* contrib/hbssl/sslctx.c
* contrib/hbssl/evpenc.c
* contrib/hbssl/pem.c
* contrib/hbssl/rand.c
* contrib/hbssl/evp.c
+ Added necessary casts at external component boundaries to
make Win64 builds warning-free.
* contrib/hbct/ctstrfil.c
+ HB_ISIZ -> HB_FOFFSET, hb_fsSeek() usage, other type cleanup
to handle file offsets correctly.
* contrib/xhb/hbnxs.h
* contrib/xhb/hbcrypt.c
! Fixed warnings for Win64.
* contrib/hbwin/win_prn3.c
* contrib/xhb/dbf2txt.c
* contrib/xhb/fparse.c
* int -> HB_ISIZ for Win64.
* contrib/xhb/freadlin.c
* hb_fsSeek() -> hb_fsSeekLarge().
* contrib/sddfb/sddfb.c
* Minor type cleanup to make Win64 warning-free.
* contrib/hbsqlit3/hbsqlit3.c
+ Added necessary casts at external interface calls.
% Deleted one dummy operation from SQLITE3_FILE_TO_BUFF().
* contrib/rddsql/sqlmix.c
* contrib/rddads/adsx.c
* HB_ULONG -> HB_SIZE.
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/wvggui.c
* contrib/gtwvg/wvgcuig.c
* contrib/gtwvg/wvgwin.c
* contrib/gtwvg/wvgutils.c
* contrib/gtwvg/wvgcore.c
! int -> HB_ISIZ/HB_SIZE
+ Added necessary casts at external component boundaries to
make Win64 warning-free.
* contrib/rddads/ads1.c
* HB_ULONG -> HB_SIZE
* contrib/hbtip/utils.c
* int -> HB_ISIZ
! Fixed to use HB_FOFFSET type to save/restore file position.
* ChangeLog
+ Added missing item to previous log entry:
! Fixed hb_fsCurDirBuff() for Win64.
; It's quite large commit, nevertheless I'd highly appreciate
peer review, and certainly there will be places which need
better or different solution for Win64.
* contrib/hbcurl/hbcurl.c
+ Added all remaining known guards to HB_CURLOPT_* options, so in
theory now f.e. even libcurl version 7.5.0 is supported.
! Fixed HB_CURLOPT_HTTPGET being disabled when building against
libcurl < 7.14.1
! Fixed HB_CURLOPT_FTP_ACCOUNT being enabled at the wrong libcurl
version.
* mpkg_nightly.sh
* Minor.
* package/winuni/RELNOTES
* Versions updated.
* contrib/hbcurl/hbcurl.c
! Fixed to build against very old libcurl versions.
% Using hb_parnldef().
! Fixed few guards being off by one minor version.
* src/vm/set.c
* Reset default value to "hb_out.log".
+ mpkg_nightly.sh
+ Added script to generate nightly sources.
; TODO: Upload nightlies to sf.net.
; TODO: Change nightly filenames to match our normal source releases.
; TOFIX: Current .zip nighly has wrong (*nix) EOLs. This has to be
changed to CRLF.
* INSTALL
* Changed nightly script URLs to point to sf.net file area.
! Minor fix to bug tracker address.
* contrib/xhb/regexrpl.prg
* contrib/hbtip/httpcli.prg
* contrib/hbtip/mail.prg
! Fixed to use EMPTY() on HB_REGEX[ALL]() return
value instead of NIL check.
Required after recent change in HB_REGEX*()
return values in no-match case.
* contrib/hbcurl/hbcurl.c
* contrib/hbcurl/hbcurl.ch
+ Added support to download-to/upload-from file handle.
* contrib/hbqt/qtgui/Makefile
* contrib/hbqt/qtcore/Makefile
* contrib/hbqt/Makefile
* contrib/hbqt/gtqtc/Makefile
* contrib/hbqt/qtnetwork/Makefile
! Fixed to not build separate HBQT libs for static
linkage for non-win/wce targets.
* package/mpkg_win.nsi
* package/winuni/mpkg_win_uni.nsi
* Changed to use 'Harbour Project' as folder name in registry.
(instead of 'Harbour'). Just to be consistent.
* package/winuni/mpkg_win_uni.nsi
+ Add major.minor version number to registry folder names.
This allows multiple major versions of Harbour to be installed
in parallel.
* contrib/xhb/ttable.prg
% '&("{||" + c + "}")' -> HB_MACROBLOCK()
* contrib/xhb/trpccli.prg
* contrib/xhb/hblognet.prg
* contrib/xhb/xcstr.prg
* contrib/xhb/tedit.prg
* contrib/xhb/xdbmodst.prg
* contrib/xhb/trpc.prg
* contrib/xhb/thtm.prg
* contrib/xhb/dumpvar.prg
* contrib/xhb/xhbmt.prg
* contrib/xhb/xhberr.prg
* contrib/xhb/ttable.prg
* contrib/xhb/txml.prg
* '.NOT.' -> '!'
% ValType( x ) == "Y" -> IS*()
* Some other basic formatting and cleanup.
* src/rtl/hbini.prg
* examples/httpsrv/session.prg
* Formatting.
* tests/db_brows.prg
* tests/server.prg
* tests/testrdd2.prg
* tests/setkeys.prg
* contrib/hbtip/tests/tiptest.prg
* contrib/hbtip/tests/loadhtml.prg
* examples/hbsqlit2/tests/hbsqlite.prg
* examples/gtwvw/tests/wvwtest9.prg
* examples/gtwvw/tests/ebtest7.prg
* '.NOT.' -> '!'
+ contrib/gtalleg/gtalleg.hbi
+ contrib/hbblat/hbblat.hbi
+ contrib/hbcairo/hbcairo.hbi
+ contrib/hbcurl/hbcurl.hbi
+ contrib/hbfbird/hbfbird.hbi
+ contrib/hbfimage/hbfimage.hbi
+ contrib/hbgd/hbgd.hbi
+ contrib/hbhpdf/hbhpdf.hbi
+ contrib/hbmysql/hbmysql.hbi
+ contrib/hbpgsql/hbpgsql.hbi
+ contrib/hbssl/hbssl.hbi
+ contrib/rddads/rddads.hbi
+ contrib/sddfb/sddfb.hbi
+ contrib/sddmy/sddmy.hbi
+ contrib/sddoci/sddoci.hbi
+ contrib/sddpg/sddpg.hbi
+ Added local import library generation hbmk2 make files
to each contrib which requires it.
* config/postinst.prg
+ Changed to use contrib local implib creation hbmk2 scripts to
create import libraries.
- Deleted mingw exception for ocilib to use the static library.
Static lib is definitely better, but if someone would like to
use it, it should be done locally/manually, just like for any
other dependency.
+ Solved firebird implib creation hack/exception in contrib
local .hbi file.
; These fix the last "centralization" issues in Harbour make system.
Still remains documentation problem (everything is in INSTALL),
and *nix .deb/.rpm centralized solution for contrib dependencies
and contrib names in general.
* utils/hbmk2/hbmk2.prg
+ Combining multiple -o options (one with name, one with directory)
is now supported in -hbimplib mode. This makes it work like in
other existing modes.
! Fixes regarding -o option combining and dir inheritance.
(beware of regressions here)
* contrib/gtalleg/gtalleg.hbc
* Changed to use import library on Windows with an unmodified name
(containing version).
* src/rtl/hbcom.c
! Fixed one non-ANSI comment.
* ChangeLog
+ Added two changes missed from prev entry:
* utils/hbmk2/hbmk2.prg
+ In -hbimplib mode any options are automatically passed to
import library creation command (so -iflag option is not
absultely needed)
- Deleted -mkimplibms option now replaces by generic -iflag
solution.
! Stripped UTF-8 char from a recent entry.
* contrib/hbcurl/hbcurl.c
+ Added suggested workaround for potential security exploit
when used with libcurl < 7.20.0.
See details here:
http://curl.haxx.se/docs/adv_20100209.html
* include/hbdefs.h
* Removed reliance on old type when defining some new types.
* contrib/hbcurl/hbcurl.c
* contrib/hbssl/ssl.c
* contrib/hbssl/evpmd.c
* Changed ULONG to HB_SIZE.
(HB_SIZE currently is the same as ULONG)
* contrib/hbssl/evp.c
* Changed ULONG to size_t in one place.
* harbour/src/rdd/dbfnsx/dbfnsx1.c
! fixed bug reported by Jaroslav Janik (many thanks) - if index FOR
expression excluded all records from non empty table then root page
was not initialized and DBFNSX generated corruption RTE.
* harbour/utils/hbi18n/hbi18n.prg
* set default GT to CGI
* harbour/src/common/hbgete.c
! fixed memory leak in non UNICODE Windows hb_getenv_buffer()
! add C stack buffers to eliminate memory allocation in UNICODE
Windows hb_getenv_buffer() - they are used if envvar name and
passed buffer are not too large. It fixes HB_FM_STATISTICS
Windows builds.
* harbour/contrib/hbwin/wapi_winuser.c
+ added WAPI_DESTROYWINDOW function
* harbour/contrib/xhb/traceprg.prg
* harbour/contrib/xhb/hbcompat.ch
! fixed typo in TraceLog() condition - was always disabled
+ added emulation for xHarbour Set( _SET_TRACE* [, <params,...> ] )
settings
* harbour/src/vm/hvmall.c
! define _GNU_SOURCE to fix compilation with HB_FM_DL_ALLOC in Linux
builds
* harbour/include/hbdefs.h
* declare HB_FOFFSET as LONG instead of LONGLONG on platforms where
LONG is 64bit integer to be compatible with C RTL file API
* harbour/src/vm/maindllh.c
* harbour/src/vm/maindllp.c
* harbour/contrib/hbct/ctstr.c
! casting in HB_TRACE() massages
* harbour/include/hbapi.h
* harbour/include/hbapiitm.h
* harbour/src/vm/arrays.c
* harbour/src/vm/hashes.c
* harbour/src/vm/itemapi.c
+ added hb_arrayCloneTo(), hb_hashCloneTo(), hb_itemCloneTo()
* harbour/src/vm/arrayshb.c
* harbour/src/vm/classes.c
* harbour/src/vm/hashes.c
* harbour/src/vm/hashfunc.c
* harbour/src/vm/hvm.c
% use hb_*CloneTo() instead of hb_*Clone()
* harbour/include/hbapi.h
* harbour/src/vm/garbage.c
- removed hb_gcRegisterSweep() function and support for user defined
sweep mark functions in GC blocks
- removed hb_gcAlloc() function
+ added new function hb_gcAllocate() which work in similar way to removed
hb_gcAlloc() function but it accepts as second parameter HB_GC_FUNCS
structure instead of HB_GARBAGE_FUNC_PTR and returned GC blocks are
locked so programmer does not have to worry that they can be removed
by GC.
+ added new internal function hb_gcAllocRaw() which works like
hb_gcAllocate() but returned GC blocks are not locked. They can
be used only in HVM in places well known that cannot activate
automatic GC scan. It should not be used by 3-rd party code.
* harbour/include/hbapi.h
* harbour/include/hbapiitm.h
* harbour/src/vm/extend.c
* harbour/src/vm/itemapi.c
* modified hb_parptrGC(), hb_parvptrGC(), hb_arrayGetPtrGC(),
hb_itemGetPtrGC() functions to use HB_GC_FUNCS structure instead
of HB_GARBAGE_FUNC_PTR
* modified hb_itemPutPtrGC() and indirectly related functions like
hb_arraySetPtrGC() or hb_stor[v]ptrGC() to automatically unlock
passed GC block just after attaching to known HVM item.
* harbour/include/hbregex.h
* harbour/src/rtl/hbregexc.c
* declare GC block detractor as static function
+ added hb_regexIs() function
* updated to work with new GC API
* removed unnecessary in new GC API hb_gcLock() call - GC blocks
allocated by hb_gcAllocate() are already locked and they mustn't
be locked explicitly by programmer (until he does not exactly knows
what he does ;))
* harbour/src/rtl/hbregex.c
* use hb_regexIs() instead of using regex GC destructor
* removed unnecessary in new GC API hb_gcUnlock() call - GC blocks
stored in HB_IT_POINTER item are automatically unlocked
* harbour/src/rtl/hbinet.c
* harbour/contrib/hbcurl/hbcurl.c
* updated to work with new GC API
% unlock items storing callback codeblocks and use GC mark functions
to mark them as used in GC passes
* harbour/src/pp/pplib.c
* harbour/src/vm/runner.c
* harbour/src/vm/codebloc.c
* harbour/src/vm/hashes.c
* harbour/src/vm/hvm.c
* harbour/src/vm/arrays.c
* harbour/src/vm/thread.c
* harbour/src/vm/dynlibhb.c
* harbour/src/rtl/hbzlibgz.c
* harbour/src/rtl/hbregex.c
* harbour/src/rtl/hbregexc.c
* harbour/src/rtl/hbgtcore.c
* harbour/src/rtl/hbi18n1.c
* harbour/src/rdd/wacore.c
* harbour/contrib/hbsqlit3/hbsqlit3.c
* harbour/contrib/hbnetio/netiosrv.c
* harbour/contrib/hbmzip/hbmzip.c
* harbour/contrib/hbhpdf/harupdf.c
* harbour/contrib/hbwin/olecore.c
* harbour/contrib/hbwin/win_prn1.c
* harbour/contrib/hbwin/win_dll.c
* updated code which was using hb_gcAlloc() to work with new GC API.
* harbour/contrib/hbwin/axcore.c
* updated syntax description
TODO: update contrib code: hbqt, hbssl, ... to work with new GC API.
I would like to ask authors of above libraries to do it.
TODO: defined when and how we should free AX control and user callback
handler and update AX code to respect new definition
* harbour/config/lib.mk
* harbour/config/bin.mk
* harbour/config/header.mk
* harbour/config/dyn.mk
* harbour/config/doc.mk
* harbour/config/instsh.mk
! rewritten install rules so now they work without any problem when
more then one target .mk file is included, i.e. lib.mk and header.mk
* harbour/source/pp/Makefile
* harbour/source/dynlib/mt/Makefile
* harbour/source/dynlib/Makefile
* harbour/contrib/hbmysql/Makefile
* harbour/contrib/hbct/Makefile
* harbour/contrib/xhb/Makefile
* harbour/contrib/hbodbc/Makefile
* harbour/contrib/hbtpathy/Makefile
* harbour/contrib/hbsqlit3/Makefile
* harbour/contrib/hbmzip/Makefile
* harbour/contrib/hbblat/Makefile
* harbour/contrib/hbqt/Makefile
* harbour/contrib/hbxbp/Makefile
* harbour/contrib/xpp/Makefile
* harbour/contrib/hbnf/Makefile
* harbour/contrib/hbcurl/Makefile
* harbour/contrib/gtqtc/Makefile
* harbour/contrib/rddsql/sddmy/Makefile
* harbour/contrib/rddsql/sddpg/Makefile
* harbour/contrib/rddsql/sddfb/Makefile
* harbour/contrib/rddsql/sddodbc/Makefile
* harbour/contrib/hbhpdf/Makefile
* harbour/contrib/rddado/Makefile
* harbour/contrib/gtwvg/Makefile
* harbour/contrib/hbpgsql/Makefile
* harbour/contrib/hbclipsm/Makefile
* harbour/contrib/rddads/Makefile
* harbour/contrib/hbfimage/Makefile
* harbour/contrib/hbgd/Makefile
* harbour/contrib/hbtip/Makefile
* harbour/contrib/hbwin/Makefile
* harbour/contrib/hbvpdf/Makefile
* harbour/contrib/hbbtree/Makefile
* harbour/contrib/hbssl/Makefile
* harbour/external/libhpdf/Makefile
* removed not longer necessary workaround for overwritten by different
targets INSTALL_RULE
Possible TODO: clean up some other rules in config .mk files to remove
hacks from pp and dynlib Makefile(s).
Above modifications should fully resolve the problems with repeated
install actions and also build problems with some more restrictive
POSIX SHELLs.