* contrib/hbqt/hbqt_slots.cpp
! Deleted windows.h.
* include/hbsetup.h
+ PPC CPU detection made better.
* include/hbatomic.h
* source/vm/maindllp.c
* source/rtl/gttone.c
+ Using HB_CPU_* macros to detect CPU instead of compiler
specific solutions.
Przemek, please review me.
* source/vm/maindllp.c
% Using hbver.h constants to form the version number
included in the .dll name. So it's now maintainence
free.
% Reduced redundancy when forming .dll names.
* source/vm/maindllp.c
* utils/hbmk2/hbmk2.prg
* Renamed wce .dll to harbour[mt]-20-wce-arm.dll
* Renamed non-ARM wce .dlls to harbour[mt]-20-wce.dll
* INSTALL
+ config/linux/sunpro.cf
+ Added Sun Studio compiler support for Linux platforms.
Thanks Tamas Tevesz for the tip that this port exists.
It has various problems to fix, but it's a start.
* config/sunos/sunpro.cf
! Typo in prev commit.
* include/hbdefs.h
! Further tweaked HB_STRICT_ALIGNMENT detection by using
HB_CPU_* macros.
Please review and extend/tweak if needed.
* include/hbdefs.h
* include/hbsetup.h
* include/hbinit.h
* source/vm/fm.c
* source/common/hbver.c
* config/sunos/sunpro.cf
+ Patch for Sun support by Tamas Tevesz.
- SunPro compiler C++ mode support.
- HB_STRICT_ALIGNMENT config refinement for Sun platform.
- SunPro compiler version detection will detect raw version
number for newer releases.
- SunPro optimization flag tweaks for C/C++ mode.
Trying to be Blastwave.org compatible as much as possible.
- LD_OUT -o option tweak for SunPro.
; NOTE: -o option should better be revised for all supported
[gcc] compilers to have space between it and the
filename.
* source/vm/extrap.c
+ Changed to use HB_CPU_* macros instead of using compiler
specific ones.
* harbour/include/hbsetup.h
* harbour/include/hbthread.h
* harbour/include/hbatomic.h
* harbour/source/vm/thread.c
* added support for MT mode in WinCE builds using raw MS-Windows API
instead of CRTL wrappers. It's possible that it may badly interact
with some CRTLs functions we are using in our code so I do not know
it will work. Please test.
* include/hbdefs.h
* include/hbsetup.h
* include/hbinit.h
* source/vm/fm.c
+ config/sunos/sunpro.cf
+ Added first round of Sun Pro (Sun Studio) compiler.
Contribution of Tamas Tevesz.
; TODO:
+ Add other Sun Pro CPU targets.
* Finalize __inline keyword usage. (currently in fm.c)
Przemek, could you take a look at it?
! Fix warning option.
+ Add compiler identification code to hbver.c.
+ hbmk2 support.
+ dynamic lib creation.
* utils/hbmk2/hbmk2.prg
* Minor rename.
* contrib/hbclipsm/gauge.c
% Minor opt, plus removed cast.
* contrib/hbwin/wce_smsc.c
* contrib/hbwin/wce_sim.prg
* Minor formatting.
* source/common/hbdate.c
! Fixed for some systems where tm->tm_gmtoff isn't available.
(like sunos). Thanks to Tamas Tevesz for report and pointer.
* contrib/rddads/adsfunc.c
+ ADSCREATESAVEPOINT()
ADSROLLBACKSAVEPOINT()
Added support for 3rd optional parameter on Harbour level.
* include/hbapi.h
* source/vm/extend.c
+ hb_parnidef(), hb_parnldef() to give a faster and shorter
alternative to HB_ISNUM( x ) ? hb_parn[i|l]( x ) : <value>
construct, which quite often occure in C interface code.
We may also add a hb_parl() version which returns TRUE,
this covers most real-life usages.
* examples/uhttpd2/socket.c
* examples/httpsrv/socket.c
% Deleted local hb_parnidef() wrapper.
* include/hbextern.ch
* source/rtl/dateshb.c
+ Added HB_UTCOFFSET() -> <nSecs> core function to return UTC offset
as signed number in seconds.
* contrib/hbwin/win_misc.c
+ Copied WIN_SYSREFRESH() from httpsrv. Bit reworked (types, goto,
64-bit compatibility, unnecessary outer loop), pls review.
* examples/httpsrv/uhttpd.hbp
- examples/httpsrv/uhttpdc.c
* examples/httpsrv/uhttpd.prg
* HB_UTCOFFSET() renamed to UHTTPD_UTCOFFSET() and rewritten as .prg.
! Using __PLATFORM__WINDOWS to enable WIN_SYSREFRESH() calls.
* include/hbdate.h
* source/common/hbdate.c
* contrib/hbtip/utils.c
* examples/httpsrv/uhttpdc.c
+ Added hb_timeUTCOffset( void ) -> long (in seconds)
% Using hb_timeUTCOffset() in TIP_TIMESTAMP() and HB_UTCOFFSET().
These functions can now be implemented on .prg level if we
add a .prg level wrapper for hb_timeUTCOffer(), but I have no
good idea which format to use to return this value, so maybe
simple signed number of seconds.
* 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
* 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.
* contrib/hbmisc/dates2.c
* Renamed DAYSINMONTH() to HBMISC_DAYSINMONTH(),
to avoid collision with hbct function with the same
name, but different functionality.
- Deleted functions below from hbmisc library:
EOM(), BOM(), WOM(), DOY(), WOY(), EOY(), BOY()
They have superior alternatives with the same name
in hbct lib, please use those.
* contrib/hbssl/evpciph.c
* contrib/hbssl/ssl.c
* contrib/hbssl/bio.c
* contrib/hbssl/tests/pem.prg
+ contrib/hbssl/tests/pubkey.pem
* contrib/hbssl/tests/crypt.prg
* contrib/hbssl/err.c
+ Added EVP_SEALINIT() (under development)
+ Added EVP_SEALUPDATE(), EVP_SEALFINAL().
+ Added SSL_SET_MSG_CALLBACK() (it's a debug function really,
and the solution is slightly hackish, as I have to access
OpenSSL structure and Harbour item freeing needs to be done
manually. Anyhow it can be excluded from builds.
+ Added ERR_LOAD_CRYPTO_STRINGS().
+ Added ERR_PRINT_ERRORS(). (very useful)
+ Added ERR_FREE_STRINGS().
* include/hbapi.h
* source/vm/arrays.c
* source/vm/extend.c
* source/debug/dbgentry.c
* source/rtl/hbgtcore.c
! Renamed API function hb_arraySetCPtr() to hb_arraySetCLPtr().
Old function name still available for compatibility.
* make_gnu.bat
! Added SHLVL=0 to make commands to force native shell
even if sh shell is found in the PATH (f.e. when msys or
cygwin is present there, for mingwarm targets, cygwin is
even required.)
* external/libhpdf/Makefile
+ Made it compile with mingwarm.
* include/hbextern.ch
! Fixed typo in prev.
* contrib/hbssl/pem.c
+ Added two new functions. Under testing.
PEM_READ_BIO_RSAPRIVATEKEY()
PEM_READ_BIO_RSAPUBLICKEY()
* include/hbapi.h
* source/common/hbstr.c
* source/rtl/hbmd5.c
* Moved (and somewhat standardized and renamed) mem to hex C
function from hbm5/rtl to common lib.
* bin/hb-func.sh
! Fixed double '%' chars in hbmk.cfg generation.
* contrib/hbcrypt/Makefile
+ contrib/hbcrypt/hbsha1.c
+ contrib/hbcrypt/hbsha1hm.c
+ contrib/hbcrypt/tests/testsha1.prg
+ Added HB_SHA1() and HB_HMAC_SHA1() functions.
* source/rtl/hbmd5.c
* Changed meaning of second boolean parameter. From
now on a .T. has to be passed to get binary output.
(I won't list this as a incompatible, as the new
parameter has just been introduced)
; by now HB_MD5() and HB_SHA*() functions are synced
in functionality.
* contrib/hbcrypt/hbsha1.c
* contrib/hbcrypt/hbsha2.c
* contrib/hbcrypt/hbsha1hm.c
* contrib/hbcrypt/hbsha2hm.c
* contrib/hbcrypt/tests/testsha2.prg
* Changed all SHA2 functions to returned digest in hex
format by default. The binary format can be requested by
passing .T. as an extra parameter.
INCOMPATIBLE: Please update your sources if you used
these functions. Add .T. parameter to keep
current workings.
* contrib/hbcurl/hbcurl.c
% Cleaned types (no BYTE, no BOOL, deleted unnecessary casts).
Only a few ULONGs remained.
* contrib/hbssl/pem.c
+ Some advances.
* contrib/hbwin/win_reg.prg
* contrib/hbwin/win_regc.c
! GETREGISTRY() fixed to return default only if the
registry entry doesn't exist. Previously it was
falling back to default even if the value existed but
was empty. In case of empty string, these weren't
possible to write from hbwin, but could exist in registry
when written by other tools.
! GETREGISTRY() fixed to return binary data as string
for REG_BINARY types. (previously it was returning
an unsigned int - essentially truncating everything
beyong the first 4 bytes).
! GETREGISTRY() fixed to swap words for REG_DWORD_BIG_ENDIAN
values to return correct unsigned integer results.
(not tested)
! GETREGISTRY() fixed to strip only the ending Chr( 0 )
from string values. This makes it possible to utilize
strings containing nul chars (obviously) and also to
parse REG_MULTI_SZ multistring values.
! GETREGISTRY() fixed to not RTE if WIN_REGQUERYVALUEEX()
returned non-null length and a non-string value.
I still have to understand how this was possible, but
I got a report that it happened on a system.
! WIN_REGQUERYVALUEEX() fixed to store NIL in 5th param,
if the registry entry doesn't exist.
! WIN_REGQUERYVALUEEX() fixed to store empty string when
registry value is zero length.
* include/hbapi.h
* source/vm/extend.c
+ Added API hb_stor() to store a NIL into a parameter passed
by reference.
* source/vm/arrays.c
* Minor formatting.
* contrib/hbssl/ssl.c
+ contrib/hbssl/hbssl.c
* contrib/hbssl/Makefile
+ HB_SSL_READ_ALL() and HB_SSL_READ_LINE() rewritten.
(HB_SSL_READ_ALL() isn't fully optimal, and maybe there
are errors, please check.)
+ Added SSL_GET_RFD(), SSL_GET_WFD().
* include/Makefile
+ include/hbapinet.h
* source/rtl/hbinet.c
+ Moved some basic declarations to new API header,
mainly to export hb_select[Read|Write]*() functions.
We will also need such header in the future when
we implement C level socket/networking API. Current
solution is quite messy since the header has to
pull Windows headers which may not be friendly with
all usages/include order.
* source/rtl/hbinet.c
* HB_SOCKET_STRUCT renamed to HB_SOCKET.
+ Added PHB_SOCKET type.
+ Added hb_selectReadFD(), hb_selectWriteFD() which
are similar to hb_selectReadSocket() and
hb_selectWriteSocket() but expect raw FD plus explicit
timeout values.
These function names and solutions are tentative
to solve SSL integration with Harbour, and hopefully
in the future we will have a clean net API, the current
one is very messy.
* source/vm/itemapi.c
! hb_itemPutCPtr(), hb_itemPutCLPtr() fixed to put empty
string to item if szText is NULL and length is non-zero,
instead of trying to free NULL pointer causing internal
error.
* include/hbextlng.ch
* Corrected header to be in sync with CDP and not
to repeat the filename.
* contrib/hbssl/Makefile
+ contrib/hbssl/sslerr.c
+ contrib/hbssl/sslx509.c
* contrib/hbssl/ssl.c
* contrib/hbssl/sslctx.c
* contrib/hbssl/hbssl.ch
* contrib/hbssl/tests/test.prg
+ Added ERR_*() API functions.
+ Prefixed .ch contant names with HB_ to avoid collision with
ssl own headers.
+ Added SSL_CTX_SET_MODE(), SSL_CTX_GET_MODE() functions.
+ Added HB_SSL_READ_ALL(), HB_SSL_READ_LINE() functions meaning
to mimic HB_INETRECVALL() and HB_INETRECVLINE(). (probably needs
more work, it'd be great if someone who understands the guts of
these inet functions could take a look)
* SSL_PEEK() synced with SSL_READ() recent changes.
+ Added SSL_SET_MODE(), SSL_GET_MODE(), SSL_SET_MTU() functions.
+ Added SSL_GET_RBIO(), SSL_GET_WBIO() functions.
+ Added SSL_GET_PEER_CERTIFICATE() function.
+ Added X509_GET_SUBJECT_NAME(), X509_GET_ISSUER_NAME(), X509_NAME_ONELINE()
+ Added HB_SSL_MODE_* constants.
* include/hbextern.ch
* Changed to use new hbextlng.ch.
- examples/hbextern/hbextern.lst
! It wasn't deleted in 2009-07-18 21:37 UTC+0600 for some reason.
* source/rtl/console.c
! Fixed OUTSTD() and OUTERR() to output separator space
to std/err instead of alt.
* source/rtl/hbinet.c
% Minor optimization.
* include/hbextern.ch
* source/lang/Makefile
+ source/lang/msguados.c
+ Added Ukrainian language module for cp1125.
(borrowed from xhb, work of Pavel Tsarenko.)
I've made a few corrections compared to xhb:
- Using the same internal name as filename for
consistency with other language modules
(UADOS instead of UA1125).
- Fixed date format which must only contain YYYY, MM, DD
regardless of the CP/language used, since it's a picture mask.
- Formatting (semicolon, spaces, deleted embedded $Id$ not
needed with SVN)
- Added to hbextern.ch.
* source/lang/msguakoi.c
* source/lang/msgua866.c
* Two corrections to internal name.
(borrowed from xhb, work of Pavel Tsarenko.)
; QUESTION: I wonder why the texts are very much different in
Harbour and xhb. Someone familiar with Ukrainian
language and encodings should check this, only one
of them can be right and all CPs should be synced
with each other the only thing being different is
the encoding.
* source/codepage/msguakoi.c
! Fixed one letter.
* source/codepage/cpuawin.c
* source/codepage/cpua1125.c
* source/codepage/cpua866.c
* source/codepage/cpuakoi.c
* Added "CYRILLIC LETTER GHE WITH UPTURN" letter.
(borrowed from xhb, work of Pavel Tsarenko.)
* make_gnu_os2.cmd
* make_gnu.bat
* make_gnu.sh
% Deleted install dir creation. Now done from GNU Make.
* make_gnu_os2.cmd
* Installs libs in lib/<arch>/<comp> by default just like
win/dos builds.
* config/instsh.cf
! Fixed missing semicolon.
* config/rules.cf
* Minor in comments.
* include/hbsetup.h
* source/common/hbprintf.c
- Removed temporary enabler logic, here testing is over.
* include/Makefile
+ include/hbextcdp.ch
* include/hbextern.ch
* utils/hbmk2/hbmk2.prg
+ Separated EXTERNAL HB_CODEPAGE_* lines to hbextcdp.ch.
These are commonly needed by apps.
* Using hbextcdp.ch in hbmk2.
; TODO: hbextern app needs to be updated to filter out
CODEPAGE symbols.
* source/vm/extend.c
! Fixed hb_parvcx() to return "" instead of NULL when dealing
with array parameters out of bound or non-string.
(Borrowed from xhb by Ron Pinkas. Although the fix is
implemented differently in Harbour)
* source/rtl/gttrm/Makefile
* CFLAGS -> HB_USER_CFLAGS
* include/hbapicdp.h
* include/hbextern.ch
* source/lang/Makefile
* source/codepage/Makefile
+ source/codepage/cpua1125.c
+ source/codepage/uc1125.c
+ Added DOS Ukrainian 1125 codepage
(Borrowed from xhb. Work of Pavel Tsarenko)
* utils/hbmk2/hbmk2.prg
* OS/2 embedded compiler autodetection order fixed.
* harbour/config/os2/watcom.cf
* harbour/config/os2/dir.cf
* harbour/config/os2/install.cf
* small cleanup for builds with *nix like shells and cross builds
* harbour/contrib/rddads/Makefile
! disabld from OS2 builds - if ADS supports OS2 then please speak-up
* harbour/include/hbthread.h
* added small hack as workaround for missing OS2 declarations
* harbour/source/rtl/filesys.c
! fixed typo in OS2 builds
* harbour/source/rtl/hbproces.c
! fixed non GCC OS2 builds
* harbour/contrib/hbtpathy/tpos2.c
! fixed casting in OS2 builds
* harbour/contrib/xhb/hbserv.c
! disabled from OS2 non GCC builds
Now I can create OS2 OpenWatcom build in my Linux box using this simple
script:
#!/bin/sh
if [ -z "${WATCOM}" ]; then
export WATCOM="/opt/lng/watcom"
export INCLUDE="${WATCOM}/h:${WATCOM}/h/os2"
export PATH="${WATCOM}/binl:$PATH"
fi
export HB_ARCHITECTURE=os2
export HB_COMPILER=watcom
export HB_INSTALL_PREFIX="$(pwd)/hb-os2/watcom"
#cross build settings
# this should be fixed and we should use HB_PPGEN_PATH as direct
# reference to hbpp binaries and HB_COMP_PATH as direct reference
# to harbour binaries in all builds. Otherwise we have to create
# some hacks to create platform specific names for above binaries
# i.e. in *nixes links with .exe extension.
export HB_PPGEN_PATH="/tmp/cros-hb"
export HB_BIN_COMPILE="/tmp/cros-hb"
export HB_USER_PRGFLAGS="${HB_USER_PRGFLAGS} -D__PLATFORM__OS2"
export HB_USER_PRGFLAGS="${HB_USER_PRGFLAGS} -undef:__PLATFORM__UNIX"
export HB_USER_PRGFLAGS="${HB_USER_PRGFLAGS} -undef:__PLATFORM__LINUX"
# eliminate libraries which scans for local host header files
export HB_XBUILD=yes
./make_gnu.sh "$@"
It should work also in Windows with MSys.
This should resolve the problem with testing OS2 builds, at least
for OpenWatcom. I do not know if GCC for OS2 is available as cross
build environment.
I think that Viktor can quite easy adopt hbmk2 for OS2 cross compilation.
* include/hbextern.ch
+ Added HB_SETCLSHANDLE().
* source/vm/evalhb.c
* source/vm/eval.c
* source/vm/dynlibhb.c
! Fixed old int <-> USHORT conversion MSVC warnings.
; TOFIX: ? There is a disagreement between different APIs
and Harbour program parts on the size and type of
number of parameters, it can be int, USHORT, ULONG,
and in some places there is also BYTE limit.
* source/common/hbver.c
* Minor formatting.
* include/hbgtcore.h
* include/hbapigt.h
* source/rtl/gtapi.c
* source/rtl/hbgtcore.c
* contrib/hbct/ctwin.c
* contrib/hbct/screen1.c
* contrib/hbct/ctwfunc.c
* GetClearChar/SetClearChar changed to use USHORT for char
(was int). This resolves all remaining MSVC warnings.
* _HB_GT_BASE structure adapted to latest changes, three
vars changed from USHORT to int, one renamed to reflect
int type.
+ Added var names to a few functions declarations.
% Minor optimizations.
* hb_gtScrollEx() modified to not do parameter evaluation,
just pass them to low-level.
; Przemek, please review me, I've again encountered UCHARs
in hbct / SETCLEARB().
* source/rtl/idle.c
* SHORT -> int.
* Minor formatting.
* harbour/include/hbgtcore.h
* harbour/source/rtl/hbgtcore.c
* changed BYTE to USHORT in few functions which expected character
for GTs with UNICODE screen buffer
* harbour/source/rtl/gtcgi/gtcgi.c
* harbour/source/rtl/gtstd/gtstd.c
* harbour/source/rtl/gttrm/gttrm.c
* updated for USHORT used as character holder
* harbour/source/rtl/gtwvt/gtwvt.c
% minor modification
* harbour/source/rtl/gtxwc/gtxwc.c
* harbour/contrib/gtwvg/gtwvg.c
* harbour/contrib/gtwvg/wvgcore.c
* harbour/contrib/gtalleg/gtalleg.c
* updated for BYTE to int as color holder modification
* harbour/contrib/hbct/screen1.c
* harbour/contrib/hbct/screen2.c
* harbour/contrib/hbct/ctwfunc.c
* harbour/contrib/hbnf/ftattr.c
! fixed casting changing values or added casting to force strict
translation
* modified to accept color and character values with wider ranges
* harbour/contrib/hbct/ctwin.c
! removed unnecessary stripping to BYTE in character and color values
* harbour/source/rtl/console.c
* pacified warning
* include/hbgtcore.h
* include/hbapigt.h
* source/rtl/gtdos/gtdos.c
* source/rtl/gtwin/gtwin.c
* source/rtl/gtxwc/gtxwc.c
* source/rtl/gtcrs/gtcrs.c
* source/rtl/gtstd/gtstd.c
* source/rtl/gttrm/gttrm.c
* source/rtl/gtcgi/gtcgi.c
* source/rtl/gtapi.c
* source/rtl/gtos2/gtos2.c
* source/rtl/hbgtcore.c
* source/rtl/gtsln/gtsln.c
* source/rtl/gtpca/gtpca.c
* source/rtl/gtwvt/gtwvt.c
* contrib/hbct/screen2.c
* contrib/hbct/ctwin.c
* contrib/hbct/screen1.c
* contrib/hbnf/ftattr.c
* Changed color representation to be 'int' in all places.
This means changes in high level and low level GT interfaces.
; QUESTION: In hbct UCHAR is used in a few places, I didn't want to
touch it.
; Please test and review.
; TODO: Clean char type usage (from int, UCHAR, BYTE, USHORT to what?)
; TODO: Clean attr type usage to be hbU8, or HB_ATTR, or else?
* include/hbapigt.h
* source/rtl/gtapi.c
! Fixed a few byAttr parameter names which should really be named bColor.
; TOFIX: ? hb_gtSetAttribute() and *SETATTRIBUTE interfaces
have a misleading name, as they're really setting
color, not attribute. (we called color as attr in
the beginning when no separate attr info was
implemented)
* include/hbdefs.h
+ Added HB_RESULT. This is meant to replace current USHORT used
to store result (or "error" values).
* source/rtl/console.c
* USHORT -> int (printer coordinates).
* harbour/include/hbapigt.h
* harbour/source/rtl/gtapi.c
* changed last parameter of hb_gtRepChar() from USHORT uiCount to
ULONG ulCount
* removed basic parameter validation from hb_gtScroll() - such
things should be done by GT driver
* minor cleanup
* harbour/source/rtl/hbgtcore.c
% moved pbyBuffer initialization outside the loop in Rest/Save methods
* minor cleanup in casting
* harbour/source/rtl/mouse53.c
% minor optimization
* harbour/source/rtl/gtdos/gtdos.c
* changed buffer type in Mouse{Save,Restore}State methods from char *
to void *
* harbour/source/rtl/gtxwc/gtxwc.c
* harbour/source/rtl/gtcrs/gtcrs.c
! fixed casting
* harbour/source/rtl/xhelp.c
* harbour/source/rtl/console.c
% use 'int' instead of 'USHORT'
* harbour/source/rtl/saverest.c
* removed explicit casting
* harbour/source/rtl/scroll.c
* harbour/source/rtl/console.c
* harbour/contrib/hbct/screen1.c
* harbour/contrib/hbct/screen2.c
! fixed casting from 'char *' items which was wrongly changing
the results.
* harbour/contrib/hbct/screen1.c
* harbour/contrib/hbct/screen2.c
% eliminated not longer necessary intermediate variables used for
passing by reference in previous version with [U]SHORT casting
* harbour/contrib/hbnf/dispc.c
* harbour/contrib/hbnf/ftattr.c
* harbour/contrib/hbnf/ftshadow.c
* changed screen coordinates from [U]SHORT to int
* include/hbgtcore.h
* include/hbapigt.h
* include/hbapi.h
* source/rtl/scroll.c
* source/rtl/maxrow.c
* source/rtl/gtapi.c
* source/rtl/saverest.c
* source/rtl/console.c
* source/rtl/oldclear.c
* source/rtl/hbgtcore.c
* source/rtl/scrrow.c
* source/rtl/shadow.c
* source/rtl/setcurs.c
* source/rtl/mouse53.c
* source/rtl/gx.c
* source/rtl/mouseapi.c
* contrib/hbct/cursor.c
* contrib/hbct/ctwfunc.c
* contrib/hbclipsm/gauge.c
* Changed all USHORT to int in high-level GT API layer which
already had an int representation on the low-level.
Please review me. It's possible that some extra checks (or else)
need to be added since signedness has changed.
* Change mouse state buffer from char * to void *.
; TODO: Review remaining BYTE/USHORT usage for attr, color
and char. Char is sometimes represented by UCHAR,
sometimes by char and sometimes by USHORT. Color is
represented by both int and BYTE. attr is BYTE, which
can be changed to hbU8.
* include/hbgtcore.h
* source/rtl/gtapi.c
* source/rtl/hbgtcore.c
* Changed low level GT SAVE/REST method buffer parameter type
to void * from BYTE *. Some explicit casts removed.
* Few more BYTE *s to char *.
* include/hbextern.ch
* source/rtl/Makefile
+ source/rtl/base64c.c
+ source/rtl/base64.prg
+ Added HB_BASE64ENCODE(), HB_BASE64DECODE() to core.
They were copied from hbtip and hbvpdf and currently
the decoder is .prg code while encoding is .c code.
Latter has one TOFIX for an error situation.
* contrib/hbtip/encurl.prg
* contrib/hbtip/thtml.prg
* contrib/hbtip/sessid.prg
* contrib/hbtip/popcln.prg
* contrib/hbtip/sendmail.prg
* contrib/hbtip/tip.ch
* contrib/hbtip/cgi.prg
* contrib/hbtip/url.prg
* contrib/hbtip/encqp.prg
* contrib/hbtip/base64x.c
* contrib/hbtip/httpcln.prg
* contrib/hbtip/client.prg
* contrib/hbtip/encoder.prg
* contrib/hbtip/smtpcln.prg
* contrib/hbtip/encb64.prg
* contrib/hbtip/mail.prg
* contrib/hbtip/credent.prg
* contrib/hbtip/ftpcln.prg
+ Added TOFIXes, QUESTIONs
! Fixed to use hb_MemoRead() instead of MemoRead() in one place.
! Fixed a wrong error checks after FCreate() calls.
! Fixed to use Len( hb_inetCRLF ) instead of hardwired length.
! Using hb_ntos() instead of Str() in POP3 commands.
* Changed explicit values to manifest constants (F_ERROR)
* Changed high ASCII chars in source to Chr() representation,
now source can be edited with any editor.
! Added missing copyright header to tip.ch. Although this header
seems to be unnecessary.
! TipMail:MakeBoundary() to not add any date punctuations in the ID.
! Fixed tIPClientFTP:fileSize() to not return permantent zero.
% Heavier optimizations and cleanup in TIpClientSmtp().
% Optimizations.
* Formatting.
; Please test.
* harbour/include/hbexpra.c
% reduce macro expressions used in POP operation.
It allows to use code like: &("((M->VAR))") := 1
* harbour/include/hbexprb.c
+ added support for iif() used in macro expressions passed by references:
proc MAIN()
local s := "IIF( lVar, xVar1, xVar2 )"
M->xVar1 := 1
M->xVar2 := 2
M->lVar := .T.
? M->xVar1, M->xVar2
P( @&s )
? M->xVar1, M->xVar2
proc P(x)
x+=1000
* harbour/source/vm/hvm.c
! fixed possible assign value lost in extended references
* contrib/xhb/xhbat.c
* contrib/hbtip/utils.c
* Moved ATI() function to xhb lib.
ATI() is different from HB_ATI() since it doesn't support
national chars, but it supports negative start/end values in
xhb style.
* contrib/hbtip/thtml.prg
* Changed to use core HB_ATI() instead of xhb specific ATI().
To me it looks that negative positions aren't used by hbtip code,
also respect for national chars is fine, so this replacement is okay.
Please review me and correct it if needed.
* contrib/xhb/xhbfunc.c
* contrib/hbtip/legacy.prg
* Moved HB_EXEC() to xhb lib. Restored the C version.
* contrib/hbtip/Makefile
- contrib/hbtip/legacy.prg
- Deleted. No longer necessary.
* include/hbextern.ch
* source/rtl/Makefile
+ source/rtl/ati.c
+ Added HB_ATI() function. This is the same as HB_AT(), but
case-insensitive. It supports national chars.