* 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.
* INSTALL
+ Added typical ("FAQ") error message encountered with old,
buggy, unsupported GNU Make versions which users seem to
often use. In case someone would RTFM.
* source/vm/set.c
! Applied fix sent by Xavi. Thanks.
I did a few minor formattings and rename, and did a
light review, please review further and test. I seem to
remember some deeper problems with this feature,
reported a while ago on the list.
* utils/hbmk2/hbmk2.prg
! Added workaround for DIRECTORY() problem under Windows.
'*.ext' input files weren't working if the actual filenames
had different casing (on Windows). Also changed the hack
to only kick in on Windows platforms, *nixes seems to work
as expected.
; NOTE: This workaround should probably be moved to Harbour
FileFind API.
* INSTALL
+ Added HB_INC_ODBC.
* contrib/hbwin/tests/testole.prg
* contrib/hbwin/legacyc.c
* Updated to reflect OLE function name changes.
* contrib/hbwin/legacyc.c
+ Added GETACTIVEOBJECT(), CREATEOBJECT(), OLEERROR()
compatibility calls. All of them are simple aliases to
new OLE function, which means there may be differences
in behviour. Users will need to adjust them for full
compatibility.
However, I'd recommend changing all code to use our
new OLE functions and classes.
* contrib/hbwin/Makefile
+ contrib/hbwin/legacy.prg
* Moved TOLEAUTO() compatibility class to .prg level.
It's a stub, inheriting from WIN_OLEAUTO. I hope TOLEAUTO
users will fill it with required compitibility methods.
; NOTE: Getting these warnings with bcc:
Warning W8075 ../../axcore.c 93: Suspicious pointer conversion in function hb_ax_init
Warning W8075 ../../axcore.c 322: Suspicious pointer conversion in function HB_FUN___AXREGISTERHANDLER
; NOTE: Getting these errors with msvc (default C++ mode):
../../axcore.c(93) : error C2440: '=' : cannot convert from 'FARPROC' to 'HRESULT (__stdcall *)(HWND,IUnknown **)'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
../../axcore.c(146) : error C2143: syntax error : missing ';' before '*'
../../axcore.c(146) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
../../axcore.c(146) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
../../axcore.c(175) : error C2039: 'lpVtbl' : is not a member of 'ISink'
../../axcore.c(145) : see declaration of 'ISink'
../../axcore.c(175) : error C2227: left of '->Release' must point to class/struct/union/generic type
../../axcore.c(179) : error C2143: syntax error : missing ')' before 'this'
../../axcore.c(179) : error C2143: syntax error : missing ';' before 'this'
../../axcore.c(179) : error C2059: syntax error : ')'
../../axcore.c(180) : error C2143: syntax error : missing ';' before '{'
../../axcore.c(180) : error C2447: '{' : missing function header (old-style formal list?)
[ ...snip... ]
../../axcore.c(198) : error C2365: 'Release' : redefinition; previous definition was 'formerly unknown identifier'
[ ...snip... ]
../../axcore.c(282) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
../../axcore.c(282) : error C2146: syntax error : missing ';' before identifier 'ISink_Vtbl'
../../axcore.c(282) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
../../axcore.c(283) : error C2440: 'initializing' : cannot convert from 'HRESULT (__stdcall *)(IDispatch *)' to 'int'
There is no context in which this conversion is possible
../../axcore.c(284) : error C2078: too many initializers
../../axcore.c(322) : error C2039: 'lpVtbl' : is not a member of 'ISink'
../../axcore.c(145) : see declaration of 'ISink'
- hbwin/legacy.c
+ hbwin/legacyc.c
* hbwin/Makefile
* Renamed legacy.c to legacyc.c.
* hbwin/win_tprn.prg
* hbwin/hbwin.ch
* Moved #defines to hbwin.ch header.
* Formatting.
+ Added HB_COMPAT_XPP protection for XBPBITMAP class.
* hbwin/win_tprn.prg
* hbwin/win_prn1.c
* WIN_OS_ISWIN9X() removed, now using OS_ISWIN9X().
These OS_*() functions should be renamed in the future.
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Added support for UTF-8 output. Currently on on *nix
systems. The current solution is just an ugly hack,
for the most part to test this problem in real life.
The output format is also fixed to *nix OSes, there is
not attempt made to detect terminal encoding, so it
may be wrong if terminal expects something else.
* utils/hbi18n/hbi18n.prg
* .po_ -> .po (Przemek, please verify me, or modify it as
you think best)
* harbour/contrib/xhb/xhbmsgs.c
! fixed one byte string as number emulation in some math operations
where both expressions are one byte strings, f.e.:
? "A" * "B"
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Displaying C compiler used (with path) if autodetection
was used and -info enabled.
! Workaround added to MemoLine() sometimes returning empty
string for the last line.
* source/rtl/tget.prg
% Minor opt.
* external/sqlite3/sqlite3.c
* external/sqlite3/sqlite3.h
* sqlite upgraded to 3.6.14.1 (from 3.6.11)
* external/sqlite3/Makefile
+ Enabled for bcc compiler. Seems to compile fine now.
; NOTE: poccarm still fails, even with pocc6.
* contrib/hbwin/win_reg.prg
* contrib/hbwin/win_regc.c
* Cleanups: Documenting params, changing default, using SWITCH,
HKEY to HKCU (from HKLM) to be friendly with restricted user
situations (code may become incompatible), removed unused params,
changed return values to logical, more consistently filling params
returned by ref, fixed hkResult usage, fixed hbResult to use real
pointer type, minor opts.
Some of these changes may create incompatibility if:
- no hkey is passed, since the default has changed.
- using win_reg*() functions directly, since return value and
hbResult type has changed.
! Fixed potential GPF is non-string was passed for string params.
* contrib/hbwin/tests/testreg.prg
+ Added registry write test.
* utils/hbmk2/hbmk2.prg
* utils/hbi18n/hbi18n.prg
* utils/hbrun/hbrun.prg
* Minor opt.
* harbour/contrib/gtwvg/wvgsink.c
* harbour/contrib/gtwvg/wvgax.c
! Fixes to newer OLE implementation.
Thanks to Mindaugus and Przemek for doing all the spadework.
Now I can receive events as was doing before, fantastic.
* utils/hbmk2/hbmk2.prg
+ Changed default workdir to use output binary dir as a base.
! Fixed -instpath and -compr option not working with -hblib and -hbdyn modes.
* utils/hbmk2/hbmk2.hu_HU.po
! Cleaned.
* utils/hbmk2/hbmk2.prg
! Fixed setup of .hbl input codepages.
+ Added support to specify output CPs for Windows/DOS/OS2
and *nix systems.
; TOFIX: This isn't enough as f.e. all my *nixes require
UTF-8 output which we currently cannot provide in a
transparent way, so accented chars are all broken
on these platforms. I could hack it around by
calling HB_STRTOUTF8() on all strings going to
output when *nix is detected, but if possible it'd
better to do it transparently.
* utils/hbmk2/hbmk2.hu_HU.po
* Converted to ISO CP from 852.
* utils/hbmk2/hbmk2.prg
! Fixed handling of self-detected name inducted automatic
options (like -xhb when xhbmk2 is used) after adding
multitarget support.