* utils/hbmk2/hbmk2.prg
+ added all public plugin API function with "hbmk_" prefix.
old "hbmk2_" prefixed ones still exist for compatibility,
but it's recommended to change them. "hbmk2" is only used
now as the tool's name, but internally it's uniformly
referred to as "hbmk".
* utils/hbmk2/examples/plug_tpl.hb
+ most "hbmk2" converted to "hbmk"
* config/postinst.hbs
* implemented same ASORT() fix as in prev commit by Przemek.
(it may be important once we modify hbrun/hbmk2 to run
scripts under UTF8 CP)
* contrib/hbnetio/utils/hbnetio/modules.hbp
- contrib/hbnetio/utils/hbnetio/rpcdemo.hbs
+ contrib/hbnetio/utils/hbnetio/rpcdemo.hb
- contrib/hbide/plugins/hbide_script_qtgui.hbs
+ contrib/hbide/plugins/hbide_script_qtgui.hb
- contrib/hbide/plugins/hbide_plugin_savebackup.hbs
+ contrib/hbide/plugins/hbide_plugin_savebackup.hb
- utils/hbmk2/examples/plug_tpl.hbs
+ utils/hbmk2/examples/plug_tpl.hb
- tests/stripdoc.hbs
+ tests/stripdoc.hb
* .hbs -> .hb for Harbour scripts.
* tests/stripdoc.hb
+ use directry.ch
* utils/hbmk2/examples/contrib.hbc
* utils/hbmk2/hbmk2.prg
* config/detfun.mk
* config/detect.mk
* INSTALL
* Terminology cleanup: "external code" -> "3rd party code"
- bin/hbxpatch.hbs
+ bin/hb3rdpat.hbs
* config/postinst.hbs
* package/harbour.spec
* Renamed hbxpatch.hbs to hb3rdpat.hbs to reflect terminology
cleanup ("external code" -> "3rd party code")
* utils/hbmk2/examples/contrib.hbc
* utils/hbmk2/examples/contribf.hbc
* utils/hbmk2/examples/oohg.hbc
* Using .hbc files.
* contrib/hbssl/ssl.c
+ SSL_GET_READ_AHEAD() function enabled. Made it a dummy
for bcc, where it for some reason creates unresolved
external when referencing the corresponding openssl API.
* harbour-win-spec
* harbour-wce-spec
* harbour.spec
* HB_CONTRIBLIBS -> HB_BUILD_CONTRIBS
* contrib/make.hbs
! Adjusted wording in log output.
* utils/hbmk2/hbmk2.prg
! Fixed bad regression caused by extending filters to
all options. I reverted it. It has a killer effect
without huge benefit. Maybe it will be implemented
differently in the future.
The user effect of the regression was that libs were
created in bin dir.
* Cleaned some variable names passed to plugins.
* utils/hbmk2/examples/plug_tpl.hbs
+ Added comment about requirement of reentrancy.
* COPYING
* utils/hbmk2/examples/plug_tpl.hbs
* contrib/hbqt/hbmk2_plugin_qt.hbs
+ Changed to use same license as hbmk2 (pure GPL)
also for hbmk2 plugin scripts.
* utils/hbmk2/hbmk2.prg
! Corrected to display any type of return value coming from
plugins. (all non-empty return value is considered an error)
s
* package/winuni/RELNOTES
* Updated.
* harbour.spec
* doc/dirstruc.txt
* utils/hbmk2/examples/contribf.hbc
* contrib/Makefile
- contrib/hbbtree
+ examples/hbbtree
- examples/hbbtree/Makefile
* hbbtree move to example section as told in a recent
changelog entry. This contrib has long time unfixed
file-format portability problems, plus it's really
more of a good example code than lib for end-users.
* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt_hbqtableview.h
* contrib/hbqt/hbqt_hbevents.h
* contrib/hbqt/hbqt_hbdbfmodel.cpp
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.cpp
* contrib/hbqt/hbqt_hbqmainwindow.h
* contrib/hbqt/hbqt_hbqtableview.cpp
* contrib/hbqt/hbqt_hbevents.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/hbqt_hbdbfmodel.h
* contrib/hbqt/hbqt_destruct.cpp
* contrib/hbqt/hbqt_utils.cpp
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.h
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbslots.cpp
* contrib/hbqt/qth/QVariant.qth
* contrib/hbqt/qth/QCursor.qth
* contrib/hbqt/qth/QClipboard.qth
* contrib/hbqt/qth/QApplication.qth
* contrib/hbqt/qth/QCoreApplication.qth
* contrib/hbqt/qth/QImage.qth
* contrib/hbqt/qth/QUrl.qth
* contrib/hbqt/qth/QAbstractItemModel.qth
* contrib/hbqt/qth/QImageReader.qth
* contrib/hbqt/qth/QWebHistoryItem.qth
* contrib/hbqt/qth/QFont.qth
* contrib/hbqt/qth/QFontDatabase.qth
! Fixed to use '#include <QModule/QName>' format when referring
to QT headers. This is the official way and it allows to clean
the include header paths.
! Fixed to use '#include <QtCore/qglobal>' instead of
'#include <qglobal.h>' for the same reason as above.
* contrib/hbqt/hbqt.h
+ Added '#include "QtCore/QObject"' to make hbmk2 component
detection happy. This is slight hack as I didn't want to
introduce parsing of '<>' style system headers just for the
sake of QT. Anyway it's quite humble hack without side effects.
* contrib/hbqt/detect.mk
* Changed to 'QtCore/qglobal.h' as key header name used for
detection.
! Fix to header dir autodetection path on darwin platform.
(it would have caused potential problem with QT 5.x releases)
% Simplified header path list for non-darwin platforms.
+ contrib/hbqt/hbqt_common.hbm
+ contrib/hbqt/hbqt.hbp
+ contrib/hbqt/hbqts.hbp
+ contrib/hbqt/hbqtcore.hbp
+ contrib/hbqt/hbqtcores.hbp
+ contrib/hbqt/hbqtgui.hbp
+ contrib/hbqt/hbqtguis.hbp
+ contrib/hbqt/hbqtnetwork.hbp
+ contrib/hbqt/hbqtnetworks.hbp
+ Added hbmk2 make files for HBQT libs.
Features are equivalent to the GNU Make flavour.
(only tested on Windows so far)
+ contrib/hbxbp/hbxbp.hbp
+ Added hbmk2 make file for HBXBP lib.
* contrib/hbfbird/hbfbird.hbp
* contrib/hbsms/hbsms.hbp
* Use ${hb_name} instead of ${hb_dirname}.
+ Added -w3 -es3 options.
* utils/hbmk2/hbmk2.prg
+ Set pathseps to '/' in "-reqheader=' and
'-reqpkg=' header names.
- utils/hbmk2/examples/plug_moc.prg
+ contrib/hbqt/plug_moc.prg
* Moved inside hbqt lib.
* contrib/hbqt/qtgui/*
* contrib/hbqt/qtcore/*
* Regenerated.
* utils/hbmk2/examples/contribf.hbc
* contrib/Makefile
+ contrib/hbcomm
+ contrib/hbcomm/Makefile
+ contrib/hbcomm/hbcomm.hbc
+ contrib/hbcomm/hbcomm.prg
+ contrib/hbcomm/hbcomm.hbp
+ contrib/hbcomm/tests
+ contrib/hbcomm/tests/hbmk.hbm
+ contrib/hbcomm/tests/test.prg
+ Added HBCOMM compatibility library. It's based on hbct
COM functions. Not tested with real port. Also see one
TOFIX and one INCOMPATIBILITY note inside. The latter
belongs to INCHR() function which in original HBCOMM
library will do HVM corruption by overwriting string
content passed as 3rd parameter. In Harbour 3rd
parameter needs to be passed by reference.
Also added fully adapted test code from HARBOUR MINIGUI
project. Interestingly this code was using the return
value of INCHR() to get the returned buffer, which was
in sync with included HBCOMM code. Anyway, hopefully
this can be finalized based on report from real users.
; DISCLAIMER:
EXPERIMENTAL CODE. USE AT YOUR OWN RISK. NO GUARANTEES.
+ contrib/hbfbird/hbfbird.hbp
+ contrib/hbsms/hbsms.hbp
+ Added early bird experimental .hbp files for contrib
two projects.
* utils/hbmk2/hbmk2.prg
+ Added support for ${hb_dirname} macro which returns the
directory in which the script file is where the macro is
used.
! Fixed so that '-build' option doesn't require a configured
C compiler.
+ Extended hack for bcc autoconfiguration with 5.8 support,
adding an extra system header directory to the include
dir list if it exists. bcc 5.8 appears to be well installed,
so this is probably not needed for most users.
+ Documented dir casing differences between bcc 5.5 and 5.82.
This may be important for autoconfiguration hack to work with
bcc under wine using native hbmk2 build. I'm not even sure
such scenario is possible at all ;)
* utils/hbmk2/hbmk2.prg
+ Added experimental feature to aid external dependency
detection. Key header files can now be specified using
'-keyheader=' option. In case such key headers are not
found when evaluating '-inctrypath' conditional header
directories. The goal is to make hbmk2 capable of
replacing GNU Make for all of our contribs. F.e.:
'clean':
{HB_HOST_BIN_DIR}/hbmk2 hbfbird/hbfbird.hbp hbsms/hbsms.hbp -o../lib/${hb_plat}/${hb_comp}/ -clean
simple make:
{HB_HOST_BIN_DIR}/hbmk2 hbfbird/hbfbird.hbp hbsms/hbsms.hbp -o../lib/${hb_plat}/${hb_comp}/
'install':
{HB_HOST_BIN_DIR}/hbmk2 hbfbird/hbfbird.hbp hbsms/hbsms.hbp -o../lib/${hb_plat}/${hb_comp}/ -instpath=${HB_LIB_INSTALL}/ -info
% Minor cleanup to some plugin API functions.
* utils/hbmk2/examples/plug_moc.prg
% Minor cleanup.
* contrib/sddoci/tests/test1.prg
+ Showing field length and decimals.
* utils/hbmk2/hbmk2.prg
+ Upped warning level for plugins to -w3.
* utils/hbmk2/examples/plug_moc.prg
+ Added -inc, -clean and -rebuild (IOW incremental)
support for moc plugin. It was tested OK in small
example.
* utils/hbmk2/examples/plug_tpl.prg
* Minor.
* utils/hbmk2/hbmk2.prg
* Moved some local variables to internal hbmk2 structure.
+ Made some more functions and variables accesible to plugns
in order to help creating smooth external calls.
+ utils/hbmk2/examples/plug_moc.prg
+ Added 'moc' plugin, which is supposed to be fully functionaly,
though I didn't test it live.
- utils/hbmk2/examples/plug_moc.prg
+ utils/hbmk2/examples/plug_tpl.prg
* Renamed first example.
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/examples/plug_moc.prg
% Further cleaned context passing, so that now even the
'state' variable is passed as part of context rather than
as separate variable, so now the only parameter the plugin
gets is the callback. This is much more flexible and future
proof this way.
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/examples/plug_moc.prg
% Refined how context is passed to plugins, and how
context is passed back to public APIs.
+ Added way to accept parameters from the cmdline and .hbp
files. This is possible via '-pflag=' and '-pi=' options.
Latter serves to pass input file, so the input file magic
logic is always applied to it. Notice that all plugins are
getting all input parameters, so it's their job to process
only what's relevant to them. plugin specific option prefixes
f.e. can be a solution for that.
+ Added API to add new input .prg, .c, .cpp and .rc files
to the build process.
+ Added better protection from tampering internal hbmk2
structures by plugins.
+ Showing error condition and location in case of an RTE occurs
in a plugin.
* utils/hbmk2/hbmk2.prg
+ utils/hbmk2/examples/plug_moc.prg
+ Added experimental plugin system. Plugins are written in .prg
or .hrb and can be passed using '-plug=<.prg|.hrb>' option
or simply by passing '.hrb' filename from cmdline or .hbp/.hbm
files. Plugin names without dir component will be searched
in local dir, hbmk2 dir then PATH.
For the details of the calling protocol and available hbmk2
API calls and variables, pls check the example and hbmk2
source code.
Plugin is called from several build stages, in case of multiple
plugins all of them are called at each stage. The plugin
receives the stage name, hbmk2 context and a hash table for
custom variables. The variables are shared between stages and
plugins. Notice that hbmk2 isn't hbrun, so there is a limited
set of the Harbour language which you can use, this also ensures
that the plugins will behave like hbmk2 itself for the most part.
Nothing is finalized.
; The example is the working replica of moc detection logic found
inside hbqt.
* harbour.spec
* contrib/Makefile
+ contrib/hbsms
+ contrib/hbsms/tests
+ contrib/hbsms/tests/send.prg
+ contrib/hbsms/tests/hbmk.hbm
+ contrib/hbsms/hbsms.prg
+ contrib/hbsms/hbsms.hbc
+ contrib/hbsms/Makefile
* utils/hbmk2/examples/contribf.hbc
+ Readded hbsms lib.
+ Modified to use newly added core com functions
via HBCT .prg level interface. (instead of hbtpathy)
+ Added disclaimer:
EXPERIMENTAL CODE. USE AT YOUR OWN RISK. NO GUARANTEES.
The code well may be pure crap, so if you have problem
with it, supply working patches. Pls note that the
reader function uses locally implemented timeout
functionality, which may or may not work at all,
though you can fix it if you have better idea.
I've only tested it using Mac OS X 10.6 + old Nokia "S40"
phone and one bad SMS number to see it kicks off at
all and that's also the end of my testing possibilities.
* src/common/hbtrace.c
* INSTALL
+ Added trace output support to syslog() for *nix systems
(except watcom builds).
It's enabled by HB_TR_SYSOUT=yes envvar, which now
supercedes previous HB_TR_WINOUT setting.
Windows users pls change HB_TR_WINOUT to HB_TR_SYSOUT.
! Fixed potential problem in HB_TR_WINOUT code, where
the same vararg holder variable was used multiple
times. On *nix this caused GPF. The safest is to make
a copy of it for each usage.
* contrib/hbwin/hbwin.ch
* contrib/hbwin/Makefile
+ contrib/hbwin/tests/testevnt.prg
+ contrib/hbwin/win_evnt.c
+ Added function to add a new event to the Windows event log:
WIN_REPORTEVENT( [<cServerName]>, <cEventLog>,
<nType>, [<nCategory>], [<nEventID>],
<cString> | <acString>, [<cRawData>] ) -> <lSuccess>
* contrib/hbwin/win_prn2.c
! Fixed wce warning.
* utils/hbmk2/examples/contribf.hbc
* utils/hbmk2/examples/contrib.hbc
+ Added minizip lib.
* harbour.spec
* utils/hbmk2/examples/contribf.hbc
* contrib/Makefile
+ contrib/hbblink
+ contrib/hbblink/hbblink.ch
+ contrib/hbblink/hbblink.hbc
+ contrib/hbblink/Makefile
+ contrib/hbblink/blinker.prg
* contrib/hbmisc/hbmisc.hbc
* contrib/hbmisc/Makefile
- contrib/hbmisc/blinker.prg
- contrib/hbmisc/blinker.ch
* Moved Blinker compatibility calls to separate library.
* Renamed blinker.ch to hbblink.ch
! Changed to use '-c' instead of '/c' in command execution.
; QUESTION: Any opinions on including that in core?
+ contrib/hbfoxpro/dll.prg
+ contrib/hbfoxpro/Makefile
* contrib/hbwin/Makefile
- contrib/hbwin/win_dllf.prg
+ Moved FoxPro-like dynamic call function to
hbfoxpro lib.
Renamed it to FOX___DYNCALL() until we find
it a better name, or someone will suggest
how this is best presented for actual FoxPro
users.
* contrib/Makefile
* utils/hbmk2/examples/contribf.hbc
+ Enabled hbfoxpro lib.
* config/wce/global.mk
* config/win/global.mk
* Formatting.
* include/hbdefs.h
+ <windows.h>/<os2.h> header inclusion (along with HB_OS_WIN_USED
macro) is now guarded with HB_LEGACY_LEVEL3.
* include/hbsetup.ch
* include/hbdefs.h
* include/clipdefs.h
+ HB_LEGACY_OFF will now turn off legacy types as well.
This means that HB_LEGACY_TYPES_OFF macro usage
is now clean.
* utils/hbmk2/examples/contribf.hbc
! hbbmcdx -> rddbmcdx
* include/hbsetup.ch
* src/common/hbverdsp.c
- Deleted HB_COMPAT_FLAGSHIP, HB_COMPAT_FOXPRO.
* include/hbextern.ch
* src/rtl/seconds.c
+ Added HB_SECONDSCPU()
(native Harbour version of FlagShip specific SECONDSCPU())
* tests/memtst.prg
* tests/speedold.prg
* tests/speedtst.prg
* tests/vidtest.prg
* Changed to use HB_SECONDSCPU().
+ Added translation from SECONDSCPU() to HB_SECONDSCPU() when
built for FlagShip (where applicable).
* include/hbextern.ch
* src/rtl/Makefile
- src/rtl/strpeek.c
- src/rtl/secondfs.c
* contrib/Makefile
+ contrib/hbfship
+ contrib/hbfship/Makefile
+ contrib/hbfship/hbfship.hbc
+ contrib/hbfship/secondfs.c
+ contrib/hbfship/strpeek.c
- Moved FlagShip specific function from core to new hbfship lib.
* Changed SECONDSCPU() to be just a wrapper over core HB_SECONDSCPU().
; INCOMPATIBLE: If you used SECONDSCPU() function, change it to
HB_SECONDSCPU(), or add hbfship to your lib list.
If you used STRPEEK() or STRPOKE() functions,
add hbfship to your lib list.
* utils/hbmk2/examples/contribf.hbc
+ Added hbfship.
* INSTALL
* bin/hb-mkimp.bat
* contrib/hbqt/hbqt.hbc
* contrib/hbqt/hbqts.hbc
* contrib/gtqtc/gtqtcs.hbc
* contrib/gtqtc/gtqtc.hbc
* utils/hbmk2/examples/xhgtk.hbc
* config/global.mk
+ Eliminated HB_DIR_* envvar requirement to find required 3rd
party component libs.
This means that it's now enough to only set HB_WITH_* envvars
to enable HB_BUILD_IMPLIB.
This should make configuration a lot simpler, and this clears
the last pending TODO in this area.
HB_INC_* won't work this way, so please start to migrate to
HB_WITH_* envvars, the values should stay the same.
* external/pcre/cnv_o2hb.bat
* external/pcre/cnv_hb2o.bat
* Updated comment.
* contrib/rddads/adsfunc.c
* Minor cleanup.
* doc/dirstruc.txt
* utils/hbmk2/examples/contribf.hbc
* contrib/Makefile
- contrib/rddado
+ examples/rddado
+ examples/rddado/rddado.hbp
- examples/rddado/Makefile
* Moved rddado from contrib to examples area.
It's an almost working example.
* contrib/hbtip/encqp.prg
+ Implemented quoted-printable encoder/decoder.
Not yet used. Not extremely well tested, just something
to start with. Please review. Probably should be done
in C for speed, but anyway.
* contrib/hbtip/sendmail.prg
* contrib/hbtip/mail.prg
+ Added 'charset' property and setting hb_sendmail().
Not yet effective, as Harbour uses 7-bit encoding yet.
* utils/hbmk2/examples/hmg.hbc
* Updated HMG hbmk2 config file with some extra tricks.
* utils/hbmk2/examples/contribf.hbc
* contrib/Makefile
- contrib/hbvpdf
+ examples/hbvpdf
* Moved hbvpdf lib to examples section.
This code is barely updated and offers duplicate functionality
of superior hbhpdf lib.
* source/rtl/filesys.c
* Minor formatting.
* utils/hbmk2/examples/contribf.hbc
* contrib/hbtip/hbtipssl.hbc
* contrib/hbtip/hbtip.hbc
* contrib/hbtip/Makefile
+ Enabled hbtip lib for dos platform. It can work with watt lib.
* utils/hbmk2/examples/contribf.hbc
* contrib/hbtpathy/Makefile
+ contrib/hbtpathy/tpdos.c
* contrib/hbtpathy/hbtpathy.hbc
+ Added DOS stubs. This makes it possible to enable this contrib
for all existing platforms. Serial support is possible to
implement in DOS.
% Now all source files are compiled for each platform, platform
specific parts are guarded internally, no need to duplicate the
logic on the make level.
* utils/hbmk2/hbmk2.prg
+ Added skip=yes|no option support to .hbc files.
skip=yes will cause the rest of the .hbc file to be skipped
from processing.
+ Now .hbc files are recognized even in libs= lines.
+ Showing error message when a referred .hbc cannot be found.
* utils/hbmk2/examples/contribf.hbc
* Updates/fixes.
* contrib/xhb/xhb.hbc
* contrib/hbtpathy/hbtpathy.hbc
* contrib/hbblat/hbblat.hbc
* contrib/hbziparc/hbziparc.hbc
* contrib/hbxbp/hbxbp.hbc
* contrib/rddsql/sddmy/sddmy.hbc
+ contrib/rddsql/sddpg/sddpg.hbc
+ contrib/rddsql/sddfb/sddfb.hbc
* contrib/rddsql/sddodbc/sddodbc.hbc
* contrib/rddado/rddado.hbc
* contrib/gtwvg/gtwvg.hbc
* contrib/rddads/rddads.hbc
* contrib/hbfimage/hbfimage.hbc
* contrib/hbtip/hbtip.hbc
* contrib/hbwin/hbwin.hbc
* contrib/hbssl/hbssl.hbc
+ Added some missing .hbc files.
* Tweaked to use .hbc references.
* Tweaked filters. .hbc files will now filter themselves out,
if they are references in unsupported environment, like hbwin
under linux.
* ChangeLog
* Marked TOFIX/TODO as DONE.
* utils/hbmk2/hbmk2.prg
+ Added Harbour 1.0.x support for -main and -gt* options.
Should also work with xhb.
* utils/hbmk2/examples/hmg.hbc
! Updated. Tested okay with HMG 2.9.2.
- utils/hbmk2/examples/wxharbour.hbc
- Deleted, now hosted by wxHarbour project.
Many thanks to Teo Fonrouge.
* utils/hbmk2/examples/xhgtk.hbc
* Updated hbmk2 make file xhgtk.
Also sent this and xhgtk.hbp to Rodrigo Moreno to consider
uploading them files to xhgtk repository.
It makes building the lib and using the lib very simple
on all platforms/compilers.
+ utils/hbmk2/examples/wxharbour.hbc
+ Added wxharbour hbmk2 config file.
Also sent to Teo Fonrouge to consider uploading it to
repository (and later make it easier to merge it with
ours).
* contrib/hbqt/Makefile
* contrib/gtqtc/Makefile
+ Added another alternative header path to detection list.
* external/libpng/Makefile
! Fixed to properly link with DJGPP.
* utils/hbmk2/hbmk2.prg
! Fixed ${hb_cpu} macro for dos/os2 platforms.
* contrib/hbhpdf/Makefile
* utils/hbmk2/examples/contribf.hbc
+ Enabled for DOS platform.
; I could back port my app to DOS after these changes, with
only inet stuff not linked in.