* utils/hbmk2/hbmk2.*.po
* utils/hbmk2/hbmk2.prg
+ added '-hb30' option and '{hb30}' filter macro to allow
reverting back to Harbour 3.0.0
+ added provisions for merging 'hblang' and 'hbcpage'
core libs into new 'hbnat' lib
+ SETCURSOR() and SETCOLOR() references will now also
trigger full screen CUI mode in hbrun scripts
+ documented the fact that GTCGI is default GT for scripts
and that it's switched to another one (and which) when
CUI mode script is detected
+ marked all information in help with '[*]' which shows
host platform dependent, dynamic data (f.e. systems paths)
+ hbmk.hbc will now be searched for under user's home
directory on non-*nix, too
+ added '-find' special hbmk2 option for finding Harbour functions.
It will lookup any strings passed as command line arguments
and display in which library they can be found. It will
also do the lookup in packages not currently installed.
Replaces similar 'hbrun bin/find' functionality, but now
uses existing code inside hbmk2. The new implementation
also supports wildcards.
Example:
hbmk2 -find wapi_*string ntos wild
! documented that hbstart.hb is first searched for in
current working directory
! ${hb_ver} and ${hb_verstr} macros now change their value
in compatibility modes (-hb10, -hb20, -hb30, -xhb)
+ -longhelpmd output will now not contain installation
specific (and potentially sensitive) data: home directory,
hbmk2 directory, only generic replacement terms
+ version= directive help text got a mention of its default
value (it was so far only mentioned next to HBMK_HAS_<hbcname>
envvar)
+ documented exit codes in help text
* minor tweaks to some help lines
* cleanup for Markdown formatting internals
* plugin callback variable "nErrorLevel" renamed to "nExitCode"
[INCOMPATIBLE]
* exit code changed to value 6 from 1 when hbrun script has
a compile error [INCOMPATIBLE]
+ use core hb_DirSepToOS() where possible
- deleted hbmk2 plugin API function hbmk_PathSepToSelf()
Use core hb_DirSepToOS() instead. [INCOMPATIBLE]
+ added '-exitstr' hbmk2 option which will display the exit result
in textual format
* contrib/hbpre.hbm
* contrib/make.hb
% use -exitstr hbmk2 option instead of rolling a local copy
of possible result strings
* src/pp/ppcore.c
+ generate '\a' '\f' '\v' escape chars
- bin/find.hb
* config/postinst.hb
* package/harbour.spec
- deleted find.hb for 'hbrun bin/find' functionality.
Replaced by 'hbmk2 -find' option.
* src/rtl/Makefile
- src/rtl/strxchg.c
+ src/rtl/strrepl.c
* src/rtl/tget.prg
* utils/hbmk2/hbmk2.prg
* include/harbour.hbx
* ChangeLog.txt
* renamed HB_STRXCHG() to HB_STRREPLACE(), according to:
https://groups.google.com/d/topic/harbour-devel/vSzlAkv6h9Y/discussion
* updated function skeleton in ChangeLog and C source
(also with new hash parameter)
* contrib/hbsqlit3/hbsqlit3.hbp
* contrib/hbsqlit3/hbsqlit3.hbx
+ contrib/hbsqlit3/errstr.prg
+ hb_sqlite3_errstr_short( <nError> ) -> <cError>
* contrib/hbsqlit3/tests/authoriz.prg
* contrib/hbsqlit3/tests/backup.prg
* contrib/hbsqlit3/tests/hooks.prg
% use hb_sqlite3_errstr_short() instead of implementing
it locally in each example
% use sqlite3_errstr() API to get long error strings instead
of reimplementing it locally
% minor opt
* contrib/hbsqlit3/hbsqlit3.hbp
- contrib/hbsqlit3/hdbcsqlt.prg
+ contrib/hbsqlit3/hdbc.prg
* renamed
* contrib/hbhpdf/errstr.prg
* contrib/hbmzip/mziperr.prg
! indenting
* contrib/hbtip/tests/tiptest.prg
* leave color
* harbour/src/rtl/strxchg.c
+ added support for using hash arrays as replace pairs in second
argument of hb_strXChg() - hash arrays are accepted if 3-rd parameter
is ommitted or is NIL. Now this alternative syntax:
hb_strXChg( <cString>, <hChanges> ) -> <cResult>
is also supported, i.e.:
cData := hb_strXChg( cSource, { "{LI}" => cLIValue, ;
"{FI}" => cFIValue } )
Please remember that single hash layer is much lighter data type
then array of subarrays because it needs only one GC item when
each subarray is new GC item.
* harbour/include/hbtypes.h
* renamed HB_EXTISARRAY to HB_EXTISPARAM, old type is covered by
HB_LEGACY_LEVEL4 macro.
* harbour/include/hbapi.h
* harbour/src/vm/extend.c
+ added new public C function:
HB_BOOL hb_extIsNil( int iParam );
% use hb_extIsNil(n) in HB_ISNIL(n) macro. It eliminates double
function call and also double (n) usage so it improves the
performance and allows to use complex expressions as HB_ISNIL()
argument.
* harbour/src/vm/maindllp/dllext.c
+ added wrappers for hb_extIsNil() abd hb_extIsObject()
* harbour/include/harbour.hbx
* harbour/src/rtl/Makefile
+ harbour/src/rtl/strxchg.c
+ added new PRG function:
hb_strXChg( <cString>, <cSource> | <acSource>, ;
<cDest> | <acDest> ] ) -> <cResult>
This function allows to easy replace different substrings in
given string.
If 2-nd is string then each character in <cString> which exists
in <cSource> at <n> position is replaced by corresponding character
at <n> position in <cDest> or string from <acDest>[ <n> ]
If 2-nd parameter is array then each <cString> substring which exists
in <acSource> at <n> position is replaced by corresponding character
at <n> position in <cDest> or string from <acDest>[ <n> ].
If <n> is longer then LEN() of <cDest> or <acDest> then given
character/substring is removed from result.
This function should help in code which wrongly uses repeated
StrTran() calls all regex which can change also substituted values.
Examples:
// encode XML value
cXmlText := hb_strXChg( cText, "<>&", { "<", ">", "&" } )
// now decode it to raw text
cText := hb_strXChg( cXmlText, { "<", ">", "&" }, "<>&" )
// strip all digits from string
cNoDigit := hb_strXChg( cText, "0123456789" )
// extract all digits from string
cDigits := hb_strXChg( cText, cNoDigit )
// convert chosen letters to upper case
? hb_strXChg( "hello world, "hlwd", "HLWD" )
* harbour/src/common/hbfopen.c
* added workaround for missing wsystem() in XCC
* contrib/hbtip/popcli.prg
+ QUESTION to method that returns three different types
(of those two are indicating different errors)
+ TOFIX added to code that can RTE (due to similarly
messy solution which returns multiple type in different
cases, which is obviously not accounted for when
calling it.)
* include/harbour.hbx
* updated/cased
* contrib/hbtip/mail.prg
* format
* harbour/include/hbapi.h
* harbour/src/vm/arrays.c
+ added new internal VM C function: hb_arraySwap()
! fixed typo HB_TRACE message
* harbour/src/vm/hvm.c
+ added support for codeblocks in __vmItemID()
* harbour/src/vm/classes.c
+ added PRG new functions:
__objRestoreIVars( <aIVars>, <hClass> | <sClassFunc> |
<cClassName>[, <cClassFuncName>] ) -> <oObject>
it works in similar way to __objSetIVars() but stores new object
result in passed <aIVars> array.
* harbour/src/rtl/valtoexp.prg
! fixed serialization code for nested objects with redefined [] operator
! fixed cross references detection broken in last modification
* harbour/include/hboo.ch
* added small comment
* harbour/include/hbapirdd.h
* harbour/src/rdd/workarea.c
* fixed typo in parameter name
* harbour/include/hbapi.h
* harbour/src/vm/arrays.c
+ added to new C functions: hb_arraySetCPtr() and hb_arraySetCConst()
* harbour/src/vm/classes.c
+ added support for passing assign type restrictions to in
HB_OO_MSG_PROPERTY and HB_OO_MSG_CLASSPROPERTY in __clsAddMsg()
It can be done by new option 7-th <xType> parameter.
+ added support for super class casting in __objGetIVars() and
__objSetIVars(). Now this functions can be used to serialize
all object instance variables also overloaded by other classes
so they can be accessed only with super class casting or by
nonvirtual messages. It means that above functions create fully
functional serialization system and can be used as backed for
HB_SERIALIZE() and HB_VALTOEXP() when objects are serialized.
Such serialization consumes more time and needs more memory but
objects can be deserialized by modified code which uses slightly
different raw object representation. The original HB_SERIALIZE()/
HB_VALTOEXP() format is very fast and compact but it needs exactly
the same raw object representation in the program which serialized
object and in the program which later desrialize it. It may create
serious problems if programmer modify the code, i.e adding new
instance variables or changing their order in the object class or
or in one of its ancestors and then tries to restore some objects
serialized by previous program version.
* updated some comments and few typos in local names
* harbour/src/rtl/valtoexp.prg
* modified HB_VALTOEXP() to use be default __objGetIVars() and
__objSetIVars() to serialize objects.
+ added 2-nd parameter <lRaw> to HB_VALTOEXP(). By default it's .F.
Setting it to .T. forces all raw serialization format.
* harbour/include/hbwinuni.h
+ added HB_WINAPI_SYSTEM() macro
* harbour/src/rtl/run.c
* harbour/src/rtl/hbrunfun.c
! use MSCRTL system call in desktop MS-Windows builds of __RUN()
and HB_RUN() functions.
It restores Clipper compatible __RUN() behavior and now both
functions work in the same way on all platforms except WinCE/Mobile
which does not have shell system.
* harbour/include/hbapiitm.h
* harbour/src/vm/itemapi.c
+ added new C function hb_itemEqual()
* harbour/src/vm/hashes.c
% use hb_itemEqual()
* harbour/src/vm/classes.c
! updated some code to work with class and instance variables
declared with SYNC attribute
! fixed __clsGetProperties() with .T. in 2-nd parameter to not
return PERSISTENT variables twice
* added new PRG functions:
__objGetIVars( <oObject>, [<nScope>], [<lChanged>] )
-> <aIVars> { { <cName>, <xVal> }, ... }
__objSetIVars( <oObject> | <hClass> | <cClassName> | <sClassFunc>,
<aIVars> ) -> <oObject>
* harbour/src/rtl/cdpapi.c
! fixed upper and lower strings validation encoded in UTF8.
If both string contained errors at the same place then
it was silently ignored.
+ added stderr message about wrong CPs when compiled with
__HB_IGNORE_CP_ERRORS macro
* harbour/src/codepage/cpua866.c
! fixed UA866 definition. CP866 does not contain cyrillic version
of "I" and "i" letters and also "Ґ" and "ґ" so Ukrainian letters
defined in l_ua.c cannot be used.
* doc/en/lang.txt
* include/hbapilng.h
* src/rtl/langapi.c
+ HB_LANGNAME() Harbour API extended to accept optional
language ID. See docs.
+ HB_LANGMESSAGE() Harbour API extended to accept 2nd parameter
as optional language ID. See docs.
+ added new C level API to retrieve a language string from
any language module (not just selected one):
const char * hb_langGetItem( const char * pszID, int iIndex );
+ extended hb_langName() C level API to be able to retrieve
name of any language modules, not just selected one:
char * hb_langName( const char * pszID );
[INCOMPATIBLE]
* hb_langDGetItem() C level API moved to 'compatibility' status
* uncrustified unattendedly
* src/codepage/l_fr.c
! fixed another typo which was result of local paste mistake
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ extended the wording of -comp=/-plat= options, default behavior indicated
* tests/langapi.prg
! updated to RTE at the end and to use non-legacy language IDs
* tests/langapi.prg
* contrib/hbnf/tests/datecnfg.prg
* utils/hbtest/hbtest.prg
* minor cleanup
* harbour/include/hbcdpreg.h
* harbour/include/hbapicdp.h
* harbour/src/rtl/cdpapi.c
* added to hb_cdpRegisterNew() new parameter which informs CP engine
that passed strings with upper and lower letters are in UTF8 encoding.
* harbour/src/codepage/cpplmaz.c
* defined PLMAZ codepage using UTF8 encoding - just as an example.
* harbour/utils/Makefile
* compile hbtest before hbmk2 - it alows to build HVM test tool even if
HBMK2 cannot be compiled (i.e. some compilers does not accept
resource/icon files used by HBMK2)
* contrib/hbhpdf/harupdf.ch
+ sync instruction comment for developers
* contrib/xhb/xhberr.prg
! replaced very shoddy commented code dealing with memvars
with clean code (though using internal calls)
! fixed screen dump for unicode/non-unicode
* include/fileio.ch
* replaced C-specific code in a Harbour header with
non-future-proof but cross-compatible code. untested.
* src/3rd/zlib/Makefile
! potential but untested fix for msvcarm targets
* harbour/src/vm/classes.c
+ added new PRG function:
__clsGetAncestors( <nClass> ) -> { <nSupper1>, <nSupper2>, ... }
* generate RTE if someone tries to register scalar class with instance
variables.
* updated some comments
* harbour/include/hbapiitm.h
* harbour/src/vm/itemapi.c
+ added new C function hb_itemGetLX()
It's similar to hb_itemGetL() but returns HB_TRUE for
some non logical items to mimic Cl*pper behavior.
* harbour/src/rdd/workarea.c
* harbour/src/rdd/dbf1.c
! use hb_itemGetLX() instead of hb_itemGetL() in DBEVAL(),
COPY TO ..., APPEND FROM ..., SORT TO ... functions and
commands - Cl*pper compatible behavior.
* harbour/src/rdd/dbfntx/dbfntx1.c
* minor indenting
* harbour/include/fileio.ch
+ added HB_FA_ANY macro value - it's attribute mask for hb_fsFindFirst()
which includes all directory entries regardless of their attributes.
* harbour/contrib/hbct/files.c
! fixed FILEATTR() to accept by default directories, hidden and system
files when called with file name in first parameter - it's standard
CT3 behavior.
! limit attributes in mask used by FILE*() functions to standard DOS
ones - without it existing code is not portable to * nixes.
* harbour/src/vm/classes.c
% small speed optimization for inline methods
+ added internal list of super classes bound with each class
% use super class list for scope checking
% use list of super classes for instance area casting
% use super class list in super destructor code - it should cause
noticeable speed improvement for releasing objects with destructors.
! few security fixes like possible GPF on wrong paramas.
* harbour/src/vm/macro.c
% use HB_P_DUPLICATE instrad of HB_P_PUSHUNREF in Field[W]Block()
functions
* harbour/src/rtl/gtwvt/gtwvt.c
! do not generate HB_K_RESIZE after SetMode() if there is no active
console window.
* harbour/include/hbstack.h
* cleaned declarations of some hb_stack*() functions - moved to internal
functions: hb_stackFree(), hb_stackInit(), hb_stackIncrease() and
hb_stackRemove()
exported: hb_stackPush(), hb_stackTopOffset() and hb_stackTotalItems()
* harbour/include/hbwmain.c
! fixed typo in argv list declaration
* harbour/utils/hbtest/rt_class.prg
+ added code to test non virtual hidden messages and super casting.
* harbour/contrib/hbmzip/mzip.c
* minor modifications in casting and parameter checking to make them
compatible with other similar core operations, i.e. FWRITE()
* harbour/include/hbapicls.h
* harbour/src/vm/classes.c
+ added new internal C function:
void hb_objCloneTo( PHB_ITEM pDest, PHB_ITEM pSource,
PHB_NESTED_CLONED pClonedList );
it copies object or clone it if class overloaded clone operation.
; TODO: add support for user defined class clone operation
* harbour/include/hbapiitm.h
* harbour/src/vm/itemapi.c
* changed returned type of hb_itemCloneTo() to void
* harbour/src/vm/itemapi.c
* use hb_objCloneTo() in hb_itemClone*() functions.
* harbour/src/vm/arrays.c
* use hb_objCloneTo() in array/hash clone code.
* harbour/src/vm/arrayshb.c
! fixed return values in AEVAL() and ACOPY() when array
is passed by reference.
* harbour/src/rtl/tclass.prg
* harbour/src/vm/classes.c
* declare :SUPER and :__SUPER messages as non virtual ones.
Now ::SUPER and ::__SUPER messages executed in object method
returns casting to 1-st super object of the class in which
executed method was defined.
* harbour/include/hbclass.ch
* removed xtranslations for SUPER(): - this workaround for
missing non virtual messages in some Clipper OOP implementations
was breaking valid code which tried to use real :SUPER message
and made SUPER reserved word, i.e. it was not possible to create
code like:
LOCAL super := ::parent2
? super:v1, super:v2
Now this hack is not longer necessary and :SUPER is non virtual
massage in Harbour.
INCOMPATIBLE: If someone has some code like:
SUPER():MSG()
SUPER( PARENT ):MSG()
then please change it to:
::SUPER:MSG()
::PARENT:MSG()
* harbour/contrib/hbmysql/tmysql.prg
* harbour/contrib/hbmysql/tsqlbrw.prg
! fixed to use ::super() instead of super()
* harbour/src/rdd/usrrdd/rdds/arrayrdd.prg
+ added GOCOLD() method - this method is necessary for WAs
passed to HB_DBDETACH()
* harbour/doc/xhb-diff.txt
* small update
* harbour/contrib/*/*.hbx
* regenerated
- doc/en/hb_api.txt
- doc/en/hb_apier.txt
- doc/en/hb_apifs.txt
- doc/en/hb_apigt.txt
- doc/en/hb_apiit.txt
- doc/en/hb_apiln.txt
- doc/en/hb_apird.txt
- doc/en/hb_compa.txt
- doc/en/hb_date.txt
- doc/en/hb_macro.txt
- doc/en/hb_vm.txt
* doc/en/hb_set.txt
- deleted 0.5MB worth of collection of very outdated 1:1 copies
of C declarations and their comments from .h headers, as they
were 12 years ago.
* include/hbapi.h
* include/hbvmpub.h
* src/vm/codebloc.c
* HB_CODEBLOCK_PTR type renamed to PHB_CODEBLOCK. Old type
remains for a while for compatibility.
; TODO: Remaining list of similar ones:
public:
HB_MACRO_PTR PHB_MACRO
HB_ERROR_HANDLER_PTR PHB_ERROR_HANDLER
HB_ERROR_INFO_PTR PHB_ERROR_INFO
HB_HASH_ITEM_PTR PHB_HASH_ITEM
HB_HASH_TABLE_PTR PHB_HASH_TABLE
internal:
HB_VOID_PTR PHB_VOID
HB_CBVAR_PTR PHB_CBVAR
HB_EXPR_PTR PHB_EXPR
HB_ENUMERATOR_PTR PHB_ENUMERATOR
HB_ELSEIF_PTR PHB_ELSEIF
HB_LOOPEXIT_PTR PHB_LOOPEXIT
HB_SWITCHCASE_PTR PHB_SWITCHCASE
HB_SWITCHCMD_PTR PHB_SWITCHCMD
HB_RTVAR_PTR PHB_RTVAR
HB_COMMON_PTR PHB_COMMON
HB_PCODE_INFO_PTR PHB_PCODE_INFO
HB_COMP_PTR PHB_COMP
* include/hbdefs.h
- deleted redundant type: 'HB_FUNC_PTR'
INCOMPATIBLE. If you used this, swap it for 'PHB_FUNC'
* ws formatting
* ChangeLog.txt
! typos
* tests/testdyn.prg
! fixed -w3 warnings on non-win
! fixed possible type in text output
* config/postinst.hb
* utils/hbmk2/hbmk2.prg
+ use hb_StrFormat() in few more places
+ added minor exception after .hbx 'do no edit'
* website/index.html
! unclosed tag
* config/darwin/clang.mk
+ use 'clang++' in C++ mode
* include/hbcomp.h
* include/hbmacro.h
* include/hbsetup.h
% deleted redundant and/or unnecessary C RTL headers
+ config/win/clang.mk
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/hbmk2.*.po
* README.txt
+ added very experimental clang support to the build
systems. Very lightly tested.
! fixed entry function detection not being enabled with clang
! fixed .res files not being added on os2/gcc[omf] from .hbc/sources= directive
+ added recently added new filter 'allbcc' to help text
! synced compiler list per platform in help/readme to reality
* ChangeLog.txt
+ updated 2012-12-16 00:17 UTC+0100 with the first DONE item.
* src/3rd/pcre/*
- reverted to 8.31 until all the breakage in configurability
is fixed either in pcre or by redesigning our way of
configuring it. Command-line configuration -DHAVE_*=0
doesn't seem to work anymore.
* include/hbcomp.h
* include/hbcompdf.h
* src/compiler/genc.c
* src/compiler/genhrb.c
* src/compiler/harbour.y
* src/compiler/harbour.yyc
* src/compiler/hbmain.c
* few more type renames to have std Harbour prefix
* include/Makefile
- include/hbtest.ch
* src/rtl/Makefile
- src/rtl/hbtest.prg
* utils/hbmk2/hbmk2.prg
- deleted hbtest from core.
* contrib/hbct/tests/test.prg
* contrib/hbgt/tests/test.prg
* contrib/hbmisc/tests/tsstrfmt.prg
* modified regression tests to use hbtest contrib
instead of hbtest functionality in core RTL
; Thanks to Mindaugas and Przemek, now the contrib
tests will require users to manually add 'hbtest.hbc'
to their hbmk2 cmdline in case someone would like
to build exes from them. Which means that fewer
people will bother to build and run them. They still
run simply using 'hbrun <name>.prg' as scripts.
* include/hb.ch
* utils/hbmk2/hbmk2.prg
* minor sync between list of "essential" core headers
and the minimal list of core headers embedded into hbmk2.
(minimal list is not used in default builds)
* added missing hbstrict.ch to full list of included headers
+ contrib/hbct/tests/test.prg
* contrib/hbct/doc/en/*.txt
+ replaced $TESTS$ in docs with regression test script
; NOTE: there are some failures
* src/rtl/Makefile
* include/harbour.hbx
+ src/rtl/hbtestc.c
+ added an internal function (which I didn't used yet after some
experimentations)
* src/rtl/hbtest.prg
* minor cleanup
* include/hbwinuni.h
+ new HB_WINAPI_KERNEL32_DLL() macro to get kernel32.dll
regardless of UNICODE or non-UNICODE mode
* contrib/hbwin/wapi_winbase.c
* src/rtl/diskspac.c
* src/rtl/disksphb.c
% use HB_WINAPI_KERNEL32_DLL() macro
! fixed a non-UNICODE bug that slipped in previous commit
* src/rtl/direct.c
* made it format well using uncrustify
* src/vm/asort.c
* src/vm/memvars.c
* cleanups
* include/hbwinuni.h
+ added HB_WINAPI_FUNCTION_NAME() macro to form a WinAPI
function name as a string (for dynamic calls)
Thanks to Mindaugas for the idea.
* contrib/hbwin/wapi_winbase.c
* contrib/hbwin/wapi_wingdi_font.c
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_prn3.c
* contrib/hbwin/win_rpc.c
* src/rtl/diskspac.c
* src/rtl/disksphb.c
* src/rtl/fslink.c
% eliminated few UNICODE build-time branches by using
new HB_WINAPI_FUNCTION_NAME() macro
* include/hbapifs.h
% deleted type HB_FNAME_PTR (change it to PHB_FNAME)
INCOMPATIBLE
* include/hbapi.h
% deleted internal type HB_EXTREF_PTR (synonym of PHB_EXTREF)
+ src/codepage/cp_gbk.c
+ src/codepage/gbk.c
* src/codepage/Makefile
* include/hbcpage.hbx
+ added GBK CP.
GBK is an extension of the GB2312 character set for simplified Chinese
characters, used in the People's Republic of China. GBK encoding support
for Simplified Chinese, while fully contained BIG5. Microsoft implemented
GBK in Windows 95 and Windows NT 3.51 as Code Page 936.
Thanks to Wang Dongming for the two new source files.
Please review/test it.
* src/rtl/langcomp.prg
! use GBK CP instead of BIG5 for legacy CP "ZHGB"
* extras/httpsrv/session.prg
* cleanup
* src/rdd/hsx/hsx.c
* src/rtl/gtxwc/gtxwc.c
* src/vm/classes.c
* src/vm/dynsym.c
* src/vm/garbage.c
* modified macros to act like functions, whether
mapped to noop or noop code. These code parts
will now not confuse code formatters.
The generated code is indentical (tested under
mingw, and to some extent on msvc and bcc)
* include/hbtrace.h
* minor
* include/hbtrace.h
! fixed empty HB_TRACE() definitions to be 'do {} while( 0 )'
as suggested by Przemek.
* contrib/hbsqlit3/core.c
* contrib/hbwin/axcore.c
* contrib/hbzebra/datamtrx.c
* contrib/hbzebra/qrcode.c
* contrib/rddads/ads1.c
* contrib/rddads/adsfunc.c
* deleted {} block where HB_TRACE() was the only
call made from the the block. It's now unnecessary.
* contrib/hbzebra/codabar.c
* contrib/hbzebra/code11.c
* contrib/hbzebra/code128.c
* contrib/hbzebra/code39.c
* contrib/hbzebra/code93.c
* contrib/hbzebra/core.c
* contrib/hbzebra/datamtrx.c
* contrib/hbzebra/eanupc.c
* contrib/hbzebra/itf.c
* contrib/hbzebra/msi.c
* contrib/hbzebra/pdf417.c
* contrib/hbzebra/qrcode.c
* deleted few more unnecessary {} from single statement
blocks
* ChangeLog
* made decision how to clean empty loop code
(it's bar ';' char, indented in next line)
* include/hbtrace.h
* inactive HB_TRACE() macro will now translate to
empty {} block, so there is no need to manually
do that when used alone in an 'else' branch for example.
Checkme.
* contrib/hbwin/win_svc.c
% deleted {} braces from around HB_TRACE() calls
* utils/hbmk2/hbmk2.prg
! fixed hb_processOpen() results to be displayed at
once to avoid cutting potential UTF-8 (or other multibyte)
output from tools to be cut in the middle of character.
* contrib/hbct/charone.c
* contrib/hbct/charop.c
* contrib/hbct/token1.c
* contrib/hbct/token2.c
* deleted {} ending comments
* contrib/hbmysql/tmysql.prg
* contrib/hbmysql/tsqlbrw.prg
* deleted change tracking comments. 'blame' functionality
and repo history should be enough
* contrib/hbwin/tests/testsvc.prg
+ added some lines to test parameter passing
* include/hbdefs.h
* deprecated HB_TCHAR_*() macros with HB_LEGACY_LEVEL4
Everyone pls move on to Str API calls and hbwinuni.h
macros.
* include/hbexpra.c
* include/hbexprb.c
* include/hbwmain.c
* applied uncrustify fixes
* harbour/include/hbdefs.h
* harbour/src/common/hbwin.c
+ added new C function hb_wctomblen()
* harbour/include/hbapi.h
* harbour/src/vm/cmdarg.c
+ added new C functions hb_winmainArgVBuild() and hb_winmainArgVFree()
These functions are available only in MS-Windows builds and they
use GetCommandLine() and GetModuleFileName() to build argument list.
* updated to operate on MS-Windows unicode buffers if possible.
* harbour/src/vm/hvm.c
* initialize MS-Windows application startup parameters in hb_vmInit()
* free MS-Windows application startup parameters in hb_vmQuit()
* harbour/include/hbwmain.c
* do not build argument list HB_VM_STARTUP mode - leave this job to
new functions
* harbour/src/rtl/teditor.prg
* harbour/src/rtl/memoedit.prg
% do eliminated NextKey() calls to avoid unnecessary key polling
It also fixes key dropping in small typeahead buffers.
* harbour/src/rtl/dbedit.prg
% do eliminated NextKey() calls to avoid unnecessary key polling
* harbour/src/rtl/getsys.prg
* harbour/src/rtl/tgetlist.prg
! fixed active loops (100% CPU usage)
* harbour/src/rtl/gtsln/gtsln.h
! define REAL_UNIX_SYSTEM in AIX builds - thanks to Luiz Rafael Culik
for the information
* harbour/src/rtl/achoice.prg
% replaced Empty( NextKey() ) with NextKey() == 0
* harbour/src/rtl/gtsln/gtsln.h
! define REAL_UNIX_SYSTEM in AIX builds - thanks to Luiz Rafael Culik
for the information
* harbour/src/rtl/hbinet.c
* uese hb_parni()/hb_retni() instead of hb_parnl()/hb_retnl() for int
values
* harbour/src/rtl/hbgtcore.c
! comment cleanup
* harbour/contrib/hbwin/win_svc.c
! eliminated HB_TCHAR_* macros
* harbour/include/hbapi.h
* harbour/src/vm/cmdarg.c
! fixed to compile without UNICODE macro
+ added new C functions: hb_cmdargBaseProgName(), hb_cmdargPushArgs()
* marked places which needs TCHAR conversions in MS-Windows builds
* harbour/src/vm/hvm.c
* use hb_cmdargPushArgs()
* harbour/src/rtl/hbproces.c
! fixed to compile without UNICODE macro
* harbour/src/rtl/gtxwc/gtxwc.c
* modified code to set window title to always operate on UTF8 values
* use hb_cmdargBaseProgName()
* harbour/src/rtl/gtwvt/gtwvt.c
* harbour/contrib/gtwvg/gtwgud.c
* harbour/contrib/gtwvg/gtwvgd.c
* harbour/contrib/gtalleg/gtalleg.c
* harbour/extras/gtwvw/gtwvwd.c
* use hb_cmdargBaseProgName()
* harbour/contrib/hbodbc/odbc.c
! keep references to parent handles in sub-handles pointer structures
; please make real life tests if it works correctly
* harbour/include/hbexpra.c
* indenting
* harbour/package/harbour.spec
! fixed ssl library detection
* harbour/contrib/hbnetio/netiosrv.c
! fixed parameters numbers in NETIO_COMPRESS()
* harbour/config/linux/libs.mk
* harbour/config/bin.mk
! use pthread in linked library list if shared linking is enabled
! do not strip system libraries in shared mode - some systems
(i.e. RH7.3) needs pthread to be given at link time to create
correct MT programs and now harbour shared library is only in MT.