+ contrib/hbmemio/tests
+ contrib/hbmemio/tests/hbmk.hbm
+ contrib/hbmemio/tests/test.prg
+ Added test dir.
+ Added test code included by Mindaugas in the ChangeLog entry.
* contrib/hbmemio/Makefile
+ contrib/hbmemio/memio.c
- contrib/hbmemio/iodmem.c
* Renamed to be in sync with netio.
! Fixed strcpy() call to hb_strncpy().
Review me I didn't check if the set length limit is a valid one.
! Fixed C++ casting errors on buffer allocation calls.
; TOFIX: These warnings remain:
---
../../../memio.c(170) : warning C4244: 'argument' : conversion from 'HB_FOFFSET' to 'ULONG', possible loss of data
../../../memio.c(423) : warning C4244: '=' : conversion from 'HB_FOFFSET' to 'ULONG', possible loss of data
../../../memio.c(452) : warning C4244: 'argument' : conversion from 'HB_FOFFSET' to 'ULONG', possible loss of data
../../../memio.c(501) : warning C4244: 'argument' : conversion from 'HB_FOFFSET' to 'ULONG', possible loss of data
../../../memio.c(508) : warning C4244: 'argument' : conversion from 'HB_FOFFSET' to 'ULONG', possible loss of data
../../../memio.c(580) : warning C4267: 'argument' : conversion from 'size_t' to 'ULONG', possible loss of data
../../../memio.c(627) : warning C4267: '=' : conversion from 'size_t' to 'ULONG', possible loss of data
../../../memio.c(674) : warning C4244: 'argument' : conversion from 'int' to 'USHORT', possible loss of data
memio.c(373) : warning C4701: potentially uninitialized local variable 'pFile' used
---
* contrib/hbmemio/hbmemio.hbc
! Corrected svn props to be like in howtosvn.txt.
- contrib/iodmem
+ contrib/hbmemio
- contrib/hbmemio/iodmem.hbc
+ contrib/hbmemio/hbmemio.hbc
* contrib/hbmemio/Makefile
* contrib/Makefile
* Renamed to have 'hb' prefix and to be in line with hbnetio.
! Fixed props on Makefile.
! Corrected to list this lib in no-dependency section in contrib/Makefile.
+ harbour/contrib/Makefile
+ harbour/contrib/iodmem/Makefile
+ harbour/contrib/iodmem/iodmem.hbc
+ added make files
* harbour/contrib/iodmem/iodmem.c
! updated to be compatible with the latest SVN (rename method implemented)
* some warnings are fixed
+ harbour/contrib/iodmem
+ harbour/contrib/iodmem/iodmem.c
+ Implemented Memory file system. Public functions hb_memfs*() are
availible, if HB_MEMFS_PUBLIC_API is defined.
+ Implemeted I/O driver for memory file system
; HB_IODMEM request can be used to force linking of I/O driver and
memory FS into executable.
"mem:" prefix should be used to indicate a MemFS file, ex.:
REQUEST HB_IODMEM
PROC main()
LOCAL nI
FIELD F1
DBCREATE("mem:test", {{"F1", "N", 9, 0}},, .T., "memarea")
FOR nI := 1 TO 1000
DBAPPEND(); F1 := HB_RANDOM() * 1000000
NEXT
INDEX ON F1 TAG f1
DBEVAL({|| QOUT(F1)})
DBCLOSEAREA()
DBDROP("mem:test") // Free memory resource
RETURN
; TODO: locking is not supported yet (but it is not very usefull
if MemFS is used to store of a temporary database opened in
exclusive mode).
* contrib/hbqt/Makefile
* contrib/hbqt/hbqts/Makefile
* contrib/gtqtc/Makefile
* contrib/gtqtc/gtqtcs/Makefile
! Fixed QT detection on darwin after 2009-09-18 12:19 change
in detfun.mk.
* utils/hbmk2/hbmk2.prg
+ Comment added (from .mk).
* config/darwin/gcc.mk
* config/darwin/icc.mk
* config/darwin/clang.mk
* config/darwin/global.mk
* config/rules.mk
+ Implemented HB_BUILD_STRIP for darwin.
(on darwin strip has to be called directly)
* ChangeLog
! Typos.
* source/rtl/hbsocket.c
! Applied patch for BEOS/HAIKU by Tamas Tevesz.
* contrib/hbtip/sendmail.prg
! Fixed to append CRLF instead of hb_osNewLine() to e-mail body.
Patch submitted by Lorenzo Fiorini.
NOTE: This fix is surely valid, I'll apply further fixes as we
manage to find out more on the bigger picture.
* contrib/hbtip/mail.prg
! Applied a few patches from mail.prg sent by Gerald Drouillard:
- Using :setBody() from :New() instead of replicating (little bit
different) logic.
- "Content-Length" deleted from generated e-mail text.
- Added parameter list to METHOD declaration for :setHeader().
* Minor formatting.
* config/beos/libs.mk
+ Applied patch from Tamas Tevesz changing 'socket' lib to 'network' for BEOS/HAIKU.
* utils/hbmk2/hbmk2.prg
+ Done the same for hbmk2 (changed 'socket' lib to 'network' for BEOS/HAIKU).
* config/detfun.mk
+ Changed to avoid duplicate component detection lines in verbose output.
(_DET_OPT_VERB=very|yes - not yet documented)
(note this needs absolute paths to be used when referring to internal
components in _DET_INC_DEFP/_DET_INC_LOCL)
* external/sqlite3/Makefile
* external/libhpdf/Makefile
* external/libpng/Makefile
* contrib/hbsqlit3/Makefile
* contrib/hbhpdf/Makefile
+ Changed to use absolute paths when referring to locally hosted components
in _DET_INC_LOCL variables.
* harbour/bin/hb-func.sh
* updated hb* scripts to work modified bast build conditions
* harbour/source/rtl/gttrm/gttrm.c
* added support for terminals with automatic scroll at maxrow,maxcol
position - now it's enabled for BSD console though it may be also
usable in other terminals with such behavior but it's hard to detect
it without real tests.
* harbour/source/rtl/filebuf.c
* clear FS error code in dummy close
* harbour/contrib/hbnetio/netio.h
* harbour/contrib/hbnetio/netiosrv.c
* added special error code which is used if some operation fails
but without setting hb_fsError()
* replaced const value with macro as Tomas suggested
* harbour/external/libpng/Makefile
* disabled when XCC compiler is used - it cannot compile it
* harbour/contrib/hbnetio/netiomt.prg
* updated comment with NETIO_MTSERVER() syntax
* harbour/contrib/hbnetio/netiosrv.c
* minor formatting
* utils/hbmk2/hbmk2.prg
- Deleted supc++ lib. hbmk2 won't be able to solve every existing
compiler configuration problems, so in this case users will have to deal
with this special case and supply supc++ or supcxx or stdc++
lib if it's required, or manually select C++ mode for hbmk2 if
that better solves local needs.
Case closed from my side.
* contrib/hbqt/hbqts.hbc
* contrib/hbqt/hbqt.hbc
* contrib/gtqtc/gtqtcs.hbc
* contrib/gtqtc/gtqtc.hbc
+ Readded supc++ libs to .hbc files, where needed.
* source/Makefile
* config/lib.mk
+ Added Przemek's patch to add local hbzlib and hbpcre
libs to Harbour dynlib.
; TODO: Add some ways to disable this because it has some
drawbacks (it f.e. makes it impossible to link 3rd
party libs also exporting zlib / pcre interfaces).
This information needs to be passed to hbmk2, too.
I don't have any elegant way to solve this problem ATM.
* utils/hbmk2/hbmk2.prg
* Changed to only add local hbzlib and hbpcre libs to liblist
in static mode. (this is needed to support change above).
+ Enabled lib grouping for beos/gcc.
+ Added supc++/supcxx lib to liblist of gcc family compilers.
This aims to solve link problems when Harbour is built
in C++, but hbmk2 is used in C mode.
* contrib/hbqt/hbqts.hbc
* contrib/hbqt/hbqt.hbc
* contrib/gtqtc/gtqtcs.hbc
* contrib/gtqtc/gtqtc.hbc
- Deleted explicit supc++ libspec. Now it's added by
hbmk2 automatically.
* config/dyn.mk
! Modified to add local hbpcre and hbzlib to syslib
list to make it link with beos/haiku.
Please test/confirm this change.
- Disabled above logic, since it's not needed.
* config/global.mk
+ Added autodetection for linux/sunpro, linux/icc,
darwin/clang, darwin/gcc, darwin/icc.
On darwin clang became the default, if available.
* external/sqlite3/Makefile
+ Tweak for linux/watcom. Based on Przemek patch sent to the devlist.
* config/detfun.mk
* config/bin.mk
* config/dyn.mk
* source/Makefile
* config/lib.mk
% Minor modification to HB_HAS_*_LOCAL logic to make
it safe to use this var without first checking HB_HAS_*.
; Please test/review these. I didn't restest everything after above changes.
* contrib/hbqt/hbqts.hbc
! Fixed to include supc++ for gcc targets.
* contrib/hbqt/hbqt.hbc
* contrib/gtqtc/gtqtc.hbc
% Simplified inclusion logic of supc++.
* contrib/gtqtc/gtqtc.hbc
+ contrib/gtqtc/gtqtcs.hbc
+ contrib/gtqtc/gtqtcs
+ contrib/gtqtc/gtqtcs/Makefile
* contrib/gtqtc/Makefile
+ HB_QT_STATIC now works the same way as for hbqt.
* contrib/hbwin/legacy.prg
+ Added operator overloading to TOLEAUTO compatibility class.
Original code has been optimized and few small bugs fixed.
Please test, I've only tested clean build.
* contrib/hbtip/sendmail.prg
! Fixed hang experienced in some situations when sending
e-mail. This was reported on Linux, but was also present
on Windows (and all OSes). It was cause by not checking
:GetOk() return value, but looking for :cReply being NIL.
This seems to be incorrectly coded since the very beginning,
but surfaced only after cleaning up socket API in core.
Please review/test, I left also old condition in.
* utils/hbmk2/hbmk2.prg
* Minor formatting.
* utils/hbmk2/examples/contribf.hbc
* contrib/Makefile
- contrib/hbvpdf
+ examples/hbvpdf
* Moved hbvpdf lib to examples section.
This code is barely updated and offers duplicate functionality
of superior hbhpdf lib.
* source/rtl/filesys.c
* Minor formatting.
* tests/menutest.prg
! Deleted COLOR keywords from examples. This seems to be an xhb
extension no present in Harbour or Clipper.
* source/rtl/menuto.prg
+ Added NOTE documenting the __ATPROMPT() cColor parameter is
a Harbour extension. (it's valid because this is an
undocumented/internal function)
* contrib/xhb/hbcompat.ch
+ Added @ PROMPT + COLOR keyword.
Please test, I don't know if it collides with std.ch definition.
* contrib/hbtip/sendmail.prg
! Applied patch from Alex Strickland.
Fixes wrong encoding (7-bit).
Fixed mails sent as multi-part even if there was only simple body.
* utils/hbmk2/hbmk2.prg
! Fixed stupid error in last cmomit.
* utils/hbmk2/hbmk2.prg
% Deleted UTF-8 hack. Now using the built-in UTF-8 conversion
support.
* contrib/hbwin/win_com.c
% Minor optimization and fixed warnings after recent patch.
* INSTALL
+ Added see also HB_CC* to HB_COMPILER settings.
* harbour/include/hbapi.h
+ added hb_xgrabz() and hb_xmemdup() macros
* harbour/include/hbapicdp.h
* harbour/source/rtl/cdpapi.c
+ added new functions which can be used in translations changing the
size of trnaslated strings:
hb_cdpDup(), hb_cdpnDup(), hb_cdpnDup2(), hb_cdpnDup3(),
hb_cdpnDupLen(), hb_cdpnDup2Len()
Now hb_cdp[n]Translate() functions are depreciated.
+ added pseduto codepage "UTF8" which can be used in trnaslations only
+ added new function hb_cdpFindExt() which allows to chose pseudo CPs
* harbour/include/hbapi.h
* harbour/include/hbset.h
* harbour/source/vm/set.c
* harbour/source/nortl/nortl.c
- removed old functions: hb_osEncode() and hb_osDecode() with low level
code which was using static char to char translation table
+ add new functions hb_osEncodeCP() and hb_osDecodeCP() which can make
translations changing the size of translated strings.
Warning all parameters have to be initialized.
Passing NULL in second parameter means that the 1-st is dynamically
allocated and can be used as buffer and reallocated if necessary.
if 2-nd parameter is not NULL then the 1-st one is used as const value.
The size of allocated buffer can be passed by reference in 3-rd
parameter and this value is updated on reallocation.
If buffer is two small then new bigger one is allocated and old one
freed.
* harbour/source/vm/set.c
+ added support for UTF8 translations in _SET_OSCODEPAGE
* harbour/source/vm/cmdarg.c
* harbour/source/common/hbffind.c
* harbour/source/rtl/filesys.c
* harbour/source/rtl/philes.c
* harbour/source/rtl/gete.c
* harbour/source/rtl/net.c
* harbour/source/rtl/hbproces.c
* harbour/source/rtl/hbrunfun.c
* harbour/source/rtl/run.c
* harbour/contrib/hbwin/win_misc.c
* harbour/contrib/hbwin/wapi_shellapi.c
* harbour/contrib/hbwin/wapi_winbase.c
* use new hb_osEncodeCP()/hb_osDecodeCP() functions
* harbour/source/rtl/hbi18n1.c
* harbour/source/rtl/gtxwc/gtxwc.c
* harbour/source/rtl/gtpca/gtpca.c
* replaced depreciated hb_cdp[n]Translate() functions with new
hb_cdp[n]Dup*()
* harbour/source/rtl/gtstd/gtstd.c
* harbour/source/rtl/gtcgi/gtcgi.c
* harbour/source/rtl/hbgtcore.c
* replaced depreciated hb_cdp[n]Translate() functions with new
hb_cdp[n]Dup*()
+ added support for UTF8 translations set by hb_setDispCP() and
hb_setTermCP() functions
* harbour/source/rdd/delim1.c
* harbour/source/rdd/sdf1.c
* harbour/source/rdd/dbf1.c
* harbour/source/rdd/dbffpt/dbffpt1.c
* harbour/source/rdd/dbfnsx/dbfnsx1.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* harbour/source/rdd/dbfntx/dbfntx1.c
* replaced depreciated hb_cdp[n]Translate() functions with new
hb_cdp[n]Dup*()
+ added support for CP translations which can change the size of
translated strings
! disabled memo field translations for fields marked as binary
+ added support for UTF8 translations.
Using UTF8 as CP disables any national sorting in indexes.
Warning: please remember that normal character fields in tables have
fixed size and translation to UTF8 may increase the string
and cut results.
* harbour/source/rdd/dbf1.c
! fixed GPF in dbCreate() with empty struct table
* include/hbdefs.h
* contrib/hbfimage/fi_wrp.c
* contrib/hbfimage/Makefile
! Reverted prev. It does all sort of strange things.
; TODO: So the only way is the proper fix: Cleaning Harbour
source from BOOL, BYTE, LONG, ULONG and all other
'legacy' types.
* include/hbdefs.h
* Using #define instead of typedef for legacy core types.
This is needed to allow for ugly hack to disable these.
* contrib/hbfimage/fi_wrp.c
! Added terrible hack to make them build on non-win platforms.
; dos/djgpp and probably os2/gcc would work, but there I wasn't
interested enough to add extra logic to handle each special
case.
; non-linux/darwin *nixes should be tested.
* contrib/hbfimage/Makefile
+ Enabled for linux and darwin.
* contrib/hbwin/Makefile
- contrib/hbwin/win_tprt.prg
- contrib/hbwin/win_prt.c
+ contrib/hbwin/win_tcom.prg
+ contrib/hbwin/win_com.c
+ Applied patch from Alex Strickland.
This patch renames all former WIN_PORT*() functions and classes
to WIN_COM*(). INCOMPATIBLE.
! Added missing DWORD casts to -1 values.
* Slightly renamed Win_ComSetTimeouts() and made it static.
; TOFIX: I had to comment out WIN_COMINIT() function since HB_INITFUNC()
doesn't exist in Harbour.
* utils/hbmk2/hbmk2.prg
! Fixed to include system zlib/pcre libs in static mode if local built lib
isn't found.
* external/sqlite3/Makefile
* external/libhpdf/Makefile
* external/libpng/Makefile
* utils/hbmk2/hbmk2.prg
* contrib/hbsqlit3/Makefile
* contrib/hbhpdf/Makefile
* config/detfun.mk
* config/detect.mk
- Deleted _DET_LOC_PLAT variable.
* package/winuni/mpkg_win_uni_extra_copy.bat
- Deleted some extra commented lines dealing with pcre/zlib headers.
* INSTALL
+ Added Ubuntu pcre and zlib pkg information.
+ Documented HB_INC_ZLIB and HB_INC_PCRE settings.
+ Documented 'local' setting of HB_INC_* values.
* external/libhpdf/Makefile
* external/libpng/Makefile
* source/rtl/Makefile
* contrib/xhb/Makefile
* contrib/hbmzip/Makefile
* contrib/hbsqlit3/Makefile
* contrib/hbhpdf/Makefile
* config/detfun.mk
* config/detect.mk
% Avoid redetection for local packages.
+ Integrated logic to find out whether we're using the local
copy of any given package. This is now returned in a
variable called HB_HAS_*_LOCAL, if this value is non-empty
we're using the local version.
+ Added HB_INC_* option 'local', which will force using the
locally hosted version of given package.
+ HB_HAS_* variable will now contain only the first dir where
header was detected.
+ Locally hosted headers will always be detected now, if they
weren't found at any default system locations.
+ Added 'nolocal' HB_INC_* option which disables above behaviour.
; TODO: Delete _DET_LOC_PLAT variable if current system turns
out to work well.
; NOTE: I've yet to test all this on *nix.
* config/global.mk
+ Added HB_HOST_PLAT_UNIX variable.
* contrib/hbhpdf/Makefile
! Fixed mistake in prev commit.
* contrib/gtwvg/Makefile
* source/rtl/gttrm/Makefile
* external/sqlite3/Makefile
* external/libhpdf/Makefile
* external/libpng/Makefile
% Optimization in make logic in GTWVG Makefile.
- HB_WITH_* vars changed to not aid user override.
+ Displaying more meaningful reason if skipped.
+ compiler/platform availability checks laxed to reflect real buildability
(will most probably need refinements), so that it becomes possible to
use these even on *nix platforms, in case the system hosted copy is not
good for us or not available.
+ Now these will be built if autodetections reveals that local version
is to be used.
* Renamed HB_WITH_* vars to HB_SUPPORTED to not collide with HB_WITH_*
concept which is due to replace HB_INC_*.
; IOW: Now it should be possible to enable these locally hosted components
on any systems/scenarios where compilation of the given component
is supported. This happens automatically according to HB_INC_*
variables.
* external/libhpdf/Makefile
* external/libpng/Makefile
* contrib/xhb/Makefile
* contrib/hbmzip/Makefile
* contrib/hbsqlit3/Makefile
* contrib/hbqt/QApplication.cpp
* contrib/hbhpdf/Makefile
* source/rtl/Makefile
* config/detfun.mk
* config/detect.mk
+ Added separate variable to pass embedded locations to autodetection,
so that these aren't suppressed by HB_XBUILD (now HB_BUILD_EXTDEF).
I hope it will work, I still have to try it on Linux.
* Makefile
- source/hbpcre
- source/hbzlib
* external/Makefile
+ external/pcre
+ external/zlib
* external/pcre/Makefile
* external/zlib/Makefile
* external/libhpdf/Makefile
* external/libpng/Makefile
* include/hbsetup.h
* include/hbzlib.h
* include/hbregex.h
* source/rtl/hbzlibgz.c
* source/rtl/Makefile
* source/rtl/hbregexc.c
* source/rtl/hbregex.c
* source/rtl/hbzlib.c
* source/Makefile
* contrib/xhb/Makefile
* contrib/hbmzip/Makefile
* utils/hbmk2/hbmk2.prg
* config/global.mk
* config/lib.mk
* config/bin.mk
* config/detect.mk
* config/darwin/libs.mk
* config/linux/libs.mk
* config/wce/mingwarm.mk
* config/wce/poccarm.mk
* config/wce/msvcarm.mk
* config/win/xcc.mk
* config/win/mingw.mk
* config/win/pocc.mk
* config/win/bcc.mk
* config/win/watcom.mk
* config/win/icc.mk
* config/win/cygwin.mk
* config/win/msvc.mk
* config/dyn.mk
* config/os2/watcom.mk
* config/os2/gcc.mk
* config/bsd/libs.mk
* config/hpux/libs.mk
* config/sunos/libs.mk
* Changed the way embedded zlib and pcre are handled:
- They now reside in /external dir.
- They are now excluded from Harbour dynlib. This means they
will now be linked statically on non-*nix systems and
dynamically on *nix systems. On *nix it's probably easy to
switch to link statically. On non-*nix this is quite
complicated to do.
- If these libs are provided by the system, those will be used.
- On non-*nix systems the locally hosted versions will be used,
unless user overrides them using HB_INC_PCRE or HB_INC_ZLIB.
- There is currently no officially supported way to force usage
of locally hosted libs.
- If PCRE lib is forcibly disabled or not found, build system
will fall back to POSIX regex on *nix systems and Borland regex
with bcc compiler. Otherwise it will stop the build with an error.
- If zlib is forcibly disabled or not found, an error will be
generated at build-time (in hbrtl). hbmzip is simply skipped
in this case.
- hbmk2 will use local builds of these libs if they are present
in lib dir.
; TOFIX: hbmk script.
; TOFIX: dos builds. cmdline lenghts are most probably too big for them.
; NOTE: Bumps are expected.
; NOTE: I've yet to test/verify it.
- external/libhpdf/ori_src
- external/libhpdf/ori_dst
- Deleted. (added in prev commit by oversight)
* contrib/hbfimage/Makefile
* contrib/hbfimage/tests/fitest.prg
+ contrib/hbfimage/freeimag.ch
- contrib/hbfimage/freeimage.ch
! Renamed last public long filename in Harbour source tree.
This lib could in theory be compiled for dos, but this is
not yet possible to not-yet-cleaned core from Windows
types (LONG, DWORD, WORD, BOOL).
; INCOMPATIBLE: Please modify your source to use the new header
name.
* include/hbgtinfo.ch
+ contrib/gtqtc/hbgtqtc.ch
* contrib/gtqtc/gtqtc.h
* contrib/gtqtc/Makefile
* Moved HB_GTI_CODEC local to GT. Pls never add GT specific
(especially non-core) HB_GTI_* settings to core header.
* Renamed HB_GTI_CODEC to HB_GTI_QTCODEC.
! Fix to not install non-public header gtqtc.h.