* doc/cmdline.txt
* doc/howtosvn.txt
+ Added CC copyright.
* source/rtl/alert.prg
* include/hbextern.ch
+ HB_ALERT(). Now this function holds all extended features:
nDelay support and any type for first parameter.
* ALERT() now behaves completely along Clipper version, without
extensions. HB_EXTENSION no longer modifies its behaviour, so
if someone needs these extended features, there is no need to
build with HB_EXTENSION, only ALERT() calls have to be
converted to HB_ALERT(). INCOMPATIBLE (in some scenarios).
* contrib/hbtip/utils.c
% TIP_TIMESTAMP() code cleaned to remove redundancy of
having two full distinct copies of this function. Now
platform independent parts are kept common.
! TIP_TIMESTAMP() fixed hb_parl() to hb_parnl() for 'hours'
parameter. I wonder how this bug wasn't noticed till now.
Please someone test, maybe I'm missing the point of this
parameter, but it's unlikely the intent was a logical value
as it's later converted to timestamp.
* contrib/hbtip/thtml.prg
* contrib/hbtip/sendmail.prg
* contrib/hbtip/httpcln.prg
* contrib/hbtip/ftpcln.prg
* END -> END*
* Minor formatting.
* contrib/hbtip/base64x.c
* contrib/hbtip/smtpcln.prg
* Formatted.
* Minor optimizations (File() -> hb_FileExists(), ::AuthPlain()
simplification).
% BUILDUSERPASSSTRING() rewritten in Harbour. It's a very
simple function.
* utils/hbmk2/hbmk2.prg
+ Added -beep/nobeep/beep- options to enable beep signal
when build is finished. In case of error a double beep
will be heard.
* INSTALL
* Minor formatting.
* harbour/source/rdd/workarea.c
* formatting
* harbour/source/vm/Makefile
* minor cleanup
* harbour/config/dir.cf
! added protection against double build call when -j<n> is used in
install phase
* harbour/source/vm/Makefile
* respect HB_HVM_ALL user settings
! export HB_HVM_ALL value set automatically - otherwise it's not seen
when HBVMMT is compiled
* harbour/source/vm/classes.c
* exteneded :classsel() build in method to repsect scope given as
2-nd parameter and return extended information compatible with
:ClassFullSel() implemented in xHarbour by Francesco Saverio Giudice.
This extended info is returned when 3-rd parameter is .T.
* harbour/source/rtl/dateshb.c
* do not generate RTE on wrong params in HB_STOT() function
* harbour/contrib/xhb/xhbfunc.c
+ added hacked function which allows to send messages without respecting
scope. It works only for the most visible data and does not support
any automatic casting.
* harbour/contrib/xhb/dumpvar.prg
! fixed HB_DumpVar() results on platforms where CRLF has different
length then 2
% small improve in hash item presentation
+ added __objGetMsgFullList() and __objGetValueFullList() as static
functions. Code borrowed form xHarbour by Francesco Saverio Giudice.
* make HB_DumpVar() working with object values.
* utils/hbmk2/hbmk2.prg
! Fixed to not attempt cycling through all specified languages
if target .po or .hbl filename doesn't contain a language macro.
! Fixed to strip encoding from LANG value.
* Some changes to modularize language/encoding detection.
(work in progress)
* source/rtl/tclass.prg
* source/rtl/treport.prg
* source/rtl/tpersist.prg
+ Added support for TIMESTAMP types.
* source/rtl/tclass.prg
% Using SWITCH in AddData()/AddClassData().
* harbour/contrib/xhb/stream.prg
! disabled call to HB_IsByRef(). Such function does not exist in Harbour
and in current xHarbour it does not work.
* harbour/contrib/xhb/hbserv.c
! removed some peaces of not working old code which used pHVMFuncService.
With some calling convention this code can cause application crash on
exit in xHarbour so it should be fixed there too.
* harbour/contrib/xhb/regexrpl.prg
! use HB_ISREGEX() instead of xHarbour only HB_ISREGEXSTRING()
* harbour/contrib/xhb/xhbfunc.c
+ added xHarbour compatible HB_CREATELEN8() and HB_GETLEN8() functions.
They save/restore 64bit signed integers in/from 8 bytes strings.
In Clipper terminology they can be called: LL2BIN()/BIN2LL().
Original xHarbour version of HB_CREATELEN8() and HB_GETLEN8() were
implemented by Giancarlo Niccolai.
* source/rtl/tget.prg
! Fixed to check for ::cType != NIL before
each SWITCH ::cType statments. Thanks to Przemek
for pointing it out.
* source/rtl/alert.prg
% Using hb_CStr() in extended mode. Also thanks to Przemek.
% Some minor opt.
* harbour/include/hbcompdf.h
* harbour/source/compiler/harbour.y
* harbour/source/compiler/harbour.yyc
+ added compile time optimization for switch statements with constant
values, i.e. for code like:
proc main()
local x := 0
switch 3
case 1; x += 100; exit
case 2; x += 200
case 3; x += 300
case 4; x += 400; exit
case 5; x += 505; exit
case 6; x += 606
otherwise; x += 1000
endswitch
? x
return
* harbour/source/debug/dbgwa.prg
! Guard against recursive debugger activation when a user callback
containing debug info is implicitly called from the debugger's workarea
browser. By Phil Krylov borrowed from xHarbour.
* utils/hbmk2/hbmk2.prg
% Applied __I18N_potArrayJoin() tweak to embedded LoadPOTFiles()
function. This hugely boosts .pot merge performance for large
number of these files.
* harbour/utils/hbi18n/hbi18n.prg
% added support for optional reusing hIndex table in repeated calls
to __I18N_potArrayJoin() with the same aTrans array.
* harbour/source/rtl/hbi18n2.prg
% reuse hIndex table in repeated calls to __I18N_potArrayJoin()
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/hbmk2.hu_HU.po
% Optimize to do only one .pot -> .po merge per session
(was one merge per target language)
+ Added screen feedback for .po/.hbl related operations.
% Don't do .po rebuild if no source file has changed.
* utils/hbmk2/hbmk2.prg
! Further fixes to .po file handling functionality after real
life testing. What needs to be handled gracefully is that
it's perfectly normal that a file doesn't have a .pot
file generated (when the source doesn't have any translatable
texts). Unfortunately this situation adds some hard-to-detect
problems which can in turn cause .po translations to be lost.
Since the only current way to detect if translatable texts
exist is to check for the .pot file, if a .pot file is missing
for other reasons (manual deletion, corruption) hbmk will take
it normally and remove related translations from .po files.
I don't know what could be a good solution to this problem.
The other issue is scalability: Since there is no way to
update .po files with only partial .pot information (coming
from recompiled sources in that build session), each build
session has to do a full .pot merge and update (for all
languages). This is slow, if you have some idea how to make
this incremental, please speak up.
Probably we should reverse the logic and take the .po file
(containing translations) as a base, and add new pairs from
_available_ .pots. Pair removal (IOW cleanup) should be an
option, done periodically (before release), but not something
happening in each build session. This would also solve the problem
of retaining old translations, since they will stay there until
we specifically ask the system to remove them. Maybe that's
what we should do. Przemek, what do you think?
* harbour/include/blob.ch
! fixed minor typo
* harbour/source/rdd/dbffpt/dbffpt1.c
! fixed two bugs in garbage collector. One of them was critical and could
cause FPT or DBV file corruption when memoblock size was smaller then 8
bytes. Thanks to Mike Evans for self contain example.
* include/hbexprb.c
+ Allowing user defined 'gettext' functions to be used
under the names hb_i18n_gettext[_strict|_noop]_*(),
where * is a function name postfix.
* source/vm/Makefile
! Disabled HB_HVM_ALL for owatcom/win compiler.
The compiler hangs in hvmall.c (Reported by Marek Horodyski).
Please make tests on other platforms whether it does the same.
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/hbmk2.hbm
- utils/hbmk2/hbmk2.hu_HU.pot
+ utils/hbmk2/hbmk2.hu_HU.po
* Changed hbmk to use official gettext terminology, where
.pot refers to raw extracted translation file, .po refers
to merged .pot files which holds the actual translations.
hbmk switch names and extensions changed accordingly.
! Fixes to .po from .pot generation support.
* utils/hbmk2/hbmk2.prg
! Fixed -pot= option mentioned in prev entry.
! -pot= refinement to handle missing source .pots (which
is normal). Also added/fixed some lng related debug options.
! Remaining debug texts made non-translatable.
; NOTE: It's now possible to handle all aspect of translation
files using hbmk2 alone. (extraction from source ->
creation of unified translation file -> merging this
file with previous version retaining existing
translations -> creation of .hbl file from .pots)
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/hbmk2.hu_HU.pot
+ Added new -pot= switch with which it's possible to create
one .pot file for the whole project. When this switch is
used, Harbour compiler will be run with -j parameter so
that .pot files will be generated.
hbmk will take care of preserving existing translations.
This changes contains parts taken from hbi18n, work of
Przemek, copyright retained.
; TOFIX: For some reason update of existing .pot file with
new one doesn't work. It's probably something obvious
but I cannot see what.
* utils/hbmk2/hbmk2.prg
! Further fixes to texts.
+ Added hb_cdpSelect() call as provision. Also included a few CPs
in executable.
* utils/hbmk2/hbmk2.hu_HU.pot
+ Finished HU translation (probably it could be tweak with
regards to terminology).
* harbour/include/hbcomp.h
* harbour/source/compiler/hbmain.c
* harbour/source/compiler/hbcomp.c
* harbour/source/compiler/compi18n.c
* changed -j<path>/ and -j<file> behavior when more the one .prg file
is compiled. Now when <path>/ is used then it's respected by all
compiler .prg modules. When <file> is used then only single .pot
file is generated but it contains i18n entries from all compiled
.prg modules.
* harbour/ChangeLog
+ added two thanks notes, one to Miguel and using HeapAlloc() and
second to Walter Negro for his DATETIME work in xHarbour what gives
valuable test platform for Harbour and was important inspiration for
Harbour TIMESTAMP implementation.
* harbour/contrib/gtwvg/gtwvg.h
* harbour/contrib/gtwvg/hbgtwvg.ch
* harbour/contrib/gtwvg/gtwvg.c
* harbour/contrib/gtwvg/wvgcore.c
* harbour/contrib/gtwvg/wvgcuig.c
* harbour/contrib/gtwvg/wvgcrt.prg
! Fixed many artifacts. Probbaly it is difficult to jot down all.
* harbour/source/rtl/hbi18n2.prg
+ added new Harbour internal i18n functions:
__I18N_POTARRAYTRANS() and __I18N_HASHJOIN()
* harbour/utils/hbi18n/hbi18n.prg
+ added new switch to hb18n tool:
-a add automatic translations to 1-st .pot file using
translations from other .pot or .hbl files
* contrib/hbole/tests/testole.prg
+ Readded CDO and OO open examples (working).
* utils/hbmk2/hbmk2.hbm
+ Added .hbl file generation.
* utils/hbmk2/hbmk2.prg
+ Added translator info to banner.
! Minor fix to now display job # if single-threaded compilation is done.
(Thanks for __enumBase() trick to Przemek)
* Some steps to better support xhb shared mode (untested).
+ Added filter support for .prg and .c/.cpp input files.
(This also means that input files with '{' '}' char pairs in them
aren't supported anymore).
! Minor terminology fix in one of the rare error messages.
; TODO: ? Adding GNU Make support to .pot -> .hbl generation, plus
we'd also need to develop a common rule for naming and
placement for these translation files. Current hbmk2 method
cannot be considered final.
+ utils/hbmk2/hbmk2.hu_HU.pot
+ Added Hungarian translation (not complete/final yet).
* harbour/contrib/hbole/oleauto.prg
* harbour/contrib/hbole/olecore.c
* added runtime error on descend FOR EACH ICollection enumeration
* added a few more runtime errors
* fixed reference counter managament if OLE object is used as
parameter for another OLE function call
+ implemented array parameter support
TODO/TOCHECK: multidimentional array support
* harbour/contrib/hbole/tests/testole.prg
* changed test to work with current hbole library
+ added new OppenOffice tests
* utils/hbmk2/hbmk2.prg
+ Added experimental and partial support to build using/for xhb.
This is to help some 3rd party lib developers who'd like to
target both compilers. Some aspects of xhb support aren't working
or working slightly differently: Default Harbour switch is
-n instead of -n2 which isn't supported in xhb. Everything
related to dll handling won't currently work. Cross-compiling
won't work either due to at least differences in __PLATFORM__
macros. Anyway, play with it and tweak the source if needed.
I hope we can add support without adding too much hacks into
hbmk2 source, if however we need to bend logic too far, I'd
rather leave those problematic parts of to keep the code
maintainable. F.e. xhb compatible COMP/ARCH values aren't
supported and I don't plan to add them.
Enable support by renaming hbmk2 to have an 'x' prefix: xhbmk2,
or use -xhb command line switch. The only intent is be able
to use hbmk2 to build binaries from sources using xhb compiler
and libs. Also notice that I've made just very light tests
only with bcc55 compiler.
[ notice: xhb support doesn't mean you can compile hbmk2 with
xhb. This wasn't intented or planned. ]
* utils/hbmk2/examples/contribf.hbp
! Fixes.
* utils/hbmk2/hbmk2.prg
* Cleanup: Added few internal constants.
* Cleanup: Some debug strings marked as non-translatable.
+ Help screen forming changed to be friendly to translators.
Please update .pot files.