* utils/hbmk2/hbmk2.prg
* -harbourhelp description detailed
+ documented -build option in help
+ support for -credits option
! fixed indentation in two recent functions
* utils/hbmk2/examples/contrib.hbc
! minor correction
* contrib/hbformat/hbfmtcls.prg
* contrib/hbformat/utils/hbformat.ini
+ allow control for how many spaces to insert (or leave
as is) between comment markers and comment text.
Thanks to Jose F. Gimenez for the bit-perfect patch.
* utils/hbmk2/hbmk2.prg
! fixed libname suggestion in a very obscure case
* utils/hbmk2/examples/contrib.hbc
- utils/hbmk2/examples/contribf.hbc
- deleted further .hbc examples with heavy contrib specific
information. For live .hbc example it's best to check any
of them in /extras/*/ and /contrib/*/ directories
* utils/hbmk2/hbmk2.prg
+ better detection of core libraries specified in user make files
+ hbmk2 will now detect certain common and non-portable/wrong
library specifications in command line and .hbc file.
It will also suggest to correct options to use.
It's now a warning, but such wrong options will be ignored
after HB_LEGACY_LEVEL4.
Report if it causes warnings for proper usage scenarios.
Some examples for wrong options detected:
my.lib
libmy.lib
-lmy.lib
-llibmy.lib
-llibmy.a
-lmy.a
-lC:\libs\my.lib
-lC:\libs\libmy.lib
-lC:\libs\libmy.a
-lC:\libs\my.a
-lC:\libs\hbrtl.a
-lC:\hb30\lib\win\mingw\
-lC:\hb30\lib\win\mingw\my
-lC:\hb30\lib\win\mingw\my.a
-lC:\hb30\lib\win\mingw\hbrtl.a
-lhbrtl.lib
-llibhbrtl.a
-lhbrtl.a
[ For those who wonder: all of these can be safely
replaced with '-lmy -LC:\libs' ]
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/examples/contrib.hbc
* minor internal and help cleanups
- utils/hbmk2/examples/c4w.hbc
- utils/hbmk2/examples/fwh.hbc
- utils/hbmk2/examples/oohg.hbc
- utils/hbmk2/examples/whoo.hbc
- utils/hbmk2/examples/xhgtk.hbc
- deleted example .hbc files for defunct, commercial
or long time untested against 3rd party libs, that
held no real example value anymore. It's best if
these files are shipped by the projects themselves.
* utils/hbmk2/hbmk2.*.po
* utils/hbmk2/hbmk2.prg
+ added all supported filter values/expressions to help.
! fixed case insensitiveness in filter comparison
expressions (=,>,<) to work on non-ASCII chars as well.
(I wouldn't recommend using accented chars to control
build behavior though)
* src/rtl/hbstrfmt.c
* HB_STRFORMAT(): changed to not RTE if there is format
string reference to a parameter missing at runtime,
but instead simply ignore that parameter specifier.
Format strings are primarily meant to help language
translation of human readable strings. Old behavior
could result in very difficult to test or predict
runtime errors caused by typos, mistakes in translation
(.po) files. It may also be unsafe in some situations,
allowing DoS attack.
TODO: To implement parameter checking, Harbour compiler
should handle HB_STRFORMAT() as intrinsic function
and test and warn if the number of parameter specifiers
differs from the actual number of parameters passed,
at compile time. Similar to GCC/CLANG.
* contrib/hbhttpd/tests/files/main.css
* extras/hbdoc/hbdoc.css
* extras/httpsrv/home/css/base.css
* website/css/styles.css
* cleanups and applied http://csscomb.com
* utils/hbmk2/hbmk2.prg
+ ability to output help text in MarkDown format:
hbmk2 --longhelpmd > man.md
view it with any MarkDown compatible viewer, or
convert to HTML/PDF/MANPAGE/TROFF/etc.
* 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