* contrib/hbct/ctnet.c
* contrib/hbtpathy/tpwin.c
* contrib/hbnf/getenvrn.c
! Fixed to disable some functionality on all WinCE platforms.
These were WinCE API functions wrongly declared in
mingwarm/poccarm headers. (thus causing link-time errors
for final apps trying to use these functions)
* contrib/hbwin/win_dlg.c
! Enabled more functionality for WinCE. mingwarm builds
will probably crash due to buggy commdlg.h header.
* src/vm/fm.c
! Fixed to redefine ABORT for all wce/msvcarm targets.
* utils/hbmk2/hbmk2.prg
! Minor typo in recently added help item.
* contrib/gtwvg/gtwvg.h
* contrib/gtwvg/wvggui.h
* contrib/hbwin/win_prn1.c
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_prn3.c
* contrib/hbwin/win_dlg.c
* contrib/hbodbc/odbc.c
* contrib/rddsql/sddodbc/sddodbc.c
! Fixed to compile with -DWIN32_LEAN_AND_MEAN.
* contrib/hbodbc/odbc.c
* contrib/rddsql/sddodbc/sddodbc.c
! Silenced warnings.
* contrib/rddsql/sddoci/sddoci.c
* contrib/rddsql/sddoci/tests/test1.prg
+ Finished type mapping and value translation.
; Not being an Oracle user, I only have the few sample
tables, so no testing was made with these types.
; TOFIX: decimal position retrieval is currently wrong.
; TOFIX: date/time/timestamp doesn't seem to get through.
* config/win/global.mk
* config/rules.mk
* Moved HB_BUILD_UNICODE handling here for win platform,
to allow disabling it for potential 3rd party libs which
don't support UNICODE mode.
* src/common/hbffind.c
* Formatting.
* contrib/hbodbc/odbc.c
* contrib/rddsql/sddodbc/sddodbc.c
+ Added support for UNICODE mode on non-Windows systems.
This also means that by now HB_TCHAR_* macros aren't used
in non-win/wce code anymore.
NOTE: Since the translation functions have been changed,
now _SET_OSCODEPAGE setting are honored in these
calls. We may change this later to some lib specific cp.
; TOFIX: Warnings are showing up in non-UNICODE mode:
odbc.c:438: warning: pointer targets in passing argument 2 of 'hb_storstr' differ in signedness
Couldn't find an optimal way to pacify them (also in sddodbc).
Can someone help?
* include/hbdefs.h
+ HB_TCHAR_* macros are again only defined for win/wce targets.
This will make sure these won't get used in non-win/wce specific code.
* contrib/hbmysql/tmysql.prg
! Fixed old buggy code which started to throw errors
after introducing strict parameter evaluation in
lower-level code.
For now I replaced the code with old behavior.
Pls make further to replicate original _intent_.
* harbour/contrib/hbodbc/odbc.c
* harbour/contrib/rddsql/sddodbc/odbcdd.c
* synced workarounds for missing in some header files SQL* definitions
* harbour/config/globsh.mk
* harbour/config/instsh.mk
! eliminated COMMAND.COM commands used for DOS shell - I've just tested
that they do not work with pure MS-DOS 6.2 without using $(CMDPREF)
though they works with FreeDOS. Anyhow we can safely eliminate them
using dj-*.exe tools directly without any if ... command.com testing.
It also resolve the problem with IF EXIST <DIR>\NUL which is always
true in some environment, i.e. Novel-NetWare drives.
* contrib/hbodbc/odbc.c
! Eliminated last UNICODE branching, this also fixes
embedded zero chars not being respected in UNICODE mode
in SQLDESCRIBECOL(). Not tested, ODBC users please do,
also someone pls review me.
* ChangeLog
* TODOs/TOFIXes marked as DONE.
* 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.
* 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().
* 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 autodetection of lib/<arch>/<comp> lib dir. This
makes it possible to use hbmk2 in multicompiler scenarios
without 'make install'ing Harbour, or even multicompiler
end-user configurations for any compiler regardless of
lib format and naming.
+ contrib/hbqt/tests/hbqt.hbp
+ Added .hbp file for hbqt.
* contrib/hbodbc/odbc.c
* Further type cleanup.
* Formatting.
* contrib/hbole/tests/testole.prg
* Minor cleanups.
* contrib/hbole/olecore.c
* Using hb_itemGetCPtr2() instead of hb_itemGetCLPtr()
* contrib/hbwin/wapi_commctrl.c
* contrib/hbwin/wapi_winuser.c
! WinCE fixes.
* Formatting.
* contrib/examples/hbwhat/tests/hbwhat.hbp
- Removed no longer necessary Windows libs.
* utils/hbmk2/hbmk2.prg
* contrib/hbole/tests/hbole.hbp
* contrib/gtwvg/tests/gtwvg.hbp
* contrib/hbwin/tests/hbwin.hbp
- utils/hbmk2/examples/winapi.hbp
+ Added all important Windows system libs to all
win compilers in hbmk2.
- Removed above libs from .hbp files.
* contrib/hbodbc/todbc.prg
* contrib/hbodbc/browodbc.prg
* contrib/hbodbc/odbc.c
* Further cleanups.
SETNUMLEN() -> SQLNUMSETLEN(). This should probably be a core
function by the name HB_NUMSETLEN().
* contrib/hbole/tests/testole.prg
* contrib/hbole/tests/sample.odt
+ Updated to latest hbole code.
; TOFIX: hbole code doesn't compile with MSVC in default C++
even if #define CINTERFACE 1 is enabled.
; TOFIX: OpenOffice example fails at some point. It probably
needs array support.
* contrib/hbole/olecore.c
* Minor formatting.
* contrib/hbqt/hbqt_qabstractitemview.cpp
! Fixed backslash to forward slash.
* contrib/hbct/tests/ctwtest.prg
* contrib/hbnf/dispmsg.prg
* contrib/hbnf/pegs.prg
* contrib/hbnf/tbwhile.prg
* contrib/hbnf/calendar.prg
* contrib/gtwvg/tests/demowvg.prg
* contrib/examples/terminal/trm_server.prg
* contrib/examples/terminal/trm_client.prg
! Using manifest constants.
* contrib/hbmysql/mysql.c
* contrib/hbodbc/odbc.c
* Minor cleanup.
* contrib/hbodbc/tests/odbcdemo.prg
* contrib/hbodbc/tests/odbccall.prg
* contrib/hbodbc/tests/testodbc.prg
* Minor.
* contrib/hbodbc/tests/odbcdemo.prg
* contrib/hbodbc/tests/testodbc.prg
* contrib/hbodbc/todbc.prg
* contrib/hbodbc/odbc.c
* contrib/hbodbc/Makefile
+ Platform protection moved to Makefile level.
+ Lots of type cleanups to use SQL types rather than Windows types.
+ Lots of type cleanups to use large integers where needed.
* Synced Harbour integers API calls with SQL integer sizes.
+ Cleaned __DMC__ hacks.
! Fixed to compile with ODBCVER == 0x0100 and ODBCVER == 0x0200.
* Update Harbour level function names as follows. Old names are
still available, you can disabled them by defining HB_ODBC_LEGACY_LEVEL_OFF macro:
SQLALLOCEN => SQLALLOCENV
SQLALLOCCO => SQLALLOCCONNECT
SQLDRIVERC => SQLDRIVERCONNECT
SQLDISCONN => SQLDISCONNECT
SQLFREECON => SQLFREECONNECT
SQLALLOCST => SQLALLOCSTMT
SQLFREESTM => SQLFREESTMT
SQLEXECDIR => SQLEXECDIRECT
SQLNUMRES => SQLNUMRESULTCOLS
SQLDESCRIB => SQLDESCRIBECOL
SQLEXTENDE => SQLEXTENDEDFETCH
SQLFETCHSC => SQLFETCHSCROLL
SQLROWCOUN => SQLROWCOUNT
SQLSETCONNECTOPTION => SQLSETCONNECTATTR
SQLSETSTMTOPTION => SQLSETSTMTATTR
SQLGETCONNECTOPTION => SQLGETCONNECTATTR
SQLGETSTMTOPTION => SQLGETSTMTATTR
* contrib/hbmysql/mysql.c
% Replaced Windows headers with winsock2.h which seems to
be required by mysql headers.
* contrib/hbfbird/firebird.c
* contrib/rddsql/sqlmix.c
* contrib/hbssl/sslrand.c
% Removed Windows headers.
* contrib/gtwvg/gtwvg.h
* contrib/gtwvg/wvggui.h
+ Readded ugly workaround for mingw64.
* utils/hbmk2/hbmk2.prg
* config/win/icc.cf
* config/win/cygwin.cf
* config/win/msvc.cf
* config/win/owatcom.cf
* config/win/xcc.cf
* config/win/mingw.cf
* config/win/pocc.cf
* Changed Harbour to uniformly link against ws2_32 winsock
lib on Windows. Previous we've been using a mixture of
ws2_32 and wsock32, sometimes both. For some platforms
one of these libs is automatically included by linker,
f.e. for bcc, wsock32 is used.
! This fixes wsock32 no longer available for mingw64.
; These platforms should be retested if this causes any
problems, but ws2_32 should be available for all since long.
* utils/hbmk2/hbmk2.prg
! Typo in prev commit.
* source/vm/maindllp.c
* source/vm/extrap.c
! Fixed for mingw64.
! Fixed warning for mingw64.
; TODO: Check for possible regression.
* contrib/hbodbc/odbc.c
! Fixed mingw64 warning.
; TODO: Check for possible regression.
; TOFIX: (3rd party dependent contribs not yet included)
Errors/Core:
Temp/ccVJXjZS.s: Assembler messages:
Temp/ccVJXjZS.s:19: Error: Incorrect register `%rax' used with `l' suffix
Temp/ccVJXjZS.s:20: Error: `0x0e10(%rax,%ecx,4)' is not a valid base/index expression
Temp/ccVJXjZS.s:36: Error: Incorrect register `%rax' used with `l' suffix
Temp/ccVJXjZS.s:37: Error: `0x0e10(%rax,%ecx,4)' is not a valid base/index expression
+ GTWVG (also lots of warning)
Warnings/Core:
../../hbprintf.c: In function 'hb_snprintf':
../../hbprintf.c:1067: warning: implicit declaration of function 'finite'
../../hbprintf.c:1148: warning: cast from pointer to integer of different size
../../itemapi.c: In function 'hb_itemStrBuf':
../../itemapi.c:2159: warning: implicit declaration of function 'finite'
../../dbfntx1.c: In function 'hb_ntxTagHeaderCheck':
../../dbfntx1.c:1016: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfntx1.c:1016: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfntx1.c:1017: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfntx1.c:1017: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfntx1.c:1017: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfntx1.c:1017: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c: In function 'hb_nsxTagHeaderCheck':
../../dbfnsx1.c:1233: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1235: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1236: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1236: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1236: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1236: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c: In function 'hb_nsxPageFree':
../../dbfnsx1.c:1525: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1525: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1525: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1525: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c: In function 'hb_nsxPageNew':
../../dbfnsx1.c:1574: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1574: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1574: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../dbfnsx1.c:1574: warning: dereferencing type-punned pointer will break strict-aliasing rules
Warnings/Contrib:
../../files.c: In function 'HB_FUN_SETFDATI':
../../files.c:247: warning: cast to pointer from integer of different size
../../files.c:268: warning: cast from pointer to integer of different size
../../getenvrn.c: In function 'HB_FUN_FT_GETE':
../../getenvrn.c:178: warning: implicit declaration of function 'GetEnvironmentStrings'
../../getenvrn.c:178: warning: initialization makes pointer from integer without a cast
../../tpwin.c: In function 'HB_FUN_P_INITPORTSPEED':
../../tpwin.c:78: warning: cast to pointer from integer of different size
../../tpwin.c:89: warning: cast to pointer from integer of different size
../../tpwin.c: In function 'HB_FUN_P_READPORT':
../../tpwin.c:108: warning: cast to pointer from integer of different size
../../tpwin.c: In function 'HB_FUN_P_WRITEPORT':
../../tpwin.c:119: warning: cast to pointer from integer of different size
../../win_dll.c: In function 'DllExec':
../../win_dll.c:509: warning: cast from pointer to integer of different size
../../win_dll.c:603: warning: cast to pointer from integer of different size
../../win_dll.c:672: warning: cast to pointer from integer of different size
../../win_dll.c:689: warning: cast to pointer from integer of different size
../../win_dll.c: In function 'hb_getprocaddress':
../../win_dll.c:809: warning: cast to pointer from integer of different size
../../win_ole.c: In function 'hb_oleItemToVariant':
../../win_ole.c:466: warning: cast to pointer from integer of different size
../../win_ole.c: In function 'FreeParams':
../../win_ole.c:762: warning: cast from pointer to integer of different size
../../win_ole.c: In function 'hb_oleVariantToItem':
../../win_ole.c:1092: warning: cast from pointer to integer of different size
../../win_ole.c: In function 'HB_FUN_CREATEOLEOBJECT':
../../win_ole.c:1425: warning: cast from pointer to integer of different size
../../win_ole.c: In function 'HB_FUN_GETOLEOBJECT':
../../win_ole.c:1478: warning: cast from pointer to integer of different size
../../win_ole.c: In function 'HB_FUN_OLEADDREF':
../../win_ole.c:1486: warning: cast to pointer from integer of different size
../../win_ole.c: In function 'HB_FUN_OLERELEASEOBJECT':
../../win_ole.c:1498: warning: cast to pointer from integer of different size
../../win_ole.c: In function 'HB_FUN_TOLEAUTO_OLEVALUE':
../../win_ole.c:1648: warning: cast to pointer from integer of different size
../../win_ole.c: In function 'HB_FUN_TOLEAUTO__OLEVALUE':
../../win_ole.c:1675: warning: cast to pointer from integer of different size
../../win_ole.c: In function 'HB_FUN_TOLEAUTO_OLENEWENUMERATOR':
../../win_ole.c:1703: warning: cast to pointer from integer of different size
../../win_ole.c: In function 'HB_FUN_TOLEAUTO_INVOKE':
../../win_ole.c:1786: warning: cast to pointer from integer of different size
../../win_ole.c: In function 'HB_FUN_TOLEAUTO_SET':
../../win_ole.c:1810: warning: cast to pointer from integer of different size
../../win_ole.c: In function 'HB_FUN_TOLEAUTO_GET':
../../win_ole.c:1834: warning: cast to pointer from integer of different size
../../win_ole.c: In function 'HB_FUN_TOLEAUTO_ONERROR':
../../win_ole.c:1861: warning: cast to pointer from integer of different size
../../win_regc.c: In function 'hb_regkeyconv':
../../win_regc.c:77: warning: cast to pointer from integer of different size
../../win_regc.c: In function 'HB_FUN_WIN_REGCREATEKEYEX':
../../win_regc.c:82: warning: cast to pointer from integer of different size
../../win_regc.c:96: warning: cast from pointer to integer of different size
../../win_regc.c: In function 'HB_FUN_WIN_REGOPENKEYEX':
../../win_regc.c:118: warning: cast from pointer to integer of different size
../../win_regc.c: In function 'HB_FUN_WIN_REGCLOSEKEY':
../../win_regc.c:193: warning: cast to pointer from integer of different size
../../wapi_commctrl.c: In function 'HB_FUN_WAPI_TABCTRL_GETITEMRECT':
../../wapi_commctrl.c:521: warning: value computed is not used
../../wapi_commctrl.c: In function 'HB_FUN_WAPI_TABCTRL_GETIMAGELIST':
../../wapi_commctrl.c:553: warning: cast from pointer to integer of different size
../../wapi_commctrl.c: In function 'HB_FUN_WAPI_TABCTRL_ADJUSTRECT':
../../wapi_commctrl.c:632: warning: value computed is not used
../../wapi_commctrl.c: In function 'HB_FUN_WAPI_TABCTRL_CREATE':
../../wapi_commctrl.c:782: warning: cast to pointer from integer of different size
../../wapi_commctrl.c:786: warning: cast from pointer to integer of different size
../../wapi_winbase.c: In function 'HB_FUN_WAPI_GETMODULEHANDLE':
../../wapi_winbase.c:83: warning: cast to pointer from integer of different size
../../hbserv.c: In function 's_serviceSetHBSig':
../../hbserv.c:638: warning: passing argument 1 of 'SetUnhandledExceptionFilter' from incompatible pointer type
../../hbxml.c: In function 'HB_FUN_HBXML_DATAREAD':
../../hbxml.c:2321: warning: cast to pointer from integer of different size
* tests/bnchmark
+ tests/bnchmark/bnch_win.bat
+ Added speedtst comparison tool, featuring:
- CPU + physical memory info dump from WMI
- Tasklist before and after test runs
- Harbour /build info included in output
- Complete dump of commands executed, hbmk2 output
- Dir listing of tested .exes
- All tests repeated three times by default (configurable)
- 8 slots maximum to compare different speedtst scenarios
- By default it will run -st vs. -mt tests.
; Please read the comments in the file for usage instructions.
Here's an example for parameter setup:
--
set PATH=C:\devl\MinGW-432\bin;%PATH%
set HB_BENCH_RUNS=3
set HB_RUN_FLAGS=--exclude=030
set HB_CMP_FLAGS_1=-gc2
set HB_CMP_FLAGS_2=-gc3
call bnch_win.bat > results.txt 2>&1
--
* config/rules.cf
+ Restored -ko flag. Thanks Mindaugas for analysing test result.
* contrib/hbodbc/todbc.prg
* contrib/hbodbc/odbc.c
* Formatting + minor cleanups.
* contrib/hbmysql/mysql.c
* contrib/hbmysql/tmysql.prg
* Renamed all functions to standard mysql equivalents.
Please update your code and turn off old function
names with -DHB_MYSQL_LEGACY_LEVEL_OFF to test for
success. Legacy function names will be removed from
Harbour in the next release. This move allows to use
hbmysql and hbodbc in the same app.
SQLAND() has to be replaced with HB_BITAND(), be aware
that latter will RTE when non-numeric var is passed,
while SQLAND() was silently ignoring it.
Changed functions names:
SQLVERSION() => mysql_get_server_version()
SQLCONNECT() => mysql_real_connect()
SQLCLOSE() => mysql_close()
SQLCOMMIT() => mysql_commit()
SQLROLLBACK() => mysql_rollback()
SQLSELECTD() => mysql_select_db()
SQLQUERY() => mysql_query()
SQLSTORER() => mysql_store_result()
SQLUSERES() => mysql_use_result()
SQLFREER() => mysql_free_result()
SQLFETCHR() => mysql_fetch_row()
SQLDATAS() => mysql_data_seek()
SQLNROWS() => mysql_num_rows()
SQLFETCHF() => mysql_fetch_field()
SQLFSEEK() => mysql_field_seek()
SQLNUMFI() => mysql_num_fields()
SQLFICOU() => mysql_field_count()
SQLLISTF() => mysql_list_fields()
SQLGETERR() => mysql_error()
SQLLISTDB() => mysql_list_dbs()
SQLLISTTBL() => mysql_list_tables()
SQLAFFROWS() => mysql_affected_rows()
SQLHOSTINFO() => mysql_get_host_info()
SQLSRVINFO() => mysql_get_server_info()
DATATOSQL() => mysql_escape_string()
FILETOSQLBINARY() => mysql_escape_string_from_file()
SQLAND() => hb_bitAnd()
* source/vm/maindll.c
* source/vm/maindllh.c
* source/vm/maindllp.c
* contrib/hbodbc/odbc.c
* Minor formatting.
- bin/hbmk.bat
- bin/hbmk_gcc.bat
- bin/hbmk_os2.cmd
- bin/hbmk_ow.bat
- bin/hbmk_b32.bat
- bin/hbmk_vc.bat
- Removed make files obsoleted by new hbmk tool.
Old calling convention, features, switches, envvars
continue to work.
WARNING: If you've called hbmk as hbmk.bat,
you'll need to change that to simply hbmk.
* contrib/hbodbc/odbc.c
* Minor formatting.
* utils/hbmk/hbmk.prg
! Fixed owatcom link commands. (it was also wrong
in hbmk.bat)
+ Added -debug support for owatcom. (untested)
+ Added rsxnt/rsx32 support in an unobtrusive way.
* include/hbsetup.h
! Fixed OS_UNIX_COMPATIBLE
+ Small comments added.
; NOTE: I'd like to do the following global renames:
HB_WINCE -> HB_OS_WIN_CE
HB_OS_WIN_32 -> HB_OS_WIN
Opinions? Especially on the latter.
* include/hbdefs.h
* include/hbinit.h
* contrib/hbodbc/odbc.c
* _WIN64 -> HB_OS_WIN_64
* contrib/hbodbc/odbc.c
! Some recently updated code now conditionally restored
to pre-ODBC 3.0 versions to support compilers (namely
__DMC__) with old ODBC headers. I couldn't find out
how to point DMC to newer (SDK) ODBC headers, but as
soon as we do, we can remove this workaround.
There is a similar problem with MSVC6.
* contrib/hbodbc/odbc.c
! Replaced depracated ODBC API calls to new ones, thus
solving some potential buffer overflow problems and
64 bit warnings.
* contrib/hbodbc/tests/odbcdemo.prg
! Fixed some non-ASCII chars.
* contrib/hbodbc/odbc.c
! Fixed compilation error with Pelles C 5.00.1.
* Some formatting.
* contrib/hbw32/dllcall.c
+ Two TOFIXes added for Win64 support.
! One Warning fixed under Win64.
* contrib/hbfimage/make_gcc.sh
* contrib/hbfimage/make_b32.bat
* contrib/hbfimage/make_vc.bat
! Corrected to look in Dist subdir instead of 'source',
so that simple .dll ditribution is enough to compile.
* contrib/hbodbc/odbc.c
! Fixed all ODBC handles to be pointers. This way it's Win64
compatible. This is an INCOMPATIBLE change. Since normal
app code is using ODBC error values to check for error
conditions, the type of handles shouldn't be a concern for
most app code.
I'd ask everyone using hbodbc to do some tests.
+ TOFIXes added where deprecated (and potentially dangerous)
APIs are used.
* contrib/hbw32/dllcall.c
! Using hb_parnint()/hb_retnint() instead of hb_parnl()/hb_retnl()
to make Harbour level .dll functions compatible with Win64, and
at the same time stay compatible with XBase++.
* contrib/rddado/adordd.prg
! Fixed a few places where _SET_EXACT dependent string
comparisons were used. One of them could cause
problems updating field values.
* contrib/hbodbc/todbc.prg
* Formatting.
* contrib/hbodbc/tests/odbcdemo.prg
* contrib/hbodbc/tests/odbccall.prg
* contrib/hbodbc/tests/testodbc.prg
! Made them work out of the box.
; TOFIX: All of them gives "unrecognized database format" for harbour.mdb.
* harbour/harbour-ce-spec
* harbour/harbour-w32-spec
* define whole contrib library list for new contrib/Makefile
+ added header files to respect differences between platform
native and Windows only headers
* harbour/harbour.spec
* define whole contrib library list for new contrib/Makefile
* divided libraries which needs external references into
separated packages
! removed unnecessary dependences in binaries rebuild in shared
mode
* harbour/contrib/hbodbc/odbc.c
* pacified warnings
% minor optimization
* harbour/contrib/hbcurl/hbcurl.c
* harbour/contrib/hbfbird/firebird.c
* harbour/source/vm/extrap.c
* casting to pacify warnings
* harbour/contrib/gtwvg/gtwvg.c
! fixed pointer comparison - C uses different precedence for !
operator then Clipper/xbase
* harbour/source/rtl/hbinet.c
! fixed GPF HB_INET[GS]ET{SND,RCV}BUFSIZE() when wrong
socket parameter is passed. Please remember that after
RT error the control is returned to application.
% removed any hardcoded limits for size of data passed in
single read/write call during normal stream operations
- removed iSndBufSize/iRcvBufSize
* tests/extend2.c
* source/debug/dbgentry.c
* contrib/hbodbc/odbc.c
* contrib/hbw32/tprinter.c
* contrib/hbziparch/hbziparc.c
* contrib/hbziparch/hbzipnew.cpp
* contrib/hbpgsql/postgres.c
! Changed strcpy() -> hb_strncpy()
! Changed strcat() -> hb_strncat()
! Some possible buffer overruns fixed along the way in hbziparch.lib
! Fixed some filename buffer sizes in hbziparch.lib
; TOFIX: There are still some remaining strcpy()/strcat()
calls in Harbour code:
core: dbgentry.c, hbwince.c
contrib: hbnf, hbw32, hbwhat32, hbtip
foreign code: zlib, sqlite2/3
Not all of these are necessarily bugs (but it's
difficult to know without checking each).
* contrib/hbct/fcopy.prg
! Fixed crash in FILECOPY() (reported by Mario H. Sabado)
[TOMERGE RC1 - if correct]
* contrib/hbodbc/odbc.c
* Using sizeof() wherever possible.
! SQLGETDATA(): One strcpy() converted to hb_strncpy()
+ SQLGETDATA(): One TOFIX added for strcat() usage and
possible buffer overrun.
Also, it looks to me that both of the above
would better be replaced by memcpy() calls
otherwise it cannot support embedded '\0's.
Anyone?