* contrib/hbwin/hbwapi.h
* contrib/hbwin/wapi_commctrl.c
! wapi_par_COLORREF() fixed to use hb_parnl(). COLORREF is a 32bit value.
! Rest of wapi_par_*() macros fixed to accept pointers only.
If someone needs to pass numbers, use WIN_N2P() to convert them
to pointers first.
! Corrected casts in wapi_par_WORD() and wapi_par_DWORD().
! Fixed wapi_ret_HRESULT() to use hb_retnl(). It's a 32bit status value.
! Fixed wapi_ret_COLORREF() to use hb_retnl().
! Fixed WAPI_TABCTRL_CREATE() for 64-bit mode, font type was wrong.
! Fixed WAPI_TABCTRL_CREATE() to return pointer instead of number.
* contrib/hbwin/Makefile
! Reverted accidental edit in prev commit.
* INSTALL
* Minor cleanups to prev.
* contrib/hbwin/axcore.c
* Minor formatting.
% Variable scopes adjusted.
% WIN_AXCREATEWINDOW() optimized.
- Deleted ToOutDebug() stuff. Please use TRACE() subsystem for
these parts.
; NOTE: I'm note sure we should have a WIN_AXCREATEWINDOW() function
there. Rather, we should have a WAPI_CREATEWINDOWEX() function
which serves the same purpose, but in a generic manner, also
usable for AX purposes. Is there anything against this idea?
* utils/hbformat/hbformat.prg
* contrib/gtwvg/wvgclass.prg
* contrib/gtwvg/wvgscrlb.prg
* contrib/gtwvg/wvgdlg.prg
* contrib/gtwvg/wvgpaint.prg
* contrib/gtwvg/wvgdarea.prg
* contrib/gtwvg/wvgmle.prg
* contrib/gtwvg/wvglistb.prg
* contrib/gtwvg/wvgtoolb.prg
* contrib/gtwvg/wvgpushb.prg
* contrib/gtwvg/wvgsle.prg
* contrib/gtwvg/wvgtreev.prg
* contrib/gtwvg/tests/demoxbp.prg
* contrib/gtwvg/tests/demowvg.prg
* contrib/gtwvg/wvgwnd.prg
* contrib/gtwvg/wvgcrt.prg
* contrib/gtwvg/wvgdatar.prg
* contrib/gtwvg/wvgradio.prg
* contrib/gtwvg/wvgsysw.prg
* contrib/gtwvg/wvgmenub.prg
* contrib/gtwvg/wvgphdlr.prg
* contrib/gtwvg/wvgbitmp.prg
* contrib/gtwvg/wvgcheck.prg
* contrib/gtwvg/wvgstatb.prg
* contrib/gtwvg/wvgstatc.prg
* contrib/gtwvg/wvghtmlv.prg
* contrib/gtwvg/wincback.prg
* contrib/gtwvg/wvgtabpg.prg
* contrib/gtwvg/wvg3stat.prg
* contrib/gtwvg/wvgcombo.prg
* Some formatting. (' -> " and #include lines)
* contrib/hbwin/axcore.c
+ __XAXREGISTERHANDLER()
An extension of __AXREGISTERHANDLER() where connection points are
enumerated instead of finding - many OLE's have more than one interface -
a practical discovery. Mindaugas please check if it can be the default.
+ WIN_AXATLGETCONTROL() - Normalizing PRG calling convension.
+ WIN_AXCREATEWINDOW() - Can be dropped later.
+ WIN_AXGETUNKNOWN() - Useful in many situations.
+ WIN_AXSETVERB() - ---^---
+ WIN_AXRELEASEOBJECT() - Experimental
Note that these function are primarily aimed at making experiments
via gtwvg/winsink.c interface and after testings can be moved or removed.
/* Mindaugas, I receive a GPF when terminating the appln.
Also I cannot see that ISink is ever subject to garbase collection.
And "count" never returns to 0. I must be missing something, but...
*/
* contrib/gtwvg/wvgax.prg
* contrib/gtwvg/wvgwin.c
* contrib/gtwvg/wvgsink.c
! Fixed HB_OLEAUTO() -> WIN_OLEAUTO()
* Formatting.
! Fixed a few ISNIL()s.
! Fixed a few hb_parc() to hb_parcx() (many potential GPFs).
% Removed unnecessary ISBYREF() and hb_ret() calls.
! Prefixed some static vars with 's_'.
! Fixed potential buffer overrun and memory corruption in
Invoke() function.
* contrib/rddads/adsfunc.c
+ Changed to always define all Harbour level functions.
For unsupported ADS versions, these function will be stubs
returning dummy values.
; TODO: Do the same in other contribs, like hbsqlit3. Anyone?
* contrib/rddads/ads1.c
! Fixed typos and missing casts preventing to compile with
pre-6.00 ACE versions.
* contrib/rddads/Makefile
+ contrib/rddads/adsextrn.ch
+ Added EXTERNAL header.
* contrib/xhb/Makefile
+ contrib/xhb/datesxhb.c
+ Added these xhb compatibility functions:
TSSECS(), TIMEOFDAY(), HMS2D(), TTOD().
Borrowed from xhb, work of Giancarlo Niccolai, Walter Negro,
with few changes.
* contrib/xhb/hbcompat.ch
+ Added translation for these functions:
DATETIME(), HOUR(), MINUTE(), TTOS(), STOT(), TTOC(), CTOT()
(NOTE: I don't know if the workings of corresponding Harbour
functions are fully compatible. If not we can add
xhb_*() flavours locally in xhb lib)
* contrib/xhb/fparse.c
* contrib/rddsql/sddmy/mysqldd.c
* contrib/rddsql/sqlbase.c
* contrib/rddsql/sqlmix.c
* contrib/rddads/adsx.c
* contrib/examples/terminal/trm_client.prg
* source/rdd/dbfnsx/dbfnsx1.c
% "" -> NULL where applicable (hb_retc*(), hb_retds(), hb_itemPutC*(),
hb_arraySetC*(), hb_errInternal(), hb_itemPutDS(), hb_arraySetDS())
* contrib/hbqt/hbqt_qtextdocument.cpp
* contrib/hbqt/hbqt_qgridlayout.cpp
* contrib/hbqt/hbqt_qpainter.cpp
* contrib/hbqt/hbqt_qeventloop.cpp
* contrib/hbqt/hbqt_qicon.cpp
* contrib/hbqt/hbqt_qtreeview.cpp
* contrib/hbqt/hbqt_qtextline.cpp
* contrib/hbqt/hbqt_qdesktopwidget.cpp
* contrib/hbqt/hbqt_qhttp.cpp
* contrib/hbqt/hbqt_qlineedit.cpp
* contrib/hbqt/hbqt_qcombobox.cpp
* contrib/hbqt/hbqt_qlistwidget.cpp
* contrib/hbqt/hbqt_qtextcursor.cpp
* contrib/hbqt/hbqt_qtextlayout.cpp
* contrib/hbqt/hbqt_qftp.cpp
* contrib/hbqt/hbqt_qclipboard.cpp
* contrib/hbqt/hbqt_qurl.cpp
* contrib/hbqt/hbqt_qwebpage.cpp
* contrib/hbqt/hbqt_qtextedit.cpp
* contrib/hbqt/hbqt_qpixmap.cpp
* contrib/hbqt/hbqt_qsplashscreen.cpp
* contrib/hbqt/hbqt_qtablewidget.cpp
* contrib/hbqt/hbqt_qtreewidget.cpp
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/hbqt_qfont.cpp
* contrib/hbqt/hbqt_qmainwindow.cpp
* contrib/hbqt/hbqt_qdir.cpp
* contrib/hbqt/hbqt_qwidget.cpp
* contrib/hbqt/hbqt_qstyle.cpp
* contrib/hbqt/hbqt_qabstractbutton.cpp
* contrib/hbqt/hbqt_qobject.cpp
* contrib/hbqt/hbqt_qcolor.cpp
* contrib/hbqt/hbqt_qtextstream.cpp
* contrib/hbqt/hbqt_qwebview.cpp
* contrib/hbqt/hbqt_qboxlayout.cpp
* contrib/hbqt/hbqt_qstatusbar.cpp
* contrib/hbqt/hbqt_qtabwidget.cpp
* contrib/hbqt/hbqt_qscrollarea.cpp
* contrib/hbqt/hbqt_qtextcharformat.cpp
! Fixed to use HB_ISNUM() instead of HB_ISNIL().
% Don't call HB_ISNUM() where the default value is
zero anyway. hb_parn*() functions will return zero
anyway. (well, maybe this exploits the array-type
bug in our Extend API.)
* contrib/gtwvg/wvgwin.c
* contrib/gtwvg/wvgsink.c
* Avoiding ISNIL(). Corrected just a few occurences.
This practice is still wrong in most of the cases in
GTWVG code, so if the goal is GPF-free and consitently
behaving apps, these would better be fixed. With
string params ISNIL() is either superfluous or simply
don't protect agains GPFs, for rest of the cases it
either causes unexpected defaults (zero), or simply
superfluous for the rest of the cases. IOW: Avoid it,
use HB_ISNUM(), HB_ISCHAR() / parcx() instead.
* contrib/hbgd/gdwrp.c
* Formatting.
* contrib/gtwvg/wvgsink.c
! Fixed warning.
* Some formatting, minor cleanup.
* source/rtl/hbi18n2.prg
+ __I18N_POTARRAYSAVE() got logical flag to suppress Harbour version
number in saved file comment.
+ __I18N_POTARRAYSAVE() got logical flag to suppress source
reference information in save file. This way it's possible to
lessen the number of .po file updates and to avoid the growth
caused by texts moving around while files are being edited.
* utils/hbmk2/hbmk2.prg
+ Added option to save .po files in a version repository friendly
way, this means no Harbour version number and no source file
references in .po files. You can activate this using -minipo
option.
* harbour/contrib/hbwin/hbwinole.h
* changed HB_OLE_C_API define to be compatible to other similar
defines, i.e. defined() vs. !defined() instead of 1 vs. 0
* harbour/contrib/hbwin/axcore.c
! fixed missing IDispatchVtbl definition in C++ mode
* harbour/contrib/hbwin/hbwinole.h
* harbour/contrib/hbwin/axcore.c
* harbour/contrib/hbwin/olecore.c
* a few C/C++ compatibility macros introduced. Cleaned code: two
version of method call code is not required any more
* harbour/include/hbxvm.h
* harbour/source/vm/hvm.c
* harbour/source/compiler/gencc.c
! added missing RT error for wrong values used in SWITCH statement
in code generated for -gc3 output
* utils/hbmk2/hbmk2.prg
+ Added -cpp/-nocpp options to help screen.
* Removed C++ mode from TODO. I honestly forgot what was
missing from this feature (besides lack of support for
pocc compiler, since I couldn't find such option there),
please report it if you find something.
* harbour/source/rtl/gtxwc/gtxwc.c
! fixed typo in HB_GTXVG_SQUARE shape initialization
* harbour/include/hbrddnsx.h
* harbour/include/hbrddntx.h
* harbour/source/rdd/dbfntx/dbfntx1.c
* harbour/source/rdd/dbfnsx/dbfnsx1.c
* code cleanup - use predefined #define instead of hardcoded constant
values
* harbour/source/rtl/valtoexp.prg
* added REQUEST __objSetClass
* harbour/source/compiler/gencc.c
! fixed -gc3 code generated for switch statement - thanks to Marek and
Xavi for information and self contain example
TODO: add missing RT error in -gc3 output when wrong (non integer
and non string value) is used in SWITCH statement
* utils/hbmk2/hbmk2.prg
* Changed multitarget support. Instead of special .hbt extension
(which was not removed), not -target=<target>[.hbm|.prg] option
can be used to force a distinct target from the command line.
This way it's more flexible, easy to use and clear without needing
a special extension alias.
Here's the updated usage:
There are two ways to do multitarget hbmk2 sessions:
1.) hbmk2 [<common_params1>] -target=target1[.hbm|.prg] [<common_params2>] -target=target2[.hbm|.prg] [<common_params3>]
Examples:
hbmk2 -target=prog1 -target=prog2 -target=prog3
hbmk2 -target=prog1.prg -target=prog2.prg -target=prog3.prg
hbmk2 -target=mylib1.hbm -target=mylib2.hbm -target=myapp.hbm
hbmk2 -trace -pause -target=mylib1.hbm -target=mylib2.hbm -target=myapp.hbm -beep
2.) hbmk2 [<common_params1>] -target <target1_params> -target <target2_params> [-notarget <common_params2>]
Examples:
hbmk2 -target hello1.prg -target hello2.prg
hbmk2 -trace -target hello1.prg -target hello2.prg
hbmk2 -trace -target hello1.prg -target hello2.prg -notarget -beep
* Changed ' = ' operators to macro LEFTEQUAL().
+ Added Set( _SET_EXACT ) setting to make sure above operator
works regardless of caller/default state.
; NOTE: IMO it would be useful to add a pseudo function
equivalent to non-exact equality operator. This would
clear up hacks like above.
* doc/dirstruc.txt
! Typo.
* utils/hbmk2/hbmk2.prg
! Fixed to morph harbour binary extension according to target
platform. This should fix HB_INSTALL_PREFIX autodetection and
also -trace display of harbour command line.
Please test.
* harbour/bin/hb-func.sh
! Changed comp= line to not have a filter. Filters aren't
supported here, even the whole line isn't processed yet
by hbmk2.
* INSTALL
* Minor correction.
* utils/hbmk2/hbmk2.prg
! Fixed to only add -march/-mtune gcc parameters for mingw/gcc
targets. These values are ignored by mingwarm on Windows, but
generate errors on Linux.
* contrib/hbfimage/fi_winfu.c
+ FI_WINDRAW() now accepts pointer type as second parameter.
! FI_WINDRAW() fixed warning with gcc 4.4.0.
* utils/hbmk2/hbmk2.prg
! Fixed to use hb_osPathSeparator() instead of hardcoded
backslash in mingw* init section, as it may also be used
on *nix in cross compilation scenarios.
! Dropped .exe extensions from mingw* init section to also
work on *nix systems.
* Extended xmingw, mingw32ce detection for all *nix systems.
* contrib/hbodbc/odbc.c
! Cast.
* INSTALL
* config/global.cf
* Removed requirement of 3.81 or upper GNU Make, now it's a
recommendation only. If I understand correctly after
2009-05-22 16:28 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
older ones can also be used without parallel build feature.
Lowered minimum version to 3.70.
* utils/hbmk2/hbmk2.prg
+ Added autodetection of xmingw and mingw32ce tools on Linux.
(untested)
* contrib/hbwin/legacy.prg
+ Added win32prn and win32bmp compatibility classes.
* contrib/hbwin/hbwin.ch
* contrib/hbwin/tests/testprn.prg
* Moved macros to hbwin.ch.
* Minor opt in test.
* external/sqlite3/Makefile
- Disabled for mingwarm due to compile errors.
Error reported on sqlite3 site.
* contrib/hbodbc/odbc.c
+ Copied dummy HB_TCHAR* macros from odbcdd.c, plus
added dummy HB_TCHAR_CONVFROM().
% Removed separate branches for Windows platform.
Please test it on *nix.
; TODO: Except one. Currently we have no TCHAR macro
which deals with byte strings with lengths.
Przemek, do you think it's possible to add it?
* contrib/rddsql/sddodbc/odbcdd.c
+ Added HB_TCHAR_CONVFROM().
* contrib/rddsql/sddodbc/odbcdd.c
! Added UNICODE support to the extent it compiles. Please
make tests. Also SQLGetData() / SQL_C_CHAR may also need
conversion from UNICODE.
* harbour/source/vm/memvars.c
* modified __mvDbgInfo():
- accept as 1-st parameter also HB_MV_PRIVATE_LOCAL and
HB_MV_PRIVATE_GLOBAL values
- changed parameters meaning now when less then 3 parameters is
given this function returns number of variables and the second
parameter is the call stack level. Memvar value and optionally
name is returned only if 3 or more parameters is given.
3-rd party code which used this function with two parameters
has to be updated.
* harbour/source/debug/debugger.prg
* mark non local private variables in monitor as "Private^" (with "^")
* do not show public and private variables hidden by other private
declarations
* harbour/source/rtl/filebuf.c
! refuse to share file handles if they were open in different mode
TODO: add support for keeping more then one handle for single file
open and allow such combinations.
* harbour/source/rtl/hbffind.c
% optimized *nix version of hb_fsFind*()
* harbour/utils/hbmk2/hbmk2.prg
! fixed compilation on non Windows platforms (unused variable warning)
* harbour/include/hbset.h
* harbour/source/vm/set.c
+ added new function hb_setGetPrinterHandle() which allows to open
closed printer port
! do not force opening default port after SET PRINTER TO ""
but delay the initialization untill other code does not call
hb_setGetPrinterHandle()
! fixed filename returned by _SET_PRINTFILE, _SET_ALTFILE, _SET_EXTRAFILE
! fixed dpossible resource leaks whne _SET_*FILE is called recurisvely
for user error block
! fixed _SET_*FILE settings to not accept files which cannot be open
(just like in Clipper)
* harbour/source/rtl/console.c
* use hb_setGetPrinterHandle() to access printer handler
* utils/hbmk2/hbmk2.prg
+ Added automatic configuration for bcc compiler. This kicks in
for bcc installations missing bcc32.cfg or ilink32.cfg next to
bcc32.exe. In this case Lib/Include dir will automatically
added to the lib/include lists by hbmk2. This means that
hbmk2 will work with bare bcc installations without doing any
manual configuration.
* config/global.cf
+ Added link to blog dealing with GNU Make.