* INSTALL
* config/global.mk
* config/detfun.mk
* config/detect.mk
* external/sqlite3/Makefile
* external/png/Makefile
* external/jpeg/Makefile
* external/bzip2/Makefile
* external/libhpdf/Makefile
* contrib/hbsqlit3/Makefile
* contrib/hbmzip/Makefile
* contrib/hbbz2/Makefile
* contrib/hbhpdf/Makefile
* contrib/sddsqlt3/Makefile
* contrib/hbwin/Makefile
+ Added HB_ROOT variable which can be used to specify Harbour
source tree root as an absolute directory, when using
older than 3.81 GNU Make version (f.e. on QNX).
+ Changed the way locally hosted source directories are
specified for detection function, in order to support
HB_ROOT functionality.
* external/minizip/minizip.dif
* external/minizip/ioapi.h
+ Update for MS-DOS from Tamas Tevesz.
- contrib/hbqt/qth/QSyntaxHighlighter.qth
- Deleted to try to fix the SVN update breakage caused by
deleting a file and readding it in the same commit on a
Windows machine.
* config/qnx/libs.mk
+ Added x11 libs. QNX supports it, though not the ancient
release I have.
* external/zlib/Makefile
* config/dos/djgpp.mk
+ Added patch by Tamas Tevesz targeting djgpp cross-builds:
- makes zlib compile with djgpp 2.03
- adding ranlib makes the whole thing cross-compile (the linker was
complaining about index not being present in the archives)
the reason of the dash prefix is that since it wasn't there before,
it must have worked without, so let's not break situations where it
isn't present (it is present in bnu219b.zip though, and it seems to
be chugging along nicely in a native situation as well)
- adds $(HB_CCPATH)$(HB_CCPREFIX) to the bin tools used
* INSTALL
* include/hbsetup.h
* utils/hbmk2/hbmk2.prg
+ Added experimental support for QNX operating systems.
Tested with 6.2.1.
+ config/qnx
+ config/qnx/gcc.mk
+ config/qnx/global.mk
+ Added qnx GNU make files. For now this is a simple copy
of linux ones.
* src/common/hbgete.c
* src/common/hbprintf.c
+ HB_OS_QNX tweaks.
* src/common/hbffind.c
* src/rtl/fssize.c
! Disabled stat64 for HB_OS_QNX.
* src/common/hbffind.c
! Fixed very old error in default (todo) branch
where hbrtl function was mistakenly referenced.
* external/Makefile
* contrib/Makefile
* contrib/sddoci/Makefile
* config/none.mk
* config/global.mk
* config/bin.mk
* config/dir.mk
+ Since QNX has GNU Make 3.79.1, I had to re-xmastree
the GNU Make files (though I didn't restore the xmas
indentation), plus restore all logic that dealt
with older GNU Make versions. Also added some new logic.
+ Changed to give warning only when using older than
3.81 make versions. Some feature are disabled in this case,
f.e. HB_BUILD_PKG (win/dos specific feature)
; TOFIX: host platform and cpu detection relies on $(eval)
which is not present on pre 3.80.
; habour and hbpp builds fine, but there are several remaining
problems in rtl and vm.
* mpkg_nightly.sh
+ Added feeback about what the script does.
+ Using -q for zip to lessen large amount of unnecessary feedback
* external/pcre/pcre.dif
* external/pcre/Makefile
! Tweak to make PCRE build on djgpp 2.3
Patch by Tamas Tevesz (2nd version posted on dev list)
* external/zlib/deflate.c
* external/zlib/zutil.c
* external/zlib/deflate.h
* external/zlib/zutil.h
* external/zlib/crc32.c
* external/zlib/trees.c
* external/zlib/uncompr.c
* external/zlib/zconf.h
* external/zlib/compress.c
* external/zlib/adler32.c
! Restored original version ID to help creating more meaningful
.dif of local patches.
* INSTALL
* external/sqlite3/Makefile
* utils/hbmk2/hbmk2.prg
* config/global.mk
* config/wce/msvcarm.mk
* config/win/msvc.mk
* Changed HB_COMPILER_VER values for msvc targets. Previously it was
the Visual Studio version, now it is the C compiler version,
the same value used in _MSC_VER predefined macro:
Name old NEW
-------------------------------------- ---- ----
C Compiler version 6.0 600
C/C++ compiler version 7.0 700
Visual C++, Windows, version 1.0 100 800
Visual C++, 32-bit, version 1.0 100 800
Visual C++, Windows, version 2.0 200 900
Visual C++, 32-bit, version 2.x 200 900
Visual C++, 32-bit, version 4.0 400 1000
Visual C++, 32-bit, version 5.0 500 1100
Visual C++, 32-bit, version 6.0 600 1200
Visual Studio .NET (2002), version 7.0 700 1300
Visual Studio .NET 2003, version 7.1 710 1310
Visual Studio 2005, version 8.0 800 1400
Visual Studio 2008, version 9.0 900 1500
Visual Studio 2010, version 10.0 1000 1600
INCOMPATIBLE for users setting HB_COMPILER_VER manually, pls
change the value as indicated above. For most users it's
recommended to rely on autodetection and not to set this
variable at all.
* config/postinst.prg
! Fixed to use hb_osFileMask() instead of hard-coded '*' mask.
* config/global.mk
* config/rules.mk
* external/pcre/Makefile
+ Added HB_CFLAGS_STA variable to hold C compiler options
passed solely when compiling for static lib.
* Change PCRE setup to use HB_CFLAGS_STA instead of -U
trick at the same time silencing msvc warning.
* config/global.mk
* config/rules.mk
+ Added HB_CFLAGS_DYN variable to pass lib specific options
specially directed to compilation phase when building
to create a .dll. Currently this affects pcre and zlib since
these are included in harbour .dll.
* external/libhpdf/Makefile
* external/pcre/Makefile
* external/png/Makefile
* external/zlib/Makefile
+ Configured HB_CFLAGS_DYN for these libs to properly create
exported symbols in harbour .dll. This was a problem so far
for any non-mingw made harbour .dll.
* harbour/external/minizip/ioapi.h
! fixed FreeBSD and HAIKU builds
* harbour/src/rtl/fserr.c
* added translation for EPERM
* harbour/include/Makefile
+ harbour/include/hbapicom.h
* harbour/src/rtl/Makefile
+ harbour/src/rtl/hbcom.c
+ added Harbour multiplatform serial port C API (hb_com*() functions).
implemented code for *nixes, MS-Windows and OS2. DOS is not supported
yet. Please make test on different platforms.
; few notes about this code:
termios (*nix) based builds:
- reading LSR is not supported
- duration in break signal is fixed (at least 0.25 seconds, and not
more that 0.5 seconds)
- DTR/DSR hardware flow control is not supported
- setting error character is not supported
- discard card is supported only on few platforms
- checking input/output flow state is not supported
- if some platforms do not support some termio extensions then
compile time warnings TODO_* should be generated.
MS-Windows builds:
- discard card is not supported
OS2 builds:
- checking for input flow state is not supported
- discard card is not supported
In all builds not all RS-232 hardware flags/state are available.
OS2 build supports most of them,
This code needs to be extensively tested. I wrote it without any
serious tests. Especially OS2 builds should be verified by OS2
users. I wrote this port using only documentation which OS2 API
available in the Internet.
DOS is not supported yet though it's possible to compile termio code
for *nixes with DJGPP. Anyhow it would be very nice if we can add
our own DOS serial port code. I would like to ask if any of you
has low level serial port code in C for DOS (i.e. used with Clipper)
and can send it to us so we can use it with Harbour. I have my
own serial port library for Clipper but it's written in assembler
and it's much wider then sth what we need so it cannot be easy
adopted for Harbour.
* harbour/contrib/hbct/Makefile
+ harbour/contrib/hbct/ctcom1.c
+ harbour/contrib/hbct/ctcom.ch
+ harbour/contrib/hbct/ctcom2.c
+ added CT3 compatible COM_*() functions.
+ added CT3 compatible XMOBLOCK(), XMOCHECK(), ZEROINSERT() and
ZEROREMOVE() functions.
+ added new CT COM function:
COM_DEVNAME( <nComPort> [, <cNewName> ] ) -> <cPrevName>
which can be used to specify device name for given port in modern
systems which do not give direct hardware access for the process.
; few notes about CT3 COM_*() functions in Harbour.
In COM_OPEN() only 1-st parameter is significant, input/output buffer
sizes and trap mode parameters are ignored. In modern OS-es such
functionality is controlled by OS and usually buffered read/write
is always enabled. The sizes of IO buffers can be used only as
suggested IO buffer size for OS in some systems. It's possible that
these additional parameters will be used in DOS builds in the future.
COM_READ() does not support 2-nd parameter <lNoDelete>. It can be
implemented but because we do not have direct access to OS buffers
then we will have to emulate it ourselves what is rather inefficient.
Anyhow I can implement it if users think it's critical.
In COM_CRC() I fixed few CT3 bugs so it's not bug compatible with CT3,
i.e. it works correctly for 8 bit and smaller polynomials instead of
returning 0 or supports much larger polynomials up to 64bits.
For 16/17 bit polynomials it gives the same results as CT3 so for most
common usage it should be binary compatible with CT3.
In ZEROREMOVE() I fixed decoding some wrong CCITT strings which does
not have trailing 0 so it returns empty string "" for such corrupted
data. If someone needs original CT3 behavior for some broken code then
is can be enabled by HB_CT3_ZEROREMOVE_BUG macro.
I haven't implemented few functions.
COM_GETIO(), COM_SETIO(), COM_GETIRQ(), COM_SETIRQ() are not portable
and can be implemented only for really few platforms, i.e. for DOS
when/if we add support for serial ports to Harbour DOS builds.
Similar functionality for all other platforms gives our new function
COM_DEVNAME().
COM_KEY(), COM_SKEY() and COM_EVENT() are also not implemented.
To make them well we should add support for asynchronous events to HVM
and such extension is still unavailable. Some simulation can be
implemented using idle tasks but this can be done also by final
Harbour users so I decided to not make it.
Please test it - I've never used CT3 COM_*() API with Clipper.
* harbour/contrib/hbct/dummy.c
* removed dummy CT3 serial communication functions
; such files with dummy functions introduces very serious problems for
user code because they do not respect original module granularity
effectively breaking overloading only chosen functions so it breaks
also some real Clipper code.
- external/libpng
+ external/png
* external/png/Makefile
* external/libhpdf/Makefile
* external/Makefile
* harbour.spec
* contrib/hbhpdf/hbhpdf.hbc
* contrib/hbwin/hbwin.hbc
* Renamed locally hosted libpng lib name from 'libpng'
to 'png'.
This way Harbour shifts to the *nix naming and syncs
better with these systems. On Windows the "most official"
binary builds still use 'libpng', so if someone uses them
instead of locally hosted version (which is not very likely)
the .hbc files shipped with Harbour should be edited
accordingly. This change also satisfies past request from
some users.
; NOTE: INCOMPATIBLE, pls change lib name 'libpng' to 'png'
for all platforms in your make files.
* contrib/hbhpdf/tests/harupdf.prg
* Indentation.
* Formatting.
* external/minizip/readme.txt
* Deleted paths from filenames.
* INSTALL
* Minor updates to tool links and information.
* INSTALL
* external/Makefile
+ external/minizip
+ external/minizip/Makefile
+ external/minizip/readme.txt
+ external/minizip/minizip.dif
+ external/minizip/ioapi.c
+ external/minizip/zip.c
+ external/minizip/unzip.c
+ external/minizip/ioapi.h
+ external/minizip/crypt.h
+ external/minizip/zip.h
+ external/minizip/unzip.h
* contrib/hbmzip/Makefile
* contrib/hbmzip/hbmzip.hbc
* contrib/hbmzip/readme.txt
- contrib/hbmzip/minizip.dif
- contrib/hbmzip/ioapi.c
- contrib/hbmzip/zip.c
- contrib/hbmzip/unzip.c
- contrib/hbmzip/crypt.h
- contrib/hbmzip/ioapi.h
- contrib/hbmzip/zip.h
- contrib/hbmzip/unzip.h
* Moved embedded external code from hbmzip library to
separate, locally hosted library inside the 'external'
directory. This way we keep all external code under this
directory. This change also makes it possible to use
custom version of this external library, via the
HB_WITH_MINIZIP envvar.
NOTE: Everyone using hbmzip, must now add 'minizip'
to their lib list. (INCOMPATIBLE)
* config/wce/poccarm.mk
* config/dos/watcom.mk
* config/win/xcc.mk
* config/win/pocc.mk
* config/win/bcc.mk
* config/win/watcom.mk
* config/linux/watcom.mk
* config/os2/watcom.mk
* Changed to not forcefully turn off warnings in some targets.
(so HB_BUILD_WARN=no is now equivalent to hbmk2 -warn=def)
; NOTE: This will result in some new warnings in /external
dir since for above compilers I've now upped the
warning level from nothing to the default level.
* external/zlib/Makefile
* Changed to not set Harbour level warnings for this
external component (in sync with all the others).
* external/zlib/zlib.dif
* contrib/hbmzip/minizip.dif
* Updated .difs.
+ external/libhpdf/libhpdf.dif
+ Added new .dif.
* contrib/hbide/ideprojmanager.prg
% Deleted -hbcmp when creating .ppo. It was unnecessary since
later -hbraw mode is selected.
* harbour/external/zlib/deflate.c
* harbour/external/zlib/gzread.c
* pacified warnings
* harbour/external/zlib/zutil.h
! fixed to compile with XCC
* harbour/external/zlib/zconf.h
! removed wrongly added #if 0 / #endif
* harbour/external/zlib/gzguts.h
! added missing header files to fix _ALL_ builds
* harbour/external/zlib/Makefile
* reenabled warnings - it's very danger to pacify warnings in such way
what recent ZLIB update clearly shows - it was seriously broken in all
builds due to missing header files with valid function declarations
but the problem was fully hidden because C++ mode and warnings were
disabled so no problem was reported at compile time.
Please also remember that many of Windows compilers does not fully
support pure ANSI C function declaration so this new library may
not work as expected.
* harbour/external/libhpdf/hpdfcfg.h
! removed setting for all platforms HAVE_UNISTD_H
this file was generated by autoconf on platform which has <unistd.h>
but we cannot leave it because it will break all code which uses
standard autoconf settings like HAVE_UNISTD_H and is compiled
on platform where <unistd.h> is not available
* harbour/contrib/hbmzip/ioapi.c
! fixed to include ioapi.h before any other header files - it uses
some feature macros which have to be set before including standard
C files
* harbour/contrib/hbmzip/ioapi.h
! removed from feature set macros setting of internal __USE_* ones
! do not set _LARGEFILE64_SOURCE in DOS and OS2 - macro with the same
name is used by new ZLIB 1.2.4 for explicit 64 bit gzip API.
* harbour/contrib/hbmzip/hbmzip.c
! fixed old typos in type of return value in hb_zipfileParam() and
hb_unzipfileParam()
NOTE: I haven't tested if this new mzip/zlib 64 bit file IO support
works. It's even possible that previously working code in 64 bit
platforms (except Win64 on all other 64 bit platforms 'long' is
64bit integer) stopped to work so please make real tests.
* external/zlib/zlib.dif
* external/zlib/zconf.h
! Tweak to make it build with BCC (when this specific
constant is defined, f.e. by libharu).
* external/pcre/Makefile
! Tweak to make 8.02 work with BCC.
; NOTE: BCC is seemingly not tested/used by any important
external projects. If it goes like this, I will stop
doing these updates and leave them to real BCC users.
It's going against the flow.
* config/postinst.prg
* /V2 -> -V2 to make *nix shells happy.
+ config/ren_sfn.prg
- external/bzip2/cnv_hb2o.bat
- external/bzip2/cnv_o2hb.bat
+ external/bzip2/ren_sfn.txt
- external/libhpdf/cnv_o2hb.bat
- external/libhpdf/cnv_hb2o.bat
+ external/libhpdf/ren_sfn.txt
- external/pcre/cnv_o2hb.bat
- external/pcre/cnv_hb2o.bat
+ external/pcre/ren_sfn.txt
+ Replaced .bat method for converting long filenames to
short ones to a .prg script and simple text input file.
Also much of the logic is automatized.
* src/rtl/gtwvt/gtwvt.c
* Minor in old comment.
* INSTALL
- Deleted no more relevant restriction with HB_BUILD_PKG.
* contrib/hbwin/wapi_winuser.c
* contrib/hbwin/hbwin.ch
+ Added WAPI_SETWINDOWPOS() + relevant constants.
+ Added WIN_WS_* constants.
+ Added WAPI_ISICONIC(), WAPI_ISZOOMED().
* contrib/hbwin/tests/testax.prg
! Fixed to compile without warning.
* Using hbwin.ch.
* INSTALL
! Fixed Debian bzip2 package name.
* external/bzip2/Makefile
* contrib/hbbzip2/hbbzip2.hbc
* Changed local bzip2 lib name to match regular name used on *nix systems.
* external/zlib/Makefile
* Formatting.
* contrib/hbmzip/Makefile
! Minor fix.
* INSTALL
+ Added bzip2 information. (not fully complete, it also
needs to be added to .spec files like zlib)
- external/bzip2/bzip2.dif
- external/bzip2/bzip2.c
* external/bzip2/cnv_hb2o.bat
* external/bzip2/cnv_o2hb.bat
* external/bzip2/Makefile
- Deleted accindentally included bzip2 tool.
+ contrib/hbbzip2/tests
+ contrib/hbbzip2/tests/hbmk.hbm
+ contrib/hbbzip2/tests/test.prg
+ Added little test code.
+ contrib/hbbzip2/hbbzip2.hbc
+ Added .hbc file.
* contrib/hbbzip2/hbbzip2.ch
+ Added 'it's also used by C code' comment.
* external/bzip2/Makefile
* external/bzip2/bzip2.dif
* external/bzip2/bzip2.c
+ Added patch to make it compile on dos and os2/watcom.
Thanks to Przemek.
* external/sqlite3/sqlite3.c
* external/sqlite3/sqlite3.h
+ sqlite upgraded to 3.6.23 (from 3.6.22)
* INSTALL
+ Added one more real-life example for unnecessary
envvars (HB_DIR).
* external/pcre/Makefile
- Disabled stdint.h for all targets to make some Harbour
supported legacy compilers happy which don't support it
(f.e. bcc 5.5)
* contrib/hbmysql/hbmysql.hbc
* contrib/rddsql/sddmy/sddmy.hbc
! Fixed library name for Linux platforms.
I hope it also works for other *nix systems.
(On darwin/macports it doesn't because they placed
the lib in a subdir, but at least the lib name is
right)
+ external/bzip2
+ external/bzip2/LICENSE
+ external/bzip2/Makefile
+ external/bzip2/cnv_hb2o.bat
+ external/bzip2/cnv_o2hb.bat
+ external/bzip2/blocksor.c
+ external/bzip2/bzip2.c
+ external/bzip2/bzlib.c
+ external/bzip2/compress.c
+ external/bzip2/crctable.c
+ external/bzip2/decompre.c
+ external/bzip2/huffman.c
+ external/bzip2/randtabl.c
+ external/bzip2/bzlib.h
+ external/bzip2/bzlib_pr.h
+ Add locally hosted bzip2 library. Experimental, we
don't use it yet. Will be deleted if of no use, or
not portable enough. ATM OS/2, DOS and WCE targets
are not supported.
* external/pcre/pcre.dif
- Deleted not more required local patch, since
we're not using legacy (Windows) types anymore
in Harbour.
* external/pcre/pcre.h
* external/pcre/pcreexec.c
* external/pcre/pcreinal.h
* external/pcre/pcredfa.c
* external/pcre/pcrecomp.c
* external/pcre/config.h
* external/pcre/LICENCE
* external/pcre/pcreprni.h
* external/pcre/pcrestud.c
+ Updated to 8.0.1 (from 8.0.0)
* external/libpng/pngrio.c
* external/libpng/pngconf.h
* external/libpng/pngwrite.c
* external/libpng/pngset.c
* external/libpng/pngpread.c
* external/libpng/pngwtran.c
* external/libpng/LICENSE
* external/libpng/pngrutil.c
* external/libpng/pngwutil.c
* external/libpng/pngread.c
* external/libpng/pngmem.c
* external/libpng/pngget.c
* external/libpng/png.c
* external/libpng/png.h
* external/libpng/pngpriv.h
* external/libpng/pngrtran.c
+ Updated to 1.4.1 (from 1.4.0)
* harbour/contrib/hbct/video.c
* pacified DJGPP warning
* harbour/external/jpeg/Makefile
* define HAVE_STDLIB_H - it's necessary for exit() function used in
jerror.c
* INSTALL
* external/Makefile
* contrib/Makefile
+ Added build option to exclude specific list of contrib/external
libraries using syntax: 'HB_CONTRIBLIBS=no lib1 lib2 libn'
* external/pcre/Makefile
! Forcing C mode for this external component, which is
mainly tested and developed for C compiler.
Currently sunpro has problems in C++ mode due to little
bug in current PCRE code. Reported to author here:
http://bugs.exim.org/show_bug.cgi?id=939
* utils/hbmk2/hbmk2.prg
* Minor formatting.
* contrib/hbcairo/core.c
* Using HB_TRUE/HB_FALSE instead of 1/0.
* harbour/src/vm/strapi.c
* harbour/include/hbapistr.h
+ added new functions:
hb_itemPutStr(), hb_itemPutStrUTF8(), hb_itemPutStrU16(),
hb_arrayGetStr(), hb_arrayGetStrUTF8(), hb_arrayGetStrU16(),
hb_arraySetStrLen(), hb_arraySetStrLenUTF8(), hb_arraySetStrLenU16(),
hb_arraySetStr(), hb_arraySetStrUTF8(), hb_arraySetStrU16(),
* harbour/include/hbwinuni.h
* removed unnecessary and danger casting in UNICODE version of
HB_RETSTR(), HB_RETSTRLEN(), HB_STORSTR() and HB_STORSTRLEN() macros
* modify HB_ARRAYSETSTR() and HB_ARRAYSETSTRLEN() macros to use new
STR API functions
* harbour/external/Makefile
* modified the order of compiled libraries for better performance in
parallel compilation (-j<N>)
* include/hbwince.h
+ Added following macros to help transitioning to new method
of CP conversion when interfacing with Windows API (both UNICODE
and non-UNICODE):
HB_PARSTR( n, h, len )
HB_RETSTR( str )
HB_RETSTRLEN( str, len )
HB_STORSTR( str, n )
HB_STORSTRLEN( str, len, n )
; The goal is to replace HB_TCHAR_*() macros and hb_osEncodeCP()
call with above ones. This will allow to use any CPs (even UTF8)
on the .prg level and transparently interface with Windows
with proper CP translation.
We will probably need a few more macros to store strings in
array elements f.e., but this is enough for a start.
* contrib/hbwin/wapi_shellapi.c
+ Experimental: WAPI_SHELLEXECUTE() converted to use above new
macros. It results in much cleaner code.
Minor incompatibility: 3rd parameter is now passed as-is, so
if non-string is passed it gets passed to Windows as NULL,
which isn't a valid input parameter.
; NOTE: Probably it will useful to have HB_PARSTRDEF() which also
accepts a default value to be used when non-string
parameter was passed. (to replace old hb_parcx() calls).
Is it possible to add such function or any other ways to solve that?
; TOFIX: I'm getting this warning:
warning: implicit declaration of function 'hb_setGetOSCP'
and it's probably too late, but I couldn't find a way to
include hbset.h without errors or with least side-effects.
Przemek, could you help?
* contrib/hbwin/win_prn1.c
* Formatting.
* src/rdd/dbcmd.c
* src/rdd/wafunc.c
+ Moved recently implemented codepage defaulting logic (_SET_DBCODEPAGE)
to lower lever functions.
Please review me.
* external/libpng/pngrio.c
* external/libpng/pngerror.c
* external/libpng/pngconf.h
* external/libpng/pngwrite.c
* external/libpng/pngset.c
* external/libpng/pngpread.c
* external/libpng/pngwtran.c
* external/libpng/LICENSE
* external/libpng/pngwio.c
* external/libpng/pngrutil.c
* external/libpng/pngwutil.c
* external/libpng/pngread.c
* external/libpng/pngmem.c
* external/libpng/png.c
* external/libpng/pngget.c
* external/libpng/pnggccrd.c
* external/libpng/png.h
* external/libpng/pngrtran.c
* external/libpng/pngtrans.c
* Updated to 1.2.41 (from 1.2.40)