- contrib/hbmysql/utils
- contrib/hbmysql/utils/dbf2mysq.prg
- contrib/hbmysql/utils/hbmk.hbm
+ contrib/hbmysql/tests/dbf2mysq.prg
* moved to tests (in sync with hbpgsql)
* src/rtl/hbi18n2.prg
! fixed to use HB_ASCAN() instead of ASCAN() when 5th
extension parameter is used.
* src/debug/debugger.prg
* contrib/hbfbird/tfirebrd.prg
* contrib/hbnf/clrsel.prg
* contrib/hbmysql/tmysql.prg
* contrib/hbmysql/tests/dbf2mysq.prg
* contrib/hbtip/ftpcli.prg
* extras/hbdoc/hbdoc.prg
* extras/hbdoc/tmplates.prg
! use HB_ASCAN( x, y,,, .T. ) to avoid relying on _SET_EXACT
% use ASCAN() instead of HB_ASCAN() if Harbour extension are not used (hbdoc)
* contrib/gtwvg/tests/modal.prg
! use HB_ASCAN( x, y,,, .T. ) to avoid relying on _SET_EXACT
! use HB_KEYCHAR() instead of CHR() on key codes
* contrib/xhb/tedit.prg
* contrib/xhb/thtm.prg
* contrib/xhb/xhbole.prg
* tests/fortest.prg
* tests/initexit.prg
* tests/statinit.prg
* tests/vidtest.prg
* tests/rddtest/rddtst.prg
* extras/hbdoc/hbdoc.prg
* renamed STATIC vars to start with 's_'
* renamed PUBLIC/PRIVATE vars to start with 'p_'
* renamed STATIC "const" vars to start with 'sc_'
* contrib/hbsqlit3/hdbcsqlt.prg
* contrib/xhb/tedit.prg
* hbformatted
* contrib/sddmy/tests/test1.prg
* contrib/xhb/tcgi.prg
* contrib/xhb/thtm.prg
* tests/brwpos.prg
* formatting
* contrib/hbnetio/tests/netiot03.prg
* use Asc( "A" ) instead of 65. (still lot more to do
for EBCDIC compatibility, though)
* src/rtl/memoedit.prg
! do not use K_TAB for tab character
* tests/gtchars.prg
* minor change to make it work better when run as script
* tests/vidtest.prg
* minor formatting
* src/rtl/setfunc.prg
* src/rtl/tlabel.prg
* tested new hbformat.
* more manual corrections. (actually it seems as if
hbformat silently stopped doing any reformatting
past around line 150 in tlabel.prg)
* src/rtl/tlabel.prg
* cleaned to use DISP*()/SETPOS() functions instead
of @ commands (DEV*() functions). The code already
use f.e HB_SCROLL() and INKEY().
* contrib/hbhttpd/core.prg
* contrib/hbhttpd/widgets.prg
* contrib/hbpgsql/tests/cache.prg
* extras/hbxlsxml/xlsxml_s.prg
* extras/hbxlsxml/xlsxml_y.prg
* extras/hbxlsxml/xlsxml.prg
* extras/httpsrv/cgifunc.prg
* extras/httpsrv/cookie.prg
* extras/httpsrv/session.prg
* extras/httpsrv/uhttpd.prg
* src/rtl/dirscan.prg
% LTRIM(STR(x,y)) converted to hb_ntos() where y had
no significance or just limited the width unnecessarily
% ValType() usage converted to HB_IS*() or optimized
by rearragement of code or using SWITCH/CASE
* harbour/src/rtl/gtwvt/gtwvt.h
* harbour/src/rtl/gtwvt/gtwvt.c
! fixed some HB_GTI_* actions which could access pWVT->hWnd before
console window in created.
! fixed reverted parameters passed in array to HB_GTI_SETPOS_ROWCOL
! removed hb_retl() used inside HB_GTI_SETPOS_XY, HB_GTI_SETPOS_ROWCOL
actions.
! respect HB_GTI_SETPOS_XY, HB_GTI_SETPOS_ROWCOL set before
console window in created.
* harbour/src/rtl/gtxwc/gtxwc.c
! set fullscreen mode if user sets:
hb_gtInfo( HB_GTI_ISFULLSCREEN, .t. )
hb_gtInfo( HB_GTI_RESIZABLE, .t. )
at application startup before console window in created.
+ added support for HB_GTI_SETPOS_XY, HB_GTI_SETPOS_ROWCOL
* src/rtl/gtwin/gtwin.c
* src/rtl/gtwvt/gtwvt.c
+ added dummy return values for certain HB_GTI_* parameters,
so they won't RTE an app when used with the other GT.
(the problem is wider and ideally all HB_GTI_* values
should at least return the same _type_ with all GTs)
So f.e. now wvtext.prg works with GTWIN, but it should
with any GTs. The point of GTs is that they're
_replacable_, just like RDDs.
* tests/wvtext.prg
+ select WVT dynamically when run under hbrun.
! protect Windows specific parts with
defined( __PLATFORM__WINDOWS )
* utils/hbmk2/hbmk2.prg
- deleted hbshell_gtInteractive() public shell API.
INCOMPATIBLE.
+ replaced above with hbshell_gtSelect( [<cGT>] ) -> NIL
by default <cGT> will be the default interactive
(positionable) GT for the given platform.
+ include GTWVT in code, so scripts can now use WVT
if they explicitly request it with this code:
* src/rtl/teditor.prg
+ added three TODOs, related to Ctrl+B and Ctrl+T missing
key implementations
* contrib/xhb/cstruct.prg
* contrib/xhb/hblognet.prg
* contrib/xhb/trpc.prg
* contrib/xhb/trpccli.prg
* contrib/xhb/ttable.prg
* contrib/xhb/xhberr.prg
* contrib/xhb/xhbmemo.prg
! random unicode fixes where I stumbled into incompatible code
! fixed two 'ValType( x ) == "NI"' expressions which were never
true. I assumed it was meant to check for numeric and replaced
with HB_ISNUMERIC() calls.
% ADel()/ASize() pairs replaced with hb_ADel( ,, .T. ) calls
* removed some unnecessary parantheses and minor formatting
! fixed one [] operator on a string (possibly used with the
intention to preallocate a 255 byte long string)
* replaced K_TAB used a character constant with 9
! fixed one -1 array index to use ATail() instead
; only build-tested
* doc/xhb-diff.txt
! typo regarding the meaning of a[ -1 ] in xhb
* contrib/xhb/hbcrypt.c
* formatted
* contrib/xhb/xhbtedit.prg
! :ReformParagraph() fixed for unicode (untested)
* :ReformParagraph() code cleaned
* replaced all Chr( 141 ) + Chr( 10 ) references for
a local function returning it. This code sequence
is not unicode (UTF-8) compatible, so something
will have to be done with it in the future.
* minor formatting, typos in comment
; only build-tested
* contrib/hbhttpd/readme.txt
* doc/dirstruc.txt
* doc/xhb-diff.txt
* include/hbapi.h
* INSTALL
* NEWS
* src/common/hbver.c
* src/main/harbour.c
* src/pp/hbpp.c
* src/rtl/version.c
* src/vm/cmdarg.c
* Avoiding the word "SVN" (use 'source repository',
'repository' or 'repo' for short)
* Added new names that don't refer to SVN:
C level:
- hb_verRevision() (was: hb_verSvnID())
- hb_verChangeLogID() (was: hb_verSvnChangeLogID())
- hb_verChangeLogLastEntry() (was: hb_verSvnLastEntry())
.prg level:
- HB_VER_REVID built-in macro (was: HB_VER_SVNID)
; Old functions/macros will be deleted after next major
revision, start using the new names until then.
* src/debug/dbgwa.prg
* src/rtl/browse.prg
* src/rtl/dbedit.prg
% deleted EXIT from SWITCH statements' OTHERWISE branches.
(it'd be nice if the compiler could ignore these
automatically - in case it can be solved with low cost)
* extras/gtwvw/tests/prog2.prg
* extras/gtwvw/tests/wvwtest9.prg
* src/debug/debugger.prg
* src/rtl/tgetlist.prg
* tests/sbartest.prg
* tests/tb1.prg
! further cases of object vars called as methods, though
these didn't (necessarily) caused errors.
I wish Harbour had a native core OOP engine to catch
all (there are more cases than above) this mess at
compile-time.
* src/rtl/browse.prg
! fixed not appending a new record when pressing K_DOWN
in append mode (and perhaps some other cases)
The problem was using 'oBrw:HitBottom( .T. )' instead
of 'oBrw:HitBottom := .T.'
* minor optimizations and cleanup.
; Some stats: it was a 5 year old bug
took about 10 hours to find the solution. Sheet.
* harbour/src/rtl/philes.c
* modified HB_CWD() to return previous path if new one is set by
optional parameter so current syntax is:
HB_CWD( [ <cNewWD> ] ) -> <cPrevWD>
+ set FError() in HB_CWD() function. Now programmer can check if HB_CWD()
succeed checking result of FError() function, i.e.
HB_CWD( cNewPath )
IF FError() != 0
? "Cannot set working directory to:", cNewPath
ELSE
// stuff
ENDIF
+ set FError() in the following functions:
HB_FGETATTR(), HB_FSETATTR(),
HB_FGETDATETIME(), HB_FSETDATETIME(),
HB_FISDEVICE()
* src/rtl/tget.prg
! fixed regression from 2012-01-29 17:22 UTC+0100
when non-numeric index was allowed on a non-hash
variable and then an RTE generated.
Caused rto_get.prg to RTE in the middle.
* contrib/gtwvg/activex.prg
* contrib/gtwvg/class.prg
* contrib/gtwvg/tests/demoxbp.prg
* contrib/gtwvg/tests/utils.prg
* contrib/rddads/doc/en/adsfuncs.txt
* contrib/rddads/doc/en/readme.txt
* contrib/xhb/tfile.prg
* contrib/xhb/txml.prg
* contrib/xhb/xhbole.prg
* doc/windll.txt
* extras/gtwvw/gtwvw.c
* extras/gtwvw/hbgtwvw.h
* extras/gtwvw/tests/maincoor.prg
* extras/gtwvw/wvwcheck.c
* extras/gtwvw/wvwdraw.c
* extras/gtwvw/wvwedit.c
* extras/gtwvw/wvwfuncs.c
* extras/gtwvw/wvwmenu.c
* extras/gtwvw/wvwpush.c
* extras/gtwvw/wvwstbar.c
* extras/gtwvw/wvwtbar.c
* extras/hbdoc/tmplates.prg
* tests/gtcolors.prg
* tests/ipclnt.prg
* tests/ipsvr.prg
* tests/rto_get.prg
* tests/rto_tb.prg
* tests/usrrdd/exarr.prg
* tests/usrrdd/exfcm.prg
* tests/usrrdd/exhsx.prg
* tests/usrrdd/exlog.prg
* tests/usrrdd/exmemo.prg
* tests/usrrdd/exrlx.prg
* tests/wcecon.prg
* full formatting using hbformat (where needed)
* Win32 -> Windows
* 32-bit deleted where it didn't make sense
* using K_* constants
! fixed != operators where used on strings (more to come)
Thanks to Jose F. Gimenez for the ones in txml.prg.
* avoid "common.ch"
% use hb_ntos() in Harbour specific code
* include/harbour.hbx
* src/rtl/hbdoc.prg
* tests/hbdoctst.prg
+ added __hbdoc_DirLastModified( <cDir> ) -> <tLastModified>
function that returns last modification timestamp for a
given NF doc root directory. It returns empty date if the
directory doesn't exist or is empty.
It can be used to decide whether to update .hbd files f.e.
in an hbmk2 plugin that builds .hbd files automatically.
* harbour/include/hbapifs.h
* harbour/src/rtl/filesys.c
+ added two new C functions:
HB_BOOL hb_fsGetCWD( char * pszBuffer, HB_SIZE nSize );
HB_BOOL hb_fsSetCWD( const char * pszDirName );
* synced some parameters names with declarations in header
* harbour/src/rtl/hbfilehi.prg
* harbour/src/rtl/philes.c
* rewritten HB_CWD() function in C
! fixed to HB_CWD() work with UNC path in MS-Windows and other
systems using drive letters
+ added support for setting new working directory (and drive)
by HB_CWD( <cNewWD> )
* contrib/hbnf/popadder.prg
* src/rtl/listbox.prg
* src/rtl/scrollbr.prg
* src/rtl/tmenuitm.prg
* tests/db_brows.prg
! reverted to use plain Chr() for low-ASCII (0-31) drawing chars
(hb_UTF8ToStr*() converts these to "?", which is expected)
* contrib/hbmisc/hbedit.prg
* src/debug/dbghelp.prg
* src/debug/dbgtmenu.prg
* src/debug/dbgtwin.prg
* src/debug/dbgwa.prg
* src/rtl/browse.prg
* src/rtl/listbox.prg
* src/rtl/radiogrp.prg
* src/rtl/tmenuitm.prg
* src/rtl/tpopup.prg
* tests/gtwin.prg
* tests/box.prg
* tests/boxtst2.prg
* tests/scroll.prg
* tests/vidtest.prg
! fixed to use new unicode-compatible box.ch/button.ch macros
For standalone programs (in tests) in only makes any difference
when running them as scripts, now they will work (after
adding hbshell_gtInteracive() call at startup), while
before the drawing chars were scrambled.
* src/rtl/browse.prg
* src/rtl/checkbox.prg
* src/rtl/dbedit.prg
* src/rtl/dbedit.prg
* src/rtl/listbox.prg
* src/rtl/scrollbr.prg
* src/rtl/tmenuitm.prg
! fixed Chr() calls for drawing chars to unicode strings
to be compatible with both unicode and non-unicode (and
any BOXCP) mode.
* src/rtl/browse.prg
! fixed to use '!( hb_keyChar( nKey ) == "" )' instead
of looking for keycode between 32 and 255 (inclusive)
making it unicode compatible
* formatting
* src/rtl/tpersist.prg
* src/rtl/memoedit.prg
* src/debug/debugger.prg
* src/debug/dbgthsh.prg
* src/debug/dbgtarr.prg
* src/debug/tbrwtext.prg
* formatting
* src/rtl/tmenuitm.prg
* src/rtl/tpopup.prg
+ added TOFIXes where drawing chars are used as internal
flags. This may cause problems if switching CPs while
using these objects.
* tests/sbartest.prg
+ unicode compatibility while keeping it Cl*pper compatible
! fixed RTE due to using wrong SCROLLBAR method
* tests/tb1.prg
* changed to use new unicode-compatible box.ch/button.ch macros
while keeping Cl*pper compatibility
* tests/vidtest.prg
! fixed remaining drawing chars using Chr() (Cl*pper
compatibility maintained)
* tests/testsha2.prg
* tests/utf8at.prg
! fixed to use HB_BCHAR() instead of CHR() for unicode compatibility.
; NOTE: After above changes scripts and commands run via hbrun
will display drawing chars properly. Unicode apps as
well, even with BOXCP set to unicode, too.
; TODO: Fix above things also on C level, f.e. DISPBOX() with
numeric box drawing request.
* harbour/src/pp/ppcore.c
! fixed possible GPF when some broken expressions are used as
part of extended expression match marker
* harbour/src/rtl/padr.c
* harbour/src/rtl/padc.c
* harbour/src/rtl/padl.c
! fixed PADR(), PADL() and PADC() to accept pad mulibyte characters
when CPs with such encoding is used, i.e. CP950 or UTF8EX
* harbour/contrib/xhb/xhb.hbx
* updated to follow recent modifications
* include/harbour.hbx
* src/rtl/Makefile
+ src/rtl/cdpbox.prg
+ added HB_UTF8TOSTRBOX( <cUTF8String> ) -> <cStringEncodedIn_GT_BOXCP>
It's needed because HB_UTF8TOSTR() will convert to main CP,
but box drawing CP can be setup differently with HB_GTI_BOXCP,
that function call will take that into account.
* contrib/hbnf/aredit.prg
* contrib/hbnf/clrsel.prg
* contrib/hbnf/dispmsg.prg
* contrib/hbnf/menu1.prg
* contrib/hbnf/pegs.prg
* contrib/hbnf/pickday.prg
* contrib/hbnf/popadder.prg
* contrib/hbnf/tbwhile.prg
* contrib/hbnf/vertmenu.prg
* tests/db_brows.prg
* tests/gtchars.prg
* tests/testbrw.prg
* extras/gtwvw/tests/prog0.prg
* extras/gtwvw/tests/prog1.prg
* extras/gtwvw/tests/prog2.prg
! fixed drawing chars to display properly regardless of HB_GTI_BOXCP
setting.
! some related minor fixes
* tests/tb1.prg
! fixed to compile and build using Clipper after recent
UTF8 compatibility updates (not tested though)
; TOFIX: Pad*() function handle 3rd parameter as binary string,
so it doesn't work properly in UTF8 mode.
* harbour/src/rtl/Makefile
- harbour/src/rtl/fieldbl.prg
- removed old PRG level implementation of FIELDBLOCK() and
FIELDWBLOCK() functions
* harbour/src/vm/macro.c
+ created new implementation of FIELDBLOCK() and FIELDWBLOCK()
functions in C. This implementation is strictly Clipper compatible
and allows to create field blocks only for symbols already
registered in HVM so it does not create new symbols in HVM.
When table is open then all field symbols are registered in HVM.
It means that new functions may not create field block if table
is not open yet and field name was never used explicitly in
whole compiled application. It's possible to easy change it
and automatically register new symbols if we decide it's real
limitation and we should drop strict Cl*pper compatibility.
Anyhow it may cause that some code will register big number
of completely unnecessary symbols in HVM so it should be well
thought decision.
This implementation makes exactly the same fied name conversions
as default implementation of ADDFIELD() workarea method so exactly
the same set of symbols is accepted. It means that after opening
table which has field names with spaces or other characters
which are not accepted as PRG identifiers it's possible to create
field blocks for them.
It should be also noticable faster because macrocompiler is not
used at all and is many times faster in codeblock evaluation then
implementation like in xHarbour which uses
fieldget( fieldpos( cFieldName ) )
to support fields with embeded spaces.
* harbour/src/rtl/hbgtcore.c
% small optimization in INKEY() code
+ contrib/hbwin/oemansi.c
* contrib/hbwin/hbwin.hbp
* contrib/hbwin/hbwin.hbx
+ added WIN_OEMTOANSI() and WIN_ANSITOOEM(). These are
compatible with current core HB_OEMTOANSI()/HB_ANSITOOEM()
Usage of them is not recommended.
* contrib/hbxpp/oemansix.c
* CONVTOANSICP()/CONVTOOEMCP() changed to use local
implementation instead of relying on now deprecated
core OEM/ANSI functions
* src/rtl/oemansi.c
* HB_OEMTOANSI()/HB_ANSITOOEM() Windows-specific functions
deprecated with HB_LEGACY_LEVEL4 (meaning they will
disappear after next stable release). Either avoid
these calls completely (recommended) or change them to
hbwin or hbxbp equivalents.
* contrib/hbtip/thtml.prg
* contrib/hbtip/hbtip.hbx
* deprecated HtmlToAnsi(), HtmlToOem(), AnsiToHtml(), OemToHtml()
functions with HB_LEGACY_LEVEL4.
+ added TIP_STRTOHTML(), TIP_HTMLTOSTR() functions which cover
major above functionality, but in a portable and CP agnostic
way. Code untested, if you need it, test it and provide feedback
and/or fix.
* harbour/config/dos/watcom.mk
* harbour/utils/hbmk2/hbmk2.prg
! cleaned and synced optimization flags which interacts with calling
convention
* harbour/src/3rd/zlib/zconf.h
! added missing export attribute in OS2 dll builds
* harbour/src/3rd/zlib/zlib.dif
* rediffed
* harbour/src/compiler/hbmain.c
* minor modification to pacify warning generated by some compilers
* harbour/src/rtl/gete.c
! added missing #include "hbapicdp.h" in DOS and OS2 builds
* harbour/src/rtl/gtdos/gtdos.c
! fixed typo
* harbour/contrib/3rd/sqlite3/sqlite3.hbp
! set SQLITE_OS_OTHER in Watcom OS2 builds - it does not support
PTHREAD and some OS extensions used in default SQLite builds
* harbour/src/rtl/chruni.c
* harbour/include/harbour.hbx
+ added new functions to operate on unicode and binary strings.
They work like hb_At() but are CP independent.
hb_UAt( <cSubString>, <cString>, [<nFrom>], [<nTo>] ) -> <nAt>
hb_BAt( <cSubString>, <cString>, [<nFrom>], [<nTo>] ) -> <nAt>
* harbour/src/rtl/fstemp.c
! added yet another protection against buffer overflow
% eliminated redundant code
* harbour/include/hbvmpub.h
* harbour/include/hberrors.h
* harbour/src/compiler/hbgenerr.c
* harbour/src/compiler/hbmain.c
* harbour/src/compiler/genc.c
+ added new warning message:
STATIC Function '????' defined but never used
It's enabled by -w2 and higher.
The idea was inspired by recent modification in xHarbour but
implementation is completely different. BTW I cannot even make
this warning working in xHarbour.
* harbour/src/rtl/cdpdet.prg
! disabled static functions which are unused in different builds
* harbour/src/debug/debugger.prg
! removed unused function StripUntil()
* harbour/utils/hbmk2/hbmk2.prg
! compile hbmk_COMP_Setup() and FindInSamePath() static functions
only for platforms were they are used
! commented out unused static functions: ArrayJoinNoClone(),
AAddNewAtTop(), DepTreeToList()
! commented out unused static functions:
rtlnk_libtrans(), rtlnk_filetrans()
Looks that this functionality is not longer supported.
TOFIX: re-enable it or remove this code and document that automatic
translation for libraries and files defined in Clipper .lank
files is not longer supported~.
* harbour/src/rdd/usrrdd/rdds/arrayrdd.prg
* harbour/contrib/hbtip/cgi.prg
* harbour/contrib/hbide/hbqreportsmanager.prg
* harbour/contrib/hbide/actions.prg
* harbour/contrib/hbide/console.prg
* harbour/contrib/hbide/themes.prg
* harbour/contrib/hbide/editor.prg
* harbour/contrib/hbxbp/browse.prg
* harbour/contrib/hbmysql/tmysql.prg
* harbour/contrib/hbsms/sms.prg
* harbour/contrib/xhb/hterrsys.prg
! commented out unused static functions - please review the code
; Warning: I tested only Linux builds. Please check other builds and
disable unused static functions in the rest of code.
* harbour/src/rtl/fstemp.c
! added protection against possible buffer overflow
* enable mkstemps() for GLIBC 2.12 and higher
* harbour/src/compiler/harbour.y
! added missing ';' at the end of C code - newer bisons
do not add them automatically