* contrib/hbpgsql/tpostgre.prg
+ Formatted.
! Indented.
% Optimized to use SWITCH/CASE.
% Optimized to avoid ASize() and AAdd() in a few places.
+ Using constants for structure array positions.
* contrib/hbpgsql/tpostgre.prg
* contrib/hbpgsql/postgres.ch
* contrib/hbpgsql/postgres.c
+ Added and using HBPG_META_* constants.
* harbour/src/rdd/dbfcdx/dbfcdx1.c
! do not verify FOR expression just after loading new index file
in SIXCDX RDD. It's CL52 DBFCDX / SIX3 SIXCDX compatible behavior
but Harbour DBFCDX and CL53 DBFCDX / COMIX verifies both KEY and
FOR expressions when index is loaded.
! fixed RTE numbers to be CL53 compatible when index with wrong
(returning wrong results) KEY or FOR expression is loaded.
* harbour/src/vm/hvm.c
* harbour/src/vm/itemapi.c
* harbour/src/rtl/errapi.c
* harbour/contrib/xhb/cstructc.c
* changed HB_TRACE_STEALTH() to HB_TRACE()
* harbour/include/hbtrace.h
* harbour/include/hbstack.h
* harbour/src/vm/estack.c
* harbour/src/nortl/nortl.c
+ added hb_traceset() and hb_traceinfo()
* harbour/include/hbtrace.h
* harbour/src/common/hbtrace.c
* use hb_traceset()/hb_traceinfo() instead of hb_tr_file_, hb_tr_line_,
hb_tr_level_
- removed hb_tr_file_, hb_tr_line_, hb_tr_level_
+ added hb_tr_stealth() function and modified HB_TRACE_STEALTH()
macro to not touch any of hb_tr_*_ global variables
+ added HB_TR_FM macro which can be used to infrom FM statistic
module that it should take filename and line number from hb_tr_*_
global variables
* harbour/src/vm/fm.c
- removed dummy code with HB_TR_LEVEL setting - HB_TR_LEVEL is
always defined by hbtrace.h
* use hb_traceset()/hb_traceinfo() instead of hb_tr_file_, hb_tr_line_,
hb_tr_level_
* respect HB_TR_FM
* harbour/src/rtl/gttrm/gttrm.c
* formatting
* harbour/src/vm/itemapi.c
* harbour/src/vm/extend.c
* harbour/src/rtl/descend.c
* harbour/src/rtl/hbgtcore.c
* harbour/src/rtl/mtran.c
* harbour/src/rtl/samples.c
* harbour/src/common/hbstr.c
* harbour/src/common/hbdate.c
! fixed possible GPF traps in HB_TRACE() messages caused by %s used
for not \0 terminated strings or uninitialized buffers
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/iderequests.prg
* contrib/hbide/idethemes.prg
* contrib/hbide/resources/projectproperties.ui
+ contrib/hbide/resources/finddialog.uic
+ contrib/hbide/resources/findinfiles.uic
+ contrib/hbide/resources/findsource.uic
+ contrib/hbide/resources/mainwindow.uic
+ contrib/hbide/resources/projectproperties.uic
+ contrib/hbide/resources/selectionlist.uic
+ contrib/hbide/resources/selectproject.uic
+ contrib/hbide/resources/themes.uic
* contrib/hbqt/hbqt.ch
* contrib/hbqt/qtgui/QLabel.cpp
* contrib/hbqt/qtgui/QSizePolicy.cpp
* contrib/hbqt/qtgui/QSpacerItem.cpp
* contrib/hbqt/qth/QLabel.qth
* contrib/hbqt/qth/QSizePolicy.qth
* contrib/hbqt/qth/QSpacerItem.qth
* contrib/hbqt/THbQtUI.prg
* contrib/hbxbp/xbpdialog.prg
* contrib/hbxbp/xbpwindow.prg
+ This commit implements .uic files generated
via uic.exe of Qt distribution given a .ui file.
And hence eliminated the wooping cargo of QtUiTools.lib
which consumes arount 23+ MB over and above of application load.
All the dialogs/windows used in hbIDE are fully functional.
This implementation is in parallel of previous one and
either can be used. The difference in syntax is ( and as used in hbIDE )
#ifdef HBIDE_USE_UIC
oDlg := HbQtUI():new( ::oIDE:resPath + "selectproject.uic", ::oDlg:oWidget ):build()
#else
oDlg := HbQtUI():new( ::oIDE:resPath + "selectproject.ui", ::oDlg:oWidget ):create()
#endif
To take advantage of this feature you need to compile hbIDE
with -dHBIDE_USE_UIC. You can examine the task manager for memory
usage, with and without -dHBIDE_USE_UIC.
Please note that this implementation is not 100% complete.
I could synchronize the dialogs of hbIDE only. Though most of the
code is good for daily-use widgets still we need to add some
more functionality into the code. But it is simple. Mainly
we be needing more constants included in hash to convert
string defines to numeric representation.
Please test and report any issues.
* contrib/hbpgsql/postgres.c
! PQEXECPARAMS() fixed to not GPF when non-array is passed as 3rd parameter.
! PQESCAPEBYTEACONN() fixed to not GPF when non-string is passed as 2nd parameter.
! PQFNUMBER() fixed GPF (after prev commit)
% Deleted hb_pcount() checks. This served no useful purpose. It's better to
check for HB_IS*() is we want to enforce some parameters.
* contrib/hbpgsql/postgres.c
* contrib/hbpgsql/tests/test.prg
* Destructor PQCLOSETRACE() marked as deprecated, replaced in
test app with NIL assignment.
! Fixes to FILE object type.
; All this is only relevant if built with NODLL flag.
* contrib/hbpgsql/postgres.c
+ Added GC support for all remaining pointer types (result/cancel/FILE).
+ Added RTE when wrong pointer or wrong number of parameter is passed
to functions.
This means that behavior is now INCOMPATIBLE when wrong parameters
are encountered in these functions.
; Destructor functions PQFREECANCEL(), PQCLOSE(), PQCLEAR() marked
as 'deprecated'.
These are not needed, it's enough to assign NIL to their holder
variables on .prg level.
% Cleanups along the way.
; TODO: Fix sloppy parameter checking which only check number of
parameters instead of enforcing expected type.
; Please test.
* contrib/hbpgsql/tests/async.prg
* contrib/hbpgsql/tests/test.prg
* contrib/hbpgsql/tests/cache.prg
* contrib/hbpgsql/tests/stress.prg
% Replaced deprecated destructor functions with '<var> := NIL'.
* utils/hbmk2/hbmk2.prg
* Formatting.
* harbour/src/rtl/direct.c
! do not strip other attributes when "V" is set - it's neither
DOS not Clipper compatible behavior
Clipper passes attributes to OS and then OS decides about
their interpretation, i.e. FreeDOS replicates hardcoded
in our previous DIRECTORY() code behavior but MS-DOS doesn't.
% small simplification
* harbour/src/common/hbffind.c
! fixed emulation of DOS volum attribute in MS-Windows builds of
hb_fsFindFirst()/hb_fsFindNext().
It also fixes problem in HBCT FILEATTR() function in MS-Windows
builds.
This is still not full DOS emulation. Exact emulation should
automatically add trailing \ to given path, detect drive letter
and resolve their current directories. If some windows users
think it's important then they can extend this emulation.
Now it can be done as local modifications only.
Please test with real MS-Windows.
! fixed error code setting in UNICODE MS-Windows builds of
hb_fsFindFirst()/hb_fsFindNext().
* harbour/contrib/hbct/files.c
* removed old hack which is not longer necessary for current code.
* harbour/include/hbapifs.h
* small modifications to make HB_FNAME structure alignment independent
* harbour/src/vm/hvm.c
! fixed GPF when WITH OBJECT reference is used inside codeblock
evaluated outside WITH OBJECT / ENDWITH structure
TODO: forbid using WITH OBJECT references in nested codeblocks
* src/rtl/Makefile
* src/rtl/cdpapi.c
+ src/rtl/cdpapihb.c
* include/hbapicdp.h
+ Moved Harbour level functions to a separate file.
I had to rename and publish three static functions.
Eventually the low level part should go to hbcommon lib.
; TODO: HB_CDPLIST() is still to be moved, I couldn't find out elegant
low-level API to solve it.
* contrib/hbct/files.c
* 0 -> HB_FA_ALL.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Added verbose information when hbmk2 is run from outside Harbour tree
and HB_INSTALL_PREFIX is not set either. Just a wild guess what might
cause difficulty for some users when trying to use hbmk2.
* src/rtl/fssize.c
* contrib/hbqt/hbqt_hbevents.cpp
* Formatting.
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/hbqt_garbage.h
* contrib/hbqt/hbqt_hbevents.cpp
* contrib/hbqt/hbqt_hbevents.h
* contrib/hbqt/hbqt_hbqmainwindow.cpp
* contrib/hbqt/hbqt_hbslots.cpp
+ contrib/hbqt/qth/HBQMainWindow.qth
* contrib/hbqt/tests/demoqt.prg
* contrib/hbxbp/hbpprocess.prg
* contrib/hbxbp/xbp3state.prg
* contrib/hbxbp/xbpbrowse.prg
* contrib/hbxbp/xbpcheckbox.prg
* contrib/hbxbp/xbpcombobox.prg
* contrib/hbxbp/xbpdialog.prg
* contrib/hbxbp/xbpfiledialog.prg
* contrib/hbxbp/xbpfontdialog.prg
* contrib/hbxbp/xbphtmlviewer.prg
* contrib/hbxbp/xbplistbox.prg
* contrib/hbxbp/xbpmenubar.prg
* contrib/hbxbp/xbpprintdialog.prg
* contrib/hbxbp/xbprtf.prg
* contrib/hbxbp/xbpscrollbar.prg
* contrib/hbxbp/xbpsle.prg
* contrib/hbxbp/xbpspinbutton.prg
* contrib/hbxbp/xbpstatusbar.prg
* contrib/hbxbp/xbptabpage.prg
* contrib/hbxbp/xbptoolbar.prg
* contrib/hbxbp/xbptreeview.prg
* contrib/hbxbp/xbpwindow.prg
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idethemes.prg
! This commit has cleaned Qt wrappers not to
hold any GC collectible pointer inside. Events
and Slots protocol is completely re-structured.
% Improved HB_TRACE() logs. Now Qt wrappers can be
generated with relevant filter if env variable
HBQT_BUILD_TR_LEVEL=HB_TR_ALWAYS|ERROR|etc
defalt being TR_LEVEL_DEBUG. The formatting is
also improved.
% Signals are fired with exact same parametres
found in Qt documentation. Eearlier first parameter
was object pointer followed by slots's parameters.
This facilitates for the speed and better code
maintenance.
! Intensive debugging has shown that - operator new() -
is always called from cpp stub generated by hbMK2
but for operater delete(), behavior is inconsistent.
All classes derived from QObject() never call delete()
in the stub, some classes, which Qt defines as "on the
stack" call our stub and hence memory is released.
Perhaps this is the main reason, I cannot get back
all the momory if another dialog is opened and closed.
All claases which are derived from Qt class, viz., HbQ*
are released properly. Looking at this behavior it
comes to mind if all classes are sub-classed? A very
huge job nevertheless which I may take later.
* contrib/hbqt/qtcore/*.cpp
* contrib/hbqt/qtgui/*.cpp
* contrib/hbqt/qtnetwork/*.cpp
;NOTE : Regression is possible. Please report any issues.
* contrib/hbtpathy/telepath.prg
% Using HB_MILLISECONDS() instead of SECONDS().
! TP_RECVTO(), TP_FLUSH() fixed to honor -1 timeout.
; Please review. No tests made besides compiling and reviewing.
* contrib/hbtpathy/telepath.prg
! Fixed "midnight bug" in several TP functions having timeout option
(it was wrong in all places).
Reported by AbeB.
; Please review/test, I didn't make _any_ testing whatsoever.
* harbour/src/rdd/dbfcdx/dbfcdx1.c
+ enabled automatic template order setting in Harbour SIXCDX RDD using
the same method as SIX3 SIXCDX RDD seems to use: by checking leading
character of key expression for: "sxChar(", "sxDate(", "sxNum(" and
"sxLog("
Warning: This code is enabled only for SIXCDX RDD and DBFCDX was not
modified.
* disabled RTE in SIXCDX when key add/del operation are executed
for non custom indexes and
* do not add keys with different type to template indexes in SIXCDX
RDD for strict SIX3 compatibility.
* harbour/doc/cmpopt.txt
+ added information about missing in Clipper expression optimization
in LOCAL, PRIVATE and PUBLIC variable declaration. Clipper optimize
only expressions used in STATIC declarations.
* utils/hbmk2/hbmk2.prg
+ Added -env:<envname>- support to delete envvars completely.
% Minor optimization in filter handling.
* contrib/hbwin/win_os.prg
* contrib/hbwin/win_tprn.prg
% Using HB_OSISWIN*() functions instead of WIN_OSISWIN*() ones.
* INSTALL
* external/Makefile
* contrib/Makefile
+ Added build option to exclude specific list of contrib/external
libraries using syntax: 'HB_CONTRIBLIBS=no lib1 lib2 libn'
* contrib/hbct/dummy.c
+ Indicated that some functions are implemented in
core (for C5.3 compatibility).
* contrib/hbwin/win_tbmp.prg
* Formatting.
- contrib/gtqtc
+ contrib/hbqt/gtqtc
* Moved under QT structure.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/resources/findinfiles.ui
+ Started implementation of "Find in Files" option.
Just to have a glimpse what components it will contain,
click on "Search" button along-side "Find" buttons.
It is not working but it may prompt you which feature
I missed to include. Just play.
* contrib/hbide/hbide.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/resources/projectproperties.ui
+ Implemented loading project from .hbp.
Look for the button on top of "Properties" dialog.
Please note that .hbp file is loaded with its whole
contentents and then is sectionized as per .hbi
protocol. So, the disadvantage is you loose the
free-format implementation of .hbp. It has to be
discovered how can we cover this aspect. Be careful
when building the project as existing .hbp will be
overwritten if you choose the "Project Location"
of the project pointing to same folder where .hbp
resides. Other than loosing "-skip" protocol of .hbp,
I am sure we are loosing nothing else, please test.
+ Implemention <Close Project> and <Remove Project> options
which can be invoked from context menu of project node.
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbxbp/hbpprocess.prg
! xMate project file .xhp loading more normalized.
I could build almost all of my projects created from it.
* utils/hbmk2/hbmk2.prg
+ -xhp= converter switch now recognizes some more types of file.
(lib, object and libpaths)
* contrib/hbnetio/utils/netiosrv.prg
* contrib/hbnetio/utils/netiocmd.prg
- Deleted call protection.
* contrib/hbwin/Makefile
* contrib/hbwin/hbwin.h
* contrib/hbwin/win_bmp.c
+ contrib/hbwin/win_bmpd.c
* contrib/hbwin/win_tprn.prg
+ contrib/hbwin/win_tbmp.prg
+ Moved WIN_BMP() class to separate source file.
+ Moved WIN_BITMAPDIMENSIONS() and its low-level support functions
to separate source file, to avoid creating unwanted
dependency to libpng.
+ Applied Xavi's patches to WIN_BMP().
* Restored nError parameter for ::IsSupported()
* ::LoadFile() now fills dimensions automatically.
* ::Draw() 3rd dim array parameter replaced with nError.
* contrib/hbwin/hbwapi.h
+ Added 'extern' keyword.
* utils/hbmk2/hbmk2.prg
+ Added -hbexe option. This is the default, but it may help hbide
and other tools to clear doubts about target type. (or to override
some previous -hbdyn/-hblib options for whatever reasons)
* contrib/hbide/ideprojmanager.prg
* "hbMK2.exe" -> "hbmk2 Executable"
.exe extension is Win/OS2/DOS specific.
* harbour/utils/hbmk2/hbmk2.prg
* use HB_EXTERN_BEGIN / HB_EXTERN_END macros instead of HB_EXTERN_C
in -xhb mode. It fixes the problem with -gui switch.
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.prg
! Fixed rare problem where options containing .hbp/.hbm/.clp
extesions have been mistaken as file recursions instead
of being processes as options. F.e. -runflag=test.hbp
! Updated help text about possible filter keywords.
! Fixed to use xharbour[mt] for dynlib name for mingw targets.
Added NOTE that in newer xhb version this is not true
anymore. Support for other targets also doesn't work,
because of non-existent or not consistent dynlib naming
scheme in xhb.
! Fixed to use 'mainstd' instead of 'hbmainstd', and not
to use 'hbmainwin' at all in -xhb mode for mingw targets.
For rest of targets the xhb solution is inconsistent, so
it's not currently possible give them any meaningful
support in hbmk2.
* contrib/hbxbp/Makefile
* contrib/hbxbp/xbpgeneric.prg
* contrib/hbxbp/xbpwindow.prg
+ contrib/hbxbp/hbpqtui.prg
- contrib/hbxbp/xbpqtuiloader.prg
% Renamed XbpQtUiLoader() class to HbpQtUI()
This is Harbour extension to Xbase++ class framework.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idethemes.prg
* contrib/hbide/resources/projectproperties.ui
% Changed <Main Menu> prompts:
+ <Environments> in <Project>
- <Options> => <Setup>
- <Codecs> => <Setup> <Codecs>
! Separated the <Define Environments> dialog from <Project Properties>
And added a menu option in <Projects> main-menu prompt.
+ Implemented to load xMate's Project file (.xhp) when a new project
is created. Can be invoked via a push button on top-right corner of
<General> tab.
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/resources/hbide.env
- Dropped {shell} and {ext} placeholders from hbide.env.
These are now auto detected, thanks Viktor.
* contrib/hbnetio/utils/netiocmd.prg
! Fixed remote execution protection to work even when
the source was compiled from another directory.
; QUESTION: Is there a better way to make this kind of
protection? Current system will break if
the source filename of the caller happens to
change in the future.
* contrib/hbnetio/utils/netiosrv.prg
+ Show internal error and quit and if above self-protection
got broken for some reason.
* utils/hbmk2/hbmk2.prg
! Fixed entry function detection builting project in
different than current dir, possibly also in -inc mode.
[TOMERGE 2.0]
* ChangeLog
+ Added TOMERGE to /INSTALL doc modifications.
I had not marked any changes regarding .rpm generation, as
I can't oversee this packaging type, have minor experience
with it and got no user feedback whatsoever. If someone cares
to review/comment/fix, whole current INSTALL can go to 2.0.x.
[TOMERGE 2.0]
* harbour/contrib/hbwin/win_misc.c
! fixed buffer overflow in WIN_WIDETOANSI() caused by wrongly calculated
buffer size
* harbour/utils/hbmk2/hbmk2.prg
* updated names of xHarbour libraries - now it works in static mode
TOFIX: -xhb shared mode uses 'harbour' instead of 'xharbour' library
and 'hbmainstd' instead of 'mainstd'
TOFIX2: -gui switch in -xhb mode cause compile time error:
/tmp/hbmk_auhl2d.c:8: error: syntax error before "void"