* utils/hbmk2/hbmk2.prg
+ show warning and offer best practice when non-portable
".exe" extension is used in -o option
+ show warning and offer best practice when non-portable
"*.lib" library name is passed directly to hbmk2
* src/codepage/l_sv.c
+ NOTE with Klas's explanation of the extra chars
included over the Swedish alphabet
+ 4 new characters add to the Swedish
collation as per Klas's guidance:
https://groups.google.com/d/msg/harbour-devel/13ImOaYoq8o/B-mDY708EpcJ
(and its followup)
* utils/hbmk2/hbmk2.prg
! very minor fix where -hbc= options list value
items are now trimmed from spaces.
* config/aix/gcc.mk
* config/beos/gcc.mk
* config/bsd/clang.mk
* config/bsd/gcc.mk
* config/bsd/pcc.mk
* config/cygwin/gcc.mk
* config/darwin/clang.mk
* config/darwin/gcc.mk
* config/dos/djgpp.mk
* config/global.mk
* config/hpux/gcc.mk
* config/linux/clang.mk
* config/linux/gcc.mk
* config/linux/sunpro.mk
* config/minix/ack.mk
* config/minix/clang.mk
* config/minix/gcc.mk
* config/os2/gcc.mk
* config/qnx/gcc.mk
* config/sunos/gcc.mk
* config/sunos/sunpro.mk
* config/symbian/gcc.mk
* config/vxworks/gcc.mk
* config/vxworks/global.mk
* config/wce/mingwarm.mk
* config/win/clang.mk
* config/win/mingw.mk
* utils/hbmk2/hbmk2.prg
* README.txt
* envvar renamed HB_CCPOSTFIX -> HB_CCSUFFIX
INCOMPATIBLE. (I surmise few people need this,
hence no grace period)
* contrib/hbmemio/tests/test.prg
* minor cleanup
* 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
* utils/hbmk2/hbmk2.*.po
* utils/hbmk2/hbmk2.prg
+ help text added for .hbc directives
+ added -longhelp/--longhelp option which will include
envvars, .hbc directives and maybe future details
+ added -depfinish=, -harbourhelp, -ldflag+=, -dflag+=
to help text
+ -depfinish= will now show a warning if non-existing
name is passed to it as parameter.
+ all warnings will now go to stderr (some were going to
stdout before)
+ added -dflags=, -dflags+= .hbc directives in sync with
existing options
* 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.
* utils/hbtest/hbtest.prg
+ will now recognize -help and --help options to
display help
- utils/hbmk2/hbmk2.1
- utils/hbtest/hbtest.1
* config/postinst.hb
- deleted platform specific "man"-files, which were
either outdated (hbmk2) or the exact same as regular
help output (hbtest). They are also extremely
inconvenient to edit with regular text editors, plus
keeping two similar docs in sync is very inefficient
so pbly it's better idea to create .md output from
the tools themselves and convert those to man
format using an automated tool like md2man.rb.
* utils/hbmk2/hbmk2.es_PE.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.pt_BR.po
* updated one string in sync with hbmk2.prg
* utils/hbmk2/hbmk2.prg
* update in a comment
* utils/hbmk2/hbmk2.prg
+ help text added for envvars, disk files and macros
supported by hbmk2
+ HB_CCSUFFIX envvar support added. Works the same as
HB_CCPOSTFIX, only with a new name
* HB_CCPOSTFIX envvar deprecated with HB_LEGACY_LEVEL4
* hbmk[ "cCCPOSTFIX" ] hbmk2 plugin variable renamed to
hbmk[ "cCCSUFFIX" ]. INCOMPATIBLE. Update your plugin
source if you used this.
* src/3rd/tiff/Makefile
- disabled JPEG support in libtiff.
I'm leaving tuning this to someone with more interest
in this feature, or wait until libtiff is synced with
latest jpeg lib changes. (Still related to the mess
they are making with boolean types that collide with
each other and certain platform ones.)
* contrib/hbssl/hbssl.hbm
* suppressed a gazillion of warnings where Apple was
telling us that OpenSSL - as a whole - is deprecated
since OS X Lion 10.7
* src/3rd/tiff/tiff.dif
* src/3rd/tiff/tiffconf.h
! fixed a zillion warnings when compiled on OS X
* config/bsd/clang.mk
* config/darwin/clang.mk
* config/linux/clang.mk
* config/minix/clang.mk
* config/win/clang.mk
! applied gcc/mingw 'HB_BUILD_WARN := no' settings to clang
* src/3rd/tiff/Makefile
! fixed regression due to strange change in jpeglib 9
related to bool type
* bin/3rdpatch.hb
* bin/commit.hb
* contrib/hbblink/blinker.prg
* contrib/hbxpp/runshell.prg
* utils/hbmk2/hbmk2.prg
% replaced hb_GetEnv() calls with GetEnv() where the
Harbour extension parameter was not used
* src/rtl/gete.c
! synced comment with reality
* ChangeLog.txt
+ missed one fix from prev log entry
* 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.
* ChangeLog.txt
+ added encoding information to the header, which is UTF-8
from now on. It means that high chars are now allowed,
but ONLY in UTF-8 encoding. Configure your editor accordingly.
+ added SVN props for UTF-8.
* contrib/hbblink/blinker.prg
* contrib/hbxpp/runshell.prg
! RUNSHELL()/SWPRUNCMD() fixes for *nix systems.
* src/codepage/l_hu.c
* comment made bit more precise
* src/codepage/cpua866.c
+ comment added about the different from standard
Ukrainian collation
* 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.
* src/codepage/cpsviso.c
! fixed codepage from ISO-8859-1 to ISO-8859-15, which
is needed to be able to represent all characters in the
current Swedish collation. Though it turns out these
offending three chars are not part of the Swedish alphabet.
So here I'm finishing and letting others to fix the rest
if there is any.
* README.txt
+ added reminder in TROUBLESHOOTING for users who prefer
to install various Harbour version into system locations.
Advice for millionth time: Never install unstable Harbour
versions to system locations.
+ src/codepage/l_sr_cyr.c
+ src/codepage/l_sr_lat.c
* src/codepage/cpsr646.c
* src/codepage/cpsr646c.c
* separated collations from the two correct SR CP modules
; TOFIX: ? This page suggests that there are latin digraphs
that should be specially sorted:
https://en.wikipedia.org/wiki/Serbo-Croatian#Writing_systems
* src/codepage/cpsrwin.c
* changed to utilize the standard Serbian cyrillic collation to
the same used by SR646C CP module. Old one seemed
quite wrong though I'm not even remotely expert in Serbian.
[INCOMPATIBLE]
If you use "SRWIN" for indexing, make sure to reindex
; Verify me
* src/codepage/cpua866.c
* changed to utilize the standard UK (Ukrainian) collation to
the same used by all other Ukrainian CP modules. The old
one missed the characters:
U+0490 (UPPER) - http://codepoints.net/U+0490
U+0491 (LOWER) - http://codepoints.net/U+0491
According to this page, these two chars are part of the
Ukrainian alphabet:
https://en.wikipedia.org/wiki/Ukrainian_language#Alphabet
; TOFIX: RUISO:
This has 4 extra character pairs compared to all
other Russian CP modules:
UPPER:
U+0401 - http://codepoints.net/U+0401 (Russian alphabet)
U+0404 - http://codepoints.net/U+0404 (Ukrainian alphabet)
U+0407 - http://codepoints.net/U+0407 (Ukrainian alphabet)
U+040E - http://codepoints.net/U+040E (Belarusian alphabet)
LOWER:
U+0451 - http://codepoints.net/U+0451 (Russian alphabet)
U+0454 - http://codepoints.net/U+0454 (Ukrainian alphabet)
U+0457 - http://codepoints.net/U+0457 (Ukrainian alphabet)
U+045E - http://codepoints.net/U+045E (Belarusian alphabet)
From the above I surmise that it'd be better if
above chars would be part of std russian collation,
though neither I'm an expert nor I'm sure that putting
them to the end of the collation does anything good,
in which latter case, it'd be better be removed from RUISO.
For sure though that U+401/U+0451 should be added to std
collation in l_ru.c.
Any comments from Russian-breathing Harbourers?
* 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
- src/codepage/l_ua.c
+ src/codepage/l_uk.c
* src/codepage/cpua1125.c
* src/codepage/cpua1251.c
* src/codepage/cpuakoi8.c
! renamed to be in sync with ISO language code
and src/lang/uk.c filename
* src/codepage/cpsviso.c
! fixed wrong conversion in prev. Turns out code 140, 156 and 159
are not part of the ISO-8859-1 CP:
[ https://en.wikipedia.org/wiki/ISO/IEC_8859-2 ]
; NOTE: To Klas: I'd appreciate if you could test both SVISO
and SVWIN if they work exactly like before.
It probably will be wrong and if it's so probably it
should be converted to raw form, or even better to
use ISO-8859-15 CP, which does contain the required
Swedish letters:
[ https://en.wikipedia.org/wiki/ISO/IEC_8859-15 ]
* src/codepage/cp_tpl.c
* updated for UTF8
* src/codepage/cphr646.c
* src/codepage/cpsl646.c
* src/codepage/cpsr646.c
! fixed escape chars wrongly converted in prev commit
* src/codepage/cpsr646c.c
+ converted to UTF-8.
; TODO: test it.
* tests/cpinfo.prg
+ generate UTF-8 CP modules when using Harbour builds.
; NOTE: Now all CPs are using UTF-8 (#define HB_CP_UTF8)
so now we may well delete the non-UTF-8 mode and
the extra flag as well.
* 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)
* src/codepage/cpcs852.c
* src/codepage/cpsk852.c
! changed to forced binary (raw) format by regenerating them from
Harbour with a patched cpinfo.prg. It resolves the clang hang
on OS X after upgrading to Xcode 4.6 with clang 'Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn)'
Besides the above two, more cp sources are still generating
warnings about invalid CP used, and these are the only remaining
Harbour sources that use non-UTF-8 and non-7-bit ASCII chars
(see 2012-07-22 16:09 UTC+0200), so probably it'd be best to fix
them all either this way, or some other, f.e. by storing them
as UTF-8.
* tests/cpinfo.prg
* minor in output formatting
* harbour/contrib/hbct/ctwin.c
! fixed default translation in GETSCRUC() for control characters
* harbour/package/harbour.spec
* updated for new files in bin dir