* utils/hbmk2/hbmk2.*.po
* utils/hbmk2/hbmk2.prg
+ do not share plugin variables (hbmk[ "vars" ])
between different plugins. It avoids potentially nasty
issues with plugins stepping onto each other's toes.
[INCOMPATIBLE - though it's unlikely anyone is
affected. If you must communicate between plugins,
use public function or variable.]
+ clarified in help that -icon might not work on all
platforms/compilers and detailed Windows implementation
(in particular it's disabled on bcc/bcc64 and on
mingw it won't work when a manual .rc is specified,
also on some (old?) msvc versions. Consult your
C compiler's Windows resource handling limitations.)
+ clarified in help the syntax of filters
+ clarified in help that .hbp references are handled as
sub-projects
+ clarification to command substitution macro
+ clarification to filter syntax note
! strict parameter checks in all public shell APIs to
avoid RTEs inside hbmk2 due to faulty API usage by scripts
* utils/hbmk2/examples/plug_bis.hb
* updated according to latest plugin changes
* include/harbour.hbx
* include/hbapi.h
* src/vm/debug.c
* src/vm/hvm.c
+ added internal function hb_vmInternalsEnabled()
to query whether potentially sensitive internals
are allowed to be accessed by public Harbour APIs
+ added .prg level function __vmNoInternals()
to disable potentially sensitive internals
by default accessible via public APIs.
Intentionally a one-way function: once disabled,
it cannot be reenabled from .prg or .c level.
NOTE: It will break Harbour debug functionality,
so it'd will be useful for hbrun scripts and
release (non-debug) builds.
+ modified internal __dbg*() functions to return
dummy values when internals are disabled via
__vmNoInternals() functions. While the function
return types are kept, apps relying on their
specific values and certain relationships between
them might break.
; NOTE: In the future, some more internals might
be protected by this setting (f.e. low-level
object and class functions and some API from
hbdebug lib)
; Please review
* tests/debugtst.prg
! fixed to compile warning-free without lowering
warning level
! fixed to run RTE-free with internals disabled
* bin/3rdpatch.hb
* bin/commit.hb
* config/postinst.hb
* contrib/make.hb
* contrib/hbtest/hbtest.ch
* src/debug/*.prg
* src/rtl/tclass.prg
* utils/hbmk2/examples/plug_bis.hb
* utils/hbmk2/examples/plug_tpl.hb
* use short form #pragmas (the ones identical
to Harbour options)
; NOTE: Except -l which works reversed compared
to cmdline -l option. TOFIX? (I tried and failed)
* src/rtl/hbi18n2.prg
* contrib/xhb/tfile.prg
* use F_ERROR instead of -1 literal
* contrib/xhb/xhbtedit.prg
! replaced dirty xhb extension with std SubStr() call
Reported by Tony Quick
[pls report such bugs on Harbour devl list]
* contrib/hbodbc/todbc.prg
! Don't continue ::Open() when SQLExecDir() have error
Fix from xhb via Vicente Guerra, with cleanups.
* tests/multifnc/multifnc.hbp
+ added comment
+ support for watcom
* tests/multifnc/t1.prg
! missing file ending EOL
* tests/*.prg
* extras/gtwvw/tests/wvwtest9.prg
* formatting
* utils/hbmk2/hbmk2.prg
+ documented hbmk2 plugin API calls
+ documented hbmk2 plugin variables
+ added license to the end of -longhelp[md] output
! fixed to do strict parameter checking in all
public plugin API calls (where missing) to avoid
RTEs inside hbmk2 code due to faulty plugin code
+ hbmk_FuncNameEncode() added with same functionality
as hbmk_FNameToSymbol()
- hbmk_FNameToSymbol() deprecated. Will disappear
after HB_LEGACY_LEVEL4.
INCOMPATIBLE. Change hbmk_FNameToSymbol() to hbmk_FuncNameEncode().
* changed parameters of hbmk_FNameEscape().
New calling convention requires the hbmk context to be passed
as first parameter and it doesn't support the last two
numeric values anymore. Will accept old calling convention
till HB_LEGACY_LEVEL4 (untested though).
INCOMPATIBLE. Change these:
hbmk_FNameEscape( cFileName, hbmk[ "nCmd_Esc" ], hbmk[ "nCmd_FNF" ] )
to this:
hbmk_FNameEscape( hbmk, cFileName )
* following hbmk2 plugin variables are deprecated and will
disappear after HB_LEGACY_LEVEL4:
"nCmd_Esc", "nScr_Esc", "nCmd_FNF", "nScr_FNF"
+ added new hbmk2 plugin variable:
"apiver"
it will return an integer with the plugin API
compatibility level. Currently 2, will change to 3
after HB_LEGACY_LEVEL4. For compatibility, use this
to retrieve it in plugins:
apiver := iif( "apiver" $ hbmk, hbmk[ "apiver" ], 1 )
! fixed to split certain long help section headers
* utils/hbmk2/hbmk2.prg
+ documented the way to exclude libraries from linking
(see '-l' option and 'libs=' directive)
+ documented '-hbcontainer' target type (no longer
experimental)
* '-hbimplib' option marked as Windows-only in help
* '-hbimplib' option moved to long help
* '-mt/-st' option moved to top of long help (to keep main
help screen short)
* doc/tracing.txt
- deleted obsolete options from examples
* utils/hbmk2/hbmk2.prg
+ added HBSHELL_CLIPPER() shell/script API call, which
configures the environment to be Clipper (non-Unicode)
compatible. Identical to the default environment of
compiled .prg apps. It's not recommended for new
scripts, but it may be useful to run legacy code
as script.
+ added '-license'/'--license' option to display the
license of hbmk2
* formtting made hbformat friendly, minor optimizations
* README.txt
! fixed minor typo in project description
* website/index.html
+ updated project description with the one on sf.net
and in README.txt
* contrib/hbgd/tests/digits/odw.gif
* contrib/hbgd/tests/imgs_in/gdlogo.png
* contrib/hbhpdf/tests/files/*.png
* website/images/*.png
* website/samples/screenshots/*.png
% optimized
- website/samples/screenshots/*_w32.png
+ website/samples/screenshots/*_win.png
* website/samples/screenshots/*.html
* w32 -> win
* utils/hbmk2/hbmk2.prg
+ support '-version', for local consistency with other
(regular) double dashed options
+ will now warn if .lib/.a extension is used with -hblib/-hbimplib
modes or .dll extension with -hbdyn/-hbdynvm modes in -o option value.
It's unnecessary unless you want to make your .hbp file non-portable.
* contrib/hbtest/core.prg
! fixed to trim line ending spaces in output
! fixed to handle RTEs with values containing control chars
* use hb_StrReplace() instead of repeated StrTran()s
! set language to EN while evaluating the test expressions
so that RTEs come in one common language
! fixed to escape more control chars in strings
! control char escaping missing for Memo strings
* hbformatted (with 1 manual correction)
* utils/hbtest/hbtest.prg
! fixed to trim line ending spaces in output
! fixed to handle RTEs with values containing control chars
* made more hbformat friendly
* contrib/hbtest/tests/test.prg
+ added self-tests
* contrib/xhb/xhbmemo.prg
* space
* src/compiler/ppcomp.c
+ '#pragma nostartproc=' / '#pragma -n' will now return
a permanent error. The compiler doesn't support (for
longer than I can remember) on the fly modifying this
option. Reading the option continues to be supported.
[INCOMPATIBLE] in that t now will generate an error
instead of being silently ignored.
* doc/pragma.txt
* marked 'nostartproc' #pragma as read-only
* example to feature another pragma instead of 'nostartproc'
* utils/hbmk2/hbmk2.prg
* FuncNameEncode(): minor code cleanup
* doc/gtapi.txt
* doc/pragma.txt
* date formatting
* ChangeLog
* closed two recent TOFIXes
* utils/hbmk2/hbmk2.hbp
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/Makefile
! fixed to not run shell in corner case of:
hbmk2 -plugin=my.hb [...]
+ documented one missing script/shell API
+ refactored hbmk2/hbshell code to not utilize file wide
STATIC variables. It allows to _compile_ hbmk2.prg
regardless of -n option usage
+ added some black magic to be able to _run_ hbmk2.prg
with or without using -n option
+ additional tricks to avoid defining any unnecessary
or potentially colliding public functions. It means
hbmk2/hbrun can now run _itself_ as a script.
both as .hrb and .prg flavor and regardless of
-n option usage.
* contrib/hbcurl/hbcurl.ch
+ added HB_CURLFTP_CREATE_DIR* constants
* contrib/hbcurl/tests/ftp_uldl.prg
! updated FTP test URL
* cleaned configuration parameters to be strictly
in sync with libcurl docs
+ do not disable SSL host/peer verifications
* tests/testhrb.prg
* src/vm/runner.c
* misc comment cleanup
* tests/testhtml.prg
* code cleanup
* contrib/gtwvg/gtwgud.c
* contrib/gtwvg/gtwvgd.c
* contrib/hbgt/bitflags.c
* contrib/hbmysql/readme.txt
* contrib/hbmysql/tests/dbf2mysq.prg
* contrib/hbmysql/tsqlbrw.prg
* contrib/hbtip/mail.prg
* contrib/rddads/ads1.c
* contrib/xhb/dumpvar.prg
* contrib/xhb/xhbmemo.prg
* contrib/xhb/xhbtedit.prg
* doc/gtapi.txt
* extras/gtwvw/gtwvwd.c
* extras/hbxlsxml/tests/example.prg
* extras/httpsrv/uhttpd.prg
* src/debug/dbgtarr.prg
* src/debug/dbgthsh.prg
* src/lang/l_sk.c
* src/rdd/dbfcdx/dbfcdx1.c
* src/rdd/usrrdd/rdds/arrayrdd.prg
* src/rtl/filesys.c
* src/rtl/gtos2/gtos2.c
* src/rtl/gtwvt/gtwvt.c
* src/rtl/net.c
* src/rtl/teditor.prg
* src/vm/thread.c
* website/news1.html
* cleaned all remaining national/misc dates
to be in ANSI format (YYYY.MM.DD)
* utils/hbmk2/hbmk2.prg
! fixed -find to continue search for substrings
after a full match (f.e. hbmk2 -find str)
+ documented shell script API calls
+ new help section format for above
+ ensure -n2 build and enable warning settings to
help building into an .hrb
(quite fun to run hbmk2/hbrun as a hbrun script!)
! FuncNameEncode() "fixed" to be in sync with how
Harbour compiler (incorrectly) encodes function names.
This fixes: 'hbmk2 1.prg'
; TOFIX: ? hb_compGenCFunc() in src/compiler to encode
the first character of a function if it's a digit.
* doc/pragma.txt
* src/pp/ppcore.c
! fixed '#pragma nostartproc'. Only 'off' worked, 'on'
was silently ignored since who-knows-when (pointer to
int type received HB_BOOL value). Now it will accept
a numeric value in sync with '-n' option. [INCOMPATIBLE]
; TOFIX: It still doesn't work. Not does existing '#pragma -n2'
Pbly it's too late to set this while compiling,
or it needs deeper modifications.
Or delete if unfixable.
--- test_n2.prg
#pragma tracepragmas=on
#pragma -n2
#pragma -w3
STATIC stat := "stat"
PROCEDURE Main()
? stat /* ISSUE: warning appears without cmdline -n2 option */
RETURN
---
$ harbour test_n2
$ harbour test_n2 -n2
* README.txt
* minor sync with hbmk2 help
* harbour/src/codepage/l_sr_cyr.h
! restored original Serbian collation by Srdjan Dragojlovic - thanks.
* harbour/src/codepage/cpsr646c.c
! use special collation version for Serbian ISO-646C (Cyrillic YUSCII).
AFAIK it should be the same order as in Serbian ISO-646 (Latin YUSCII)
so user can dynamically switch between both encodings and still use
the same binary indexes. If I'm wrong then Serbian users will have to
fix me.
* 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
* src/codepage/*.c
- src/codepage/l_*.c
+ src/codepage/l_*.h
* src/lang/Makefile
- src/lang/*.c
+ src/lang/l_*.c
+ renamed collation modules and language modules, so they
now can be merged into a single directory (and sorted
by extension to overview country coverage).
* src/common/hbstr.c
+ added missing some C escaped chars: \a, \f, \v
INCOMPATIBLE: thus far they had been converted to
char 'a', 'f', 'v' respectively.
e"" string literals, HB_STRCDECODE(), HB_STRDECODESCAPE()
are affected.
* utils/hbmk2/hbmk2.prg
! avoided one ASCII code dependent comparison
! added missing value value validation for -incpath= option
* minor internal cleanups
* utils/hbmk2/hbmk2.prg
+ reminaing STRTRAN() to HB_STRXCHG() update.
* converted few NOTEs to TODOs to eliminate few
cases of recursive macros (which exploited side-effect
of repeated STRTRAN() calls)
; Any sort of regression is possible now.
* utils/hbmk2/hbmk2.prg
! fixed casing of hb_StrXChg() to match harbour.hbx
! fixed to not include and invalid header directory
in a rare case (hbmk2 -head=native t.c -hbc -inc)
on header detection. It seemed a duplicate value
in valid cases anyway.
+ using HB_STRXCHG() with the new hash option almost
everywhere
+ use HB_STRXCHG() in some more places when forming
command (no everywhere yet, and the recursive
replacement was localized but not sorted out yet)
+ use HB_STRXCHG() to replace macros in an internal
template
; HB_STRXCHG() can resolve unlikely case where
options/filenames contained macro names used inside
the source. It also makes for a less ambiguous code.
+ added warnings if invalid value is used in certain
options. (after HB_LEGACY_LEVEL4, until then, the
replacement option is displayed)
* src/rtl/tget.prg
* utils/hbmk2/hbmk2.prg
! fixed casing of hb_StrXChg() to match harbour.hbx
* 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()
* src/rtl/tget.prg
% use HB_STRXCHG()
* utils/hbmk2/hbmk2.prg
+ use HB_STRXCHG() for all Markdown conversion
! use HB_STRXCHG() in filter evaluation code. It will
fix potential problem when macro values contained
internal placeholder string
! fixed Markdown conversion in copyright banner
% use \t instead of manual solution
* other minor cleanups
+ added a good bunch of TODOs for remaining places
where STRTRAN() has to be changed to HB_STRXCHG()
I'm only wishing for a syntax that keeps search
and replace values closer together to keep the
source well readable, f.e.:
STRXCHG( str, { ;
{ "{LI}", cLIValue }, ;
{ "{FI}", cFIValue } } )
Though it may be solved with a local wrapper because
they are not speed critical. Ideas welcome.
* utils/hbmk2/hbmk2.*.po
* utils/hbmk2/hbmk2.prg
! fixed most hacks around embedded newlines in hbmk2's
own output messages. Now they are handled natively,
which will fix output that contains "\n" as normal
part of the text, f.e. "C:\name\", and makes the
newlines in .po files standard.
* ChangeLog.txt
* utils/hbmk2/hbmk2.prg
! "Markdown" cased correctly
* src/rtl/strxchg.c
+ SVN props
* contrib/hbtip/httpcli.prg
* cleanups
* 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/httpcli.prg
+ Added: method :Put( xPostData, cQuery ).
This is identical to :Post() but issues PUT verb instead of POST.
PUT verb is required for certain RESTful operations.
* contrib/xhb/hbxml.c
! several memory leaks fixed in xhb XML support (TXml class)
; Patch by Jose F. Gimenez. Thank you very much.
* utils/hbmk2/hbmk2.prg
! fixed -request= to work again for Harbour pcode dynlibs
regression from: 2010-07-31 13:44 UTC+0200 Viktor Szakats
8fb774ef80
(sf.net's SVN web browser is effectively unusable anymore
for certain parts of Harbour, their server cannot handle
the history)
! fixed missing detection for the proper bcc linker option
that disables warning for duplicate symbols in executables
* extras/template/hbtpl.hbp
+ added example to link dynlib against other Harbour (pcode) dynlib
Disclaimer: There is no "generic support" for this,
only a set of conventions used throughout Harbour
contrib .hbc files, contrib/make.hbs and
$hb_pkg_dynlib.hbm (aka utils/hbmk2/pkg_dynl.hbm)
* extras/*/*.hbx
* refreshed
* utils/hbmk2/hbmk2.*.po
* utils/hbmk2/hbmk2.prg
* some internal cleanups
+ invalid libpath detection extended to .hbc files
+ invalid header path detection extended to .hbc files
+ invalid libpath detection extended to an alternate lib directory
+ invalid header/lib path detection now detects some
relative path formats
+ invalid header/lib path detection now detects values
pointing to embedded C compiler location (these are
always invalid and handled by hbmk2 automatically)
; amazing what it takes to protect users from themselves!
I guess users who make above errors won't read the
warnings anyway.
* 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