* contrib/rddsql/sqlbase.c
! fixed transfering records between two "array" SQLBASE workareas, when there
is a text/long/clob/memo field
Patch by Ilina Stoilkovska.
* contrib/hbpgsql/postgres.c
! added #include pg_config.h, '#if PG_VERSION_NUM' clauses were not working
+ plain wrappers for bulk data insert functions PQputCopyData, PQputCopyEnd
+ new function PQCOPYFROMWA which copies current workarea with CSV-like
bulk data transfer functions to PostgreSQL database, without the need
of creating temporary files - similar to __dbTrans() and __dbSql()
<lResult> := PQCOPYFROMWA( <pConn>, <cTable>, [<bWhileBlock>],
[<bForBlock>], [<aFieldNames>], [<nCount>],
[<lTrimStrings>], [<nPreBuffer>] )
<nPreBuffer> - default is 1, which turns into 1 * 1400 bytes
(to keep it below typical network MTU of 1500 bytes),
needs testing how libPQ is doing buffering by itself,
and if this is needed?
Patch by Ilina Stoilkovska. Many thanks.
* contrib/hbpgsql/hbpgsql.hbx
+ contrib/hbpgsql/rddcopy.c
+ contrib/hbpgsql/hbpgsql.h
* contrib/hbpgsql/postgres.c
* contrib/hbpgsql/hbpgsql.hbp
+ moved PQ related declarations to separate header. low-level functions made public.
% moved new PQCOPYFROMWA() to separate source to untie the main wrappers from RDD components
* HB_ prefix to PQCOPYFROMWA() name
* minor mods to above
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
- deleted x64 flavor of some exes which don't give any benefit of the 64-bitness
* include/extend.api
* include/harbour.hbx
* include/hbdefs.h
* include/hbapi.h
* include/hbvm.h
* include/hbapigt.h
* include/clipdefs.h
- src/pp/pplib3.c
* src/pp/Makefile
* src/vm/hvm.c
* src/rtl/hbtoken.c
* src/rtl/inkey.c
* src/rdd/usrrdd/usrrdd.c
* contrib/hbmysql/hbmysql.hbx
- contrib/hbmysql/mysqlold.c
* contrib/hbmysql/mysql.c
* contrib/hbmysql/hbmysql.hbp
* contrib/hbmysql/mysql.ch
* contrib/hbpgsql/hbpgsql.hbx
* contrib/hbpgsql/postgres.c
* contrib/hbwin/hbwin.hbp
* contrib/hbwin/hbwin.hbx
- contrib/hbwin/legacy.prg
- contrib/hbwin/legacycd.c
- contrib/hbwin/legacyco.c
- contrib/hbwin/legacycp.c
* contrib/hbodbc/hbodbc.hbx
- contrib/hbodbc/odbcold.c
* contrib/hbodbc/odbc.c
* contrib/hbodbc/hbodbc.hbp
* contrib/hbtip/utils.c
* contrib/hbtip/hbtip.hbx
* deleted things marked with HB_LEGACY_LEVEL3, finishing cleanup
job started many years ago.
; this also means that windows.h and os2.h will no longer be
included by Harbour headers, HB_OS_WIN_USED is thus ineffective,
so if someone needs these headers to access system APIs, they
should be manually included in each source file. Some old
hacks have also been removed which disabled some Clipper
compatibility macros/types in compatibility headers (clipdefs.h, *.api),
if someone uses these alongside windows.h/os2.h inclusion, it will
be broken, here the strategy is to move to Harbour types and
Harbour API headers, simply Clipper headers and newer OS headers
are not compatible.
; HB_DONT_DEFINE_BASIC_TYPES is not effective anymore.
; INKEY_RAW is no more, use HB_INKEY_RAW instead.
; NEXTKEY() hidden parameter extension is disabled. Use HB_KEYNEXT()
Harbour alternative which has it.
; Some legacy PP functions are no more.
; hb_vmPushState()/hb_vmPopState() APIs were now permanently deleted.
; __STR*() token handling legacy functions are no more, use native HB_TOKEN*()
ones instead.
; WRITEBHEADER in USRRDD is no more, WRITEDBHEADER is the replacement.
; hbmysql, hbodbc compatibilty and deprecated functions were deleted
; hbwin compatibility functions were deleted. If there is demand, mainly to
help migrating xhb users, they can be readded to xhb lib by interested
developers, now deleted code should be changed to fall back to dummies
on non-Windows builds.
; some deprecated hbpgsql functions were deleted
; hbtip HB_BASE64() is deleted. Use core HB_BASE64ENCODE() instead.
; Anyone affected by above changes has the option to stick with 3.0.x Harbour
versions or to update their source code according to above instructions
(or instructions included in past ChangeLog entries)
; Some fallouts in Harbour build is possible after these changes
* contrib/hbpgsql/postgres.c
+ Added PQPREPARE(), PQEXECPREPARED(). Based on code donated by
Lorenzo Fiorini. Modified to compile with current Harbour,
changed parameter handling and error checking, and changed
to return GC collected result pointer. (I didn't make any
tests, so pls do)
* contrib/hbpgsql/hbpgsql.hbp
- contrib/hbpgsql/pgrdd.prg
- contrib/hbpgsql/tests/tstpgrdd.prg
- Deleted experimental USRRDD for PGSQL.
* contrib/hbtip/sendmail.prg
! Fixed to not add 'Bcc:' entry to e-mail headers, since this will
reveal all the supposedly secret addresses to all addressees.
It's interesting how such huge bug can persist for so long
time without anyone noticing.
Please test and correct if needed.
* contrib/sddpg/sddpg.c
+ Recognizing OIDOID column type. Patch from Aleksander Czajczynski.
* contrib/hbpgsql/postgres.c
% Minor opt.
* contrib/sddpg/sddpg.c
* contrib/hbpgsql/postgres.c
! Reverted previous fix because it didn't work on non-*nix platform.
- Deleted TOFIX comment, as apparently there is no better official way
to get these macros.
* contrib/hbpgsql/postgres.c
+ Added PQCONNECTDB() wrapper. Based on Tamas's patch, but implemented
little bit differently.
+ Extended PQCONNECT() (now deprecated compatibility function) to be more
flexible in accepting parameters and not create wrong low level call if
some of them are missing. Patch from Tamas, with my cleanups.
* Marked PQCONNECT() wrapper with HB_LEGACY_LEVEL3. It's now deprecated.
INCOMPATIBLE: Switch to PQCONNECTDB() ASAP.
* contrib/hbpgsql/tests/async.prg
* contrib/hbpgsql/tests/test.prg
* contrib/hbpgsql/tests/stress.prg
* contrib/hbpgsql/tpostgre.prg
+ Changed to use PQCONNECTDB() direct wrapper instead of PQCONNECT.
* contrib/hbqt/hbmk2_plugin_qt.hbs
+ Do not pollute output with meaningless error message, when
HB_WITH_QT=no is used.
* contrib/hbpgsql/postgres.c
! Fixed msvc C mode warning. (this one is valid, though I
couldn't find out why this is only reported in C mode,
there are also some other seemingly unfixable warnings
reported in C mode.)
* contrib/hbpre.hbm
+ Will now enable C++ mode by default for msvc compilers,
to stay in since with GNU Make behavior.
* utils/hbmk2/hbmk2.prg
! Fixed to not rebase dirs passed to -deptimplibs options.
! Fixed to stay silent but still fail when dependencies
are forcefully disabled.
! Reorganized msvc compiler version dependent options to
better handle the case when no compiler version is present
(to go with the less risky option in such case)
* config/global.mk
+ Added msvc64 and msvcia64 version detection.
* Renamed one variable to avoid being same as new hbmk2 macro.
* config/postinst.hbs
* Minor in feedback text.
* src/vm/runner.c
! Minor to prev.
* include/hbapi.h
* src/vm/extend.c
+ Added hb_parnsize(), hb_retnsize(), hb_stornsize() functions.
; NOTE: These should be used in place of hb_parnl(), hb_retnl(),
hb_stornl() when passing HB_SIZE types.
; TODO: Use them all accross Harbour if they are correct and
after being finalized.
* src/vm/itemapi.c
+ Added hb_itemGetNSize(), hb_itemPutNSize() functions.
* DATETIME stuff in hb_itemGetNL() marked as HB_LEGACY_LEVEL3.
; QUESTION: It's marked as to be deleted in the TODO, so maybe we should
rather delete it.
* include/hbapiitm.h
* src/rtl/filesys.c
+ hb_fsReadAt(), hb_fsWriteAt(): Added support for Win64 HB_SIZE.
; QUESTION: I assume these functions have the purpose of being
atomic seek + read without moving the file pointer,
which means current modification isn't safe. How
can this be solved given Windows doesn't seem to have
64-bit read/write API calls?
! Fixed old copy-paste typos in Windows OVERLAPPED initialization,
where the lines were ended with command instead of semicolon,
they didn't cause any harm though in their former location.
% Reverted a minor change from prev commit to make it
possibly a little bit faster, like it was before.
* src/rtl/hbzlib.c
+ Added casts (at external interface calls) and other fixes to
make it build for Win64 without warnings.
* src/rdd/dbfntx/dbfntx1.c
* src/rdd/dbfnsx/dbfnsx1.c
* src/rdd/dbfcdx/dbfcdx1.c
* src/rdd/dbffpt/dbffpt1.c
* contrib/rddbmcdx/bmdbfcdx.c
* HB_ULONG -> HB_SIZE where appropriate to avoid Win64 errors
and some warnings. I'm still not comfortable to touch this
code, but it could certainly need a type cleanup.
* include/hbdefs.h
+ Added HB_PFS macro which holds the printf() format string
for HB_SIZE value.
; TODO: Use it all accross Harbour.
* contrib/hbmysql/mysql.c
* contrib/sddmy/sddmy.c
* contrib/hbmzip/hbmzip.c
* contrib/hbcurl/hbcurl.c
* contrib/hbhpdf/harupdf.c
* contrib/hbpgsql/postgres.c
* contrib/rddads/adsfunc.c
* contrib/rddads/ads1.c
* contrib/hbfimage/fi_wrp.c
* contrib/sddodbc/sddodbc.c
* contrib/hbgd/gdwrp.c
* contrib/hbwin/wapi_wingdi.c
* contrib/hbwin/wapi_winbase.c
* contrib/hbwin/wapi_winuser.c
* contrib/hbwin/win_bmp.c
* contrib/hbwin/win_prn1.c
* contrib/hbwin/win_regc.c
* contrib/hbssl/evpciph.c
* contrib/hbssl/ssl.c
* contrib/hbssl/bio.c
* contrib/hbssl/sslctx.c
* contrib/hbssl/evpenc.c
* contrib/hbssl/pem.c
* contrib/hbssl/rand.c
* contrib/hbssl/evp.c
+ Added necessary casts at external component boundaries to
make Win64 builds warning-free.
* contrib/hbct/ctstrfil.c
+ HB_ISIZ -> HB_FOFFSET, hb_fsSeek() usage, other type cleanup
to handle file offsets correctly.
* contrib/xhb/hbnxs.h
* contrib/xhb/hbcrypt.c
! Fixed warnings for Win64.
* contrib/hbwin/win_prn3.c
* contrib/xhb/dbf2txt.c
* contrib/xhb/fparse.c
* int -> HB_ISIZ for Win64.
* contrib/xhb/freadlin.c
* hb_fsSeek() -> hb_fsSeekLarge().
* contrib/sddfb/sddfb.c
* Minor type cleanup to make Win64 warning-free.
* contrib/hbsqlit3/hbsqlit3.c
+ Added necessary casts at external interface calls.
% Deleted one dummy operation from SQLITE3_FILE_TO_BUFF().
* contrib/rddsql/sqlmix.c
* contrib/rddads/adsx.c
* HB_ULONG -> HB_SIZE.
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/wvggui.c
* contrib/gtwvg/wvgcuig.c
* contrib/gtwvg/wvgwin.c
* contrib/gtwvg/wvgutils.c
* contrib/gtwvg/wvgcore.c
! int -> HB_ISIZ/HB_SIZE
+ Added necessary casts at external component boundaries to
make Win64 warning-free.
* contrib/rddads/ads1.c
* HB_ULONG -> HB_SIZE
* contrib/hbtip/utils.c
* int -> HB_ISIZ
! Fixed to use HB_FOFFSET type to save/restore file position.
* ChangeLog
+ Added missing item to previous log entry:
! Fixed hb_fsCurDirBuff() for Win64.
; It's quite large commit, nevertheless I'd highly appreciate
peer review, and certainly there will be places which need
better or different solution for Win64.
* include/hbdefs.h
! Fixed one intentional typo I put in to test legacy types.
* src/compiler/hbmain.c
* src/compiler/genhrb.c
* src/compiler/gencc.c
* src/compiler/hbcmplib.c
* include/hbcomp.h
* include/hbcompdf.h
* HB_ULONG -> HB_SIZE, where I could find out from warnings.
+ Added parameter names to some function declarations where they
were missing.
; Przemek, please check me. I feel I will mess this up if continuing
beyond this point, so I'd appreciate if you could take a look at
HB_ULONG to HB_SIZE conversion from an intrinsic perspective,
there seem to be places where it needs further tweaks to get us
full Win64 support. [ I've also intentionally left this area
more or less intact when doing the previous pass of conversion. ]
; There are places where simple 'int' is used, while it should be
HB_SIZE (or maybe size_t? in some places).
; Also, Win64 conversion will need some more work f.e. in filesys.c
where WinAPI file I/O functions can't accept a 64-bit value.
First I will report these and if they seem complicated I'll
revert to HB_SIZE = HB_ULONG for Win64 in the being.
* src/compiler/hbgenerr.c
* Formatting.
* src/pp/ppcore.c
* src/vm/strapi.c
* src/vm/debug.c
* src/vm/itemapi.c
* src/vm/cmdarg.c
* src/vm/set.c
* src/debug/dbgentry.c
* src/common/hbgete.c
* src/common/hbstr.c
* src/common/strwild.c
* src/nortl/nortl.c
* src/rtl/lennum.c
* src/rtl/strmatch.c
* src/rtl/gtstd/gtstd.c
* src/rtl/hbstrfmt.c
* src/rtl/transfrm.c
* src/rtl/gtcgi/gtcgi.c
* src/rtl/direct.c
* src/rtl/filesys.c
* src/rtl/console.c
* src/rtl/hbgtcore.c
* src/rtl/cdpapi.c
* src/rtl/mlcfunc.c
* src/rtl/itemseri.c
* src/rtl/gtpca/gtpca.c
* src/rtl/trace.c
* src/rtl/samples.c
* src/rtl/gete.c
* src/rdd/workarea.c
* src/rdd/hsx/hsx.c
* src/rdd/hbsix/sxsem.c
* src/rdd/hbsix/sxfname.c
* contrib/hbct/tab.c
* contrib/xhb/dbf2txt.c
* contrib/xhb/datesxhb.c
* contrib/xhb/dbgfxc.c
* contrib/hbmzip/hbmzip.c
* contrib/hbnf/fttext.c
* contrib/hbnetio/netiocli.c
* contrib/hbpgsql/postgres.c
* contrib/hbclipsm/num.c
* contrib/rddads/ads1.c
* contrib/sddsqlt3/sddsqlt3.c
* contrib/hbfimage/fi_wrp.c
* contrib/sddodbc/sddodbc.c
* contrib/sddoci/sddoci.c
* contrib/hbwin/win_svc.c
* contrib/hbwin/win_prn2.c
* '( HB_SIZE ) strlen(' -> 'strlen('
* contrib/hbpgsql/postgres.c
! PQESCAPEBYTEA(): Fixed wrong size casts.
! PQESCAPEBYTEA(): Fixed to return string with correct length.
+ PQESCAPEBYTEA(), PQUNESCAPEBYTEA(): Will now RTE if parameter is not string.
(to be in sync with PQESCAPEBYTEACONN())
! PQESCAPEBYTEACONN(): Fixed to return string with correct length.
* include/hbapi.h
* src/common/hbver.c
+ Added hb_iswin2k() low-level function to detect
if running under Windows 2000 or newer.
* include/hbextern.ch
* src/rtl/version.c
+ Added HB_OSISWIN2K() .prg level function.
* src/rtl/gtwin/gtwin.c
* src/rtl/gtwvt/gtwvt.c
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/wvggui.c
* examples/gtwvw/gtwvw.c
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_prn3.c
% Changed to use hb_iswin*() API instead of implementing
version detection locally.
* contrib/hbmysql/mysql.c
* contrib/hbpgsql/postgres.c
+ Added my partial copyright.
* contrib/hbpgsql/tests/tstpgrdd.prg
* Formatting.
* contrib/hbpgsql/postgres.c
! Fixed to define all .prg level functions regardless
of pgsql lib it's built against. They return
permanent failure in this case.
! Fixed PQCREATETRACE() to return NULL pointer instead
of NIL for static builds.
! PQFREECANCEL() marked with HB_LEGACY_LEVEL3.
* contrib/hbwin/win_os.prg
+ Using HB_OSISWIN2K() core API.
* contrib/hbide/ideprojmanager.prg
* Minor alignment.
* src/rtl/fstemp.c
* include/hbapifs.h
* include/hbextern.ch
+ Added HB_DIRTEMP() .prg level function. Returns name of temp dir,
with closing backslash.
+ Added hb_fsTempDir() .c level function.
; Please review, especially MS-DOS, OS/2, which I won't be able
to test.
* src/rtl/fstemp.c
* Cleanup: Deleted hb_fsCreateTempLow(), made layout more clear.
; TOFIX: For some builds, MS-DOS, OS/2 and WIN without WIN IO
the temp directory will be wrongly calculated by checking
TMPDIR envvar. Such envvar seems *nix specific.
If new hb_fsTempDir() will be tested, above can be fixed
by using this new function.
* package/winuni/RELNOTES
+ Noted update to Firebird 2.5.0rc1
* contrib/hbpgsql/postgres.c
+ Marked recently deprecated function as HB_LEGACY_LEVEL3.
* contrib/hbfbird/firebird.c
* Cleanup for a macro.
* contrib/hbnetio/utils/netiosrv.prg
+ Using HB_HRB_BIND_FORCELOCAL when loading .hrb.
* contrib/hbnetio/utils/modules/test.prg
+ Marked function as STATIC.
* ChangeLog
* Old TODO marked DONE.
* 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.
* 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.
* contrib/hbct/ascpos.c
* contrib/hbct/ctwfunc.c
* contrib/hbct/ctcrypt.c
* contrib/xhb/filestat.c
* contrib/hbsqlit3/hbsqlit3.c
* contrib/hbnf/fttext.c
* contrib/hbpgsql/postgres.c
* contrib/hbfimage/fi_wrp.c
* contrib/hbgd/gdwrp.c
* source/rtl/mouse53.c
* 'const' cleanup.
; NOTE: I rather didn't commit BYTE to char in CTWIN.
; TOFIX: Some of these will result in warnings when passing values
to external API calls. I'd like to ask developers to review
what the intent was. Sometimes external API declarations
are missing 'const', so it's safe to pass them these buffers,
but it should be checked in documentation.
---
../../fi_wrp.c: In function 'HB_FUN_FI_LOADFROMMEM':
../../fi_wrp.c:372: warning: passing argument 1 of 'FreeImage_OpenMemory' discards qualifiers from pointer target type
C:\devl\FreeImage-3.12.0\Dist/FreeImage.h:771: note: expected 'BYTE *' but argument is of type 'const BYTE *'
../../fi_wrp.c: In function 'HB_FUN_FI_GETFILETYPEFROMMEM':
../../fi_wrp.c:887: warning: passing argument 1 of 'FreeImage_OpenMemory' discards qualifiers from pointer target type
C:\devl\FreeImage-3.12.0\Dist/FreeImage.h:771: note: expected 'BYTE *' but argument is of type 'const BYTE *'
../../gdwrp.c: In function 'HB_FUN_GDIMAGESTRINGFTEX':
../../gdwrp.c:2718: warning: passing argument 4 of 'gdImageStringFTEx' discards qualifiers from pointer target type
C:\devl\gd-2.0.34\include/gd.h:459: note: expected 'char *' but argument is of type 'const char *'
../../gdwrp.c:2718: warning: passing argument 9 of 'gdImageStringFTEx' discards qualifiers from pointer target type
C:\devl\gd-2.0.34\include/gd.h:459: note: expected 'char *' but argument is of type 'const char *'
../../gdwrp.c: In function 'HB_FUN_GDIMAGESTRINGFTCIRCLE':
../../gdwrp.c:2809: warning: passing argument 7 of 'gdImageStringFTCircle' discards qualifiers from pointer target type
C:\devl\gd-2.0.34\include/gdfx.h:41: note: expected 'char *' but argument is of type 'const char *'
../../gdwrp.c:2809: warning: passing argument 9 of 'gdImageStringFTCircle' discards qualifiers from pointer target type
C:\devl\gd-2.0.34\include/gdfx.h:41: note: expected 'char *' but argument is of type 'const char *'
../../gdwrp.c:2809: warning: passing argument 10 of 'gdImageStringFTCircle' discards qualifiers from pointer target type
C:\devl\gd-2.0.34\include/gdfx.h:41: note: expected 'char *' but argument is of type 'const char *'
---
* contrib/hbziparch/hbzipnew.cpp
! Fixed a potential GPFs. (GCC warnings)
* contrib/hbpgsql/postgres.c
* contrib/hbwhat32/_wininet.c
! Fixed two const casting warnings in MSVS non-CPP mode.
- tests/run_test.bat
+ tests/run_prg_all.bat
- tests/gnu_test.bat
+ tests/bld_gnu.bat
- tests/bld4dll.bat
+ tests/bld_b32_dll.bat
+ Some renames in the hope they will be easier to
understand, and more standard.
! Fixed .dll reference.
* contrib/hbziparch/Makefile
! Excluded from Darwin and OS/2 builds.
; NOTE: The Windows build I've tried are now building relatively
clearly, only with the 1) known warnings 2) warnings in
foreign code, plus 3) quite some in contrib/hbwhat32.
Tested compilers:
Win32
BCC551 - OK
BCC582 - OK
MSVS2005 - OK (doesn't work with set HB_BUILD_DLL=yes)
MSVS2005cpp - OK (doesn't work with set HB_BUILD_DLL=yes)
MSVS2008 - OK (doesn't work with set HB_BUILD_DLL=yes)
MSVS2008cpp - OK (doesn't work with set HB_BUILD_DLL=yes)
MinGW412 - OK
MinGW430
Win64
MSVS2008
Fails with:
'include\hbinit.h(218) : fatal error C1189: #error : Unknown initialization method.
MSVS2008cpp - OK (doesn't work with set HB_BUILD_DLL=yes)
Linux-Ubuntu (7.10)
GCC413 - OK (FreeImage f.e. fails.)
Darwin (OS X Leopard 10.5.4)
GCC401
Fails with a lot of:
'Wrong type of codeblock parameter, is: 1, should be: 8'
* 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).
* hbpgsql/postgres.c
! Don't request windows.h.
+ Using hb_parptrGC() for PGconn()
+ PQCONNECT() larger buffer for connect string.
! PQCONNECT() not passing trash to PG API if no. of params != 5
! PQCONNECT() buffer overflow vulnerability.
! PQSETDBLOGIN() password could not be passed to PG API due
to typo.
! PQMETADATA() now returns empty array instead of NIL in case
of failure (so test.prg won't RTE).
! PQCREATETRACE(), PQCLOSETRACE(), PQTRACE() now only activated
in 'NODLL' (temp name) is defined, since passing 'FILE *' to
.dlls results in crash.
; TOFIX? added to PQESCAPEBYTEA()
* Formatting.
% Cleanup, optimizations.
; NOTE: I've tried test.prg and while it runs, it doesn't seem
to work properly for some reason.
; TOFIX: Use bh_parptrGC() for PGresult, FILE*.
* hbpgsql/make_vc.bat
+ Now uses the .lib provided in the binary package.
(This needs the current 8.3.1 version)
* tests/rto_get.prg
+ Some tests added.
* source/rtl/tget.prg
+ Some notes about C5.x behaviour.
! Formatting/indentation fixes.
% Minor optimizations.
* contrib/xhb/Makefile
* contrib/xhb/common.mak
! Added hbfast.h, hbxml.h
* contrib/hbfimage/fi_winfu.c
* contrib/hbfimage/fi_wrp.c
! Fixed two BCC warnings in new code.
* contrib/hbgd/gdwrp.c
! Changed to generate proper extern references even
for BCC. Now tests compile OK.
The trick was to explicitly #include <windows.h>
before all the other headers, instead of just requesting
it using HB_OS_WIN_32_USED.
* contrib/hbfimage/fi_winfu.c
* contrib/hbfimage/fi_wrp.c
* contrib/hbgd/gdwrp.c
* contrib/hbct/ct.h
* contrib/hbpgsql/postgres.c
- Removed #defining _CLIPDEFS_H. It's only needed when
using Clipper compatibility API headers (*.api, extend.h).