* src/debug/dbgbrwsr.prg
! fixed to not display last column out of browser area
* src/debug/dbghelp.prg
* src/debug/dbgmenu.prg
* src/debug/debugger.prg
* use strings to to locate help topics instead of hardcoded numeric
offsets
! added support for topic specification in "HELP" command - Cl*pper
compatibility
! allow to use FILE DOS (and F D shortcut) to activate OS Shell - Cl*pper
compatibility
* src/debug/dbgentry.c
! removed recent pseudo fix with memset() missing the last byte of
allocated memory area since e59993bdb1.
The original code was correct. In Harbour trailing 0 in all strings
is set inside functions creating string items.
* package/harbour.spec
+ added MXML library
* package/mpkg_rpm.sh
* respect HB_WITH_*=no and HB_WITH_*=local envvars
* src/debug/*
+ src/debug/en.txt
* sync with 4d61fc5a25/src/debug
* use DBS_* constants
! fixed to allow editing of CODEBLOCK types in hash/array/object elements
as it was allowed in single variables
! fixed to detect all workareas not just the first arbitrary 512
! fixed memset() missing the last byte of allocated memory area
since e59993bdb1
+ reworked help to store content in a text file out of the source code.
It reduces binary size, makes translation possible, editing easier,
source code leaner and easy to publish online.
! deleted help section explaining cld.exe
* formatting, cleanups, optimization, translatability
* extras/gtwvw/gtwvwd.c
! fixed typo in WVW_SETICON() - thanks to Ash
* src/rdd/dbcmd53.c
! typo in comment
* src/rtl/dateshb.c
% use hb_retclen() instead of hb_retc() when size is well known.
* src/rtl/valtoexp.prg
% use hb_defaultValue()
* src/vm/estack.c
* minor cleanup
* src/vm/fm.c
* modified a little bit HB_MEMINFO structure to force strict alignment
+ added debug code covered by HB_FM_FORCE_REALLOC macro which forces
allocateing new block in each hb_xrealloc() call
! protect realloc() in HB_FM_STATISTIC by mutex, it fixes issue #77.
* src/rtl/hbproces.c
% unlock HVM waiting for process in OS2 builds
! build array of argument passed to process in hb_processRun() in
parent process not forked one. It fixes possible deadlock in forked
process because memory is allocated to create arguments array and
in MT program memory managers may use mutexes internally which can
be cloned to forked process in locked state.
It fixes seldom and random HBMK2 freezing during compilation
with -jobs=<n> parameter.
* utils/hbmk2/hbmk2.prg
! fixed race condition in concurrent C compiler execution (-jobs=<n>)
with script file
* src/debug/dbgentry.c
! fixed crash when wrong expression is used as tracepoint
! fixed expression analyzer to correctly recognized extended strings e"..."
* formatting
* src/debug/dbgbrwsr.prg
* src/debug/dbghelp.prg
* src/debug/dbgtarr.prg
* src/debug/dbgthsh.prg
* src/debug/dbgtinp.prg
* src/debug/dbgtmenu.prg
* src/debug/dbgtobj.prg
* src/debug/dbgtwin.prg
* src/debug/dbgwa.prg
* src/debug/debugger.prg
* added calls to ::NotSupported() method for some still missing
functionality
! do not use SetColor() but directly pass colors to used objects
and functions
! do not use SetPos() and Row()/Col() for core functionality - it was
source of few minor bugs
% enable cursor only in input objects and disable it just after
% eliminated code to save and restore cursor position and shape
! fixed initial positioning in help window
+ implemented HiLite() and DeHiLite() methods in HBDbBrowser() class
! fixed positioning when end of source data is reached in browser
% eliminated some redundant or completely useless code and comments
% use some fully functional HBDbBrowser() features instead of manual
encoding similar functionality
! validate watchpoint and tracepoint expressions
% use SWITCH statements
! fixed expression presentation (added __dbgValToExp() and __dbgValToStr())
! fixed input for new expressions
! fixed browser scrolling in object inspector
! fixed inkey() processing inside debugger (ALT+D and ALT+C)
! fixed browsers highliting in WA inspector
! fixed hardcoded limit for 512 workareas in WA inspector
! fixed initial WA positioning in WA inspector
* resized WA inspector window
* many other minor fixes and improvements
* src/debug/debugger.prg
! calculate ListBox coordinates as integer value
(it fixes RTE reported by Rolf in SWITCH statement)
* src/debug/dbghelp.prg
! fixed number of help pages calculation
* contrib/hbct/ctnet.c
! fixed copy and past typo in previous commit
* src/rdd/hbsix/sxcompat.prg
! fixed sx_Compress() and sx_Decompress() used with arrays
; modifications below comes from Viktor fork:
* include/dbinfo.ch
* src/rdd/workarea.c
+ added support for new dbInfo() action: DBI_CODEPAGE
It returns Harbour CP used by current work area.
* src/common/expropt2.c
* change instruction order to protect against NULL references
if we ever add support for dummy lists
* src/common/hbver.c
! CLANG detection
* src/lang/l_fr.c
* src/lang/l_hu.c
* updated translations
* src/rtl/cdpapihb.c
* include/harbour.hbx
+ added function hb_cdpExists( <cCDP> ) -> <lExists>
it returns .T. if the passed codepage is supported
and linked, .F. otherwise
* src/rtl/hbrand.c
* include/harbour.hbx
+ added hb_randStr( <nLen> ) -> <cBytes> which returns a strong
random stream of bytes of requested length
* src/vm/hashfunc.c
* include/harbour.hbx
+ New hash function to easily check for the existence
of a key and at the same time retrieving its corresponding
value:
hb_HGetRef( <hHash>, <xKey>[, <@xValue> ] ) -> <lFound>
If the key is not found, <xValue> is also reset to NIL.
Useful to replace hb_HPos()/hb_HValueAt() call pairs and
associated temp variable, or to avoid multiple hash lookups
for the cost of one temp variable.
* src/rtl/copyfile.c
% use 64KB buffer
* src/rtl/tget.prg
! Get():Insert()/Get():OverStrike() GET freeze fix reworked
using better solution by Heinz.
* src/rtl/tgetlist.prg
* src/rtl/tmenuitm.prg
* src/rtl/tmenusys.prg
* src/rtl/tpopup.prg
! fixed to precisely verify against multiple expected class names
previously a custom class named f.e. 'LIST' was accepted in some
places for LISTBOX
! fixed TOFIX where CP/encoding dependent string was
used to determine whether a menu item is separator
throughout the lifetime of the menu.
* src/common/hbdate.c
* src/common/hbprintf.c
* src/common/hbtrace.c
* src/common/hbver.c
* src/compiler/compi18n.c
* src/compiler/genc.c
* src/compiler/gencc.c
* src/compiler/hbusage.c
* src/debug/dbgthsh.prg
* src/debug/dbgtmenu.prg
* src/debug/debugger.prg
* src/debug/tbrwtext.prg
* src/pp/hbpp.c
* src/rdd/dbfcdx/dbfcdx1.c
* src/rdd/dbfuncs.prg
* src/rdd/dbtotal.prg
* src/rdd/hbsix/sxcompat.prg
* src/rdd/hbsix/sxini.prg
* src/rdd/usrrdd/rdds/arrayrdd.prg
* src/rdd/usrrdd/rdds/hscdx.prg
* src/rtl/adir.prg
* src/rtl/arc4.c
* src/rtl/cdpdet.prg
* src/rtl/dbedit.prg
* src/rtl/dircmd.prg
* src/rtl/diskspac.c
* src/rtl/disksphb.c
* src/rtl/errint.c
* src/rtl/errintlo.c
* src/rtl/errsys.prg
* src/rtl/filesys.c
* src/rtl/fslink.c
* src/rtl/gtkbstat.c
* src/rtl/gtwin/gtwin.c
* src/rtl/gtwvt/gtwvt.c
* src/rtl/hbbffnc.c
* src/rtl/hbi18n1.c
* src/rtl/hbi18n2.prg
* src/rtl/hbini.prg
* src/rtl/hbjson.c
* src/rtl/listbox.prg
* src/rtl/menusys.prg
* src/rtl/mtran.c
* src/rtl/radiogrp.prg
* src/rtl/tgetlist.prg
* src/rtl/tmenusys.prg
* src/rtl/tobject.prg
* src/rtl/tpersist.prg
* src/rtl/tpopup.prg
* src/rtl/tpopuphb.prg
* src/rtl/treport.prg
* src/rtl/tscalar.prg
* src/rtl/ttopbar.prg
* src/rtl/tget.prg
* src/rtl/tlabel.prg
* src/rtl/tmenuitm.prg
* src/rtl/valtoexp.prg
* src/rtl/valtype.c
* src/vm/dlmalloc.c
* src/vm/fm.c
! check module handle returned by GetModuleHandle() in MS-Windows
builds
! use %u for unsigned printf formatting
* casting, formatting, casing and some modifications in names
* use #if 0 / #endif to mark commented blocks
* updated year to 2014
% use FOR EACH, SWITCH, DO CASE statements
% use :__enumFirst() / :__enumLast()
% eliminated some local variables and redundant declarations
% use hb_defaultValue()
% use $ operator instead of At() and hb_HHasKey()
% use hb_ADel() instead of ADel()+ASize()
* replace some functions with procedures
* pacified some MSC warnings
* use hb_StrFormat() for user messages
* use :: instead of Self:
* use ANSI date delimiters
* src/debug/dbgentry.c
+ added protection against wrong parameters passed to __dbgDelBreak()
* src/debug/debugger.prg
+ implemented display history for command window.
This modification also fixes clearing command window when focus is
changed.
+ added support for new commands:
DELETE ALL BP
DELETE BP <nNumber>
LIST BP
* replicated Clipper compatible command line shortcuts
! send :RefreshAll instead of :RefreshCurrent to source code window
when break point changed
; TODO: add support for window resizing and repositioning. Commands
like LIST BP are in practice unusable in 3 line command window.
* src/rtl/console.c
% minor optimization
* src/debug/dbgtmenu.prg
! allow to chose current menu item by its hotkey
* src/debug/dbgtmitm.prg
% eliminated dummy hb_DispOutAtBox() for not marked options
* src/debug/debugger.prg
! keep RunAtStartup flag synced with menu
! fixed options decoding from init.cld file.
Thanks to Franček Prijatelj for locating the problem though fix
should be a little bit different.
* src/debug/tbrwtext.prg
! respect LineNumbers on/off setting
* src/rtl/console.c
! call hb_gtFlush() at the end of hb_DispOutAtBox() - it fixes
different side effects in code using hb_DispOutAtBox().
* src/debug/debugger.prg
% Don't save debugger window positions if user did not change them as the
original debugger behaves.
+ Support arguments to Options Save and Options Restore debugger commands
as the original debugger does.
* src/debug/debugger.prg
! Maintain fixed window logical order as the original debugger does.
! Load debugger settings in two steps: before and after debugger UI activation.
! Save watchpoints to the settings file.
* src/debug/dbgentry.c
! added missing casting
* src/debug/debugger.prg
+ show in call stack references to code compiled without debug info
* src/rtl/itemseri.c
* ignore HB_HASH_RESORT flag during hash serialization
* src/debug/dbgtwin.prg
* src/debug/debugger.prg
! use explicitly INKEY mask in INKEY() calls to avoid interactions
with user code
* src/debug/debugger.prg
* src/debug/tbrwtext.prg
% removed code used for internal breakpoints handling - it was
redundant and all necessary information can be easy and fast
accessed directly from dbgentry.c. Current code is smaller,
faster and we do not have to worry about keeping break point
information synchronized between C level debugger internals,
HBDebugger object and HBBrwText object.
! changed source code window navigation key to work like in
Clipper debugger
! changed source lines displaying to work like in Clipper debugger -
with HOME/END scrolling code horizontally it's not such important
to always see line numbers
! redirect few missing K_CTRL_* keys to active window it fixes key
navigation in some of them
! redirect K_ENTER to command window if command is not empty just
like in Clipper debugger
* src/rtl/inkeyapi.c
! do not convert ASCII 127 to character in hb_inkeyKeyString()
and HB_KEYCHAR()
* src/debug/dbgentry.c
+ added new PRG functions:
__dbgIsBreak( <pDbg>, <cModule>, <nLine> ) -> <nPos>
__dbgGetBreakPoints( <pDbg> ) -> <aBreakPoints>
* src/debug/debugger.prg
- removed old and long time unused PRG function __dbgAltDEntry()
* src/rtl/hbproces.c
* changed returned status when execvp() fails, -1 should give
maximal exit code on given platform (i.e. 255)
* include/hbapidbg.h
* src/debug/dbgentry.c
* src/debug/debugger.prg
+ added new C function hb_dbgGetModuleName() - it returns module name
used to register module in HVM. In current version it only strips
path part though in the future it may use some more advanced code
which allow to debug modules with the same name but different paths
in single application and such extension will be local to core debug
code if upper level debugger uses hb_dbgGetModuleName()
+ added new PRG function __DBGGETMODULENAME() - it's wrapper to
hb_dbgGetModuleName()
+ added new PRG function __DBGMODULEMATCH()
! use __DBGMODULEMATCH() instead of hb_FileMatch() and strip_path()
! eliminated strip_path() from PRG code and use hb_dbgGetModuleName()
in C code in places where it's necessary
! replaced few strcmp() used to compare module names with
FILENAME_EQUAL()
; above modification may fix few potential problem with breakpoints
in debugger on some platforms if user uses different paths for
debugger and compilers.
! eliminated hack with memvar/field name copy in watch points,
it also fixes memory leak when fields are used in watch points.
% replaced few DO CASE with SWITCH
* (all files)
* stripped svn header
* minor cleanups
; use following command to find out the history of files:
git log
git log --follow
git blame
git annotate