* src/rtl/hbjson.c
* src/rtl/hblpp.c
! Silenced msvc64 warnings.
* utils/hbrun/hbrun.prg
* Moved creation of header hash to separate function.
+ Added HBRUN_NOHEAD envver to disable embedded headers.
Any non-empty value will have this effect.
* utils/hbrun/Makefile
+ Enabled embedded headers.
* contrib/make.hbs
* config/postinst.hbs
* bin/hbxpatch.hbs
! Resolved TOFIX notes: now the headers can be used
just like in any .prg, and no need to locally #define
core constants.
Also hbqt_hbmk2_plugin.hbs should work now in stdalone
mode, with all the OOP code.
* utils/hbmk2/hbmk2.prg
* MS-DOS LFN vs. SFN next guess: deleted hack when loading
plugin.
* include/hbwmain.c
* src/vm/cmdarg.c
* config/bin.mk
* Cygwin main entry patch from Tamas.
* INSTALL
+ Added note that all settings are case sensitive.
Not that those would read it who would need to.
* harbour/include/hbpp.h
* harbour/include/hbcomp.h
* harbour/src/pp/ppcore.c
* harbour/src/main/harbour.c
* harbour/src/compiler/hbmain.c
* harbour/src/compiler/ppcomp.c
* harbour/src/compiler/hbcmplib.c
* added support for setting hash array as container for included
files in HB_COMPILE*() functions.
* harbour/utils/hbrun/hbrun.prg
+ added optional support for embedding all core header files
into final HBRUN executable file. It can be enabled by
compilation with HBRUN_WITH_HEADERS macro.
* harbour/contrib/hbsqlit3/hbsqlit3.c
! removed non standard C construction
% push function parameters directly on HVM stack
* utils/hbmk2/hbmk2.prg
+ MS-DOS builds got internal protection against trying to load
.hbc/.hbp/.hbm/plugin files with long filenames (only in
filename/extension part, so it's sort of a hack).
Such would result in unpredictable behavior depending on
MS-DOS OS or emulation used, but for sure none can load the
intended file.
So current hack will consider such files non-existent,
and consequently fail along the way. Please test in on
MS-DOS.
* harbour/src/rtl/cdpapi.c
+ added internal macro for developers making tests with C compilers
which can make some character translations in compiler strings.
This macro (__HB_IGNORE_CP_ERRORS) disables 9994 internal error.
("Harbour CP (%s) initialization failure").
It should not be used in production builds.
- contrib/hbqt/qtgui/g
- contrib/hbqt/qtgui/doc/en/*.txt
- contrib/hbqt/qtwebkit/g
- contrib/hbqt/qtwebkit/doc/en/*.txt
- contrib/hbqt/qtcore/g
- contrib/hbqt/qtcore/doc/en/*.txt
- contrib/hbqt/qtnetwork/g
- contrib/hbqt/qtnetwork/doc/en/*.txt
- contrib/hbqt/qscintilla/g
- contrib/hbqt/qscintilla/doc/en/*.txt
- contrib/hbqt/qtuitools/g
- contrib/hbqt/qtuitools/doc/en/*.txt
- contrib/hbqt/qtdesigner/g
- contrib/hbqt/qtdesigner/doc/en/*.txt
- Deleted generated files which are now created
dynamically.
- contrib/hbqt/utils
- Deleted utils dir.
+ contrib/hbqt/tests/hbqtgen.prg
+ contrib/hbqt/tests/QtUiTools.txt
+ contrib/hbqt/tests/hbqtgen2.prg
+ contrib/hbqt/tests/QtGui.txt
+ contrib/hbqt/tests/QtCore.txt
+ contrib/hbqt/tests/QtNetwork.txt
* Moved to tests dir.
* contrib/hbqt/hbqt_hbmk2_plugin.hbs
- Disabled one debug output left in.
; After these changes HBQT overall size went from 9.5MB to 1.6MB.
It still makes it the largest contrib lib in terms of dir content size.
; BTW, most of current .qth content could be dropped by dynamically
extracting information from original QT headers. QT is required anyway
to build HBQT, and in such dynamic scenario the generated wrappers
could always precisely match the QT version we're building against.
Until then, .qth files are matching the QT version they were created
for (currently 4.5), and it needs hefty manual work to update it to newer
versions of QT (latest 4.7). Chances are good that such extraction tool
already exists for PyQt and similar projects.
* harbour/contrib/rddsql/sqlbase.c
+ added timestamp type support in PutValue RDD method
* harbour/contrib/hbwin/axcore.c
* commented out debug line to be in sync with commented out
function that it uses
* hbqt/hbqt_hbmk2_plugin.hbs
! Fixed to not pickup false object references.
! Fixed to automatically pickup object references in manual contructor code.
* crc32 restored to be compatible with old one.
! Fixed typo causing incremental build always rebuild everything
(for .qth files).
* hbqt/qtcore/qth/HBQString.qth
! Fixed reference to manual header.
* hbqt/qtgui/hbqt_hbqtableview.h
* hbqt/qtgui/hbqt_hbqsyntaxhighlighter.h
* hbqt/qtgui/hbqt_hbqplaintextedit.h
* hbqt/qtgui/hbqt_hbqgraphicsitem.h
* Header cleanup. Hopefully good.
* contrib/hbqt/qtwebkit/qth/QWebView.qth
- Deleted reference to no more existing hbqtnetwork.h
+ hbqt/qtgui/hbqtgui.h
+ hbqt/qtcore/hbqtcore.h
+ Added headers with stuff referenced by non-generated code
(and some more)
+ contrib/hbqt/qtgui/qth/filelist.hbm
+ contrib/hbqt/qtwebkit/qth/filelist.hbm
+ contrib/hbqt/qtcore/qth/filelist.hbm
+ contrib/hbqt/qtnetwork/qth/filelist.hbm
+ contrib/hbqt/qscintilla/qth/filelist.hbm
+ contrib/hbqt/qtuitools/qth/filelist.hbm
+ contrib/hbqt/qtdesigner/qth/filelist.hbm
+ Added new .hbm files pulling in .qth and
setting up generation.
This way also .qth placement became fully modular.
* contrib/hbqt/hbqt_common.hbm
* hbqt/qtgui/hbqtgui.hbc
* hbqt/qtgui/hbqtgui.hbm
* hbqt/qtwebkit/hbqtwebkit.hbc
* hbqt/qtwebkit/hbqtwebkit.hbm
* hbqt/qtcore/hbqtcore.hbc
* hbqt/qtcore/hbqtcore.hbm
* hbqt/qtnetwork/hbqtnetwork.hbc
* hbqt/qtnetwork/hbqtnetwork.hbm
* hbqt/qscintilla/hbqscintilla.hbm
* hbqt/qscintilla/hbqscintilla.hbc
* hbqt/qtuitools/hbqtuitools.hbm
* hbqt/qtuitools/hbqtuitools.hbc
* hbqt/qtdesigner/hbqtdesigner.hbm
* hbqt/qtdesigner/hbqtdesigner.hbc
- Deleted 'g' subdir from header path list.
* Changed to use .qth files directly.
; TODO: If things go well, g subfolders, doc/en
folder content and utils dirs can be deleted.
; TODO: Cleanup the way HBQT_TYPE_* and hb_par_* are defined.
It's currently kinda hackish.
; Now everyone can start to bitch, moan and argue or ignore.
That's sole reason I'm doing commits. Thanks in advance.
* contrib/hbqt/hbqt_hbmk2_plugin.hbs
+ Reworked standalone hbqt generator as dynamic hbmk2
plugi. It will now dynamically convert .qth to
.cpp + .prg + .txt. .qtp lists can now be
replaced by .hbm files. See them inside /qth dirs.
* Minor cleanups and optimizations to generator code.
* Standalone conversion mode is also available, though it's
little difficult to run due to current hbrun limitations.
% Generated code further slimmed down.
+ Since now we have no generated central header, each
required declarations have to be repeated in each source
file. Consistency is maintained by generator.
; TODO: Consider splitting .qth generator functionality
from mainstream hbqt hbmk2 plugin.
; TODO: Switch to using new dynamic code generation.
; TODO: Consider merging .cpp + .prg using #pragma BEGINDUMP.
In generated code, I find it benign, and hopefully
eventually .prg code can be eliminated fully.
; TODO: Resolve dependence on generated central headers,
in manual source files.
; TOFIX: Error message in plugin now erroneously shows
as "hbclass.ch(131)", IOW the compiler thinks its
compiling the header, while in reality its compiling
the .hbs file.
* utils/hbmk2/hbmk2.prg
+ REQUESTing some stuff for hbqt plugin.
* include/harbour.hbx
* src/rtl/dateshb.c
+ Added HB_DATE( [<nYear>, <nMonth>, <nDay>] ) -> <dDate>
If called without options, it returns current date, just like DATE().
* Changed HB_DATETIME() to work like above except for timestamps.
* contrib/hbqt/hbqt_all.hbp
- Deleted wrong MS-DOS fix.
* contrib/hbqt/utils/hbqtgen.prg
% Optimized to not read each input file twice.
* contrib/hbqt/hbqt_hbmk2_plugin.hbs
+ Added #include "hbclass.ch". After 2010-11-03 23:28 UTC+0100
it works as expect. Thanks a lot Przemek!
Header dir is setup correctly now by hbmk2, so hbmk2 plugins
can safely use Harbour headers. (in hbmk2 context the headers
should be present anyway, so this is square)
* harbour/src/compiler/hbmain.c
+ allow to use -p* switches in HB_COMPILEFROMBUF()
* harbour/src/compiler/harbour.y
+ accept
#line <num>
directive without file name. It can be usable in some cases
and it also resolves the problem reported by Viktor when
we compile file without any name, i.e. using HB_COMPILEFROMBUF()
function.
* harbour/src/compiler/harbour.yyc
* regenerated
* utils/hbmk2/hbmk2.prg
* Using _APPMAIN() instead of MAIN() as entry function, to be
friendly with plugins using MAIN().
* Commented test code added for hbrun integration.
+ Added popular package handler's lib and include directory
to bsd builds' default setup.
* Added comments describint which such directory belongs to which package
system (darwin, bsd)
+ Plugins will now be called with Harbour header directory properly setup,
so it's possible to use headers in them.
* include/hbclass.ch
- Deleted some lines which were active when __HARBOUR__ is not defined.
As I understand this is Harbour-only header, so __HARBOUR__ is always
to be defined. Please speak up if you know what it was for.
It was added here: 2006-10-04 02:30 UTC+0200
* src/pp/hbpp.c
+ Support for -e option which lets override the name of the
public entry function in generated PP rules .c file.
* contrib/hbqt/hbqt_hbmk2_plugin.hbs
+ Some provisions to handle .qth files.
* INSTALL
* https links changed to http for win nightly pkgs.
* contrib/hbqt/utils/hbqtgen.prg
% Deleted need for Harbour headers. Except hbclass.ch.
To convert this to script, OOP code must be converted
to regular one.
* contrib/hbqt/utils/qtcore.qtp
* contrib/hbqt/utils/qtnetwork.qtp
* contrib/hbqt/utils/qscintilla.qtp
* contrib/hbqt/utils/qtuitools.qtp
* contrib/hbqt/utils/qtdesigner.qtp
* contrib/hbqt/utils/qtgui.qtp
* contrib/hbqt/utils/qtwebkit.qtp
* Changed to use hbmk2 style comments.
* contrib/hbqt/hbqt_all.hbp
- Disable whole container for dos platform, as it seems
to get confused about long filenames.
* ChangeLog
* TODOs marked as DONE.
! Typos.
* contrib/hbqt/utils/hbqtgen.prg
% Do not generate extern pullers automatically.
They are quite simple, rarely (if ever) changing
files, so this is not big drawbacks, and it opens
the door to generate rest of files dynamically.
* contrib/hbqt/qtgui/hbqtgui.hbm
* contrib/hbqt/qtgui/g/filelist.hbm
- contrib/hbqt/qtgui/g/hbqtgui_extern.prg
+ contrib/hbqt/qtgui/hbqt_extern.prg
* contrib/hbqt/qtwebkit/hbqtwebkit.hbm
* contrib/hbqt/qtwebkit/g/filelist.hbm
- contrib/hbqt/qtwebkit/g/hbqtwebkit_extern.prg
+ contrib/hbqt/qtwebkit/hbqt_extern.prg
* contrib/hbqt/qtcore/hbqtcore.hbm
* contrib/hbqt/qtcore/g/filelist.hbm
- contrib/hbqt/qtcore/g/hbqtcore_extern.prg
+ contrib/hbqt/qtcore/hbqt_extern.prg
* contrib/hbqt/qtnetwork/hbqtnetwork.hbm
* contrib/hbqt/qtnetwork/g/filelist.hbm
- contrib/hbqt/qtnetwork/g/hbqtnetwork_extern.prg
+ contrib/hbqt/qtnetwork/hbqt_extern.prg
* contrib/hbqt/qscintilla/hbqscintilla.hbm
* contrib/hbqt/qscintilla/g/filelist.hbm
- contrib/hbqt/qscintilla/g/hbqscintilla_extern.prg
+ contrib/hbqt/qscintilla/hbqt_extern.prg
* contrib/hbqt/qtuitools/hbqtuitools.hbm
* contrib/hbqt/qtuitools/g/filelist.hbm
- contrib/hbqt/qtuitools/g/hbqtuitools_extern.prg
+ contrib/hbqt/qtuitools/hbqt_extern.prg
* contrib/hbqt/qtdesigner/hbqtdesigner.hbm
* contrib/hbqt/qtdesigner/g/filelist.hbm
- contrib/hbqt/qtdesigner/g/hbqtdesigner_extern.prg
+ contrib/hbqt/qtdesigner/hbqt_extern.prg
* Moved extern pullers to non-generated area.
* contrib/hbqt/utils/hbqtgen.prg
% Simplified GC release code.
! Fixed potential GPF in GC release code.
(p->ph might have been assigned NULL even if p was NULL)
; Please review and test.
* contrib/hbqt/*/g/*.cpp
* Regenerated.
* contrib/hbqt/qtgui/hbqt_init.cpp
! Fixed missing HB_EXTERN_BEGIN/END from around a new internal function.
* contrib/hbqt/utils/hbqtgen.prg
! Fixed to not spit HB_TR_ALWAYS msgs while running.
% Deleted unnecessary HB_SYMBOL_UNUSED in generated code.
% Minor optimization in generate code.
; TODO: Optimize code generated for GC desctructor.
* contrib/hbqt/*/g/*
* Regenerated.
* utils/hbmk2/hbmk2.prg
+ Will now accepts macros in Harbour options.
(lightly tested)
* contrib/hbqt/utils/hbqtgen.prg
% Optimized generated source code to be more compact.
The result is almost 60% smaller (6.2MB -> 4MB for qtgui)
generated sources:
- credits and copyrights moved to separate file, so
it's now present in only one copy.
- disabled HB_TRACE lines from output.
- disabled {} braces from one-liner blocks.
- deleted some long separator lines.
- made original function prototype comments more compact.
+ contrib/hbqt/CREDITS.txt
+ Added standalone credits and full copyright text.
* contrib/hbqt/*/g/*
* Regenerated.
* package/winuni/mpkg_win_uni.bat
+ Distribute contrib/*/*.txt files.
* harbour/contrib/hbsqlit3/hbsqlit3.c
* Changed to use STR API for UTF8 conversions in few places.
Lightly tested - seems now it's works as expected.
+ Added sqlite_sourceid()
* src/rtl/gete.c
% Deleted very old code to satisfy Borland C++ getenv()
requirement, and which turned out to be a mere Borland
documentation error (confirmed by Borland).
Thanks to Tamas Tevesz for getting to end of this and
the patch.
* utils/hbmk2/hbmk2.prg
* Formatting.
* ChangeLog
! Fixed bloody daylight saving timezone in recent commits.
* src/pp/ppcore.c
! Fixed regression in 2010-11-01 16:42 UTC+0200.
Forgot to set value for __PLATFORM__* macros.
INCOMPATIBLE: So far the value returned by __PLATFORM__*
macros were the version part from the string
also returned by OS(), but only in non-cross
platform situations. Now they are defined
without any value, which means now the returned
value is consistent regardless of build-situation
and OS version. If you relied on this feature,
change your code to extract OS version from value
return by OS() function.
* src/vm/mainwin.c
% Do not include windows header.
* src/vm/cmdarg.c
- Undone some (innocent) part of patch in 2010-11-01 13:53 UTC+0200.
* INSTALL
* Moved around cygwin inside example section.
* include/hbapi.h
* src/common/hbver.c
+ Added hb_verPlatformMacro(), which returns string as it appears
in __PLATFORM__* macro.
This function will have to be extended for each new platform
Harbour is getting ported to.
* src/pp/ppcore.c
! Changed to use hb_verPlatformMacro() value to form __PLATFORM__*
macro, instead of using hb_verPlatform(), which offers no
guarantee for the value on *nix systems and it's was hack
on other platforms too (f.e. it got messed up when Windows
version string was changed to show "wine" at the beginning
of the human readable platform string).
% Made forming of __PLATFORM__* macros simpler, using hb_snprintf().
! Now WINCE builds of pp will also defined __PLATFORM__WINDOWS.
; Please review/test.
* src/vm/Makefile
* src/vm/mainwin.c
* src/vm/hvm.c
* src/vm/cmdarg.c
* src/vm/vmmt/Makefile
* utils/hbmk2/hbmk2.prg
* config/global.mk
* config/cygwin/global.mk
+ Cygwin related patch from Tamas Tevesz.
- Fixing cygwin dynamic lib name
- Dynamic lib linking
- defining __PLATFORM__CYGWIN in cross-platform builds
* src/rtl/dateshb.c
+ tests/dttest.prg
+ HB_DATETIME() got new, optional nYear, nMonth, nDay, nHour, nMinute, nSecond, nFragment
parameters. If passed, it will return date or timestamp based on passed parameters
instead of current timestamp.
Based on initiative and code by Carlos Bacco. Thank you!
* contrib/hbsqlit3/hbsqlit3.c
- Reverted UTF8 patch in 2010-11-01 00:05 UTC+0200.
+ Replaced above solution with transparent one, using
Str API usage and extended it for all places where UTF8
strings are expected or returned by sqlite3 API.
Please test. This clears an old TOFIX.
+ Added TOFIX for raw pointer usage.
* contrib/hbqt/qtgui/g/QApplication.cpp
* contrib/hbqt/qtgui/qth/QApplication.qth
! Fixed to wrap one declaration in HB_EXTERN_BEGIN/END.
* harbour/contrib/hbsqlit3/hbsqlit3.c
* Changed syntax of sqlite3_exec() to
sqlite3_exec( db, cSQLTEXT, [pCallbackFunc]|[cCallbackFunc],
[lConvertSQLTextToUTF8], "cCDP" ) -> nResultCode
From now we can replace
cSQLTEXT := hb_strToUTF8( cSQLTEXT, "RU1251" )
sqlite3_exec( db, cSQLTEXT )
with
sqlite3_exec( db, cSQLTEXT, , .t., "RU1251" )
* Changed syntax of sqlite3_bind_text(), sqlite3_column_text()
in such way
* Changed sqlite3_bind_blob() according to sqlite3 docs.
* utils/hbmk2/hbmk2.prg
+ Applied cygwin patch from Tamas Tevesz.
! Few more cygwin related fixes here and there.
+ Added more cygwin related TOFIX notes.
* utils/hbmk2/hbmk2.prg
+ Platform/compiler checks made robust and don't
give match anymore for 'win' when checking it against
'darwin' or 'cygwin'.
* utils/hbmk2/hbmk2.prg
* INSTALL
* Updated to reflect that cygwin is now distinct platform.
(TODO: examples)
* include/hb_io.h
* include/hbthread.h
* include/hbsetup.h
* src/vm/thread.c
* src/vm/dynlibhb.c
* src/common/hbgete.c
* src/common/hbprintf.c
* src/rtl/gttrm/Makefile
* src/rtl/hbsocket.c
* src/rtl/filesys.c
* src/rtl/hbcom.c
* config/global.mk
- config/win/cygwin.mk
+ config/cygwin
+ config/cygwin/libs.mk
+ config/cygwin/gcc.mk
+ config/cygwin/global.mk
+ Applied cygwin patch from Tamas Tevesz.
The goal is to migrate win/cygwin to cygwin/gcc, IOW to make cygwin
a distinct platform (which is primarily unixy with option to access
winapi) as it should be.
Changes made by me compared to original patch:
- Fixed to HB_HOST_PLAT stay 'win'. Cygwin is not a host platform.
- Fixed to set HB_COMPILER to gcc and HB_PLATFORM to cygwin when cygwin
is detected on win platform.
- Consequently some changes in global.mk could be dropped.
- Deleted hbcom patches not related to cygwin.
- Removed hbmk2 patch until we solve the 'plat $ 'cygwin' problem.
* contrib/hbqt/qtcore/hbqt_misc.prg
* Changed to not RTE when connecting to an already connected event.
It will now return .F.. This emulates old behavior.
* contrib/hbqt/qtcore/hbqt_hbqslots.cpp
* __HBQT_SLOTS_DISCONNECT() - Fixed a variable name
to match real content (slot -> pszSignal)
% __HBQT_SLOTS_CONNECT() - Synced with disconnect,
added local variable to avoid double hb_parcx() calls.
* contrib/hbwin/win_os.prg
* Reverted 2010-10-22 19:08 UTC+0200
Turns out it was alright without the fix, as hb_osIsWinVista()
returns .T. also for upper versions (win7) by design, so it was not
necessary to change it to win_osIsVistaOrUpper() hbwin specific call.
Please double check it though, maybe I'm just too tired.
* contrib/hbqt/qtcore/hbqt_misc.prg
+ Changed to not RTE when disconnecting not-connected
event. It will instead return .F. now.
To be consistent with slots in this regard.
* Undone previous optimization after realizing that
events and slots low-functiona return different error codes.
It didn't cause any harm with current system though.
* contrib/hbqt/qtcore/hbqt_hbqevents.cpp
% Optimized hb_snprintf() calls.
* contrib/hbqt/qtcore/hbqt_hbqevents.cpp
* contrib/hbqt/qtcore/hbqt_hbqslots.cpp
* Formatting.
* src/common/hbver.c
* Name of SPARC adjusted. Thanks to Tamas Tevesz.
* contrib/hbqt/qtcore/hbqt_misc.prg
* Laxed the rules for handling low-level connect/disconnect errors.
Now some cases will now RTE, some will return .F., some will get
ignored and .T. returned. Please refine it as required.
* Optimized :connect()/:disconnect()
* contrib/hbqt/qtcore/hbqt_hbqslots.cpp
! __HBQT_SLOTS_CONNECT() fixed to check for codeblock parameter
before actually making the connection on QT level.
Hopefully this was not some intentional feature.
* contrib/hbxbp/xbpmenubar.prg
! xbpMenuBar:delItem() fixed :disconnect() calls with wrong parameter.
Blindish fix, pls review and test.
* contrib/hbqt/tests/demoqt.prg
! Fixed wrong :connect call. Thanks to Tamas Tevesz for pinpointing it.
- contrib/hbqt/tests/dialogqt.prg
- Deleted files which doesn't compile since 1 year.
* contrib/hbqt/utils/hbqtgen.prg
+ Generate REQUEST __HBQT<NAME> puller code to each class definition
.prg. This will ensure that lib init code will always automatically
run if any QT class is used by an application.
* contrib/hbqt/*/g/*
* Regenerated.
* contrib/hbqt/tests/testres.prg
* contrib/hbqt/tests/demoqt.prg
* contrib/hbqt/tests/dialogqt.prg
* contrib/hbqt/tests/testbrow.prg
* contrib/hbqt/tests/testqaim.prg
* contrib/hbxbp/tests/demoxbp.prg
* contrib/hbxbp/tests/dialogqt.prg
- Deleted no more necessary REQUEST HB_QT and REQUEST HB_QTGUI
lines. INCOMPATIBLE: Please deleted these from your user code.