* harbour-win-spec
* harbour-wce-spec
* harbour.spec
! Deleted references to hbcc, hbcmp, hblnk. They still work,
and they still can be readded as links if someone finds them
necessary. As a general direction for most users though it's
preferred to use hbmk2 as-is.
* Updated help text. (pls fix it further, it's not perfect)
* contrib/hbcomm/hbcomm.prg
+ OUTCHR() smartened to use a loop until failure or the whole
data is transmitted. As suggested by Mindaugas.
* package/winuni/RELNOTES
* Updated.
* harbour.spec
* doc/dirstruc.txt
* utils/hbmk2/examples/contribf.hbc
* contrib/Makefile
- contrib/hbbtree
+ examples/hbbtree
- examples/hbbtree/Makefile
* hbbtree move to example section as told in a recent
changelog entry. This contrib has long time unfixed
file-format portability problems, plus it's really
more of a good example code than lib for end-users.
* harbour.spec
* contrib/Makefile
+ contrib/hbsms
+ contrib/hbsms/tests
+ contrib/hbsms/tests/send.prg
+ contrib/hbsms/tests/hbmk.hbm
+ contrib/hbsms/hbsms.prg
+ contrib/hbsms/hbsms.hbc
+ contrib/hbsms/Makefile
* utils/hbmk2/examples/contribf.hbc
+ Readded hbsms lib.
+ Modified to use newly added core com functions
via HBCT .prg level interface. (instead of hbtpathy)
+ Added disclaimer:
EXPERIMENTAL CODE. USE AT YOUR OWN RISK. NO GUARANTEES.
The code well may be pure crap, so if you have problem
with it, supply working patches. Pls note that the
reader function uses locally implemented timeout
functionality, which may or may not work at all,
though you can fix it if you have better idea.
I've only tested it using Mac OS X 10.6 + old Nokia "S40"
phone and one bad SMS number to see it kicks off at
all and that's also the end of my testing possibilities.
- 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.
* harbour.spec
* utils/hbmk2/examples/contribf.hbc
* contrib/Makefile
+ contrib/hbblink
+ contrib/hbblink/hbblink.ch
+ contrib/hbblink/hbblink.hbc
+ contrib/hbblink/Makefile
+ contrib/hbblink/blinker.prg
* contrib/hbmisc/hbmisc.hbc
* contrib/hbmisc/Makefile
- contrib/hbmisc/blinker.prg
- contrib/hbmisc/blinker.ch
* Moved Blinker compatibility calls to separate library.
* Renamed blinker.ch to hbblink.ch
! Changed to use '-c' instead of '/c' in command execution.
; QUESTION: Any opinions on including that in core?
* harbour/harbour.spec
! fixed to work with modified library name hbbmcdx -> rddbmcdx
* harbour/contrib/hbwin/legacycd.c
! fixed casting for C++ builds
* contrib/hbwin/wapi_wingdi.c
* contrib/hbwin/wapi_winuser.c
* contrib/hbwin/hbwapi.h
+ Added hbwapi_stor_*() functions to store Windows structures
RECT, POINT and DEVMODE. Latter supports hash only (due
to large number of structure members), other two supports
both array and hash.
Please review my code.
+ WAPI_MOVETOEX() now uses hbwapi_stor_POINT().
! WAPI_DRAWTEXT() fixed to return RECT (using hbwapi_stor_RECT()).
* contrib/hbwin/legacy.prg
* contrib/xhb/xhw32prn.prg
* Moved Win32Bmp compatibility class from hbwin to xhb lib.
! Deleted Win32Prn compatibility clsss from hbwin, as it's
now implemented in xhb in a better way.
* harbour-win-spec
* harbour-wce-spec
* harbour.spec
* include/hbver.h
* config/global.mk
+ Changed to new major version number:
2.1.0dev (from 2.0.1dev)
This gives way for 2.0.x branch to take
the 2.0.1dev version number.
* INSTALL
+ Added gcc pkg to opensolaris pkg list.
* harbour.spec
! Do not mark Red Hat and SUSE as discontinued. These names seem
to be used for "enterprise" versions of these distros, but correct
me if I'm wrong.
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Made it clean on the help screen which options can only be used
from the command line.
* INSTALL
+ Extended Linux deb/rpm sections:
- Added list of base packages
- Listed actual active distro names
- Added pkg install command for various rpm distros
- Added link to webpage containing extensive information
about pkg management commands on different distros
+ Added SUNWsvn package for OpenSolaris.
* harbour.spec
! Typo in comment.
+ Added 'DISCONTINUED' comments to those distros which are
(suprise!) discontinued.
* contrib/hbwin/wapi_winbase.c
! Fixed to set internal getlasterror value in WAPI_FORMATMESSAGE().
Thanks Xavi.
* contrib/hbwin/wapi_err.c
! Fixed to include 'hbwapi.h'
Thanks Xavi again.
* config/global.mk
+ Added autodetection of Gentoo Linux package manager.
* contrib/hbbtree/hb_btree.c
+ Added two TOFIX notes. Both reported on the list previously.
* config/global.mk
! Fixed to not require HB_BIN_COMPILE is host and target
platform is the same, host is x64 and target is x86.
x64 hosts can run x86 binaries. (pls shout if you know
any exception)
* INSTALL
+ Added extra info to openSUSE section.
; TODO: Update .rpm/opensuse section.
* harbour.spec
+ Added initialization of HB_USER_DFLAGS.
; TOFIX: Current setup doesn't allow passing -m32 to force 32-bit
.rpm builds on 64-bit systems.
; TOFIX: OpenSUSE 10.2 uses 'gpm' instead of 'gpm-devel'.
* contrib/hbqt/hbqt.hbc
* contrib/hbqt/hbqts.hbc
* Changed to enable -hbcppmm only on win and os2 platforms.
I don't know about linux, but on darwin this option caused
this error:
hbide(70507,0x7fff708a0be0) malloc: *** error for object 0x1019d3948: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Abort trap
* INSTALL
+ Added OS/2 to QT supported platforms.
* harbour.spec
+ Merged lib and static subpackages into main one.
hbmk2 requires that both dynamic and static libs (namely hbcplr)
are present for successful linking.
Please test and comment, I can revert old version in
case of any problems.
* contrib/hbqt/filelist.mk
* contrib/hbqt/hbqt_hbevents.cpp
* contrib/hbqt/hbqt_hbslots.cpp
- contrib/hbqt/hbqt_hbevents2.cpp
- contrib/hbqt/hbqt_hbslots2.cpp
* Merged new EVENTS/SLOTS implementation with old one,
removing all existing redundancies and fixing double
definition of low-level classes.
* harbour.spec
! Modified this line:
%define hb_lflag export HB_USER_LDFLAGS="${CC_HB_USER_LDFLAGS} %{?_with_static:-static}"
to this:
%define hb_lflag export HB_USER_LDFLAGS=
_with_static is later converted to HB_BUILD_SHARED setting which is right.
* Formatting.
* harbour/include/Makefile
* harbour/include/hbmath.h
+ harbour/include/hbmather.h
* harbour/include/hbsetup.h
* harbour/include/hbapi.h
* moved math error handler definitions and settings separate header file
* moved hb_random_num() declaration from hbmath.h to hbapi.h
After above modification hbmath file should be use only by code which
wants to use math functions declared usually in math.h
+ harbour/include/hbfloat.h
+ added header file with test macros for floating point numbers
this file should be included before any other files
* harbour/src/vm/hvmall.c
* harbour/src/vm/itemapi.c
* harbour/src/common/hbprintf.c
* harbour/src/rtl/math.c
* use new macros from hbfloat.h
* harbour/src/rtl/math.c
+ include "hbmather.h"
* harbour/src/rtl/hbrandom.c
* harbour/src/rdd/dbf1.c
* harbour/contrib/xhb/hboutdbg.c
- removed not longer necessary include "hbmath.h"
* harbour/contrib/hbct/ctmath.h
- do not include <float.h> and <limits.h>
* harbour/contrib/hbct/ct.h
- do not include "hbmath.h" and "ctmath.h"
* harbour/contrib/hbct/ctmath.c
* harbour/contrib/hbct/exponent.c
* harbour/contrib/hbct/ctc.c
+ include "ctmath.h"
* harbour/contrib/hbct/trig.c
* harbour/contrib/hbct/finan.c
* harbour/contrib/hbct/ctmath2.c
+ include "ctmath.h"
+ include "hbmather.h"
* harbour/contrib/hbct/num1.c
+ include "ctmath.h"
+ include <float.h>
* harbour/include/hbinit.h
* harbour/src/rtl/hbsocket.c
* added patches from Tamas - thanks
* harbour/bin/hb-func.sh
* harbour/harbour.spec
+ create /etc/ld.so.conf.d/harbour.conf with Harbour shared lib directory
if /etc/ld.so.conf.d directory exists and user has sufficient write
permission or install package is created.
This modification allows to install Harbour anywhere and in modern
distros using /etc/ld.so.conf.d/ harbour shared libraries will be
always available for all programs
[TOMERGE 2.0]
* harbour-win-spec
* harbour-wce-spec
* harbour.spec
* include/hbver.h
* config/global.mk
* Changed version to interim version number
2.0.1dev (from 2.0.0)
* harbour-win-spec
* harbour-wce-spec
* harbour.spec
* include/hbver.h
* package/winuni/RELNOTES
* config/global.mk
* Changed version to 2.0.0 (from 2.0.0rc1)
* package/winuni/RELNOTES
* Finalization (djgpp -> watcom)
* package/winuni/mpkg_win_uni.nsi
! Fixed uninstallation of Start Menu on Vista/Win7, at the
same time it won't ask for admin credentials anymore on
these OS versions.
* MS-DOS/OS2/Linux libs are now not selected by default.
* config/dos/watcom.mk
* config/dos/djgpp.mk
* Disabled .dll generation for MS-DOS build for now.
dos/watcom doesn't work, dos/djgpp needs special fixes
in djgpp to work.
In the meantime, for testing purposes they can be
enabled using: HB_BUILD_DLL=dostest
* harbour-win-spec
* harbour-wce-spec
* include/hbver.h
* package/winuni/RELNOTES
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
* harbour.spec
* config/global.mk
* Changed version to 2.0.0rc1 (from 2.0.0beta3)
; TODO: Please also change debian/changelog.
; Rehearsing version change, I don't plan to make binary
release of this interim version.
* doc/codestyl.txt
* Minor update.
I don't plan a full update this time, as we have a huge
amount of well formatted source code, and it's pretty
consistent too, so it's enough to peek into any one of
them for a perfect example. So if someone needs and
example, just look under src/* for both .c and .prg.
* mpkg_rpm.sh
* INSTALL
* harbour.spec
* config/global.mk
* config/detect.mk
* HB_COMMERCE renamed to HB_BUILD_NOGPLLIB (in sync with existing
--without option)
+ HB_BUILD_NOGPLLIB now documented in INSTALL.
; Please update your enviroment.
; BTW, I'm open to other names which are more generic and clearly
states what we're talking about exactly. Current terminology
is limited to GPL license.
* utils/hbmk2/hbmk2.prg
+ Added -hbmake=<hbmake file> option which will attempt to
read hbmake project file and save it as .hbp file.
This is experimental and I'd like to ask hbmake users to
update/extend this converter code as I'm not hbmake user.
This feature is to aid users to migrate from hbmake to hbmk2.
Notice that along the same line converter could be written
for .xbp and xMate project files too.
* src/compiler/Makefile
- src/compiler/gencobj.c
* src/compiler/hbmain.c
* src/compiler/cmdcheck.c
* src/compiler/hbusage.c
* include/hbcompdf.h
* debian/rules
* mpkg_src.sh
* mpkg_tgz.sh
* harbour.spec
- Deleted support for harbour.cfg / compiler -go mode.
This was scheduled to be done after release, but since
hbmk2 seems to be a very solid tool now with visible
acceptance from users, it seems safe to make the move
now. This will mean that one less Harbour file will
"pollute" system locations, which is always a good
thing. Plus this part had a few bugs, which are now
also a thing of the past.
- examples/hbmake
- Deleted hbmake tool. This wasn't really working anyway,
and require -go mode, which was deleted.
Use hbmk2 instead.
* mpkg_src.sh
* mpkg_tgz.sh
! Fixed indentation to be consistent 4 chars.
* INSTALL
* harbour.spec
* mpkg_rpm.sh
* Moved mpkg_rpm*.sh cmdline options description to INSTALL.
At the same time some inconsistencies were fixed and from
now on it should be updated in less copies. Still, there
different option list for win/wce cross-builds and regular
builds. (some of these may not be relevant anymore as Przemek
just deleted some of these option, which is an even better
solution.)
Maybe the same could be done for the rest of them?
* harbour.spec
* harbour-win-spec
* harbour-wce-spec
* mpkg_rpm.sh
* mpkg_rpm_win.sh
* mpkg_rpm_wce.sh
* Cleanup/sync of 'with' and 'without' parameters:
--with fbsql -> --with firebird
--without nf -> --without hbnf
--without gtcrs -> --without curses
--without gtsln -> --without slang
! Deleted fmstat/nofmstat options from help texts.
* Internal 'fbird' references changed to 'firebird'.
; Pls test.
; TODO: I'd like to delete '--without hbnf'. If someone knows
why this lib is different than all the others so that
it needs special --without switch, pls speak up.
* mpkg_rpm.sh
* harbour.spec
+ Added hbqt and hbxbp libraries to a new rpm package harbour-qt.
Path submitted by Tomaz Zupan. Thanks.
! Converted tab to space.
* INSTALL
* Minor formatting.
+ Added information about some commonly used, but yet useless
environment settings. These:
set HB_PATH=<Harbour root dir>
set HRB_DIR=<Some Harbour dir>
set INCLUDE=<Harbour include dir>
set LIB=<Harbour lib dir>
* Bumped copyright year.
+ Added 'documentation' section to link section.
+ Added netiquette RFC link for a start.
+ Added hbrun to required tools for cross-builds.
* bin/hb-func.sh
* harbour.spec
+ Added hbsms lib.
- source
+ src
* src/Makefile
* src/dynlib/mt/Makefile
* src/dynlib/Makefile
* INSTALL
* Makefile
* ChangeLog
* harbour.spec
* mpkg_tgz.sh
* Renamed 'source' dir to 'src' to move closer to other FOSS
projects. It's also easier to type, plus it has the side
effect that some cmdlines will be shorter in the
build process.
* harbour/harbour.spec
! fixed to build with postinst.prg executed by shared linked hbrun
* harbour/bin/hb-func.sh
* harbour/debian/rules
* harbour/harbour.spec
% use HB_INST_PKGPREF instead of _DEFAULT_*_DIR
Please test DEB building in Debian, Ubuntu or in other DPKG
based distro. It probably has the same problem with postinst.prg
as all other builds.
* harbour/debian/rules
* harbour/harbour.spec
* harbour/mpkg_tgz.sh
* harbour/source/compiler/gencobj.c
* updated harbour.cfg localization in *nix builds
* harbour/utils/hbrun/Makefile
! restored support for default include directory in system wide builds
* harbour/source/common/hbffind.c
! do not use GetVolumeInformation() in WinCE builds
* harbour/mpkg_rpm.sh
* harbour/harbour.spec
+ added new switches '--with localzlib' '--with localpcre'
* updated to work with current base make system
TODO: better integration with current base make system
* harbour-win-spec
* harbour-wce-spec
* harbour.spec
% Using HB_BUILD_STRIP instead of stripping locally.
* harbour.spec
% Using HB_BUILD_SHARED instead of rebuilding tools locally.
* Changed 'make -i' to 'make' to sync with other spec files.
* mpkg_tgz.sh
* bin/postinst.sh
% Attempt to clean mpkg_tgz.sh from redundant make logic.
Some tasks (stripping, shared tool making using HB_BUILD_SHARED,
chmod on HB_INC_INSTALL) moved to postinst.sh, some others
deleted (platform detection, shared tool building using old
method, component detections, install dir forming and creation.
; Please review me and test.
; TODO: Maybe above tasks in postinst.sh should only be
executed when HB_BUILD_PKG=yes.
* config/global.mk
! Fixed to only use lib64 dir if it exists. Please review/test
this feature.
+ Now exports HB_SYSLOC variable which is set to non-empty if
HB_INSTALL_PREFIX points to system location.
* harbour.spec
- Deleted PIC option related lines. These are handled by GNU Make now.
* utils/hbmk2/hbmk2.prg
+ Added PIC related options to *nix compilers when using -hbdyn option.
% Deleted PIC related option from link command. Not needed.
* harbour/harbour.spec
* harbour/harbour-win-spec
* harbour/harbour-wce-spec
* harbour/bin/hb-func.sh
* harbour/contrib/Makefile
+ harbour/contrib/hbnetio
+ harbour/contrib/hbnetio/netio.h
+ harbour/contrib/hbnetio/netiomt.prg
+ harbour/contrib/hbnetio/netiocli.c
+ harbour/contrib/hbnetio/netiosrv.c
+ harbour/contrib/hbnetio/Makefile
+ added new library: HBNETIO.
It implements alternative RDD IO API which uses own TCP/IP sockets
to exchange data between client and server.
This library contains client and server code and is fully MT safe.
On client side it's enough to execute:
NETIO_CONNECT( [<cServer>], [<cPort>], [<nTimeOut>] ) -> <lOK>
function to register alternative NETIO RDD API and set default
server address and port.
<cServer> - server addres (default 127.0.0.1)
<cPort> - server port (default 2941)
<nTimeOut> - connection timeout (default -1 - not timeout)
Above settings are thread local and parameters of the 1-st successful
connection are used as default values for each new thread.
After registering NETIO client by above function each file starting
"net:" prefix is automatically redirected to given NETIO server, i.e.
use "net:mytable"
It's also possible to pass NETIO server and port as part of file name,
i.e.:
use "net:192.168.0.1:10005:mytable"
On the server side the following functions are available:
create NETIO listen socket:
NETIO_LISTEN( [<nPort>], [<cAddress>], [<cRootDir>] )
-> <pListenSocket> | NIL
accept new connection on NETIO listen socket:
NETIO_ACCEPT( <pListenSocket> [, <nTimeOut>] )
-> <pConnectionSocket> | NIL
start connection server:
NETIO_SERVER( <pConnectionSocket> ) -> NIL
stop connection accepting or connection server:
NETIO_SERVERSTOP( <pListenSocket> | <pConnectionSocket>, <lStop> )
-> NIL
activate MT NETIO server (it needs MT HVM):
NETIO_MTSERVER( [<nPort>], [<cAddress>] ) -> <pListenSocket> | NIL
To create NETIO server is enough to compile and link with MT HVM
this code:
proc main()
local pListenSocket
pListenSocket := netio_mtserver()
if empty( pListenSocket )
? "Cannot start server."
else
wait "Press any key to stop NETIO server."
netio_serverstop( pListenSocket )
pListenSocket := NIL
endif
return
NETIO works with all core RDDs (DBF, DBFFPT, DBFBLOB, DBFNTX, DBFCDX,
DBFNSX, SDF, DELIM) and any other RDD which inherits from above or
use standard RDD IO API (hb_file*() functions).
Without touching even single line in RDD code it gives the same
functionality as REDBFCDX in xHarbour but for all RDDs.
It's possible that such direct TCP/IP connection is faster then
file server protocols especially if they need more then one IP frame
to exchange data so it's one of the reason to use it in such cases.
Please make real speed tests.
The second reason to use NETIO server is resolving problem with
concurrent access to the same files using Harbour applications
compiled for different platforms, i.e. DOS, LINUX, Windows and OS2.
It's very hard to configure all client stations to use correct
locking system. NETIO fully resolves this problem so it can be
interesting alternative also for MS-Windows users only if they
do not want to play with oplocks setting on each station.
I'm interesting in user opinions about real life NETIO usage.
Have a fun with this new toy ;-)
+ harbour/contrib/hbnetio/tests
+ harbour/contrib/hbnetio/tests/netiotst.prg
+ harbour/contrib/hbnetio/tests/netiotst.hbp
+ harbour/contrib/hbnetio/tests/data
+ added simple test code for NETIO. It activates NETIO MT server
and then connects to this server to create and browse table with
memo file and production index with few tags.
* mpkg_deb.sh
* bin/hb-func.sh
* harbour.spec
* mpkg_tgz.sh
* HB_WITHOUT_GTCRS -> HB_INC_CURSES
* HB_WITHOUT_GTSLN -> HB_INC_SLANG
* HB_WITHOUT_X11 -> HB_INC_X11
* HB_GPM_MOUSE -> HB_INC_MOUSE (in few remaining hbmk script places)
; NOTE: After all this cleanup/leveling is done, probably
HB_INC_* variables will be changed to more standard
HB_WITH_* format. First I want to finish this part.
* mpkg_deb.sh
* mpkg_tgz.sh
* bin/hb-func.sh
* harbour.spec
+ HB_GPM_MOUSE -> HB_INC_GPM and HB_HAS_GPM depending on whether
it's a config var or a reaction to config (in postinst)
I've left some value in hbmk script which may need further
attention.
I didn't test these changes, please do.