* harbour/contrib/rddads/ads1.c
* enable workaround code added in previous commit only for ACE 9.00.
If other ACE clients need it too then please report them.
Fernando reported that 9.10 is fixed.
* harbour/contrib/rddads/ads1.c
! added workaround for ACE bug: character fields longer then 23 bytes are
increased by one byte when read by AdsGetField().
* contrib/hbwin/Makefile
+ contrib/hbwin/legacy.c
+ Added deprecated compatibility wrappers:
MESSAGEBOX(), ANSITOWIDE(), WIDETOANSI(), OLE2TXTERROR().
+ Added deprecated compatibility wrapper TOLEAUTO for HB_OLEAUTO
class. This is probably not enough as there are other remaining
incompatibilities.
; TODO: users needing this please tweak it further.
+ Added deprecated compatibility wrapper hb_oleWideToAnsi(), which
now calls hb_mbtowc(). Not fully compatible for error cases, old
one could return NULL in some cases.
; TODO: Switch to hb_mbntowc().
+ Added deprecated compatibility wrapper hb_oleAnsiToWide(), which
now calls hb_wctomb(). Not fully compatible for error cases, old
one could return NULL in some cases.
; TODO: Switch to hb_wcntomb().
* contrib/hbwin/win_misc.c
+ Added WAPI_MESSAGEBOX()
+ Added WIN_ANSITOWIDE() (rewritten using common API. Please check.)
+ Added WIN_WIDETOANSI() (rewritten using common API. Please check.)
; NOTE: ANSI/WIDE conversions aren't 100% compatible for error
situations and empty strings. Old version could return NIL
in certain situations.
; None of these were tested besides successful compile.
* harbour/source/vm/runner.c
% optimized memory allocation for symbol tables used in loaded .hrb
files to store whole symbol table with all symbol names in single
memory block. It makes HVM cloned table structure synced with the
one used by runner.c fixing possible static memory leak.
* utils/hbmk2/hbmk2.prg
! Fixed to accept any kind of parameter with -runflag= switch.
! Fixed to not call hb_FSetAttr( ".hbmk", FC_HIDDEN ) for *nix systems.
This creates inaccessible dirs for some reason.
! Fixed to not beep in -hbrun mode.
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Added -tshead=<file> option to create a .ch header with
build timestamp information in it: _HBMK_BUILD_DATE,
_HBMK_BUILD_TIME_, HB_BUILD_TIMESTAMP_.
* -opt/-noopt -> -optim/-nooptim to avoid name ambiguity.
+ Added feature to -vcshead= to create a locally rolled
build number if there is no version control system detected.
In this case _HBMK_VCS_TYPE_ will be defined as "hbmk"
and _HBMK_VCS_ID_ will be initialized with a string, starting
with "1" and incremented on each hbmk2 call.
* Internal change to componentize hbmk2 functionality, clearing
away all STATIC vars and some parameter passing hacks.
Work in progress, TODO added.
! Fixed cosmetic bug in debug output when making .po.
* source/rtl/mlcfunc.c
! Fixed warning appeard in latest change.
* source/rtl/trim.c
* source/compiler/hbfunchk.c
- Removed HB_EXTENSION protected second extended parameters
from RTRIM() and ALLTRIM(). If you miss this option, please
report it on the list, we may readd such functionality under
some different name.
INCOMPATIBLE for HB_EXTENSION builds.
* doc/dirstruc.txt
* bin/hb-func.sh
* utils/hbmk2/examples/contribf.hbp
- contrib/hbole
* contrib/Makefile
+ contrib/hbwin/oleinit.c
+ contrib/hbwin/olecore.c
+ contrib/hbwin/hbwinole.h
+ contrib/hbwin/oleauto.prg
+ contrib/hbwin/tests/sample.odt
* contrib/hbwin/tests/testole.prg
- contrib/hbwin/win_tole.prg
- contrib/hbwin/win_ole.c
+ contrib/examples/hboleold
+ contrib/examples/hboleold/tests
+ contrib/examples/hboleold/tests/testole.prg
+ contrib/examples/hboleold/win_tole.prg
+ contrib/examples/hboleold/win_ole.c
+ contrib/examples/hboleold/Makefile
* Replaced old hbwin OLE implementation with
new implementation in hbole. Thanks to
Mindaugas Kavaliauskas for the new implementation.
Those who need the old implementation in the
meantime for any reason, can find it in contrib/example/hboleold.
; TODO: Fill the few missing features (ActiveX/FiveWin
compatibility).
* ChangeLog
* Marked two TODO/TOFIX done.
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_tprn.prg
* contrib/hbwin/tests/testprn.prg
* contrib/hbwin/win_prn1.c
! Trying to restore these files with their revision history,
after recent removal.
* harbour-win-spec
* harbour-wce-spec
* bin/hb-func.sh
* doc/dirstruc.txt
* doc/whatsnew.txt
- contrib/hbwinprn
* contrib/Makefile
* contrib/hbwin/Makefile
+ contrib/hbwin/win_prn1.c
+ contrib/hbwin/win_prn2.c
+ contrib/hbwin/win_tprn.prg
+ contrib/hbwin/tests/testprn.prg
* utils/hbmk2/examples/hmg.hbp
* utils/hbmk2/examples/fwh.hbp
* utils/hbmk2/examples/contribf.hbp
! Undone undiscussed (worsened by recent mailing list problems)
changes done in previous two commits.
The direction in Harbour is that we try to gather all
Windows specific functionality into one contrib (hbwin),
if there is a fault or missing feature we fix it at the
proper place (in this case in hbole) instead of splitting
hbwin lib into pieces.
; TOFIX: Refix deleted change history for "moved" files.
; TODO: Move hbole to hbwin and fix missing OLE bits in hbwin.
* ChangeLog
! Fixed duplicated header in one of the entries after prev two commits.
* utils/hbmk2/hbmk2.prg
! Fixed not recognizing -incpath/-inctrypath
! Removed prioritizing own C compiler when detecting
C compiler. This resulted in msvc64 not being recognized
when using an MSVC build of hbmk2.
+ Added -instpath= option to specifiy dirs where target gets
copied after a successful build.
* harbour/source/rtl/filesys.c
+ added support for millisecond precision in hb_fsGetFileTime()/
hb_fsSetFileTime() in Linux builds. Please note that file time
precision depends also on used file system and Linux kernel so
it does not have to work in all cases.
* utils/hbmk2/hbmk2.prg
+ Added -hbrun option which will run the target without trying to
build it. If target is missing, the command will fail.
+ -run/-hbrun options will now run GUI target executable using 'start'
command on Windows platforms so that hbmk2 will return and leave
the app running.
* include/hbextern.ch
+ Added HB_GZPUTC().
* include/hbsetup.ch
- Removed HB_EXTENSION from documented list of build modified macros.
* source/common/hbverdsp.c
- Deleted HB_EXTENSION dependent part.
* source/rtl/mlcfunc.c
- Deleted HB_EXTENSION branch. Please modify your program to
use Set( _SET_EOL ) instead of passing EOLs explicitly to
memo functions. This works also in xhb.
INCOMPATIBLE when for HB_EXTENSION builds.
* source/rtl/alert.prg
! Minor in comment.
* source/rtl/saverest.c
- Removed SAVESCREEN()/RESTSCREEN() extra "lNoCheck" parameter
when HB_EXTENSION is enabled. Please report on the list
if you need this functionality.
* source/compiler/hbfunchk.c
! Fix to prev: AT() declaration.
; TODO: Clean rest of HB_EXTENSION stuff.
* contrib/xhb/hbcompat.ch
+ Added HB_GETENV() <-> GETENV() conversions.
+ Added MEMOWRIT() translation for xhb sources.
* source/rtl/at.c
* source/rtl/gete.c
* source/rtl/memofile.c
- Deleted HB_EXTENSION branches. Users of extended
GETENV(), GETE(), AT() and MEMOWRIT() functionality
will have to use hbcompat.ch to stay compatible with xhb
(this isn't needed for MEMOWRIT()).
INCOMPATIBLE change for those who enabled HB_EXTENSION
in Harbour. Hopefully xhb will implement HB_AT() and
HB_GETENV() in the future so hbcompat.ch will become
unnecessary.
* include/hbextern.ch
+ source/rtl/radiobhb.prg
* source/rtl/radiobtn.prg
* RADIOBUTTON() Harbour extension moved to a separate file
to cause no harm for programs defining this function locally.
At the same time, HB_EXTENSION protection got removed so
it can be accessed in default builds as a RADIOBUTTO()
alternative.
* 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.