* 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.
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/hbmk2.hu_HU.po
* Minor cleanup to a few texts.
! Fixed doing nothing for single target cmdlines after latest commit.
+ Added dir/path inheritance of .hbm file path to more options
(-hbl, -po, -o, -L, -instpath, -incpath, -incpathtry, -i, -workdir,
-vcshead, -tshead, *.hbl + .hbp equivalents.)
+ Added dir support for VCS ID readout.
* utils/hbmk2/hbmk2.pt_BR.po
! Tabs -> Spaces
* utils/hbmk2/hbmk2.prg
+ Added experimental support for multitarget command lines.
The final usage may be changed.
There are two ways to do multitarget hbmk2 sessions:
1.) hbmk2 [<common_params1>] target1.hbt [<common_params2>] target2.hbt [<common_params3>]
where .hbt is an .hbm file just with an .hbt extension.
Examples:
hbmk2 mylib1.hbt mylib2.hbt myapp.hbt
hbmk2 -trace -pause mylib1.hbt mylib2.hbt myapp.hbt -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
! Fixed not expanding wildcards in .hbm files on *nix systems.
* contrib/xhb/xhbcomp.prg
* Minor formatting.
* bin/hb-func.sh
! HB_USER_LIBS_DEF -> CC_HB_USER_LIBS
; QUESTION: Is it a problem to move these to HB_ namespace?
* source/rtl/lang.c
! Fixed to return language IDs with consistent '-' separators
instead of '_'. We may change this to consistent '_', if
we decide it's better.
* harbour/source/rtl/filesys.c
! fixed OpenWatcom Linux builds which does not support utimes() yet.
* harbour/contrib/rddads/ads1.c
* pacified two BCC warnings
* utils/hbmk2/hbmk2.prg
! Just added bcc hack fixed to not cause problems when
bcc is explicitly selected, but the compiler cannot be
detected in path.
* utils/hbmk2/hbmk2.prg
+ Added automatic bcc configuration hack to add PSDK dir to
the libpath list. This is to fix bcc installations where
this isn't done in bcc configuration itself in bcc32.cfg,
ilink32.cfg. PSDK dir is required for hbmk2 because most
libs on the standard hbmk2 list of Windows system libs
(like winspool) included in link process are stored in
this subdir. It's still recommended to do this tweak in
local bcc environment.
; Please test it.
* utils/hbmk2/examples/contribf.hbp
+ Added hbqt.
* harbour/contrib/hbwin/hbwinole.h
* harbour/contrib/hbwin/olecore.c
+ functions hb_oleParam(), hb_oleItemToVariant() made public
* harbour/contrib/rddsql/hbrddsql.h
* harbour/contrib/rddsql/sqlbase.c
+ added NULL SDD driver. It allows to use SQLBASE, SQLMIX RDD
without any real SDD driver. It could be usefull to implement
memory/array RDD
* unspecified SDD methods are "inherited" from NULL SDD
+ harbour/contrib/rddsql/tests/arrayrdd.prg
+ "Array RDD" example added
* harbour/contrib/rddsql/sddfb/fbirddd.c
* harbour/contrib/rddsql/sddmy/mysqldd.c
* harbour/contrib/rddsql/sddodbc/odbcdd.c
* harbour/contrib/rddsql/sddpg/pgsqldd.c
* deleted empty or default SDD methods. They are inherited from
NULL SDD now
* harbour/contrib/rddsql/sddodbc/tests/test1.prg
+ added svn:keywords header
* extended to show SQLMIX index features
* utils/hbmk2/hbmk2.prg
! Fix to prev commit.
! Fix ignoring .po input without a language macro when
checking .hbl dependencies.
! Cosmetic fix to some i18n related outputs.
! Fixed recent RTE when generating .hbl.
* utils/hbmk2/hbmk2.prg
! Fixed -beep to work on all build failures.
+ Linking gtwin/trm/dos/os2 as non-default GT for -pause
support (gtcgi doesn't support Inkey(0)).
+ Added -pause option to force a pause on exit in case of
any error. This only works with alternate GTs above.
! Added missing -beep from help screen.
* source/rtl/hbi18n2.prg
! Minor fix to change dir separators to "/" so that
there won't be multiple entries for the same file
in mixed environments.
(like: '#: src\file.prg:1022 src/file.prg:1022')
+ utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hbm
+ Added Portuguese translation. Work of Vailton Renato. Thanks!
; NOTE: Quite some strings has changed since version, so the .po
file by now needs an update from source plus some parts
translated.
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
* Minor updates.
* utils/hbmk2/hbmk2.prg
% Changed default way of updating .po files. New method supports
incremental updates, thus much faster than previous solution.
As a side-effect, removed from source and changed translatable
strings won't automatically disappear from .po files.
This new method is also much friendlier to version control
systems, as .po entry order won't change on each minor update
(and generate a huge commit diff).
+ Added -rebuildpo option to activate a complete rebuild of .po
files, clearing all no more existing entries. This operation
will take more time, will create big diffs and it's recommended
to be done when doing a complete rebuild (maybe this will
be automatically enforced later on).
; With this, hbmk2 seems feature complete. (maybe C++/C mode
switching could be added yet, it's on the TODO list)
* bin/hb-func.sh
* Addition of libs= entry in hbmk.cfg file will now be
initiated by setting envvar HB_USER_LIBS_DEF (was HB_USER_LIBS),
to avoid potential binary build problems where locally
set HB_USER_LIBS envvar could create an unusuable (on other
systems) builds (hbmk2 setup).
+ contrib/rddsql/readme.txt
+ Added readme (posted on the list). Work of Mindaugas.
* utils/hbmk2/hbmk2.prg
+ Using HB_USERLANG() to detect language, so it now also
works on Windows.
+ Added support for -lang= switch to override language.
+ Added support for HB_LANG envvar to override language.
(this is the recommended method)
* include/hbextern.ch
* source/rtl/Makefile
+ source/rtl/lang.c
+ Added HB_USERLANG() function to retrieve ietf code of
language set by user. Works also on Windows.
* contrib/hbwin/win_misc.c
* contrib/hbwin/wapi_winbase.c
* contrib/hbwin/wapi_winuser.c
* WAPI_*() functions moved to wapi_* files.
+ WAPI_GETPROCADDRESS() added. This is a pure wrapper to
this Windows API.
* contrib/hbwin/win_prn1.c
* contrib/hbwin/win_prt.c
% hb_parnl() -> hb_parni() where it was cast to int anyway.
* contrib/hbwin/legacy.c
+ Added old MESSAGEBOX() call.
* contrib/hbwin/win_misc.c
* WAPI_MESSAGEBOX() now accepts pointer only.
+ WAPI_LOADLIBRARY() added, pointer based only.
+ WAPI_FREELIBRARY() added, pointer based only.
+ WIN_N2P() added to convert numeric pointers to real pointers.
+ WIN_P2N() added to convert real pointers to numeric ones.
I know this is a hack but it's IMO better than embedding the
conversion logic to all functions, and makes it possible to
"bridge" this parameter passing difference between existing
apps/libs and our developing Windows API layer.
So f.e. 3rd party app may switch to our new API, while
keeping some parts of his local code intact by using:
WAPI_MESSAGEBOX( WIN_N2P( MYWINFUNC_RETURNING_A_NUMHND() ), "hello", "world", MB_OK )
Later after doing local fixes this can be changed to:
WAPI_MESSAGEBOX( MYWINFUNC_PROPER(), "hello", "world", MB_OK )
* contrib/hbwin/win_dll.c
* Changed stub order for DLLLOAD()/LOADLIBRARY(),
DLLUNLOAD()/FREELIBRARY(), so that it workd if XBase++ parts
are disabled.
* harbour/bin/hb-func.sh
* respect HB_USER_LIBS creating hbmk.cfg
* harbour/contrib/rddads/ads1.c
! fixed minimal record buffer size calculation
! fixed adsGetValue() method hacked to not report errors due to too
small field buffer.
Warning! Now ADS RDD will report any error as RTE if sth wrong
will happen in one of AdsGet*() function when field is read so
it's possible that also some other hidden bugs will be exploited
and you will see RTE. Please test it.
* utils/hbmk2/hbmk2.prg
* -shareable -> -fullshared/-fixshared
+ contrib/hbmysql/mysqlold.c
* contrib/hbmysql/mysql.c
* contrib/hbmysql/Makefile
* Compatibility function names moved to separate file.
+ contrib/hbodbc/odbcold.c
* contrib/hbodbc/odbc.c
* contrib/hbodbc/Makefile
* Compatibility function names moved to separate file.
* contrib/hbwin/win_prt.c
! Applied fix submitted by Alex Strickland. Thank you.
* contrib/hbwin/legacy.c
* contrib/hbwin/win_dll.c
* GETLASTERROR()/SETLASTERROR() moved to legacy.c.
We have WAPI_GETLASTERROR()/WAPI_SETLASTERROR() and
it's recommended to use them instead.
+ XBase++ compatible DLL handling functions marked with
HB_COMPAT_XPP.
! DLLLOAD() changed back to return numeric pointer. This
is required to stay compatible with XBase++.
; TODO:
- Add C API to make DLL calls.
- Move CALLDLL*() functions to xhb lib.
- Add WAPI_LOADLIBRARY()/WAPI_FREELIBRARY()/WIN_GETPROCADDRESS()
functions to replace current LOADLIBRARY()/FREELIBRARY()/GETPROCADDRESS()
calls, fixing them to work on pointers only.
* utils/hbmk2/hbmk2.prg
+ Added -shareable/-shareable- option to control the aspect
of harbour.so absolute dir reference. It can override
previous rule controlled by system location detection. See
more in help.
* Minor internal change to one of the functions.
+ source/rtl/hbzlibgz.c
* source/rtl/hbzlib.c
* source/rtl/Makefile
% Split source into two, so unnecessary code parts won't be
included in final binaries.
* contrib/hbwin/tests/testdll.prg
* contrib/hbwin/win_dll.c
+ DLLPREPARECALL() will now accept pointer type as dll handle.
+ DLLLOAD() will now return pointer type, instead of numeric pointer.
May be incompatible if the value is used outside the scope of hbwin lib.
+ DLLUNLOAD() will now accept pointer type for dll handle.
+ DLLUNLOAD() will now gracefully fail if non pointer or numeric param
is passed.
+ DLLCALL() will now accept pointer type for dll handle.
+ GETPROCADDRESS() will now accept pointer type for dll handle.
; TODO: Remove compatibility with numeric pointers.
* contrib/hbwin/win_misc.c
* WIN_SHELLEXECUTE() no longer accepts numeric pointers
as optional first parameter. Use pointers instead.
* contrib/rddads/rddads.h
! Fixed version autodetection for ACE clients 9.00.0.7.
Now 900 is detected, previously it was 910 (Sybase
retrofitted some macros from 9.10 into this minor update.)
* utils/hbmk2/hbmk2.prg
! Fixed regression causing -o not to work in -hbcmp mode.
(bug introd in the compile/link phase switch)
+ Added support for -o in -hbcmp mode for pocc compilers.
+ Added support for -o in -hbcmp mode for owatcom compilers.
; Please test.
* contrib/rddads/rddads.h
- Deleted some commented lines targeting compatibility with
some now forgotten macros.
* harbour/contrib/rddads/ads1.c
* re-enabled workaround code for wrong character field size returned by
AdsGetFiled() for all ACE versions until we will not have good
confirmation from Extended System that problem is fixed in some
newer client versions.
* include/hbextern.ch
* source/rtl/Makefile
+ source/rtl/tgethb.prg
* source/rtl/tget.prg
+ HB_EXTENSION functionality (:hideInput() and :style()) moved
from GET to a new derived class called HB_GET(). It means
this functionality is available in default builds.
Further extensions can be added to this class.
* include/hbextern.ch
* contrib/xhb/hbcompat.ch
* source/rtl/setkey.c
+ Added HB_SETKEY() which is similar to SETKEY() but contains
3rd parameter extension. Now this functionality is available
for default Harbour builds under this new function name.
+ Added cross mappings for xhb SETKEY().
* source/rtl/setfunc.prg
+ F11/F12 key handling now protected with HB_C52_STRICT instead
of HB_EXTENSION so it will available in default builds.
- Other HB_EXTENSION protected feature deleted (allowing to
assign non-string key sequences to F keys. This effect can
easily be achieved with direct SETKEY() calls, so it wasn't
an essential extension here.
* source/rtl/hbffind.c
+ Internal HB_EXTENSION protected part enabled.
- Deleted HB_EXTENSION dealing with Windows-specific attribute
chars. Those needing this functionality can access it using
C level API.
* source/rtl/tpopup.prg
* source/rtl/ttopbar.prg
- Deleted minor (non Clipper-compatible) behaviour change
in handling disabled menu items when HB_EXTENSION
is enabled.
; Only remains few class extensions covered by HB_EXTENSION.
Overall there is no reason anymore to use this macro.
TODO: Solve these using inheritance.