* harbour/include/hbapigt.h
* harbour/source/rtl/gtapi.c
+ added C functions hb_gtLock() and hb_gtUnlock()
They block current GT for other threads
* harbour/source/rtl/gtfunc.c
+ added PRG functions hb_gtLock() and hb_gtUnlock()
They block current GT for other threads - be careful using them
and always unlock locked GT
* harbour/source/rtl/scroll.c
+ added HB_SCROLL() function - it works like SCROLL() but supports
2 additional parameters: color and erase char. It's stateless and
atomic in GT access
* harbour/source/rtl/tbrowse.prg
* use HB_SCROLL() instead of SCROLL(). Now whole TBROWSE class
does not depend on other thread screen output and does not
set any GT variables except of cursor positioning to active
cell when it's enabled
* harbour/source/rtl/memoedit.prg
* harbour/source/rtl/tgetlist.prg
* harbour/source/rtl/tlabel.prg
* harbour/source/rtl/listbox.prg
* harbour/source/rtl/tmenusys.prg
* harbour/source/rtl/achoice.prg
* harbour/source/rtl/profiler.prg
* harbour/source/rtl/teditor.prg
* use atomic stateless functions when possible - this code should
be checked and updated by some who know it.
* 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/profiler.prg
* HBProfileLowLevel:gatherOPCodes() wasn't making a call to
HBProfile:ignoreSymbol() to allow for opcode filtering in sub
classes. Fixed.
* Improved the formatting of OPCODE names so that they sort
properly.
* source/rtl/profiler.prg
+ Added HB_Profile::ignoreSymbol().
* Changed HB_Profile::gather() to use HB_Profile::ignoreSymbol() to
decide if a symbol should be ignored. This will let developers
modify what is and isn't ignored by subclassing HB_Profile and
implementing their own version of HB_Profile::ignoreSymbol().
* source/rtl/profiler.prg
- Removed <lOnlyUsed> parameter
+ Added <cFile> parameter.
+ Added <lAll> parameter
+ Added Cunsumed time in seconds
* Replaced MemoWrit() function with more controllable f* functions
+ profiler() returns a array with profiler info
Profiler()
=> Writes NO info to file, returns Array of profiler info.
Array only contains USED functions/classes.
Profiler(,.t.)
=> Writes NO info to file, returns Array of profiler info.
Array only contains ALL functions/classes.
Profiler("profiler.txt")
=> Writes profiler info to <profiler.txt> and returns Array of
profiler info. Array only contains USED functions/classes.
Profiler("profiler.txt", .t.)
=> Writes ALL profiler info to <profiler.txt> and returns Array of
profiler info. Array contains ALL functions/classes.
* source/rtl/profiler.prg
+ Added the <lOnlyUsed> parameter. If profiler is used like
this Profiler(.t.), the profiler.txt will only be filled
with used classes and/or functions.