* harbour/src/vm/procaddr.c
! removed dummy entry at the end of function table
* harbour/src/common/hbstr.c
* harbour/src/rdd/dbfcdx/dbfcdx1.c
* harbour/src/rdd/hsx/hsx.c
* harbour/contrib/xhb/fparse.c
* pacified warnings
* harbour/include/hbsetup.h
* disabled flatten function attribute in ANDROID builds,
it causes that Android_NDK-GCC GPFs compiling src/vm/procaddr.c
* harbour/include/hbdate.h
* enabled localtime_r() in Android builds
* harbour/src/common/hbgete.c
* enabled setenv() in Android builds
* harbour/src/common/hbtrace.c
! fixed ANDROID_LOG_* flags
; QUESTION: why Android log is used instead of syslog?
It causes that harbour has to be linked with
log library (-llog).
* harbour/src/common/hbprintf.c
* disabled modfl() in Android builds
* harbour/src/rtl/filesys.c
* added hack for missing functions in android libc library
* harbour/src/rtl/diskspac.c
* harbour/src/rtl/disksphb.c
* use statfs instead of statvfs in Android builds
* harbour/contrib/hbct/dattime3.c
* disabled stime() in Android builds
* harbour/contrib/hbmzip/3rd/minizip/ioapi.h
* do not use 64bit FILE functions in Android builds
* harbour/contrib/xhb/hbsyslog.c
* disabled using Android log in Android builds - use standard syslog
instead. This code needs deeper modification to switch to Android log.
; I have just recompiled whole Harbour code for android-3, android-5
and android-9 at ARM using standard Harbour Linux build files.
Android does not have pthread and rt libraries (they are merged
with android c library) so to avoid link errors I simply created
soft links from libpthread.a and librt.a to libc.a.
With this hack could use unmodified hbmk2 and linux .mk files.
BTW exporting HB_CPU="arm" was not enough to switch to cross build
in my x86@64 Linux machine so I had to export HB_HOST_BIN and set
HB_BUILD_3RDEXT="no"
* ChangeLog
* Corrected some old text.
* config/wce/mingw.mk
* Fixed to include mingwarm.
Note however that x86 wce targets are extremely rare, so
it's unlikely that you need this.
* config/detect.mk
! Deleted OS X specific (MacPorts) autodetection location for pcre.
Now it's using locally hosted version.
This was the error without this:
---
libtool: can't locate file for: -lpcre
libtool: file: -lpcre is not an object file (not allowed in a library)
make[3]: *** [libharbour.2.1.0.dylib] Error 1
---
* harbour/include/hbapifs.h
* harbour/src/rtl/filesys.c
+ added new C function:
int hb_fsIsPipeOrSock( HB_FHANDLE hPipeHandle );
* harbour/src/rtl/filesys.c
+ added protection against slow function interrupting by signals
in *nixes
* harbour/include/hbapifs.h
* harbour/src/rtl/filesys.c
+ added new C functions:
HB_BOOL hb_fsPipeCreate( HB_FHANDLE hPipe[ 2 ] );
HB_SIZE hb_fsPipeIsData( HB_FHANDLE hPipeHandle, HB_SIZE nBufferSize,
HB_MAXINT nTimeOut );
HB_SIZE hb_fsPipeRead( HB_FHANDLE hPipeHandle,
void * buffer, HB_SIZE nSize,
HB_MAXINT nTimeOut );
* harbour/src/rtl/philes.c
+ added new PRG function:
HB_PREAD( <nPipeHandle>, <@cBuffer>, [<nBytes>], [<nTimeOut>] )
-> <nBytesRead>
It can be used for unblocking read from pipes, i.e. using handles
returned by hb_processOpen() function.
<nPipeHandle> is pipe read handle
<cBuffer> is string variable passed by reference with read buffer
<nBytes> is maximum number of bytes which can be read
<nTimeOut> is timeout in milliseconds to wait for data to read,
this function returns when at least one byte can be read
<nBytesRead> is number of bytes read from the pipe,
on error this function return -1.
* harbour/src/rtl/hbproces.c
+ add new implementation of hb_fsProcessValue() and hb_fsProcessClose()
for OS2 which uses OS2 API
* use hb_fsPipeCreate()
* harbour/src/rtl/hbjson.c
* minor code reorganization to cleanup warning
* contrib/hblzf/core.c
! Fixed AVOID_ERRNO usage.
* contrib/hblzf/3rd/liblzf/lzf.hbc
* contrib/hblzf/3rd/liblzf/lzf.hbp
+ Enabled AVOID_ERRNO for wce platform.
* INSTALL
+ Described known issue when doing partial rebuild in
contrib area for certain (f.e. wce) platforms where
hbmk2 autodetection lags behind core build autodetection.
* INSTALL
- Deleted HB_BUILD_WINUNI option. It's not documented
option anymore. Pls don't use it. Use UNICOWS solution
if you need Win9x/ME support. Pls also note that _building Harbour_
on Win9x/ME systems is deprecated (as it is only possible
to build Harbour in non-UNICODE version in such scenario).
* config/global.mk
- Deleted some built-in build names which only differed
in WINUNI setting.
* contrib/hbxbp/xbpfiledialog.prg
* contrib/hbxbp/tests/xbpqtc.prg
* contrib/hbxbp/xbpbrowse.prg
* contrib/hbxbp/xbpgeneric.prg
* contrib/hbqt/gtqtc/gtqtc.cpp
* contrib/hbqt/qtcore/hbqt_pointer.cpp
* contrib/hbqt/qtcore/qth/HBQSlots.qth
* contrib/hbqt/qtcore/qth/HBQEvents.qth
* contrib/hbqt/qtcore/hbqt_hbqslots.cpp
* contrib/hbqt/tests/demoqt.prg
* contrib/hbide/hbqreportsmanager.prg
* contrib/hbide/idemain.prg
* contrib/hbide/ideeditor.prg
! HB_TR_ALWAYS -> HB_TR_DEBUG.
Neverending battle with abused debugging facilities continue.
Please _never_ use HB_TR_ALWAYS in committed code, not even
in commented lines because it's confusing, it trashes console
on *nix systems, it creates a rubbish/unfinished feel for
anyone trying out these components and it creates unnecessary
noise on lists in the form of problem reports.
For those few developers who actually need these lines:
_Set HB_TR_LEVEL on your development machine_ to HB_TR_DEBUG
to get those debug lines!!
Also: Never use HB_TR_ALWAYS as a mean of generating
test output meant for users, I've found some of these in
tests/ .prgs. Use something native instead, like
a text box, msgbox, log file, OutStd(), QOut(), etc.
If this won't change in the future, the best will be to
simply remove HB_TR_ALWAYS from hbtrace.ch, thus making
it unsuited for purposes it wasn't designed for.
Thank you.
* config/win/mingw.mk
+ Added commented -Wextra warning option which will be particularly
interesting with the release of gcc 4.6, since they've finally
implemented the last useful feature which was unique to BCC:
-Wunused-but-set-variable and -Wunused-but-set-parameter
See:
http://gcc.gnu.org/gcc-4.6/changes.html
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
! Adopted: to comply with latest hbXBP change where
oXbp:setStyleSheet() was made PROTECed method.
* include/hbstack.h
* include/hbapi.h
! Marked functions as HB_EXPORT (should be HB_EXPORT_INT in the future)
which are used by hbdebug lib. It caused link error when using
'-b -shared' hbmk2 options on non-mingw windows compilers:
hb_stackDebugInfo
hb_macroGetType
hb_macroGetValue
hb_memvarGetValueBySym
* src/common/hbtrace.c
* contrib/xhb/hbsyslog.c
+ Added Android specific logging support. Untested.
* contrib/xhb/hbsyslog.c
! Disabled syslog() call for Symbian.
* include/hbsetup.h
+ Added Android OS platform detection. Untested.
* utils/hbmk2/hbmk2.prg
% Disabled some very old HB_INSTALL_PREFIX autodetection logic,
which supports some obsolete looking scenarios when hbmk2 executable
is not in standard location. Rest of logic and failure detection
rearranged accordingly. After this step hbmk2 no more requires
harbour executable to be present next to it.
IMPORTANT: This is live testing, pls report any problems.
* contrib/hbxbp/xbpfontdialog.prg
! Minor.
* contrib/hbxbp/xbpwindow.prg
! Protected: :setStyleSheet() method.
It was not Xbase++ compatible so to achieve exactly Xbase++
compatibility, this is necessary.
* contrib/hbxbp/xbpfontdialog.prg
* contrib/hbxbp/xbpmenubar.prg
* contrib/hbxbp/xbpstatic.prg
* contrib/hbxbp/xbpwindow.prg
! Restructured: Presentation Parameters engine.
Restored: CSS enabled presentation parameters management.
Perhaps this is the only way to handle many artifacts
cummulatively. The engine is enhanced to offer users as
Harbour extenstion, to enhance GUI components.
oXbp:setStyleSheet( cIdentifier, cCSS ) where
<cIdentifier> can be used to re-arrange widget attributes.
* contrib/hbxbp/tests/demoxbp.prg
! Commented-out but adopted to new protocol :setStyleSheet() calls.
* include/hbapi.h
* include/harbour.hbx
* src/common/hbver.c
* src/rtl/version.c
+ added hb_verHostBitWidth( void ) -> int which retrieves bit width of host OS
+ added HB_OSBITWIDTH() -> <nBits>
; It will currently work on win platform, falling back to target arch bits
for others. Pls extend it for *nixes. For MS-DOS, 32 will be returned with
both currently supported compilers.
* contrib/hbxbp/xbppushbutton.prg
! Fixed: :activate was firing event twice, on press and release, both.
* contrib/hbxbp/xbpwindow.prg
! Fixed: to reset window size as per GUI norms. Xbase++ seems
wrong on this account where XbpDialog() height is "excluding"
window frame-height whereas width is "inclusing" frame-width.
* contrib/hbxbp/xbpwindow.prg
! Depricated: setting fore/background colors of a part via
style sheet which was raising some issues. It needs further
rationalization as well for some type of components.
* contrib/hbqt/gtqtc/gtqtc.cpp
* contrib/hbqt/gtqtc/gtqtc.h
! More additions.
* contrib/hbxbp/tests/hbmk.hbm
+ Added: -mt switch.
+ contrib/hbxbp/tests/print.png
+ Added: long missed resource.
* contrib/hbxbp/xbpcrt.prg
! More synchronized.
+ contrib/hbxbp/tests/xbpqtc.prg
+ Added: an XBP and QTC specific demonstartion which also
offers Qt console(s) as threaded modules.
* harbour/src/vm/thread.c
* renamed hb_criticalCode() to hb_mutexEval()
* harbour/src/rtl/cdpapi.c
* added HB_CODEPAGE_ANNOUNCE( UTF8 ) so user can use
REQUEST HB_CODEPAGE_UTF8
in PRG code.
* harbour/tests/big5_gen.prg
; added note about characters mapped to U+FFFD REPLACEMENT CHARACTER
in BIG5.TXT and iconv mapping for the same characters.
* harbour/src/vm/thread.c
+ added new function:
hb_criticalCode( <pMtx>, <bCode> | <@sFunc()> ) -> <xCodeResult>
it executes <bCode> or @sFunc() when <pMtx> is locked by this function.
! fixed hb_mutexQueueInfo() to not overwrite RTE subst value.
This function may only return .T. or generate RTE so the logical
return value is useless. I think that it should be removed and this
function should simply return NIL.
* updated syntax of PRG functions
* contrib/hbqt/qtcore/qth/HBQEvents.qth
* contrib/hbqt/qtcore/qth/HBQSlots.qth
! Commented out tracelogs.
* contrib/hbqt/gtqtc/gtqtc.cpp
* contrib/hbqt/gtqtc/gtqtc.h
! Improved: object handelling.
* contrib/hbxbp/xbpgeneric.prg
! Minor.
* contrib/hbxbp/xbpcrt.prg
+ Functional: the class is functional to an extent.
Example code in reply-message to this commit on dev-list.
NOTE: now this seems possible that Harbour can have a
pure GUI along with a console inside it to pave a
way for seemless migration to GUI world. See example code.
* utils/hbmk2/hbmk2.prg
+ Added TOFIX. There is a build error caused by gpm, when
trying to build 64-bit Harbour on a 32-bit Ubuntu (10.10)
Linux. gpm lib is not available in 64-bit form, but
32-bit hbmk2 is built flagged with HB_HAS_GPM, so when
run it will want to include gpm also for 64-bit target.
I'm not sure what is the solution for this. Ideally
hbmk2 should dynamically decide if gpm is really required
for a given target. It could f.e. look into gttrm lib
to check for this.
[ though maybe this build scenario is just too awkward
for any sane purpose, even more so because X11 is also
not available in 64-bit form, limiting its use even more.
Probably it's more realistic goal to cross-build 32-bit
targets on a 64-bit host. ]
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/*.po
+ Added -nodefgt[-] cmdline option and nodefgt=[yes|no] .hbc
commands. It will disable linkage of default GT when creating
statically linked application. It's little hakish solution,
so pls be careful when playing with it.
% Only link to gpm lib if any of GTTRM, GTCRS or GTSLN GTs
are actually linked. (it can be useful in conjunction
with -nodefgt option)
* harbour/contrib/hbnetio/netiosrv.c
* harbour/contrib/hbnetio/readme.txt
+ added new server function:
NETIO_VERIFYCLIENT( <pConnectionSocket> ) -> <lAccepted>
By default client verification is done inside NETIO_SERVER()
function but some servers may want to verify client password
before they execute some expensive initialization code necessary
for RPC executed from NETIO_SERVER()
* harbour/src/rtl/cdpapi.c
! fixed U+0000 conversion - it should not be converted.
* harbour/src/rtl/hbjson.c
! fixed decoding unicode value from strings with \uHHHH
! fixed to use hb_cdpU16ToStr() instead of hb_cdpGetChar()
which cannot be used with CPs using multibyte encoding.
* harbour/ChangeLog
! fixed typos in my previos ChangeLog entry
(I should try to read such things at least once before I'll commit)
; TOFIX: contrib/hbexpat/internal.c: uses hb_cdpGetU16() which cannot
be used with CPs using multibyte encoding.
* harbour/include/hbapicdp.h
* harbour/include/hbcdpreg.h
* harbour/src/rtl/cdpapi.c
* harbour/src/rtl/cdpapihb.c
+ added support for user defined character encoding.
Now it's possible to easy create and register in HVM CPs using any
encoding so I expected that users interested in adding support for
some exotic character encoding will create such mapping instead
of asking for it.
% moved support for codepages using multibyte characters mapped to
single unicode values to user defined encoding - it nicely simplify
the code and eliminate unnecessary overhead in other CPs.
* allow to chose UTF8 as HVM CP
* harbour/src/rtl/idle.c
! fixed idle mode flag resetting
* harbour/src/rdd/hbsix/sxutil.c
! fixed SX_SLIMFAST() results when nested quoting with (") and (') is
used
+ harbour/tests/big5_gen.prg
+ added code to generate C source with conversion tables between
BIG5 and UCS16 using data defined by Unicode, Inc. in BIG5.TXT
+ harbour/src/codepage/cp_utf8.c
+ added alternative UTF8 Harbour CP (UTF8ASC) as an example Harbour
user defined codapged using multibyte character encoding
* harbour/src/codepage/Makefile
+ harbour/src/codepage/cp_u16le.c
+ added Harbour codepage using UTF16 little endian encoding
* harbour/src/codepage/Makefile
+ harbour/src/codepage/big5.c
+ harbour/src/codepage/cp_big5.c
+ added BIG5 Harbour CP. It can be used with programs using Harbour
STR API with automatic translations.
; This CP needs really big translation tables. I added code which
makes some very simple compression which reduced raw size from
176100 bytes to 77354 but it's still large 77KB so maybe we should
think about moving this CP to other Harbour codpage library which
is not part of harbour shared library harbour*{.dll|.so|.dyn|...}
Alternatively I can try to reduce static size to about 30KB and
then build necessary tables dynamically at runtime when they are
used first time though in such case I will need additional 177KB
of dynamic memory instead of 77KB of static memory used by current
code.
* src/rtl/fstemp.c
! hb_fsTempDir(): due to misplaced else branche it returned
'./' on *nix systems when temp dir ended with pathsep,
for the same reason it return empty string instead of './'
if temp dir could not be determined.
; Please check me.
* contrib/hbunix/chroot.c
! following suit with the others functions, on error, errno should be
saved.
+ further, in about 101% of the cases, chroot() is to be followed by a
chdir("/"), so i think it would be right to include this right here.
; [Tamas Tevesz]
* contrib/hbxbp/xbpgeneric.prg
* contrib/hbxbp/xbpwindow.prg
! Fixed: where XbpDialog() was calculating positions incorrectly
for whole frame instead of primary monitor.