* src/vm/fm.c
+ Overriding some additional C++ memory allocation operators
to cover the full set required by QT, according to this document:
http://doc.trolltech.com/4.5/qt-performance.html#alternative-memory-allocation
; Please report if it causes problem in other areas, also
retest HBQT memory allocation after change.
* src/vm/fm.c
! Fixed to not display "Warning, memory allocated but not released"
message for non-fmstat builds.
! Fixed to display "Memory allocated but not released: none" message
(without 'warning' sign) when built with fmstat and there was no
unrelease blocks.
* /src/vm/fm.c
* Not adequate defitions of the subsequent CRT functions for the MinGW implemetations:
#ifndef USE_DL_PREFIX
#define dlcalloc calloc
#define dlfree free
#define dlmalloc malloc
...
#endif /* USE_DL_PREFIX */
The malloc/free CRT functions should'nt be redefined in this way.
* The mesage: "Warning, memory allocated but not released..." is sent on request (//INFO cmdarg).
* harbour/include/hbextcdp.ch
* harbour/include/hbextlng.ch
* harbour/src/lang/Makefile
- harbour/src/lang/msghr437.c
+ harbour/src/lang/msghr646.c
- harbour/src/codepage/cphr437.c
+ harbour/src/codepage/cphr646.c
* renamed HR437 CP and LANG modules to HR646 (CROSCII / ISO-646-YU)
* harbour/include/hbextcdp.ch
* harbour/include/hbextlng.ch
* harbour/src/codepage/Makefile
- harbour/src/lang/msgsl437.c
+ harbour/src/lang/msgsl646.c
- harbour/src/codepage/cpsl437.c
+ harbour/src/codepage/cpsl646.c
* renamed CL437 CP and LANG modules to CL646 (SLOSCII / ISO-646-YU)
* harbour/src/lang/msghriso.c
! fixed language ID
+ harbour/src/codepage/cphr646.c
* harbour/src/codepage/cphr852.c
* harbour/src/codepage/cphrwin.c
+ harbour/src/codepage/cpsl646.c
* harbour/src/codepage/cpsliso.c
* harbour/src/codepage/cpslwin.c
* harbour/src/codepage/cpsl852.c
! changed the collation order so X and Y characters are sorted before Z
It's CL5.2 ntxcro.obj compatible behavior. Now HR646 and SL646 Harbour
CPs can be used to share data with Clipper application linked with
ntxcro.obj.
* harbour/include/hbextcdp.ch
* harbour/src/codepage/Makefile
+ harbour/src/codepage/cphriso.c
+ added HRISO (ISO-8859-2) Harbour CP module
Please test all these modifications.
[TOMERGE 2.0]
* harbour/src/nortl/nortl.c
! added hb_xtraced()
* harbour/src/common/hbstr.c
* do not fill unused part of buffer with '\0' bytes in
hb_strncpy(), hb_strncpyLower(), hb_strncpyUpper(),
hb_strncpyUpperTrim(), hb_strncpyTrim()
* harbour/src/common/hbtrace.c
% small optimization in building Unicode OutputDebugString() message
* harbour/src/codepage/Makefile
* harbour/include/hbapicdp.h
+ harbour/src/codepage/ucyuscii.c
+ added YUSCII unicode table
* harbour/src/codepage/cphr437.c
* harbour/src/codepage/cpsl437.c
! fixed unicode table used in HR437 and SL437 Harbour CPs.
It's not CP-437 but YUSCII
- removed my old note "TOFIX: is it really CP-437?"
TOFIX: change Harbour names of above CPs, i.e. to HRYU and SLYU
* harbour/src/codepage/uckam.c
* removed TOFIX note I forgot to remove when committed correct
Kamenicky Unicode table.
* harbour/src/codepage/uckoi8.c
* harbour/src/codepage/uc857.c
* harbour/src/codepage/uc1250.c
* harbour/src/codepage/uc1254.c
* harbour/src/codepage/uc866.c
* harbour/src/codepage/uc850.c
* harbour/src/codepage/uc1251.c
* harbour/src/codepage/ucmaz.c
* harbour/src/codepage/uc1252.c
* harbour/src/codepage/uc8859_1.c
* harbour/src/codepage/uc88591b.c
* harbour/src/codepage/uc852.c
* harbour/src/codepage/uc737.c
* harbour/src/codepage/uc1253.c
* harbour/src/codepage/uc1257.c
* harbour/src/codepage/uc8859_2.c
* updated some of my old copyright messages
* harbour/include/hbapi.h
* harbour/src/common/hbprintf.c
+ added new function 'int hb_printf_params( const char * format )' which
returns number of parameters necessary for format string
* harbour/src/common/hbtrace.c
* added protection against recursive calls when number of parameters
used by HB_TRACE message us bigger then 16 and fm.c module was compiled
with HB_TR_DEBUG macro
% use the same number of characters for unicode and byte string buffers
% use common memory area (union) for unicode and byte messages to reduce
C stack usage
Please test these modifications in real MS-Windows systems.
* src/vm/fm.c
* include/hbapi.h
+ Added hb_xtraced(). Please check it might be wrong.
* src/common/hbtrace.c
- Deleted hack to disable winout to avoid recursive calls.
+ Added TOFIX to avoid recursive calls with some clever
detection on error case (hb_xtracd() && no_of_formatt_strings > 16)
I didn't implement it, pls do so if interested.
! Fixed MultiByteToWideChar sizeof() to HB_SIZEOFARRAY().
* src/common/hbtrace.c
* Deleted TOFIX for va_end(). It's not required (and wasn't
ever required there) since there is no va_start() call in
hb_tracelog_() function at all.
* src/common/hbtrace.c
! Fixed some leftover causing error on non-win.
% Replaces \r\n with \n in printf() calls.
[TOMERGE 2.0]
* config/win/bcc.mk
+ Added -CP437 bcc option as default, so that it fixes compilation
on windows systems are setup to use certain (f.e. far east)
multibytes codepages as default non-Unicode CP.
* src/common/hbtrace.c
! Readded hack to disable reentrancy for win specific trace logic
until we clear up the issue with some Harbour API calls used from
win specific trace code are calling back to the trace engine.
* src/common/hbtrace.c
! Fixed to not call hb_xgrab() via HB_TRACE_CONVTO() causing
infinite recursion into trace engine. This replaces previously
committed trick to avoid the same thing in a generic manner.
It was a bug in previous Windows-support addition, which is now fixed.
* Adding \r\n for OutputDebugString() text to make WinDbg display
look readable, this time by simply extending printf() mask.
- Deleted space trimming from OutputDebugString() passed text.
Such issues should be fixed in high level code, it's not trace
engine's job to make cosmetic corrections on trace text content.
; Tested with both WinDbg and DbgView.
[TOMERGE 2.0]
; TOFIX:
va_end() has been commented for all platforms, although
it's required by all documentation I could verify.
If this causes problems for specific platforms/compilers,
we should only add this hack for those targets, and only
when HB_TR_WINOUT is enabled.
Now every non-Windows and Windows non-HB_TR_WINOUT
setups are not complying with CRTL documentation.
Could someone help here?
* src/common/hbtrace.c
! Formatting.
! Fixed to use HB_ISSPACE().
; NOTE/TOFIX: Anyhow I think last patch should be reverted to not manipulate
passed by user string before passing it to Windows.
Plus current anti-reentrancy logic should be changed to something
robust, as current solution drops trace messages which is a very
dangerous thing to do if we want to rely on trace output for
debugging. It's not clear what "stack overflow events" are.
* doc/codestyl.txt
! Fixed link. Thanks Vailton.
[TOMERGE 2.0]
* harbour/src/common/hbtrace.c
* early va_end( ap ) elimination, to avoid access violation generation in a subsequent hb_vsnprintf
* fix nested HB_TRACE calls handlig to avoid stack overflow events
* normalized debug info sending to OutputDebugString with ending CR/LF/NUL to ensure a correct view in windbg.
* 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/include/hbmath.h
! enable HB_MATH_ERRNO in all *unix builds not only in GCC ones
* harbour/src/vm/itemapi.c
! use finite() to check for valid double values - looks that SunCC
does not report iDODO warnings so we were not informed about the
problem
* harbour/include/hbdefs.h
* harbour/src/common/hbprintf.c
% use also _STDC_C99 macro not only _ISOC99_SOURCE to detect C99 mode
and do not reduce such detection to GCC
[TOMERGE 2.0]
* harbour/config/bsd/gcc.mk
+ added c i s to ar parameters
* harbour/src/vm/estack.c
* formatting
* harbour/include/hbtypes.h
% replaced #ifdef ... / #undef ... with simple #undef
* src/rtl/gtwvt/gtwvt.c
% Deleted unnecessary cast.
* utils/hbmk2/hbmk2.pt_BR.po
+ Uploaded new version received from Vailton Renato. Thanks!
* utils/hbmk2/hbmk2.hu_HU.po
+ Updated.
+ Added some new translations.
* utils/hbmk2/hbmk2.prg
* Minor formatting.
! Fixed typo in one of the displayed texts.
+ examples/gtwvw
+ examples/gtwvw/Makefile
+ examples/gtwvw/hbgtwvw.h
+ examples/gtwvw/hbole.h
+ examples/gtwvw/gtwvw.c
+ examples/gtwvw/wvwdraw.c
+ examples/gtwvw/wvwmenu.c
+ examples/gtwvw/wvwstbar.c
+ examples/gtwvw/wvwcheck.c
+ examples/gtwvw/wvwfuncs.c
+ examples/gtwvw/wvwpush.c
+ examples/gtwvw/wvwedit.c
+ examples/gtwvw/wvwtbar.c
+ examples/gtwvw/gtwvw.hbc
+ examples/gtwvw/gtwvw.hbp
+ examples/gtwvw/readme.txt
+ examples/gtwvw/tests
+ examples/gtwvw/tests/wvwtest9.rc
+ examples/gtwvw/tests/prog1.prg
+ examples/gtwvw/tests/prog2.prg
+ examples/gtwvw/tests/dia_excl.ico
+ examples/gtwvw/tests/drawimg.prg
+ examples/gtwvw/tests/vouch1.bmp
+ examples/gtwvw/tests/wvwmouse.prg
+ examples/gtwvw/tests/wvwtest9.hbp
+ examples/gtwvw/tests/hbmk.hbm
+ examples/gtwvw/tests/cbtest1.prg
+ examples/gtwvw/tests/def2.bmp
+ examples/gtwvw/tests/maincoor.prg
+ examples/gtwvw/tests/wvt2wvw.ch
+ examples/gtwvw/tests/cbtest6.prg
+ examples/gtwvw/tests/wvwtest9.prg
+ examples/gtwvw/tests/ebtest7.prg
+ examples/gtwvw/tests/vouch1.gif
+ examples/gtwvw/tests/maximize.prg
+ examples/gtwvw/tests/readme.txt
+ examples/gtwvw/tests/wvwtest9.xml
+ examples/gtwvw/tests/inpfocus.prg
+ examples/gtwvw/tests/prog0.prg
+ examples/gtwvw/docs
+ examples/gtwvw/docs/funclist.txt
+ examples/gtwvw/docs/gtwvw.txt
+ examples/gtwvw/docs/whatsnew.txt
+ Added rudimentary port of GTWVW to Harbour.
(The source was current xhb CVS repository.)
The port is very very (very) far from anything else
than can be found in Harbour, this port involved making
all the minimum required steps to build and link under
Harbour, plus some extra cleanups.
! Lots of cleanups and fixes.
+ Added Harbour make files (both GNU make and hbmk2)
+ Cleaned tests to avoid multiple symbols and much simpler
interdependencies.
! Removed extra test.dbf and what32 dependency.
; TOFIX: Due to public symbol collisions, this GTWVW it's
probably not possible to use it with gtwin lib.
; NOTE: GTWVW is limited to non-UNICODE, non-C++, 32-bit
Windows (no WinCE) builds, and for a clean compiler
I had to suppress Harbour standard warning levels.
Anyway, not basic tests program seems to work,
although I didn't dig into them very deeply.
We will see if this contrib turns out to be useful
or not, and we can decide to drop it or maybe
moving it to contrib once it has been brought up
to Harbour standards. Although the code is huge,
so don't expect to happen this very soon.
* harbour/include/hbapi.h
* harbour/src/vm/garbage.c
- removed function hb_gcRefDec()
* functions hb_gcRefInc() and hb_gcRefFree() moved to public API
After recent modifications in GC which introduced user defined
mark functions it's reasonable to make these function public to
extend functionality and give GC full interface to user defined
blocks.
* harbour/src/rdd/wafunc.c
* harbour/contrib/rddsql/hbrddsql.h
* harbour/contrib/rddsql/sqlbase.c
! casting fod C++ builds
* harbour/contrib/hbcairo/paths.c
! fixed very bad typo which probably cause GPF in function
CAIRO_GET_CURRENT_POINT()
* harbour/src/rtl/sha2.h
* use '__int64' instead of 'long long' in MSC builds - older MSC versions
do not support 'long long'
* harbour/utils/hbmk2/hbmk2.prg
* use cleaner method proposed by Viktor for adding 'clib3r' to linked
library list in DOS OpenWatcom builds.
* harbour/src/vm/Makefile
* enable HB_HVM_ALL=yes in OpenWatcom C builds - it does not cause such
huge compile time overheads as in C++ mode
* harbour/src/vm/dynlibhb.c
* generate TODO warning also in DOS builds when HB_LIBLOAD()/HB_LIBFREE()
is unsupported
* harbour/include/hbwince.h
! fixed recent modification
* harbour/include/hbgtcore.h
* harbour/include/hbapigt.h
* moved declaration of hb_gtSetDefault() from hbgtcore.h to hbapigt.h
* harbour/include/hbapi.h
* harbour/src/vm/hvm.c
+ added new function hb_vmSetDefaultGT()
* harbour/bin/hb-func.sh
* harbour/utils/hbmk2/hbmk2.prg
* use hb_vmSetDefaultGT() to set default GT
* removed extern declarations for functions defined in hbapi.h
* harbour/src/vm/dynlibhb.c
+ added support for HB_LIBLOAD()/HB_LIBFREE() in DJGPP 2.04 builds
* harbour/config/global.mk
* use 8.3 names for harbour dynamic libraries in all DOS builds
* harbour/config/dos/djgpp.mk
+ added support for dynamic libraries (DXE) in DJGPP builds.
DXE is sth similar to DLL in Windows and can be used with
DJGPP 2.04. I had to make some modifications in DXE header
files to make it working so it will not work in default DJGPP
installation. I'll document these modifications in the future.
* harbour/config/dos/watcom.mk
* enable creating of harbour dynamic libraries only when HB_BUILD_DLL
is explictly set by user to 'yes'. In DOS DJGPP and OpenWatcom builds
DLLs support is not functional yet.
* harbour/config/dyn.mk
* added an option to create harbour dynamic libraries from static
ones instead of .o|.obj files. It's necessary for DXE3GEN which
internally calls LD which has some limited on maximum size of passed
parameters.
TODO: make HB_DYN_LIBS definition common for dyn.mk and lib.mk
* harbour/include/Makefile
+ harbour/include/hbtrace.ch
* harbour/include/hbtrace.h
* harbour/src/rtl/trace.c
* harbour/src/common/hbtrace.c
! fixed hb_tracelevel() C function to change trace filter instead of
last message level. It also fixed .prg function HB_TRACELEVEL().
+ added new C function:
void hb_tracelog( int level, const char * file, int line,
const char * proc, const char * fmt, ... )
+ added new .prg functions:
hb_traceLogLevel( <nNewLevel> ) -> <nPrevLevel>
hb_traceLog( <xMsgItems,...> ) // generate message at
// hb_traceLogLevel()
hb_traceLogAt( <nLevel>, <msg,...> )
+ added support for HB_TRACE() messages in .prg code with the same
functionality as in C code:
HB_TRACE( <level>, <msg,...> )
HB_TRACE() code if filtered at compile time by HB_TR_LEVEL_* macros
i.e. -DHB_TR_LEVEL_INFO used as harbour compiler parameter
and at runtime by HB_TR_LEVEL=<level> envvar (set HB_TR_LEVEL=DEBUG)
or by hb_traceLevel( <nLevel> ) function (hb_traceLevel( HB_TR_DEBUG ))
Default compile time and runtime trace level for C and .prg code
is HB_TR_WARNING.
* harbour/src/vm/thread.c
* added hb_threadOnceInit() to .prg function list
* harbour/include/hbinit.h
* use HB_STATIC_STARTUP as default initialization method of all
C++ compilers
* src/rtl/sha2.c
! Added trick to make it compile with Pelles C 6.00.6.
Without this trick Pelles C compiler exits with internal error.
* doc/whatsnew.txt
+ Added NOTE about Pelles C 6.
* src/codepage/Makefile
+ src/codepage/cpel437.c
- src/codepage/cpgr437.c
* include/hbextcdp.ch
* Renamed GR437 codepage to EL437. EL is the ISO language code for Greek.
* harbour/src/rtl/gtxwc/gtxwc.c
! fixed holders for properties format 32 to be long - it's important
for 64 bit platforms.
! removed unsupported in current code "COMPOUND_TEXT" target
! readded support for "TEXT" target
* contrib/hbqt/hbqt_misc.prg
* contrib/hbide/hbide.prg
- Deleted hack which moved HBXBP specific functionality
into the core of HBQT.
I had to restore QT_PTROFXBP() macros inside hbide.
QT_PTROFXBP() has not much to do with QT_PTROF() as the
former serves to access oWidget member of passed class.
I see no need to move such logic into HBQT core code.
I restored QT_PTROF() also, but it's redefined as a dummy
in hbide.prg. I don't understand now why QT_PTROF() works
as dummy in hbide, but it doesn't when used as dummy in
HBXBP.
All in all, this means the .prg level :pPtr trick is still
needed in some places, while it's not needed in some others.
; TOFIX: HBQT has no pointer checking at all before accessing
C++ level objects, which means the simplest .prg level
error is instantly resulting in a GPF. All hb_par_*()
results must be checked for NULL before accessing them,
or better yet, and RTE should be generated right from
the hb_par_*() function.
* src/vm/classes.c
* Minor formatting.
* harbour/src/rtl/gtxwc/gtxwc.c
+ added hack for accessing selections marked by FireFox which does not
inform about UTF8_STRING target though it supports it
* harbour/src/rtl/gtxwc/gtxwc.c
! added protection against putting K_RESIZE into keyboard queue
if XServer generates ConfigureNotify event but window size is not
changed
! clear own selections on application exit - looks that some WMs have
problems when selection owner does not response and can even crash.
Please remember that some WMs periodically (i.e. once per second)
create copy of existing selections to his own structures so it's
later available even if selection owner terminates. This is VM
behavior which is not controlled by Harbour GTXWC code so selection
set by Harbour application is available after its termination only
if such Window Manager is used and it has enough time to make
selection copy.
! use hb_cdpFindExt() instead of hb_cdpFind() to find UTF8 CP
It fixes national character translations in selections (clipboard)
broken during recent modifications for new CDP API.
* harbour/src/rtl/gtxwc/gtxwc.c
! fixed timeout checking in function taking text from clipboard.
Due to typo it was waiting for XServer answer for 3 milliseconds
instead of 3 seconds so sometimes it was too small even in local
usage (i.e. when clipboard was accessed 1-st time by application
and some internal XLib structures had to be initialized) and
probably using remote XServers it was able to retrieve only the
1-st type of selection (if any).
* harbour/src/common/hbdate.c
* casting for some more pedantic C/C++ compilers
* harbour/include/hbinit.h
* allow to force static C++ initialization as startup code in
GCC and SunPRO builds by HB_STATIC_STARTUP macro
* harbour/src/rtl/hbcrc.c
! fixed hb_crcct() to work with polynomials smaller then 8 bit,
i.e. parity bit: x^1+1 => 3
% small simplification in hb_crc() function
* src/compiler/hbmain.c
* src/compiler/cmdcheck.c
* src/compiler/hbcomp.c
* src/compiler/hbusage.c
* include/hbcompdf.h
+ Added support for -i- and -i+ options. They will disable/enable
handling of INCLUDE envvar.
* config/rules.mk
+ Added -i- Harbour compiler switch to avoid any interference
with user set INCLUDE envvars.
* harbour/include/hbsetup.h
* harbour/include/hbdefs.h
* harbour/include/hbthread.h
* harbour/src/common/hbver.c
* harbour/bin/hb-func.sh
* harbour/bin/postinst.sh
* harbour/config/linux/gcc.mk
+ harbour/config/linux/open64.mk
+ added support for Open64 C/C++ compiler in Linux builds
* harbour/src/common/hbver.c
* removed unnecessary casting compiler version number parameters
to 'short'
* extended the size of szBuf buffer as requested by Tamas
* src/rtl/gtwin/gtwin.c
* Using HB_SIZEOFARRAY().
* include/hbapi.h
* Typo in comment.
* ChangeLog
+ Added missing item to prev.
* contrib/hbwin/tests/testmapi.prg
! Fixed missing SVN props.
! Added missing SVN ID.
* Formatting.
; TOFIX: This example expects arrays and logical value from command line,
so it won't work.
* harbour/include/hbwinuni.h
+ added new macro HB_ITEMGETSTR()
* harbour/src/rtl/gtwin/gtwin.c
* modified to use new UNICODE API instead of HB_TCHAR_*()
* harbour/contrib/hbwin/win_misc.c
* rewritten WIN_GETCOMMANDLINEPARAM()
New version does not use old HB_TCHAR_*() API and respect multiple
quoting by "" (i.e. .\"myapp"li"cation".exe)
TOFIX: WIN_ANSITOWIDE() and WIN_WIDETOANSI() are wrong and have
to be fixed. Please remember that number of character
after conversion to/from UNICODE can be different then
original number of chars, i.e. multibyte characters
can be replaced by single Unicode character or one Unicode
character may use few bytes representation.