* contrib/hbnf/any2any.prg
* contrib/hbnf/d2e.prg
! Fixed wrongly cased local macros after last formatting.
These macro names collided with function names used in
other libs. I gave these macros a unique name to avoid that.
Based on Andi Jahja's patch. Thank you.
* include/*.ch
* formatting (except std.ch)
* contrib/xhb/hbcompat.ch
! minor fix to prev
* include/harbour.hbx
! minor fix
* contrib/gtwvg/hbgtwvg.ch
* contrib/hbblink/hbblink.ch
* contrib/hbcairo/hbcairo.ch
* contrib/hbct/ct.ch
* contrib/hbct/ctdisk.ch
* contrib/hbct/ctvideo.ch
* contrib/hbfimage/freeimag.ch
* contrib/hbmxml/hbmxml.ch
* contrib/hbnf/any2any.prg
* contrib/hbnf/d2e.prg
* contrib/hbtip/thtml.ch
* contrib/hbtip/tip.ch
* contrib/hbxpp/hbxpp.ch
* contrib/hbzebra/hbzebra.ch
* contrib/xhb/hbcompat.ch
* contrib/xhb/hbdll.ch
* contrib/xhb/hblog.ch
* contrib/xhb/ttable.ch
* extras/hbdoc/hbdoc.ch
* extras/hbvpdf/hbvpdf.ch
* utils/hbtest/rt_init.ch
* minor cleanups/formatting
* include/harbour.hbx
* fixes/changes to some function names
* config/hb_c.cfg
+ updated to do better vertical aligment in
structs, var declarations and assignments
; TODO: move this to /bin folder and add to 'install'-ed
file list, rename to 'harbour.ucf'
* src/debug/*.prg
* src/rdd/*.prg
* src/rdd/hbsix/*.prg
* src/rdd/usrrdd/rdds/*.prg
* src/rtl/*.prg
* src/vm/*.prg
* utils/hbi18n/hbi18n.prg
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/examples/*.hb
* contrib/hbblat/blatcls.prg
* contrib/gtwvg/*.prg
* contrib/gtwvg/tests/*.prg
* contrib/hbblink/*.prg
* contrib/hbcairo/tests/*.prg
* contrib/hbcomm/*.prg
* contrib/hbcomm/tests/*.prg
* contrib/hbcups/tests/*.prg
* contrib/hbcurl/tests/*.prg
* contrib/hbexpat/*.prg
* contrib/hbexpat/tests/*.prg
* contrib/hbfbird/*.prg
* contrib/hbfbird/tests/*.prg
* contrib/hbfoxpro/*.prg
* contrib/hbfship/*.prg
* contrib/hbgd/*.prg
* contrib/hbgd/tests/*.prg
* contrib/hbgs/tests/*.prg
* contrib/hbhpdf/*.prg
* contrib/hbhpdf/tests/*.prg
* contrib/hbhttpd/*.prg
* contrib/hbhttpd/tests/*.prg
* contrib/hblzf/tests/*.prg
* contrib/hbmagic/tests/*.prg
* contrib/hbmisc/*.prg
* contrib/hbmisc/tests/*.prg
* contrib/hbct/*.prg
* contrib/hbct/tests/*.prg
* contrib/hbmlzo/tests/*.prg
* contrib/hbmxml/*.prg
* contrib/hbmxml/tests/*.prg
* contrib/hbmysql/*.prg
* contrib/hbmysql/tests/*.prg
* contrib/hboslib/*.prg
* contrib/hbsms/*.prg
* contrib/hbtinymt/tests/*.prg
* contrib/hbtpathy/*.prg
* contrib/hbtpathy/tests/*.prg
* contrib/hbunix/tests/*.prg
* contrib/hbxdiff/tests/*.prg
* contrib/hbzebra/tests/*.prg
* contrib/hbziparc/*.prg
* contrib/hbziparc/tests/*.prg
* contrib/rddads/*.prg
* contrib/rddads/tests/*.prg
* contrib/hbodbc/*.prg
* contrib/hbodbc/tests/*.prg
* contrib/hbpgsql/*.prg
* contrib/hbpgsql/tests/*.prg
* contrib/hbsqlit3/*.prg
* contrib/hbsqlit3/tests/*.prg
* contrib/hbwin/*.prg
* contrib/hbwin/tests/*.prg
* contrib/hbxpp/*.prg
* contrib/hbxpp/tests/*.prg
* contrib/hbxhb/*.prg
* contrib/hbxhb/tests/*.prg
* contrib/hbnetio/*.prg
* contrib/hbnetio/utils/hbnetio/*.hb
* contrib/hbnetio/utils/hbnetio/*.prg
* contrib/hbtip/*.prg
* contrib/hbtip/tests/*.prg
* tests/usrrdd/*.prg
* tests/funcarr.prg
* extras/gfspell/spell.prg
* extras/gtwvw/tests/*.prg
* extras/guestbk/*.prg
* extras/hbdoc/*.prg
* extras/rddado/*.prg
* extras/rddado/tests/*.prg
* extras/hbxlsxml/*.prg
* extras/httpsrv/*.prg
* extras/httpsrv/modules/*.prg
* extras/hbsuper/*.prg
* extras/hbvpdf/*.prg
* extras/hbvpdf/tests/*.prg
* tests/*.prg (except some which are well formatted but in different/fast-typing style)
* tests/*.hb
* bin/*.hb
* contrib/*.hb
* config/*.hb
* some manual formatting to better be able to verify
changes made by hbformat and be friendlier with hbformat.
* most files reformatted with hbformat using Maurizio's
patch, with mostly minor manual corrections and verification.
All hbformat changes for revised one-by-one.
! __DIR(): fixed to be unicode compatible
! __hbdoc_ToSource(): make sure to not generate line ending
spaces in output.
+ hbmk2/hbrun: HBMK_WITH_GTXWC built-time option to include
GTXWC. Useful for hbrun.
* hbct tests: change to not use [] as string delimiter
+ added full prototypes to Array class declaration
; NOTE: Only these were not or not fully formatted:
contrib/hbnetio/tests/*.prg
tests/hbpptest/*.prg
tests/mt/*.prg
tests/multifnc/*.prg
tests/rddtest/*.prg
utils/hbmk2/hbmk2.prg (for the most part)
src/rtl/tbrowse.prg (for the most part)
utils/hbtest/*.prg
*.ch, *.c, *.h
* src/rtl/cdpapihb.c
* src/rtl/hbadler.c
* src/rtl/hbsocket.c
* src/rtl/sha1.c
* src/vm/classes.c
* src/vm/dynsym.c
* src/vm/garbage.c
* src/debug/dbgentry.c
* do not end macros with ';' to avoid uncrustify warning
and wrong formatting as a consequence
* src/compiler/cmdcheck.c
* minor changes for uncrustify-friendliness
* contrib/hbformat/utils/hbfmtcls.prg
* contrib/hbformat/utils/hbformat.prg
% optimizations in hbformat.prg
! fixed mask/filename handling to be
multiplatform in hbformat.prg
+ added 'HBXList=' hbformat.ini parameter allowing
to add any .hbx file for proper function name
casing.
! fixed progress bar to display correctly
* tests/speedstr.prg
! fixed to run as intended in unicode code
* hbformatted
- contrib/hbwin/tests/dlg.xml
* contrib/hbwin/tests/dlg.rc
- extras/gtwvw/tests/wvwtest9.xml
+ extras/gtwvw/tests/wvwtest9.mft
* extras/gtwvw/tests/wvwtest9.rc
* renamed manifest to have .mft extension
% deleted unnecessary manifest
* "Win32 API" -> "Windows API"
! deleted CPU arch from manifest
* package/harb_win.mft
* formatting
* src/common/hbver.c
+ added version detection for win 8 and win server 2012
* minor formatting/code cleanup
* tests/gfx.prg
* updated to run in script mode.
; TOFIX: it doesn't draw anything with GTWVT
* tests/gfx.prg
* tests/gtwin.prg
* tests/gtxfnt.prg
* tests/wvt_fs.prg
* tests/wvtext.prg
+ support for GTXWC when run as script
* doc/en/*.txt
* contrib/hbct/doc/en/*.txt
* contrib/hbgd/doc/en/*.txt
* contrib/hbgt/doc/en/*.txt
* contrib/hbmisc/doc/en/*.txt
* contrib/hbnf/doc/en/*.txt
* contrib/hbziparc/doc/en/*.txt
* contrib/rddads/doc/en/*.txt
! fixed few broken tags reported by Carlos
% deleted line ending spaces
* some minor formatting
* contrib/hbnf/*.c
* contrib/hbnf/*.h
* extras/gfspell/spellc.c
* uncrustified with updated hb_c.cfg
* contrib/hbnf/*.prg
* contrib/hbnf/tests/*.prg
* hbformatted with Mauriozo's patch.
* a few manual corrections (avoiding #translates, using hb_ColorIndex())
in general and to make hbformat happy.
+ contrib/hbnf/tests/menuto.prg
+ added sample code for MENU TO (adatped from docs)
- src/rdd/dbfntx/dbfntx0.prg
- deleted unused file with no enabled code in it
* contrib/hbtip/tests/dbtohtml.prg
* contrib/hbtip/tests/loadhtml.prg
* contrib/hbtip/tests/tipmmail.prg
* minor cleanups
* contrib/hbtip/thtml.prg
! fixed typo due to s&r
% use hb_memowrit()
* src/rtl/tbrowse.prg
* conditional code sorted to be hbformat friendly
* some formatting
* INSTALL
* package/harbour.rb
* package/mpkg_src_nightly.sh
* package/mpkg_win_nightly.bat
* package/updt_web_nightly.sh
* website/changelog.html
* website/faq/harbour17.html
* website/faq/harbour27.html
* website/index.html
* website/menu/harbour-menu.js
* updated repository URL to new sf.net one
* tests/function.cfm
* contrib/hbhttpd/tests/tpl/_main.tpl
* contrib/hbtip/tests/tipmmail.prg
* website/faq/*.html
* website/samples/*.html
* use utf-8 in html and email
* contrib/hbrun/hbrun.hbp
+ support for HBMK_WITH_GTXWC
* tests/rto_get.prg
* tests/onidle.prg
* tests/mousetst.prg
* tests/wcecon.prg
* tests/vmasort.prg
- contrib/hbnf/tests/metaph.prg
* minor cleanups
* contrib/hbmysql/tests/test.prg
* contrib/hbmysql/tests/dbf2mysq.prg
% minor optimization, deleted outdated comment/line
* src/compiler/harbour.yyc
* src/compiler/harbour.y
* minor formatting
* harbour/src/compiler/complex.c
! fixed lexer to correctly recognize ::msg as FOR iterator
* harbour/include/hbexprb.c
! fixed compile time GPF in code like:
QOut( @1-VAR )
* harbour/include/hbexprb.c
! fixed typo in function IDs.
HB_I18N_NGETTEXT_STRICT() and HB_I18N_NGETTEXT_NOOP() were not
recognized as i18n gettext functions
* harbour/doc/cmpopt.txt
! fixed HB_I18N_NGETTEXT_NOOP*() syntax used in examples
* harbour/src/common/expropt2.c
* harbour/doc/cmpopt.txt
+ added compile time optimizations for expressions like
<exp> = <lVal>
<exp> == <lVal>
<exp> != <lVal>
<lVal> = <exp>
<lVal> == <exp>
<lVal> != <exp>
They are reduced to <exp> or !<exp>. Because it may disable
some runtime errors so it's not Clipper compatible optimization
and is enabled when -ko compiler switch is used.
* harbour/src/compiler/hbgenerr.c
! do not generate some warnings like:
Meaningless use of expression '%s'
when -w harbour compiler option is not used
* harbour/src/rtl/gtxwc/gtxwc.c
! indenting
* contrib/xhb/hbcompat.ch
* include/harbour.hbx
* src/debug/debugger.prg
* src/rtl/achoice.prg
* src/rtl/inkey.c
* src/rtl/memoedit.prg
+ added HB_KEYSETLAST() which is the successor of
HB_SETLASTKEY() but renamed to put it into the
right namespace. HB_SETLASTKEY() is deprecated
and will disappear after the second major release.
* utils/hbmk2/hbmk2.prg
+ added interactive keyboard functions to trigger
full screen UI in scripts
* contrib/hbct/tests/*.prg
% deleted #include "ct.ch" where it's not used
! added #require "ct.ch" where ct.ch is #included
* contrib/hbct/tests/csetarge.prg
% CLS not needed anymore to force interactive UI
* contrib/hbfbird/firebird.c
! typo in comment
* contrib/hbct/tests/math.prg
* minor
* harbour/include/hbvm.h
* harbour/src/vm/hvm.c
* harbour/src/vm/runner.c
* use deferred function mechanism for overloaded function symbols.
It allows to unload HRB modules without leaving dummy references.
* contrib/hbmisc/hb_f.c
! fixed clang warning
* contrib/hbzebra/datamtrx.c
! applied patch from Mindaugas, fixing literal truncation
warning on MSVC. Thank you.
* include/harbour.hbx
* src/rtl/mouse53.c
+ added HB_MGETBOUNDS( /* @ */ nTop, /* @ */ nLeft, /* @ */ nBotton, /* @ */ nRight ) -> NIL
* contrib/hbnf/hbnf.hbx
* contrib/hbnf/mouse.c
* contrib/hbnf/mouse1.prg
* all possible MS-DOS specific mouse handling
functions rewritten in Harbour using core mouse API.
Now the included sample more or less work.
There are still two important functions (FT_MBUT*())
that are MS-DOS specific and don't work. Have no
idea yet how to rewrite these in multiplatform way,
they work in very MS-DOS specific way.
! fixed few bugs along the way. Maybe introduced new
ones. It doesn't help that NF functions (sometimes?)
use X for vertical and Y for horizontal position.
* contrib/hbnf/tests/mouse1.prg
% turn cursor off to avoid excessive flicker
* contrib/hbnf/fttext.c
* contrib/hbnf/tests/metaph.prg
* contrib/hbnf/tests/prtesc.prg
* extras/gtwvw/docs/funclist.txt
* formatting (mostly fighting long separator lines still)
* src/rtl/mousehb.c
% use HB_FUNC_TRANSLATE()
- contrib/hbnf/dosver.prg
- contrib/hbnf/isshare.prg
- contrib/hbnf/mouse2.prg
- contrib/hbnf/page.prg
- contrib/hbnf/vidmode.prg
* contrib/hbnf/at2.prg
* contrib/hbnf/blink.prg
* contrib/hbnf/byteneg.prg
* contrib/hbnf/cntryset.prg
* contrib/hbnf/d2e.prg
* contrib/hbnf/diskfunc.prg
* contrib/hbnf/dispc.c
* contrib/hbnf/elapmil.prg
* contrib/hbnf/elapsed.prg
* contrib/hbnf/findith.prg
* contrib/hbnf/floptst.prg
* contrib/hbnf/ftint86.c
* contrib/hbnf/ftint86.ch
* contrib/hbnf/getver.c
* contrib/hbnf/getvid.c
* contrib/hbnf/hbnf.hbp
* contrib/hbnf/hbnf.hbx
* contrib/hbnf/hex2dec.prg
* contrib/hbnf/madd.prg
* contrib/hbnf/menu1.prg
* contrib/hbnf/mouse.c
* contrib/hbnf/mouse1.prg
* contrib/hbnf/nooccur.prg
* contrib/hbnf/nwlstat.prg
* contrib/hbnf/nwsem.prg
* contrib/hbnf/nwuid.prg
* contrib/hbnf/rand1.prg
* contrib/hbnf/savearr.prg
* contrib/hbnf/scregion.prg
* contrib/hbnf/sinkey.prg
* contrib/hbnf/sleep.prg
* contrib/hbnf/tempfile.prg
! FT_MBUTPRS() fixed RTE
! fixed FT_DSKFREE(), also made it work on platform w/o drive letters
! fixed FT_DSKSIZE(), also made it work on platform w/o drive letters
! fixed FT_DOSVER() to return string type on all platforms
+ rewritten functions to use HB_BIT*() and hex number handling functions
+ rewritten FT_SLEEP() to use hb_idleSleep() internally
% dispc.c rewritten to use hb_gtRectSize( 0, 0, 0, 0, &nSize ) to find
out cell size and cleaned code to adapt with minimal redundancy
% optimized out several .prg level stubs
% using SWITCH, hb_default(), hb_ntos() in some more places
* removed some unuseful macros
* minor formatting
+ fixed warnings and errors and enabled mouse1.prg
% deleted outdated and duplicate mouse2.prg
% deleted lots of MS-DOS specific commented code
! deleted #include for stdlib.h and string.h
* include/hbapigt.h
* src/rtl/gtapi.c
- deleted just added hb_gtIsCompatBuffer().
It's better to use hb_gtRectSize( 0, 0, 0, 0, &nSize ) for this purpose.
* contrib/hbformat/hbfmtcls.prg
* minor formatting
* include/hbapigt.h
* src/rtl/gtapi.c
+ added HB_BOOL hb_gtCompatBuffer() to return the status
of HB_GTI_COMPATBUFFER setting.
BTW, shouldn't the default setting be changed to be
Clipper compatible?
* contrib/hbnf/dispc.c
+ added support for the now default HB_GTI_COMPATBUFFER == .F. mode.
% exit char string is now internally converted to a keycode list.
* use HB_UCHAR (was char) for buffer cells.
* TOFIX changed for support for input file encoding and
translating this to unicode when putting to screen.
* contrib/hbnf/dfile.prg
+ FT_DFSETUP() 9th parameter got a Harbour extension by
enabling an old low-level feature to be able to pass
list of exist chars as array of numerics. This is unicode
compatible.
* contrib/hbnf/tests/dfile.prg
+ Pass array of numerics to FT_DFSETUP() function, which
make K_F3 exit key work.
+ Display keyboard as number and as char in unicode compatible way.
* utils/hbmk2/hbmk2.prg
* explicitly turn off HB_GTI_COMPATBUFFER for scripts
to not depend on Harbour default
* contrib/hbnf/dispc.c
! static vars moved to a structure and that structure
moved to TSD so it's now MT compatible.
* contrib/hbnf/datecnfg.prg
% FT_DATECNFG() do not set _SET_DATEFORMAT internally
* contrib/hbnf/pegs.prg
+ doesn't use THREAD STATIC anymore, but reentrant code
* contrib/hbnf/savearr.prg
+ do not use PRIVATE var.
* TOFIX added. This code only works with CENTURY OFF
and the on-disk format is dependent on _SET_DATEFORMAT.
* contrib/hbnf/woy.prg
% FT_WOY()/FT_DOY(): optimized out legacy hacks dealing
with century handling and CTOD() usage.
* contrib/hbnf/year.prg
* avoided one internal CTOD() call.
% do not set _SET_DATEFORMAT internally
* contrib/hbnf/dfile.prg
* use fileio.ch constant
* contrib/hbnf/tests/calendar.prg
* contrib/hbnf/tests/datecnfg.prg
* contrib/hbnf/tests/menu1.prg
* contrib/hbnf/tests/savearr.prg
* contrib/hbnf/tests/setdate.prg
* contrib/hbnf/tests/tbwhile.prg
* contrib/hbnf/tests/wda.prg
* contrib/hbnf/tests/workdays.prg
* contrib/hbnf/tests/woy.prg
! avoid using CTOD() (use date type and STOD() instead)
+ SET CENTURY ON where dates are displayed
+ hb_langSelect( "EN" ) where output has language
dependent strings
+ TOFIX added where NF code is incompatible with CENTURY ON (and RTEs)
+ use LOCAL instead of MEMVAR
* contrib/gtwvg/hbgtwvg.ch
* include/hbgtinfo.ch
* Marked deprecated and unused HB_GTE_* constants with
HB_LEGACY_LEVEL4. INCOMPATIBLE. Use locally defined
constants for these or HB_K_* constants from inkey.ch
or hbgtwvg.ch if you use contrib/GTWVG.
* contrib/hbnf/doc/en/acctadj.txt
* contrib/hbnf/doc/en/acctmnth.txt
* contrib/hbnf/doc/en/acctqtr.txt
* contrib/hbnf/doc/en/acctweek.txt
* contrib/hbnf/doc/en/acctyear.txt
* contrib/hbnf/doc/en/dayofyr.txt
* contrib/hbnf/doc/en/daytobow.txt
* contrib/hbnf/doc/en/elapsed.txt
* contrib/hbnf/doc/en/firstday.txt
* contrib/hbnf/doc/en/lastday.txt
* contrib/hbnf/doc/en/madd.txt
* contrib/hbnf/doc/en/month.txt
* contrib/hbnf/doc/en/qtr.txt
* contrib/hbnf/doc/en/savearr.txt
* contrib/hbnf/doc/en/setdate.txt
* contrib/hbnf/doc/en/stod.txt
* contrib/hbnf/doc/en/wda.txt
* contrib/hbnf/doc/en/week.txt
* contrib/hbnf/doc/en/workdays.txt
* contrib/hbnf/doc/en/woy.txt
* contrib/hbnf/doc/en/year.txt
! use STOD() instead of setting dependent (and not Y2K compatible)
CTOD()
* 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.
* harbour/include/hbcomp.h
* harbour/src/compiler/hbmain.c
* harbour/src/compiler/hbstripl.c
% eliminate repeated HB_P_LINE pcodes bound by unconditional jump
This optimization is not enabled when debug mode (-b) is used.
* harbour/include/hberrors.h
* harbour/src/compiler/hbgenerr.c
* harbour/src/compiler/harbour.y
* harbour/src/compiler/harbour.yyc
+ added new compile time error: "Duplicate case value"
* 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> )
* include/box.ch
* include/button.ch
+ added Unicode compatible macros for drawing strings
* contrib/hbmisc/hbedit.prg
* contrib/hbmisc/stringp.prg
* contrib/hbmisc/twirler.prg
* contrib/hbmisc/hbmisc.hbx
* formatted using hbformat and manually
* DEFAULT() made STATIC. It was colliding with xhb
after latest changes. INCOMPATIBLE. Use HB_DEFAULT()
instead.
! DEFAULT() fixed using != on strings
* 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/include/hbexprb.c
* harbour/include/hbcomp.h
* harbour/include/hbcompdf.h
* harbour/src/compiler/hbusage.c
* harbour/src/compiler/harbour.yyc
* harbour/src/compiler/harbour.y
* harbour/src/compiler/ppcomp.c
* harbour/src/compiler/hbmain.c
* harbour/src/compiler/cmdcheck.c
* harbour/doc/cmpopt.txt
* harbour/doc/xhb-diff.txt
+ added new harbour compiler switch:
-kd => accept macros with declared symbols
This switch allows to use declared symbols like LOCALs, STATICs
and FIELDs in macros and macrocodeblocks (every evaluated).
; Please do not confuse different things. Above modification
does not mean to that such variables are visible for macro
compiler. It only allows to write code like:
cbVar := {|| &cLocal + cPrivate }
or:
cbVar := {|| &cLocalPref.func&cPriv1( cPriv2 ) }
or:
? &cLocalPref.func&cPriv1( cPriv2 )
etc.
If possible then for macrocodeblocks Harbour compiler tries to
generate early eval code in which macros are expanded when codeblock
is created. Otherwise macros are expanded each time codeblocks are
evaluated.
For more information look at harbour/doc/xhb-diff.txt section:
MACROS WITH DECLARED SYMBOLS
* harbour/include/hbpcode.h
! force PCODEs enumeration from zero - some compilers may
use different value what can cause problems with casting to bytes
* harbour/contrib/xhb/regexrpl.prg
! fixed hb_regexReplace() - hack for older HB_REGEXALL() code
could cause RTE
* 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/include/hbapicls.h
* harbour/src/vm/classes.c
+ added new C function:
PHB_ITEM hb_objGetVarPtr( PHB_ITEM pObject, PHB_DYNS pVarMsg );
it returns pointer to object instance variable
* harbour/src/rtl/tclass.prg
* cleand parameter name
* harbour/contrib/hbmisc/spd.c
* removed unnecessary comment for older version which didn't use
hb_snprintf()
* formatting
* harbour/contrib/hbmxml/3rd/minixml/config.h
% use hb_snprintf() and hb_vsnprintf() instead of local emulation
based on CRTL sprintf()
* harbour/include/hbdefs.h
+ added HB_PF64 definition - it's printf format for HB_[UI]64 type
* harbour/src/3rd/tiff/print.c
* harbour/src/3rd/tiff/tiffconf.h
! use HB_PF64 instead of PFLL
* harbour/src/3rd/tiff/tiffconf.h
+ added TIFF_FILE_HANDLE definition
* harbour/src/3rd/tiff/tiffio.h
! use TIFF_FILE_HANDLE
* harbour/src/3rd/tiff/dirread.c
! fixed typo in TIFF_UINT32_MAX definition
* harbour/src/3rd/tiff/Makefile
! enabled fcntl.h in *unix builds
* harbour/src/3rd/tiff/tiff.dif
* updated
* harbour/include/hbgtinfo.ch
+ added new hb_gtInfo() action: HB_GTI_UNITRANS
It allows to set translation table for UNICODE characters
* harbour/src/rtl/gtwvt/gtwvt.c
* harbour/src/rtl/gtwvt/gtwvt.h
+ added support for HB_GTI_UNITRANS - due to limited support
for unicode vlaues in MS-Windows raster fonts it's necessary
for some custom fonts.
* harbour/src/rtl/tpersist.prg
+ implemented 2-nd parameter <lIgnoreErrors> in ::LoadFromFile()
and ::LoadFromText() methods
* harbour/src/rtl/cdpapi.c
* indenting
* harbour/src/rtl/valtype.c
* modified HB_ISEVALITEM() to use HB_IS_EVALITEM() macro
* harbour/src/pp/ppcore.c
! fixed typo in .ppt file handle - many thanks to Teo Fonrouge
for the information about the problem.
* harbour/include/hbthread.h
* harbour/src/vm/thread.c
+ added new C function:
HB_THREAD_NO hb_threadNO( void )
it returns unique thread number
* harbour/src/vm/classes.c
* cleaned static function names
* harbour/src/rdd/dbffpt/dbffpt1.c
* use RDDINFO() method instead of direct access to RDD TSD data
* harbour/src/rdd/dbfntx/dbfntx1.c
* harbour/src/rdd/dbfnsx/dbfnsx1.c
* changed initialization method - now RDD TSD data is initialized
by each thread which access it. It resolves the problem with
memo type in NSX and NTX RDDs - it was SMT/DBT in main thread
but in child threads default FPT driver was used.
* harbour/tests/speedtst.prg
! fixed xHarbour compilation - it was broken by HB_EOL()
* doc/en/lang.txt
* include/hblang.hbx
* src/lang/be.c
* src/lang/bg.c
* src/lang/ca.c
* src/lang/cs.c
* src/lang/de.c
* src/lang/el.c
* src/lang/en_tpl.c
* src/lang/eo.c
* src/lang/es.c
* src/lang/eu.c
* src/lang/fr.c
* src/lang/gl.c
* src/lang/he.c
* src/lang/hr.c
* src/lang/hu.c
* src/lang/id.c
* src/lang/is.c
* src/lang/it.c
* src/lang/ko.c
* src/lang/lt.c
* src/lang/nl.c
* src/lang/pl.c
* src/lang/pt.c
* src/lang/ro.c
* src/lang/ru.c
* src/lang/sk.c
* src/lang/sl.c
* src/lang/sr_cyr.c
* src/lang/sr_lat.c
* src/lang/sv.c
* src/lang/tr.c
* src/lang/uk.c
* src/lang/zh_sim.c
* src/lang/zh_tra.c
* src/rtl/langcomp.prg
* src/rtl/langlgcy.prg
* renamed UTF8 language modules internally. The new
names are the two letter ISO language code in
lowercase. With postfixes where required. For
dialects and variants, it's now possible to use
"LLDD", "LLDD_VVV" or "LL_VVV" formats, too.
See the current list in
doc/en/lang.txt
! Ukrainian had an "UE" prefix before, now it got
corrected to "UK", which is it's official ISO code.
+ HB_LANGSELECT() now accepts second parameter: <cCodepage>
to specify the CP into which the translations should
be converted. This parameter works for legacy lang module
IDs, too. The default is hb_cdpSelect() (or legacy CP
for legacy language module IDs).
+ extended the way compatibility is preserved. The
problem is with legacy language modules with a two
character ID only (ie. without CP specification),
this is the list:
CA, DE, EL, EO, ES, EU, FR, GL, IT, PT, RO, SV
If these language IDs are passed in UPPERCASE as above,
they will be handled in compatibility mode and legacy
default CP selected.
Compatibility code is marked with HB_LEGACY_LEVEL5, which
means it will stay in next two stable releases.
To depart from compatibility (recommended), use the new
lowercase flavor: hb_langSelect( "pl" ), hb_langSelect( "pt" ),
hb_langSelect( "sr_cyr" ), or use standard language
IDs: hb_langSelect( "hu-HU" )
Or simply use this code:
---
#include "hbextlng.ch"
hb_langSelect( hb_UserLang() [, <CP> ] ) /* if <CP> is not specified, hb_cdpSelect() will be used */
---
+ src/lang/msgzhsim.c
- src/lang/msgko.c
- src/lang/msgzhgb.c
* include/hblang.hbx
* src/lang/msgzhutf.c
* src/lang/Makefile
* src/rtl/langcomp.prg
* src/rtl/langlgcy.prg
- deleted language module KO (Korean) using CP949, which
CP is not supported by Harbour. INCOMPATIBLE.
+ readded Chinese Traditional language module, along with
legacy language modul "ZHGB". Notice however that the
CP it now uses is BIG5, not the otherwise unsupported
by Harbour, CP936. INCOMPATIBLE.
; Migration of legacy language modules is now finished.
* include/hblang.hbx
* src/lang/Makefile
+ src/lang/msgsrlat.c
* src/lang/msgsrutf.c
* src/rtl/langcomp.prg
+ added Serbian (latin) language module
! fixed SR852 and SRISO legacy lang modules to use latin
Serbian
; NOTE: I'd like to ask everyone to test language files
after these changes. There may be typos,
conversion errors or the original version I did
the conversion from might not have been the best
translation from the multiple ones available.
* include/hblang.hbx
* src/rtl/Makefile
* src/rtl/langcomp.prg
+ src/rtl/langlgcy.prg
+ added emulation for 'REQUEST HB_LANG_<id>' legacy code.
protected with HB_LEGACY_LEVEL5, though until then
probably some more shuffling will be needed to simplify
usage (f.e. remapping UTF-8 language modules to 'LL'
codes as opposed to 'LLUTF' codes used ATM)
% only pull all codepages and base language modules required
for dynamic language modules when user app REQUESTs and
HB_LANG_<id>s.
; TOFIX: HB_LANGMESSAGE() often returns garbage when using
it from hbrun or other dynamic apps. Changing
hb_retc_const() to hb_retc() didn't seem to fix it.
; NOTE: All users are encouraged to use UTF-8 base language
modules and request all CP components manually, then
create their own dynamic language modules, f.e.:
---
REQUEST HB_CODEPAGE_PT850
REQUEST HB_CODEPAGE_UTF8
REQUEST HB_LANG_PTUTF
hb_langNew( "PT", "PT850", "PTUTF", "UTF8" )
hb_langSelect( "PT" )
---
* src/lang/msghuutf.c
! reconverted from a better legacy CP version, fixing
some missing accented chars and translations
+ src/codepage/cphe862.c
+ src/codepage/cphewin.c
- src/lang/msghe862.c
- src/lang/msghewin.c
- src/lang/msgsr852.c
- src/lang/msgsriso.c
- src/lang/msguados.c
* ChangeLog
* include/hbcpage.hbx
* include/hblang.hbx
* src/codepage/Makefile
* src/lang/Makefile
* src/rtl/langcomp.prg
+ added HE862 and HEWIN codepage modules. Only to for
CP conversion, so they do not feature a collation table
yet. Please add it.
+ using HE862 and HWIN to dynamically create Hebrew language
modules for legacy CPs from UTF-8 one.
+ mapped SR852 and SRISO lang modules to CPs, and deleted
old modules
+ mapped USDOS lang module to CP and deleted old module
- src/lang/msghucwi.c
* doc/en/lang.txt
* include/hblang.hbx
* src/lang/Makefile
* src/rtl/langcomp.prg
- deleted support for HUCWI which used a long-time
dead CP. If you use it, it's probably time to switch
to something more recent, or submit a patch for a
CWI CP in Harbour (or implement your translation
locally).
- src/lang/msgzhb5.c
* include/hblang.hbx
* src/lang/Makefile
* src/rtl/langcomp.prg
% deleted ZHB5 language module, which is now converted
dynamically from UTF8 version