* source/debug/debugger.prg
! Fixed error when moving in the call stack window to an source prg
not included in the path, and a ::oWndVars (Monitor of vars) is opened.
* harbour/include/hbapigt.h
* harbour/source/rtl/console.c
* harbour/source/rtl/filesys.c
* use HB_STD{IN,OUT,ERR}_HANDLE macros instead of hard coded values
* harbour/include/hbgtcore.h
* harbour/source/rtl/hbgtcore.c
* harbour/source/rtl/gtapi.c
+ added optional support for dynamic supertables
+ added reference counter to HB_GT_BASE structure
- removed hb_gtUnLoad() function
+ added hb_gtAlloc(), hb_gtRelease(), hb_gtAttach()
+ added hb_gtRealod() function which unloads current GT driver
and loads given new one
+ added .prg function HB_GTRELOAD( <cGtName> ) -> <lSuccess>
This function allow to switch active GT driver at run time.
It can be also used to simulate removed HB_NOSTARTUPWINDOW()
functionality. F.e.:
REQUEST HB_GT_WVT
REQUEST HB_GT_NUL_DEFAULT
proc main()
// do some initializations...
hb_gtReload( "WVT" )
// rest of code...
return
Please remember that some GTs may refuse initialization due to
missing required resources and instead of return FALSE they can
interrupt program with internal error, just like at application
startup so it's not guarantied that this function always returns.
* harbour/contrib/hbct/ctwin.c
* updated for new GT API
+ added support for dynamic supertable to allow using CTWIN in the
same time with different GTs.
* harbour/contrib/xhb/hbcompat.h
- removed hb_retclenAdoptRaw translation
* harbour/contrib/hbct/ctwin.c
* moved internal CTW data to structure allocated dynamically and
hold by inside current thread GT (HB_GT) to eliminate static
variables used by GTCTW. Now each thread can have its own
independent set of CTWindows if it allocated new GT.
* harbour/contrib/hbct/tests/ctwtest.prg
* removed two unused local variables
* source/debug/debugger.prg
! Fixed error when selecting "Restore Settings" and the current prg source
is not in the "path for Files" option. (NIL ::oBrwText at line 1478 on
debugger.prg)
* harbour/source/rtl/filebuf.c
! fixed bad typo in lock table resizing
* harbour/source/rdd/hbsix/sxcompr.c
! fixed ring buffer initialization in Sx_Compress()
+ contrib/hbdbgfx
+ contrib/hbdbgfx/dbgfxc.c
+ contrib/hbdbgfx/dbgfxc.prg
+ contrib/hbdbgfx/hbdbgfx.h
+ contrib/hbdbgfx/sprintf.prg
+ hbdbgfx lib add some functions usefull for debugging purpose:
hb_ToOutDebug( cMsg, p1, p2, ... )
that outputs to OutDebug from Microsoft debugview
HB_ToLogFile( cLogFile, cMsg, p1, p2, ... )
that outputs to a file
where cMsg is formatted like printf()
example:
hb_ToOutDebug( "fields: name = %s, address = %s", field->name, field->address )
and some utility functions:
HB_ToOutDebugOnOff( lOnOff )
HB_LogFileOnOff( lOnOff )
HB_EmptyLogFileOnOff( lOnOff )
Above functions are available either at prg than at C level.
Actually it is only for window platform.
* contrib/mtpl_b32.mak
* contrib/mtpl_gcc.mak
* contrib/mtpl_vc.mak
* Fine tuning latest setting changes. I've rather removed
-gc3 as contrib default switch. For those contribs where
speed is critical, this switch should be turned on
on a per contrib basis.
* common.mak
* contrib/mtpl_b32.mak
* contrib/mtpl_gcc.mak
* contrib/mtpl_vc.mak
+ Made -gc3 switch the default. This will result in
noticeably faster .prg code execution at the cost of
a slightly bigger executable. Speaking of the core,
this can result at maximum 250K of extra executable
size increase, if the final executable uses _all_
core .prg functions. Usually though it's much lower
than that, especially for GUI programs, since the
majority of core .prg code deals with CUI elements,
like TBrowse(), TGet(), 5.3 compatible CUI controls,
.frm and .lbl support, MemoEdit().
* contrib/examples/dbu/bld_b32.bat
* contrib/examples/dbu/bld_vc.bat
* utils/hbdoc/bld_vc.bat
* utils/hbdoc/bld_b32.bat
* utils/hbmake/bld_b32.bat
* utils/hbmake/bld_vc.bat
+ Added -l Harbour switch.
* source/common/hbgete.c
! Fixed recent warning on Win32 platforms.
* contrib/xhb/hbcrypt.c
* Changed to just work instead of RTE-in if any
of the params are empty on non-strings. If
non-string is passed, it's considered as
empty string.
* harbour/source/common/hbgete.c
* modified hb_getenv_buffer() to return logical value indicating
that environment variable exists even if no buffer is passed
* include/hbapi.h
* source/common/hbgete.c
+ Added hb_getenv_buffer(). Similar to hb_getenv() but
this one needs a buffer+size to be passed, so no memory
allocation is done by the function. It also return
a BOOL to signal success. It doesn't signal if passed
buffer was too small to store the value.
* source/debug/dbgtwin.prg
* source/debug/dbgbrwsr.prg
* source/debug/tbrwtext.prg
* source/debug/debugger.prg
! Fixed to not crash after switching to mono display.
DISCLAIMER: This is a quick patch (but even this took
hours) and it absolutely can be wrong, incomplete in
any ways. I'm not using or knowing debugger code, pls
patch it further on.
NOTE: Color refresh after switching mono/color mode
is still wrong and I've given up after trying
for a few hours.
* Minor formatting.
* harbour/source/pp/hbpp.c
* workaround for warning in some GCC versions which can lost
user casting during function autoinline optimization.
* harbour/source/rtl/console.c
* harbour/source/rtl/gtapi.c
* moved //INFO message from hb_gtInit() to hb_conInit()
* harbour/source/rtl/hbgtcore.c
* harbour/contrib/hbct/ctwin.c
* minor cleanup
* harbour/source/debug/debugger.prg
* changed __dbgInput() to return logical value and set edit value in
variable passed by reference
* harbour/source/debug/dbgtobj.prg
* harbour/source/debug/dbgthsh.prg
* harbour/source/debug/dbgtarr.prg
! fixed typo in VALID block declaration - it was array by mistake
* removed unnecessary code related to GET behavior
* use new __dbgInput() format
* harbour/source/debug/dbgtwin.prg
* use hb_scroll() instead of scroll()
* harbour/source/debug/tbrwtext.prg
! fixed screen redrawing in horizontal movement
* harbour/source/debug/debugger.prg
* harbour/source/debug/dbgtinp.prg
! replaced GET/GETLIST objects by HbDbInput()
! fixed some interface incompatibilities with Clipper debugger
* removed HB_NO_READDBG and code using GET classes - HbDbInput()
works better and is much simpler in use.
% do not use __GetListActive()/__GetListSetActive() - now debugger
does not touch GET/GETLIST so it's not necessary to save/restore
GETLIST state
Now all references (except HBCLASS) to external .prg code in
debugger have been removed.
TODO: remove HB_NO_READDBG from other debugger files replacing
code inside with __dbgInput()/HbDbInput().
I would like to leave it for someone else and return to
core code modifications.
* harbour/common.mak
* harbour/source/debug/Makefile
+ harbour/source/debug/dbgtinp.prg
+ added HbDbInput class for simple user input (GET)
* harbour/source/debug/debugger.prg
! changed __dbgInput() to use HbDbInput() class instead of ACCEPT
It fixes all bad visual end edit bad effects caused by ACCEPT.
TODO: replace all GET references in debugger code with HbDbInput class.
* common.mak
* make_b32.bat
* make_b32.mak
* make_vc.bat
* make_vc.mak
* make_gcc.mak
* HB_BUILD_VERBOSE=yes is now the default. If someone
is wanting to build Harbour from source and is bothered
by the compiler command-lines being shown, these can
be turned off with HB_BUILD_VERBOSE=no.
These lines are IMO very important to see, which options
were exactly used when Harbour was built, I personally
archive these logs along with the builds.
* make_b32.mak
* make_vc.mak
* make_gcc.mak
+ Readded -b when HB_BUILD_STATIC=yes.
Now it should work.
* make_b32.mak
* make_vc.mak
* make_gcc.mak
* contrib/mtpl_b32.mak
* contrib/mtpl_gcc.mak
* contrib/mtpl_vc.mak
% Deleted -l- switch when HB_BUILD_STATIC=yes.
Line numbers are automatically enabled when
-b switch is used.
* source/debug/debugger.prg
* Renamed getdbginput() -> __dbgInput()
; NOTE to TOFIX: Do we need "Mono display" these days? :)
* harbour/source/debug/dbgbrwsr.prg
* harbour/source/debug/dbgtwin.prg
* harbour/source/debug/tbrwtext.prg
* harbour/source/debug/dbgwa.prg
* harbour/source/debug/debugger.prg
* harbour/source/debug/dbghelp.prg
* harbour/source/debug/dbgtmenu.prg
* harbour/source/debug/dbgtmitm.prg
* use hb_dispOutAt()/hb_dispBox() instead of DispOutAt()/DispBox()
! fixed using ADel()/AIns() with xHarbour extended parameters
! fixed RT debugger errors caused by missing ::nTabWidth and ::colorSpec
in HBBrwText class
! fixed processing source code with TABs (chr(9))
; TOFIX: "Mono Display" causes RT error due to missing color index
range checking. It also does not change all colors immediately
; TOFIX: getdbginput(): writing out of window area, scrolling internal
buffer, cursor navigation, interrupting by ESC