* harbour/source/debug/dbgentry.c
! fixed some possible memory leaks or GPFs when wrong parameters
are passed to debug functions
* moved module name conversions (path stripping) into one place
so in the future it will be easier to add automatic path detection
* source/debug/debugger.prg
! Avoided __PLATFORM__* macros in core code by using
hb_FileMatch() instead of some local logic to make
filename comparisons portable.
Someone please check me if this is right.
* source/pp/ppcore.c
* doc/whatsnew.txt
! __PLATFORM__* macros now all #defined in full uppercase.
F.e.:
__PLATFORM__Windows becomes __PLATFORM_WINDOWS
__PLATFORM__Linux becomes __PLATFORM__LINUX
INCOMPATIBLE.
* contrib/xhb/hbcompat.ch
+ Added compatibility #defines for __PLATFORM__* macros.
* include/hbdefs.h
! Minor formatting.
* harbour-ce-spec
* harbour-w32-spec
* make_xmingw.sh
* make_xmingwce.sh
* source/debug/debugger.prg
* contrib/hbtpathy/telepath.prg
* contrib/hbw32/w32_tole.prg
* contrib/hbw32/w32_tprn.prg
* utils/hbdot/hbdot.prg
* utils/hbmake/hbmake.prg
* Changed __PLATFORM__* #define according to latest changes.
; NOTE: I find this kind of compile-time platform dependency
quite wrong in an normal application, and we should
definitely avoid it in core Harbour.
In core Harbour there is one place where it would
better be eliminated, and in order to do this, we'd
need to have a filename equality comparison FS
function. Maybe we already have one, I don't know.
* tests/extend2.c
* source/debug/dbgentry.c
* contrib/hbodbc/odbc.c
* contrib/hbw32/tprinter.c
* contrib/hbziparch/hbziparc.c
* contrib/hbziparch/hbzipnew.cpp
* contrib/hbpgsql/postgres.c
! Changed strcpy() -> hb_strncpy()
! Changed strcat() -> hb_strncat()
! Some possible buffer overruns fixed along the way in hbziparch.lib
! Fixed some filename buffer sizes in hbziparch.lib
; TOFIX: There are still some remaining strcpy()/strcat()
calls in Harbour code:
core: dbgentry.c, hbwince.c
contrib: hbnf, hbw32, hbwhat32, hbtip
foreign code: zlib, sqlite2/3
Not all of these are necessarily bugs (but it's
difficult to know without checking each).
* harbour/source/debug/debugger.prg
* removed some unused var, formatting
* harbour/source/pp/ppcore.c
* harbour/source/common/expropt1.c
* harbour/source/common/expropt2.c
* harbour/source/common/hbdate.c
* casting
* harbour/source/common/hbstr.c
* casting
* use HB_ISSPACE() instead of isspace() for strict Clipper
compatibility
* harbour/source/compiler/harbour.y
* harbour/source/compiler/harbour.yyc
! never use 'char' to 'int' casting for parameters of
toupper()/to*()/isuper()/is*() functions
* harbour/source/debug/tbrwtext.prg
! declare HBDebugger as friend class of HBBrwText to avoid scope
errors when debugger code executes some protected messages.
It will be better to clean debugger code but I do not have
time for it now.
! use HBEditor() in edit mode to eliminate problems with cursor
positioning in source code window
* harbour/source/debug/debugger.prg
* added protection against RT error during macro evaluation of wrong
user expressions
* harbour/source/debug/dbgbrwsr.prg
* respect oCol:colorBlock() used by debugger code in few places
* harbour/source/debug/dbgtobj.prg
* sort messages and show methods in lower letters just like Clipper
* harbour/source/debug/dbgtobj.prg
* harbour/source/debug/dbgthsh.prg
* harbour/source/debug/dbgtarr.prg
! added protection against RT error when user type wrong expression
in OBJECT, ARRAY and HASH inspectors
* harbour/include/hbapicls.h
* harbour/source/vm/classes.c
+ added new function hb_dbgObjSendMessage() which allows to
call messages with given given execution context for proper
scope checking
* harbour/source/debug/dbgentry.c
+ added HB_DBG_SENDMSG() for calling messages with given execution
context
* harbour/source/debug/dbgtobj.prg
* removed all __obj*() function calls
* use HB_DBG_SENDMSG() to access/assign object variables
! fixed default value in GET operation called from object
inspector to always show current object variable value
! fixed set for object variables which hold value: "Method"
they were recognized as method
Now object variables can be inspected by debugger.
If object has multiple private messages with the same name
inherited from parent classes then their context will be
dynamically changed depending on position in currently
debugged code.
* harbour/include/hbapigt.h
* harbour/source/rtl/gtapi.c
! changed USHORT hb_gtColorToN( char * szColorString ) to
int hb_gtColorToN( char * szColorString ) - it should be the same
type as indexes in hb_gtColorsToString() functions
* harbour/source/rtl/hbgtcore.c
* return -1 from COLORNUM() method when passed color is not
valid color string
* harbour/contrib/hbct/screen2.c
* harbour/contrib/hbct/color.c
* harbour/contrib/hbct/screen1.c
* harbour/contrib/hbct/ctwfunc.c
* harbour/contrib/hbnf/color2n.c
* harbour/contrib/gtwvg/wvtcore.c
* updated to respect -1 returned for wrong color strings
* harbour/source/rtl/tget.prg
* updated to respect -1 returned for wrong color strings
Viktor please check me, now it's simpler and hbtest does not
reports any errors so I guess that this version will work like
in Clipper also for :colorSpec := "R,X,Y,0" or similar
* harbour/source/rtl/tobject.prg
* harbour/source/debug/dbgbrwsr.prg
* formatting
* source/debug/tbrwtext.prg
! fixed small typo that was allowing wordwrapping long source code lines
and was messing with the correct display of the current line
* harbour/ChangeLog
* harbour/harbour.spec
* reverted translation to UTF8 - Tomaz please check your editor
settings and disable automatic translation to UTF8. It's not
the first as such situation happens.
* harbour/include/hbclass.ch
+ added two missing PP directives
! protected against some repeated external definitions
* harbour/source/pp/Makefile
* harbour/source/pp/hbppgen.c
* harbour/source/pp/ppcore.c
* harbour/source/common/hbver.c
* harbour/source/common/hbverdsp.c
* harbour/source/main/harbour.c
* harbour/source/vm/cmdarg.c
* harbour/utils/hbpp/hbpp.c
* harbour/include/hbpp.h
* harbour/include/hbcomp.h
* harbour/include/hbver.h
* harbour/include/hbapi.h
* harbour/make_vcce.mak
* harbour/make_b32.mak
* harbour/make_vc.mak
* harbour/make_gcc.mak
+ added support for dynamically set during compilation ChangeLog entry
ChangeLog ID and SVN revision and compilation flags
Now hbppgen creates in include directory hbverbld.h file with
information extracted from ChangeLog. New hbppgen parameters:
Syntax: ./hbppgen <file>[.prg] [options]
Options: -i<path> add #include file search path
-c[<file>] look for ChangeLog file
-o<file> creates .c file with PP rules
-v<file> creates .h file with version information
-w write preprocessed (.ppo) input file
-q disable information messages
+ added new C functions:
int hb_verSvnID( void )
- retrieves ChangeLog SVN revision number
const char * hb_verSvnChangeLogID( void )
- retrieves a static buffer containing ChangeLog ID string
const char * hb_verSvnLastEntry( void )
- retrieves a static buffer containing ChangeLog last entry string
const char * hb_verFlagsC( void )
- retrieves a static buffer containing build time C compiler
flags in C_USR envvar
const char * hb_verFlagsL( void )
- retrieves a static buffer containing build time linker
flags in L_USR envvar
const char * hb_verFlagsPRG( void )
- retrieves a static buffer containing build time Harbour compiler
flags in PRG_USR envvar
+ added new default PP defines which can be used in .prg code compiled
by Harbour compiler: HB_VER_LENTRY, HB_VER_CHLID, HB_VER_SVNID
* harbour/source/rtl/gtxwc/gtxwc.c
* formatting
* harbour/source/rtl/gttrm/gttrm.c
! fixed redrawing GPM mouse pointer after screen updating
* harbour/source/rtl/gtstd/gtstd.c
* harbour/source/rtl/gtpca/gtpca.c
* updated for compilation even if some POSIX macros are not supported
f.e. problems with some DJGPP versions reported recently
* harbour/source/debug/dbgentry.c
* harbour/source/debug/dbgtobj.prg
* harbour/source/debug/dbgbrwsr.prg
* harbour/source/debug/dbgthsh.prg
* harbour/source/debug/tbrwtext.prg
* harbour/source/debug/dbgwa.prg
* harbour/source/debug/debugger.prg
* harbour/source/debug/dbghelp.prg
* harbour/source/debug/dbgtarr.prg
! Fixed object inspector in the debugger.
! Added HbDbBrowser:invalidate() message. Fixes work area browsing in debugger.
! Added an minimalistic TBrowse implementation that is just enough
for internal use by the debugger. Fixes miscellaneous problems e.g.
when debugging a piece of code with RELATIONs turned on.
Fixes by Phil Krylov borrowed from xHarbour.
* harbour-ce-spec
* harbour-w32-spec
* bin/bld.bat
* harbour.spec
* common.mak
* source/pp/Makefile
* source/lang/Makefile
* source/macro/Makefile
* source/rtl/Makefile
* source/vm/mainstd/Makefile
* source/vm/Makefile
* source/vm/mainwin/Makefile
* source/main/Makefile
* source/debug/Makefile
* source/codepage/Makefile
* source/common/Makefile
* source/rdd/nulsys/Makefile
* source/rdd/Makefile
* source/rdd/hsx/Makefile
* source/rdd/usrrdd/Makefile
* source/compiler/Makefile
* contrib/hbct/tests/Makefile
* contrib/hbodbc/tests/bld_b32.bat
* contrib/hbole/tests/bld_b32.bat
* contrib/hbapollo/tests/bld.bat
* contrib/hbfbird/tests/bld_b32.bat
* contrib/hbfbird/tests/Makefile
* contrib/hbpgsql/tests/Makefile
* contrib/hbfimage/tests/bld_b32.bat
* contrib/hbgd/tests/bldtest.bat
* contrib/hbmisc/tests/Makefile
* contrib/hbgf/tests/bld_b32.bat
* contrib/hbbtree/tests/Makefile
* contrib/examples/guestbk/Makefile
* contrib/examples/pe/Makefile
* contrib/examples/dbu/Makefile
* contrib/examples/misc/Makefile
* contrib/examples/hscript/Makefile
* utils/hbdoc/Makefile
* utils/hbextern/Makefile
* utils/hbdot/Makefile
* utils/hbmake/Makefile
* utils/hbmake/hbmutils.prg
* utils/hbmake/hbmake.prg
* utils/hbpp/Makefile
* utils/hbpptest/Makefile
* utils/hbtest/Makefile
* utils/hbrun/Makefile
* tests/Makefile
* Core libs renamed to be prefixed with hb, while
having the first significant 5 chars unique.
Old name New name
-------- --------
codepage -> hbcpage
common -> hbcommon
compiler -> hbcplr
debug -> hbdebug
hbsix -> hbsix
hsx -> hbhsx
lang -> hblang
macro -> hbmacro
pp -> hbpp
rtl -> hbrtl
vm -> hbvm
rdd -> hbrdd
dbfcdx -> rddcdx
dbffpt -> rddfpt
dbfntx -> rddntx
nulsys -> hbnulrdd
usrrdd -> hbusrrdd
mainwin -> hbmainwin
mainstd -> hbmainstd
NOTE/TODO: We're currently not in sync with contribs,
regarding hb prefixing, since in contrib
rdds and gts (rightly) also have hb prefixes.
The only reason not to add them in core this
time, is to keep compatibility with DJGPP.
Maybe we should remove those prefixes from
contrib.
NOTE/TODO: Do tests in as many platforms and as many contrib
tests as possible. Feedback from hbmake users is
also welcome.
!!! Please update your local make files !!!
* include/hbgtinfo.ch
+ Added HB_ prefixed versions for all GTI_ macros.
Unprefixed GTI_ macros are to be considered xhb
compatible (or legacy) ones, and they can be
excluded by #defining HB_GT_NO_XHB if they seem to
collide with user code.
TODO: Switch to use HB_GTI_* inside Harbour code.
* contrib/libnf/Makefile
* contrib/libnf/makefile.vc
* contrib/libnf/makefile.bc
- contrib/libnf/round.prg
+ contrib/libnf/ftround.prg
- contrib/libnf/test.prg
+ contrib/libnf/test
+ contrib/libnf/test/test.prg
! Rename one file in NFLIB to don't clash with core Harbour.
* Moved test file to a separate test dir.
* source/debug/dbgtobj.prg
! Fixed an RTE when browsing subarrays in object monitor.
(from xhb by Phil Krylov)
* source/rtl/tbrowse.prg
! Color handling made fully C5.x compatible. Pls test.
+ One C5.3 bug replicated where no special header/footer
colors are being used if there is not header/footer separator
sepcified.
! Fixed compile error (because of unused var warning) when
HB_COMPAT_C53 is not defined.
* source/rtl/numeric.prg
* source/rtl/memoedit.prg
* source/rtl/typefile.prg
* source/rtl/block.prg
* source/rtl/symbol.prg
* source/rtl/errorsys.prg
* source/rtl/scalar.prg
* source/rtl/nil.prg
* source/rtl/radiogrp.prg
* source/rtl/logical.prg
* source/rtl/array.prg
* source/rtl/listbox.prg
* source/rtl/browse.prg
* source/rtl/characte.prg
* source/rtl/pushbtn.prg
* source/rtl/ttextlin.prg
* source/rtl/profiler.prg
* source/rtl/date.prg
* source/rtl/persist.prg
* source/debug/dbgbrwsr.prg
* source/debug/tbrwtext.prg
* source/debug/dbgtmenu.prg
+ Enabled "PROTECTED:" keyword in profiler.prg
* Finished CLASS declarations to use a more or less consistent syntax
inside Harbour (Class(y) compatible except SETGET and the METHOD
parameter lists, maybe some more).
* Finished WHILE, iif(), END, string quotation to be consistent along Harbour.
! Fixed some indentations.
* Some other minor cleanups.
* source/rtl/getsys.prg
* source/rtl/tgetlist.prg
* source/debug/debugger.prg
! Fixed scope violation in debugger by creating
a new :Get() method for HBGetList().
! Fixed some minor issues.
% Minor optimization. Like dropping HBGetList():ReadExit()
which was just a wrapper to SET( _SET_EXIT ).
! Replaced a few remaining external HBGetList() var accesses
with :ReadStats() calls.
! TGetList():GetApplyKey() parameter list rearranged after
yesterday to keep it compatible with previous versions.
This also avoids a crash in the debugger.
* source/rtl/memoedit.prg
* source/rtl/teditor.prg
* source/debug/tbrwtext.prg
+ HBEditor():RefreshWindow() renamed to :display()
old message name kept for compatibility.
+ HBEditor():hitTest() added.
+ HBEditor():changed() added. (returns internal
::lDirty which got renamed to ::lChanged)
* source/rtl/getlist.prg
* source/rtl/getsys.prg
* source/rtl/tgetlist.prg
! Fixes for UI problems reported by Lorenzo
and more. Mostly from xhb.
+ ReadModal() core functionality moved inside
HBGetList()
+ ReadStats() functionality moved indide
HBGetList()
+ All HBGetList() vars made protected.
+ Cleaned up the .prg and class interfaces.
! Fixed crashes of several GETSYS compatibility
functions, when no getlist was active.
We're still not fully C5.x compatible though.
* source/rtl/tmenusys.prg
+ Uses ReadStats() instead of direct
HBGetList() var access.
* source/rtl/tbrowse.prg
! :hitTest() fixed.
* source/rtl/tget.prg
! Minor fixes to :capCol() and :capRow()
* source/rtl/checkbox.prg
* source/rtl/listbox.prg
* source/rtl/menuto.prg
* source/rtl/pushbtn.prg
* source/rtl/radiobtn.prg
* source/rtl/radiogrp.prg
* source/rtl/scrollbr.prg
* source/rtl/tbcolumn.prg
* source/rtl/tbrowse.prg
* source/rtl/tget.prg
* source/rtl/tgetlist.prg
* source/rtl/tpopup.prg
* source/rtl/ttopbar.prg
* Formatting (some varnames uniformized).
* source/rtl/getsys.prg
! Fix for crash in TGetList():ShowGetMsg() reported by Lorenzo.
* contrib/libct/blank.prg
* source/rtl/menuto.prg
* source/rtl/valtoexp.prg
* source/rtl/readkey.prg
* source/rtl/browse.prg
* source/debug/debugger.prg
+ Replaced END with ENDSWITCH and ENDWITH
* source/rtl/hbgtcore.c
! Fixed handling of some strangely formatted colorstrings
mainly inside TGet(). The low-level functionality
modified is the colorstring to number conversion. The
only change is to continue (and not exit) on a non-std
char.
* utils/hbtest/rt_misc.prg
+ Added some color string parsing tests. Some of them fail.
* source/rtl/achoice.prg
* source/debug/debugger.prg
* utils/hbtest/hbtest.prg
* utils/hbtest/rt_array.prg
* Formatting.
* tests/rto_get.prg
* source/rtl/tget.prg
! Fixed display issue when using display->varput->display
sequence. (Thanks Lorenzo)
+ Above case added to test suite.
* source/rtl/tbrowse.prg
+ Some scattered logic moved inside :Configure()
! Some TOFIX-es added.
! ::ColorSpec() to call Configure().
* source/debug/dbgtobj.prg
* source/debug/dbgwa.prg
+ Formatting, var name cleanup.
* include/hbcompat.ch
* include/hbextern.ch
* source/rtl/hbini.prg
+ .ini functions added to hbextern.ch.
* .ini functions renamed so that all of them reside
in the hb_ini*() namespace. xhb compatibility translates
added.
* source/debug/debugger.prg
* Formatting.
* source/rtl/memoedit.prg
% Minor optimization.
* source/rtl/teditor.prg
! Fixed to not ask for confirmation when pressing
<Esc> on an unedited buffer.
* include/setcurs.ch
* include/hbapigt.h
* SC_UNDEF moved to .prg level.
! SC_* defs not duplicated on C level.
* include/hbcompat.ch
+ Added debugger class compatibility translations.
* source/rtl/tmenusys.prg
* source/rtl/menusys.prg
* Formatting.
* source/rtl/teditor.prg
* source/debug/debugger.prg
+ Added :RowPow(), :ColPos(), :IsWordWrap(), :WordWrapCol()
! Changed debugger to use the above methods instead of direct
instance var access.
* source/rtl/tbcolumn.prg
* source/rtl/tget.prg
* source/rtl/tbrowse.prg
! Public class initializator names hidden when in strict
(and non-XPP) mode.
* source/rtl/tbrowse.prg
+ Some work in progress towards better C5.x compatibility
(borrowed from xhb)
* source/rtl/getsys.prg
* source/rtl/tgetlist.prg
+ (Better) C5.3 message line support, several 5.3 fixes,
some of them borrowed from xhb.
* include/hbcompat.ch
* source/debug/dbgtobj.prg
* source/debug/dbgbrwsr.prg
* source/debug/dbgtwin.prg
* source/debug/dbgmenu.prg
* source/debug/dbgthsh.prg
* source/debug/tbrwtext.prg
* source/debug/dbgwa.prg
* source/debug/debugger.prg
* source/debug/dbghelp.prg
* source/debug/dbgtarr.prg
* source/debug/dbgtmenu.prg
* source/debug/dbgtmitm.prg
! Class names named to be in the Harbour namespace.
xhb compatibility translations added to hbcompat.ch
! Unneeded BEGINDUMP and .h inclusions removed.
! Added :End() to HBBrwText to avoid using some
internals vars of the class.
! Fixed problem with HBDebugger:SaveAppScreen()
where it crashed due to wrong initialization
of TBrowse() screen coordinates. Bug appeared
due to the now more compatible TBrowse() behaviour.
% Optimizations and cleanups.
% Unused vars/functions removed.
* Formatting (except large parts of debugger.prg and
those files which were okey).
; Majority of formatting, optimization and code cleanup
work is still left to do.
Please test as much as you can.
* harbour/hbgtmk.sh
* replaced CVS checkout commands by SVN checkout
# This script checks you have all tools to build Harbour binaries
# installed then takes current Harbour sources from SourceForge SVN
# repository and build binary RPMs at your local host
If possible I think it will be good to put this script on
Harbour home page so Linux users using RPM based distributions
can simply download it and execute. It should greatly help them
and it will reduce some repeated questions.
* harbour/include/hbapifs.h
* harbour/source/rtl/filesys.c
+ added hb_fsNameConv() function, hb_fileNameConv() kept only for
backward compatibility - it should not be used
* use hb_fsNameConv() instead of hb_fileNameConv()
* updated conversion code to use hb_fsFNameSplit()/hb_fsFNameMerge()
and respect some other DOS like conditions
* harbour/include/hbdate.h
* harbour/source/common/hbdate.c
* harbour/source/rtl/seconds.c
* use MT safe localtime_r() instead of localtime() in Linux
+ hb_dateTimeStamp(), hb_timeStampStr(), hb_timeStampDecode(),
hb_dateTimeStampStr(), hb_dateTimeStampStrGet()
* harbour/contrib/libct/files.c
* harbour/contrib/libct/disk.c
* harbour/contrib/hbzlib/hbcomprs.c
* harbour/source/rtl/diskspac.c
* harbour/source/rtl/fstemp.c
* harbour/source/rtl/disksphb.c
* harbour/source/rtl/file.c
* use hb_fsNameConv() instead of hb_fileNameConv()
* harbour/source/debug/dbgentry.c
+ added modifications by Phil Krylow borowed from xHarbour for
supporting :: in command line expressions
* harbour/source/rdd/dbfntx/dbfntx1.c
* harbour/source/rdd/dbfdbt/dbfdbt1.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* harbour/source/rdd/delim1.c
* harbour/source/rdd/dbf1.c
* harbour/source/rdd/dbffpt/dbffpt1.c
* harbour/source/rdd/sdf1.c
* minor clenup:
use hb_parptr(n) instead of hb_itemGetPtr(hb_param(n,HB_IT_POINTER))
* harbour/source/compiler/hbfix.c
! fixed local IND/DED when PARAMETERS is used
! fixed local names generated for debugger when PARAMETERS is used
* harbour/source/debug/dbgentry.c
! fixed very bad typo in my previous commit
% minor optimization
* harbour/source/debug/debugger.prg
* removed some not longer necessary GTWVW extensions
* harbour/source/rtl/hbgtcore.c
* harbour/contrib/libct/ctwin.c
+ added support for GTI_{NEW,GET,SET}WIN in CTWIN
Now debugger can be used with CTWIN without any problems
* harbour/common.mak
* harbour/bin/pack_src.sh
* harbour/source/vm/Makefile
- harbour/source/vm/dbgentry.c
* harbour/source/debug/Makefile
+ harbour/source/debug/dbgentry.c
* moved dbgentry.c from HVM to DEBUG library
* harbour/source/rtl/hbgtcore.c
+ added basic version of GTI_{NEW,GET,SET}WIN
* harbour/include/hbapidbg.h
* harbour/source/vm/hvm.c
* harbour/source/debug/debugger.prg
* harbour/source/debug/dbgentry.c
+ added set of .prg level functions (HB_DBG_*()) to control
debugger internals
* eliminated HB_INLINE() calls
* use to switch between user and debugger screen
* cleaned debugger interface in HVM, removed unused variables
added one common debug function
* harbour/source/debug/dbgtarr.prg
! Fixed unclosed #if construct.
Question: What does HB_NO_READDBG do?
* harbour/source/rtl/tget.prg
! Removed :Assign() call from :UpdateBuffer() to close
the functionality to CA-Cl*pper.
* harbour/common.mak
* harbour/source/rtl/Makefile
+ harbour/source/rtl/valtoexp.prg
+ added HB_VALTOEXP() and HB_CSTR()
* harbour/source/debug/dbgthsh.prg
* harbour/source/debug/debugger.prg
* replaced CSTR() with HB_CSTR() and SETLASTKEY() with HB_SETLASTKEY()
now debugger can be used without CT and TIP libraries
* harbour/include/hbgtinfo.ch
* harbour/source/rtl/hbgtcore.c
+ added GTI_ISMULTIWIN, GTI_GETWIN, GTI_SETWIN, GTI_NEWWIN
and TODO note - it's not finished yet, work in progress
* harbour/source/debug/debugger.prg
! Fixed a few compile errors.
! Reapplied (and extended) a former fix regarding
the proper handling of the filenames.
* harbour/source/rtl/tbrowse.prg
; Cosmetic.
* harbour/include/hbapi.h
+ harbour/include/hbapidbg.h
* harbour/include/hbcomp.h
* harbour/include/hbcompdf.h
* harbour/include/hbdebug.ch
* harbour/include/hbdefs.h
* harbour/source/compiler/Makefile
* harbour/source/compiler/genc.c
+ harbour/source/compiler/hbdbginf.c
* harbour/source/compiler/hbmain.c
* harbour/source/debug/debugger.prg
* harbour/source/rtl/altd.prg
* harbour/source/vm/Makefile
+ harbour/source/vm/dbgentry.c
* harbour/source/vm/debug.c
* harbour/source/vm/hvm.c
+ added xHarbour compatible low level debugger code
Without some small exceptions like my hbdbginf.c most of
the code created by Phil Krylov <phil a t newstar.rinet.ru>
and borrowed from xHarbour with some small modifications.
* harbour/source/rtl/gete.c
! fixed memory leak in GETENV()
* harbour/source/compiler/hbmain.c
! fixed memory leak when -build or -credit switches were used
* harbour/common.mak
* harbour/source/lang/Makefile
+ harbour/source/lang/msgnl.c
+ added Dutch language module by Rene Koot
* harbour/config/os2/gcc.cf
* commented out -DTCPV40HDRS in CFLAGS
* harbour/make_gnu.cmd
* added commented by default: set C_USR=-DTCPV40HDRS %C_USR%
* harbour/contrib/libnf/menu1.prg
* harbour/contrib/libnf/pegs.prg
* harbour/contrib/libnf/popadder.prg
* harbour/contrib/libnf/savesets.prg
* harbour/source/debug/dbgmenu.prg
+ added missing #include "common.ch" for HB_SYMBOL_UNUSED()
* harbour/include/hbclass.ch
* renamed __HB_SYMBOL_UNUSED() to __HB_CLS_SYMBOL_UNUSED() to keep
the same name convention as for other hbclass definitions/commands
* harbour/include/hbsetup.h
* added commented by default #define HB_PP_MULTILINE_STRING
with small description
* harbour/source/rtl/net.c
* added missing #include(s) for OS2 build
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* formatting
* harbour/include/hbclass.ch
* most of the rules rewritten
! fixed some wrong rules and general cleanup
+ added additional code validation
! fixed compilation of more then one class in single file.
Now it's even possible to declare all classes at beginning of
single file and then implementing their methods in any order
! fixed using static classes and classes
! fixed compilation without <ClassName>_ prefix in method names
+ added support for HB_CLS_NO_DECORATION macro which disable
adding <ClassName>_ prefix to method names - this macro is
set by default when HB_SHORTNAMES is set.
+ added support for declared parameters validation - it can be
disabled with HB_CLS_NO_PARAMS_ERR and I had to disable it
by default due to problems with our preprocessor.
Ryszard seems that our PP has serious problems with decoding
directives when there is no space between symbol and some other
non symbol character. I had to add some workarounds and even
introduce buggy rules to make it working. Please look at it.
You can remove #define HB_CLS_NO_PARAMS_ERR from hbclass.ch
and try to rebuild Harbour core code to see the problem.
* harbour/include/hboo.ch
* harbour/source/vm/classes.c
+ added support for new primitive message: HB_OO_MSG_PERFORM
* harbour/source/rtl/tclass.prg
- removed <lPersistent> parameter from HBClass messages and
internals data. Persistent is supported as scope bit and
separate variable was redundant.
- removed stripping of () from message names. Here is not a place
to fix wrong preprocessor rules.
* harbour/utils/hbtest/rt_class.prg
* use: METHOD PROCEDURE ... CALSS ...
instead of: PROCEDURE ... CALSS ...
The first version is preferable syntax.
* harbour/source/debug/dbgtmenu.prg
* harbour/source/rtl/checkbox.prg
! fixed some parameters in method declaration - global cleanup
will have to wait for preprocessor fixes
Hi all,
Please make test with current hbclass.ch code.
I hope that I haven't broken too much things ;-) but I rewrite
from scratch most rules and it's possible that I missed sth or
made some stupid typos. Current version is much shorter and should
be easier to updated. For sure I've intentionally changed one thing.
CLASSDATA was ignoring SHARED attribute and always created shared
class variables. Seems that it was long existing typo but the fix
may interact with already existing code which needs SHARED class
variables but does not use SHARED clause in CLASSDATA declaration.
In such case please update it and add missing SHARED.
Also in the end of CLASS declaration we have:
[ ; #translate Super( <SuperClassN> ): => ::<SuperClassN>: ] ;
[ ; #translate Super( <SuperClass1> ): => ::<SuperClass1>: ] ;
[ ; #translate Super(): => ::<SuperClass1>: ] ;
[ ; #translate Super: => ::<SuperClass1>: ] ;
[ ; #translate ::Super : => ::<SuperClass1>: ]
These rules introduce very serious bug - they are breaking supercasting
in code which makes sth like:
::super:super:super:msg
or in any other code which sends SUPER message to some other class
objects. I will have to remove them. At least the last three ones.
There were some other things I wanted to write about but it's too late
and I'm to tired - sorry. If you will have any question please ask. if
you will notice some problems with current rules please inform me.