* harbour/bin/hb-func.sh
* harbour/config/beos/libs.mk
! use network system library instead of socket in BEOS/HAIKU builds
* harbour/source/rtl/hbsocket.c
! translate protocol/address families in BEOS/HAIKU builds
Thanks to Tomas for locating both problems
* 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/include/hbvmpub.h
* harbour/include/hbdefs.h
* added #if/#endif comments and minor formatting
* harbour/include/hbsetup.h
! disable malloc attribute for GCC < 3.xx
* harbour/include/hbinit.h
! removed unnecessary __HAIKU__ condition
* harbour/include/hbdate.h
! enable MT safe localtime_r() function in HAIKU/BEOS builds
* harbour/source/common/hbgete.c
! enable setenv()/unsetenv() in HAIKU/BEOS builds
* harbour/source/common/hbprintf.c
! removed wrongly added condition which disabled [u]intmax_t for GCC < 3
* harbour/source/rtl/gtcrs/gtcrs.h
! do not redefine existing MAX_SIGNO
* harbour/source/rtl/hbsocket.c
! enabled MT safe socket functions in HAIKU/BEOS builds
* harbour/config/beos/libs.mk
! do not set explicitly GCC internal library paths.
They are configured in GCC config and should not be overloaded
in normal builds.
TOFIX: error code are not properly decoded in HAIKU/BEOS builds.
It can be seen in hbtest results. It's possible that it's
HAIKU/BEOS problem not Harbour one.
* harbour/source/rtl/hbsocket.c
% modified hb_socketResolveAddr() to try use given address in
raw form. On some platforms like MS-Windows it eliminates
huge delay caused by unnecessary DNS lookup for addresses given
in dot.number notation. It should be well seen in NETIO open
operation if client program is compiled for windows.
* utils/hbmk2/hbmk2.prg
+ Added experimental support for @.clp files.
A bit hacky and could be incomplete. I'm not a .clp file user,
so pls test and extend.
* INSTALL
* contrib/gtalleg/Makefile
+ contrib/gtalleg/gtallegs
+ contrib/gtalleg/gtallegs/Makefile
* contrib/gtalleg/gtalleg.hbc
+ contrib/gtalleg/gtallegs.hbc
+ Added static flavour of gtalleg. This was an option until now,
now both versions are automatically built to be in sync with
rest of contribs. This also means that HB_ALLEGRO_STATIC
setting is no longer needed.
+ Added separate static/dynamic .hbc files accordingly.
* contrib/hbqt/Makefile
+ contrib/hbqt/hbqts
+ contrib/hbqt/hbqts/Makefile
* contrib/hbqt/hbqt.hbc
+ contrib/hbqt/hbqts.hbc
+ HB_QT_STATIC=yes setting will now cause building of static
flavor hbqt lib *above* the default one which links against
dynamic qt libs. Until now this setting caused that the
static version was built *instead* of the dynamic one.
NOTE: Using this setting will cause a significantly longer
build time on non-*nix systems.
+ Added separate static/dynamic .hbc files accordingly.
* config/global.mk
! Fixed to set CXX predefined variable to empty to make
defaulting logic in rules.mk work as expected.
This fixes recent hbqt build failure with MSVC.
* config/dos/watcom.mk
+ Added watt lib support. (untested, please test)
* source/rtl/Makefile
* source/rtl/hbsocket.c
* config/detect.mk
* config/dos/djgpp.mk
* Renamed HB_*_TCP to HB_*_WATT.
+ Added HB_INC_WATT to INSTALL. (couldn't make it work locally,
so it's not very precise yet)
* config/detect.mk
* Minor: lowercased component name for watt lib.
* config/dos/djgpp.mk
* Minor: Using LIBPATHS to store watt lib path instead of LDLIBS.
* config/install.mk
% Deleted no longer used/needed HB_INSTALL_DEF variable.
* harbour/source/rtl/hbsocket.c
! added sock_init()/sock_exit() calls to DOS builds.
! use select_s() and close_s() instead of select() and close()
in DOS builds.
* harbour/contrib/hbnetio/netiocli.c
* harbour/contrib/hbnetio/netiosrv.c
! initialize socket library automatically - it's necessary for some
platforms.
* harbour/config/detect.mk
* harbour/source/rtl/Makefile
* harbour/source/rtl/hbsocket.c
+ added support for TCPIP in DOS builds using WATTCP/WATT-32 library.
The latest release of Watt-32 is available at
http://www.bgnett.no/~giva/
* include/hbsetup.h
% Optimized out HB_OS_UNIX_COMPATIBLE. HB_OS_UNIX should be used
instead. Since the definition logic for HB_OS_UNIX was completely
different from HB_OS_UNIX_COMPATIBLE, it may be possible that
it's not 100% the same as before, although their meaning was
the same.
HB_OS_UNIX_COMPATIBLE is still available for compatibility, but
it's now marked with HB_LEGACY_LEVEL2 and will be removed in next
major release.
* include/hbapifs.h
* include/hb_io.h
* include/hbsocket.h
* source/vm/set.c
* source/debug/dbgentry.c
* source/common/hbffind.c
* source/rtl/fscopy.c
* source/rtl/fstemp.c
* source/rtl/gtstd/gtstd.c
* source/rtl/gttrm/gttrm.c
* source/rtl/version.c
* source/rtl/hbsocket.c
* source/rtl/copyfile.c
* source/rtl/filesys.c
* source/rtl/console.c
* source/rtl/cputime.c
* source/rtl/gtpca/gtpca.c
* source/rtl/fssize.c
* source/rtl/memofile.c
* source/compiler/hbcomp.c
* source/compiler/gencobj.c
* contrib/hbct/files.c
* contrib/xhb/xhbcopyf.c
* contrib/xhb/hbserv.c
* contrib/hbnf/getenvrn.c
* HB_OS_UNIX_COMPATIBLE -> HB_OS_UNIX
* config/global.cf
* HB_UNIX_COMPATIBLE -> HB_OS_UNIX
* source/rtl/hbsocket.c
! Applied fix for Cygwin as per Przemek's instructions.
(I've guarded #undef HB_OS_WIN with defined( __CYGWIN_ ))
* INSTALL
- Deleted some by now irrelevant restrictions and rules.
+ Added pointers to NT GNU Make, DJ GNU Make and OS/2 GNU Make.
+ Added HB_COMPILER/HB_ARCHITECTURE to option list. These
should now be mostly optional. They are only needed in a
few situations when autodetection cannot work (secondary pocc
targets for example), or in cross build situations when
we want to force some non-native configuration.
% Deleted HB_INSTALL_PREFIX from examples. It's optional.
% Deleted all settings which are now autodetected.
I didn't retest them of course, please try them, and if
something was removed by mistake pls report it.
The reduction is quite dramatic. Starting the build is
really only just starting GNU Make in most cases.
% Converted *all* examples to not use starter script/batch
files. As a next step I'll probably delete them to make
even *less* choices for builders and because current
starter files don't offer anything interesting anymore.
Maybe also included GNU Make executable will also be
deleted.
% Simplified Cygwin example.
* make_gnu.bat
- Deleted Cygwin logic.
; I just realized that after all these GNU Make development,
there is no need at all for make_gnu.sh for Cygwin and it's
a no brainer to launch make either using NT shell or Cygwin/MSYS
shell. It just works by starting GNU Make in whichever shell
or environment you are. [ Well, with NT shell it doesn't seem
to work because gcc.exe is named gcc-3.exe on my system,
anyway, this doesn't change the point. ]
The only remaining "complexity" is finding the name of GNU
Make in a given environment and not use the wrong one
(f.e. Cygwin make.exe in NT shell).
* config/global.cf
+ Added svnversion output in verbose mode.
* harbour/source/rtl/hbsocket.c
* force blocking IO on socket returned by accept() - on some system
new sockets can inherit blocking IO flag from the listening socket
* harbour/source/rtl/hbsocket.c
! fixed stupid typo in S&R - I reverted select() socket sets
in send()/recv() when I was modifying function names.
It can be also an answer why it exploited some problems
with hb_InetRecvLine() in Francesco code.
* harbour/source/rtl/hbsocket.c
* accept NULL and empty string "" as default address (INADDR_ANY)
in hb_socketInet?Addr() functions
* harbour/source/rtl/hbinet.c
% use NULL as default address in hb_socketInetAddr()
* include/hbsocket.h
* contrib/hbssl/hbssl.c
* source/rtl/hbsocket.c
* source/rtl/hbinet.c
* examples/uhttpd2/socket.c
* examples/httpsrv/socket.c
* HB_SOCKET_T -> HB_SOCKET
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/wvggui.c
* source/rtl/gtstd/gtstd.c
* source/rtl/filesys.c
* source/rtl/gtpca/gtpca.c
* source/rtl/gtwvt/gtwvt.c
! Added casts for msvc64.
Some C RTL functions in msvc64 expects file handles as 'int's.
The rest is some non-critical stuff.
Now only size_t to int/ULONG warnings remain in hbrtl.
; TOFIX: Plus these two:
../../../hbstrfmt.c(459) : warning C4244: 'argument' : conversion from '__int64' to 'ULONG', possible loss of data
../../../hbtoken.c(280) : warning C4244: '=' : conversion from '__int64' to 'ULONG', possible loss of data
* harbour/source/rtl/hbsocket.c
% small improvement in INET6 broadcast address initialization
enabled for all *nix builds, tested only with Linux and SunOS.
* external/libhpdf/Makefile
+ Enabled for os2/watcom.
* include/hbdefs.h
* Minor addition to new type section.
'bool' is the new type for boolean, so maybe we should
use them instead of hbBool/TRUE/FALSE.
* source/rtl/hbsocket.c
! Added one 'static'.
* Added one pair of paranthesis (formatting).
* source/rtl/hbgtcore.c
* source/rtl/hbsha1.c
* contrib/hbwin/win_prt.c
* Minor formatting.
* contrib/xhb/xhbfunc.c
+ Added copyright holder for HB_F_EOF().
* contrib/hbssl/ssl.c
! Minor typo in comment.
* contrib/hbssl/hbssl.h
! Added HB_EXTERN_BEGIN/HB_EXTERN_END.
* config/global.cf
+ Added HB_UNIX_COMPATIBLE variable.
+ Setting default lib install dir to lib/<arch>/<comp>
on non-*nix systems.
* examples/httpsrv/socket.c
+ Copied from uhttpd2. Please verify.
* harbour/include/hbstack.h
+ added socket error codes to HB_IOERRORS
* harbour/include/Makefile
+ harbour/include/hbsocket.ch
+ harbour/include/hbsocket.h
* harbour/source/rtl/Makefile
+ harbour/source/rtl/hbsocket.c
+ added new BSD socket functions: hb_socket*(). They should be quite
close to low level C socket interface with few modifications which
help to hide some platform differences. Unfortunately we do not use
autoconf so I had to arbitrary set which features are available
on some platforms. In practice it means that it reduces portability
to older OS-es, i.e. it should work with current Linux versions
but it will not without some modifications in macros used to control
supported features with older Linuxes using kernel 2.2 or 2.0.
The same can happen with other *nix ports like Darwin, SunOS, HP-UX
or with different versions of some Windows compilers. I also do not
know which functionality is available in OS2 GCC ports and I would
like to ask OS2 users to make tests and disable not working features.
We also need tests with HP-UX, Darwin and SunOS.
IP6 support is enabled only in *nixes. If Windows users are interested
in IP6 then please add support for it. Most of Windows compilers do
not support standard POSIX functions so I do not want to make it
myself using unknown for me API without testing.
In *nix builds PF_UNIX/PF_LOCAL sockets are also supported.
Support for other socket types can be easy added if someone is
interested in them.
The constant values used in hbsocket.ch are equal to original BSD
socket definitions. If it's necessary then it's possible to enable
their translation inside hbsocket.c code though I do not think we
will find such OS.
The list of hb_socket*() functions was designed to cover all existing
functionality in hbinet.c and socket.c. Most of functions supports
timeout parameter what effectively allows to hide direct select()
usage.
Please make test with real applications and report any problems
with hb_inet*() functions you will find.
* harbour/source/vm/hvm.c
* minor cleanup
* harbour/source/rtl/hbi18n1.c
* cleaned variable name
* harbour/source/rtl/hbinet.c
* harbour/examples/uhttpd2/socket.c
* harbour/contrib/hbssl/hbssl.c
* updated to use hb_socket*() functions
* harbour/include/hbextern.ch
* enabled HB_INET*() functions in DOS builds - they will simply return
errors
- harbour/include/hbapinet.h
- removed old header file
* harbour/source/pp/ppcore.c
! modified ENDTEXT marker to work also with comments in the same line
It's more closer to Clipper though intentionally we are not fully
CA-Cl*pper compatible here.