* harbour/source/rtl/gtwvt/gtwvt.c
* check if startup (default or user (SetMode())) console window dimensions
do not exceed screen size and if yes then reduce the initial number of
console window rows and cols to the screen size also in
HB_GTI_RESIZEMODE_FONT mode.
* contrib/hbct/ctwin.c
+ Added HB_C52_STRICT guard around artificial windows
size limits. Please review me.
HB_C52_STRICT macros should be renamed to HB_CLP_STRICT
to reflect usage of recent years, where it's also used
to cover 5.3 strictness f.e..
* source/rtl/gtwvt/gtwvt.c
! Minor formatting.
! Fixed to use WVT_MAX_COLS instead of WVT_MAX_ROWS in one
place.
* source/codepage/Makefile
+ source/codepage/cpeliso.c
+ source/codepage/cptriso.c
+ Added two new codepage modules.
Patch submitted by Istvan Bisz.
* include/hbextcdp.ch
+ Added above codepages to codepage list.
* harbour/source/rtl/gtwvt/gtwvt.c
! fixed font selection in UNICODE builds - it was not selected at all
! fixed possible double font freeing in non UNICODE builds
* harbour/include/hbsocket.h
* harbour/source/rtl/hbsocket.c
+ added new function hb_socketSetNoDelay() which turn off the nagle
algorithm for the specified socket.
The nagle algorithm says that we should delay sending
partial packets in the hopes of getting more data.
Be careful using this functions. It may help to improve performance
in some cases but in some other it may cause very serious overhead.
Programmer should well know what it does.
* set socket error in all hb_socket[SG]et*() functions
* harbour/contrib/hbnetio/netiocli.c
* harbour/contrib/hbnetio/netiosrv.c
* use hb_socketSetNoDelay() - it can be safely used in this code
though it probably does not improve the speed because I used
protocol which was nagle algorithm friendly. Anyhow now we
can disable NETIO_SYNC messages without performance reduction
due to bad interaction with nagle algorithm.
* harbour/source/rtl/cdpapi.c
* allow to use "UTF8" CP in HB_TRANSLATE() function
* harbour/include/hbapicdp.h
* harbour/source/rtl/itemseri.c
+ added support for optional CP translation in serialization and
deserialization operations
+ added two new public C functions: hb_itemSerializeCP() and
hb_itemDeserializeCP()
+ added new optional paramters <cCdpIN> and <cCdpOUT> to HB_SERIALIZE()
function:
HB_SERIALIZE( <xValue>, [<lNumSize>], [<cCdpIN>], [<cCdpOUT>] )
-> <cSerialized>
By default VM CP is used.
+ added new optional paramters <cCdpIN> and <cCdpOUT> to HB_DESERIALIZE()
function:
HB_DESERIALIZE( <cSerialized>, [<cCdpIN>], [<cCdpOUT>] ) -> <xValue>
By default VM CP is used.
* harbour/source/rdd/dbfntx/dbfntx1.c
* harbour/source/rdd/dbfnsx/dbfnsx1.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* harbour/source/rdd/dbffpt/dbffpt1.c
* formatting
* harbour/bin/hb-func.sh
! fixed few problems introduced by macro name modifications and removed
some wrong RT checking
* harbour/bin/hb-func.sh
* harbour/source/common/hbprintf.c
* harbour/source/rtl/fstemp.c
* harbour/config/bsd/libs.mk
* updated for NetBSD builds
* 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/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
* source/rtl/gtcrs/Makefile
* source/rtl/gttrm/Makefile
* source/rtl/gtsln/Makefile
* config/global.mk
% Deleted dedicated (redundant) make level settings:
- HB_GPM_NOICE_DISABLE=yes
It should be replaced with HB_USER_CFLAGS=-DHB_GPM_NOICE_DISABLE
Notice this setting was only effective in gtsln (yet it was passed to two other GTs).
- HB_GT_CRS_BCEHACK=yes
It should be replaced with HB_USER_CFLAGS=-DHB_GT_CRS_BCEHACK
- HB_NCURSES_194=yes
It should be replaced with HB_USER_CFLAGS=-DHB_NCURSES_194
; TODO: Change logic in bin/hb-func.sh to lookup user flags for -DHB_NCURSES_194,
instead of processing dedicated HB_NCURSES_194 variable. I'm unsure
which variable to check here for user flags.
* 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.
* harbour/bin/hb-func.sh
* updated hb* scripts to work with HAIKU/BEOS
* harbour/source/vm/dynlibhb.c
* enabled dlopen()/dlclose() in HAIKU/BEOS builds
* added TODO warning in non DOS builds which does not support
dynamic library loading
* harbour/source/rtl/fserr.c
! fixed errno translation
* harbour/source/rtl/gttrm/gttrm.c
+ added support for CTRL+{UP,DOWN,RIGHT,LEFT} keys in HAIKU XTerm.
+ added hack for UP,DOWN,RIGHT,LEFT keys in HAIKU XTerm - it works
only locally.
* added two notes about problems with HAIKU XTerm which cannot be
cleanly resolved by us:
- reverted MIDDLE and RIGHT button
- UP,DOWN,RIGHT,LEFT use the same sequences as
CTRL+{UP,DOWN,RIGHT,LEFT} in XTerm 3.x.x
any hardcoded solution is wrong in such case because XTerm can
be used for remote access.
* 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.
* 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.
* 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
* 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)
* 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/doc/cmpopt.txt
* added information about ( "<alias>" )-> to <alias>-> compile time
optimization
* harbour/source/rtl/valtostr.c
! fixed GPF if hb_valToStr() is called without any parameters.
In such case RTE is generated.
* harbour/source/rtl/transfrm.c
! fixed GPF if transform() is called without any parameters, i.e.:
? &("transform")()
* harbour/source/vm/itemapi.c
! return "U" if hb_itemTypeStr() is called with NULL parameter
It fixed GPF when valtype() is called without any parameters, i.e.:
? &("valtype")()
NOTE: Compiler check number of parameters in some functions and
refuse to compile the code when it's wrong but such validation
does not work in macrocompiler or when function is called
indirectly like in above examples or using function symbols
so always write such functions to work with wrong number of
parameters.
* 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/
* bin/hb-func.sh
! Fixed recent mistake in gpm detection at postinst (now redundant)
dynlib generation phase.
* source/rtl/fssize.c
! Fixed warnings shown by mingw64 4.5.0.
* config/detfun.mk
+ Now accepting HB_WITH_* control variables in place of HB_INC_* once.
If HB_WITH_* is set it overrides HB_INC_*. Experimental yet.
* Minor in comments.
* config/detect.mk
* Minor correction for conf.mk inclusion.
* config/detfun.mk
* config/detect.mk
+ Added positive platform/compiler filters.
+ Simplified internal platform/compiler filter syntax, now it's
one unified list where compiler/platform can be mixed and
negative filters can be passed by using '!' char prefix.
! In comment text.
* source/rtl/gtsln/Makefile
! Fixed silly copy-paste mistake in recent autodetection changes.
Thanks to Tamas Tevesz for spotting it.
* source/rtl/gtsln/mousesln.c
* Using macros instead of a constants.
(2 -> STDERR_FILENO)