* source/rtl/hbbit.c
+ Added important NOTE about hb_bit*() functions'
relation to the compiler optimization engine.
* source/vm/fm.c
* source/vm/extrap.c
* Log filenames converted to static variables. With the
intent that they'll be converted to Set()s or similar
user settable values in the future, since it's useful
and more elegant to redirect these to the app's normal
logfile.
* contrib/hbsqlit3/hbsqlit3.c
* Minor formatting.
* harbour/common.mak
* harbour/source/rtl/Makefile
- harbour/source/rtl/hbrun.c
+ harbour/source/rtl/hbrunfun.c
* renamed hbrun.c to hbrunfun.c to satisfy non GNU make system
* harbour/contrib/hbw32/w32_regc.c
! fixed typo hb_free() => hb_xfree()
! fixed UNICODE build
* harbour/source/vm/itemapi.c
* changed hb_itemPutC() and hb_itemPutCL() to be safe when
user call it passing string which is stored in item passed
as first parameter. It should fix problem located by Chen.
Please test.
* source/vm/extend.c
! hb_storclen_buffer() fixed to free the passed buffer
in case it couldn't be stored. This situation was
easy to miss and difficult to detect for the caller,
and it might cause leaks.
* contrib/hbw32/Makefile
* contrib/hbw32/common.mak
+ contrib/hbw32/hbw32.ch
+ contrib/hbw32/w32_reg.prg
+ contrib/hbw32/w32_regc.c
+ contrib/hbw32/tests/testreg.prg
+ Added Windows registry handling stuff.
Work of Peter Rees <peter@rees.co.nz> / xhb.
* Code cleaned, formatted, optimized a bit.
+ Added an even simpler interface:
w32_regRead( <reg_path> ) -> xValue
w32_regWrite( <reg_path>, <value> ) -> <lSuccess>
where <reg_path> is: "HKCU\key[\subkeys]\entry"
* source/vm/hvm.c
% Minor opt to __SETPROFILE(), __TRACEPRGCALLS()
! __SETPROFILE() to only set the value if a parameter was passed.
This way it's possible to read the value without destroying it.
* contrib/xhb/hbcompat.ch
! Minor fix in hb to xhb branch.
* contrib/hbcurl/hbcurl.ch
* '( 2 ** n )' expressions changed to actual values.
; We now have these optimized, but I'm committing anyway,
as some folks may be scared away by seeing these, and
not knowing it's optimized (and they might not even be
optimized on some Clipper platforms...).
* contrib/mtpl_vc.mak
! Fixed HB_VISUALC_VER to default to '60' rather than
crashing. Same default is used for core make files
already.
* source/common/hbverdsp.c
- Removed 'CA'.
+ Added word 'compatible' to the 'undocumented' line.
* harbour/include/hbexprop.h
* harbour/include/hbexprb.c
* harbour/source/common/expropt2.c
+ added hb_compExprReducePower() and compile time optimization for:
<NumConst1> ^ <NumConst2>
+ added compile time optimization for:
<NumConst1> % <NumConst2>
when <NumConst1> or <NumConst2> is not integer value
NOTE: both optimizations are not Clipper compatible and disabled
when -kc compiler switch is used
* source/common/hbverdsp.c
! Minor correction.
* Wording/layout. C++/C and ANSI C init mode is now in
one line as "Other build settings".
* contrib/hbcurl/hbcurl.c
+ Comment extended regarding libcurl version requirement.
+ Added version guard (not currently effective).
* include/hbvm.h
* source/vm/hvm.c
* source/vm/extrap.c
! Fixed OS/2 problem reported by David.
(BTW, do we need really need to remove the exception
handler before exiting? If yes, shouldn't we do the
same under Win32?)
* source/common/hbstr.c
! Silenced one 'loss of significant digit' BCC warning.
* source/vm/extrap.c
! Fixed missing header for OS/2.
* source/vm/classes.c
! Minor fix in internal error text.
* contrib/hbcurl/make_b32.bat
* contrib/hbcurl/make_vc.bat
* contrib/hbcurl/hbcurl.c
* contrib/hbcurl/hbcurl.ch
* contrib/hbcurl/tests/ftp_uldl.prg
! non-GNU make will also look into the /bin folder
for .dlls.
! Lots of fixes, too many to mention.
+ Enabled GC pointers. (see TOFIX though)
+ Added all remaining CURL 'easy' API parts and
implemented all options existing in 7.18.1:
+ All option values (except bit-level ones) made available in hbcurl.ch
+ All options updated to latest CURL version in hbcurl.ch
+ All error codes made available in hbcurl.ch
+ CURL_EASY_DUPLICATE()
+ CURL_EASY_RESET()
+ CURL_EASY_PAUSE()
+ CURL_EASY_SEND() (not yet available in stable builds)
+ CURL_EASY_RECV() (not yet available in stable builds)
+ CURL_EASY_GETINFO()
+ CURL_ESCAPE() (obsolete)
+ CURL_UNESCAPE() (obsolete)
+ CURL_GETDATE()
; TOFIX1: Could someone look at it? In case I call the destructor
(curl_easy_cleanup()) manually, the garbage collector
will run into an invalid pointer, when terminating the
test program.
; TOFIX2: The casting to 'curl_off_t' goes wrong. Could someone
help?
; NOTE1: Harbour needs at least libcurl 7.17.0. Unfortunately
compile time version detection is not working at this time,
so try with the latest version 7.18.1.
; NOTE2: Most callback interfaces are not implemented on the
Harbour level.
; NOTE3: Harbour is currently not optimizing
"<const1> ** <const2>" type of expressions at compile time.
Could we add it? This expression is not widespread,
but anyways, it cannot hurt, if isn't too much
work to do.
* contrib/hbcurl/hbcurl.c
* contrib/hbcurl/tests/ftp_uldl.prg
+ Using hb_fsReadLarge()/hb_fsWriteLarge()
+ Added redefinitiion of memory allocator functions.
(doesn't work, disabled. hb_xgrab() is getting ptrs
not allocated by us.)
! Fixes handling of size options in CURL_EASY_SETOPT().
+ CURL_VERSION()
+ CURL_VERSION_INFO()
+ CURL_EASY_STRERROR()
+ CURL_SHARE_STRERROR()
+ CURL_EASY_ESCAPE() (see TOFIX)
+ CURL_EASY_UNESCAPE() (see TOFIX)
+ Test app extended.
* Renames.
; Added several more TOFIXes.
* source/rtl/tget.prg
* Minor formatting.
* harbour/source/debug/debugger.prg
* removed some unused var, formatting
* harbour/source/pp/ppcore.c
* harbour/source/common/expropt1.c
* harbour/source/common/expropt2.c
* harbour/source/common/hbdate.c
* casting
* harbour/source/common/hbstr.c
* casting
* use HB_ISSPACE() instead of isspace() for strict Clipper
compatibility
* harbour/source/compiler/harbour.y
* harbour/source/compiler/harbour.yyc
! never use 'char' to 'int' casting for parameters of
toupper()/to*()/isuper()/is*() functions
* include/hbsetup.h
* include/hbinit.h
* source/compiler/harbour.yyc
* source/compiler/harbour.y
* HARBOUR_YYDEBUG -> HB_YYDEBUG
(do we need this? it's a synomym for YYDEBUG)
* HARBOUR_STRICT_ANSI_C -> HB_STRICT_ANSI_C
(do we need this?)
+ HB_PCRE_REGEX added.
+ HB_PCRE_REGEX_BCC added.
+ HB_POSIX_REGEX added.
- HB_MACRO_STATEMENTS
* source/common/hbverdsp.c
* Some cleanups on appearance.
* Company names removed (except CA).
* contrib/rddads/adsmgmnt.c
* Minor formatting.
+ contrib/examples/dbu/hb_dbu.dif
* contrib/examples/dbu/bld_b32.bat
* contrib/examples/dbu/readme.txt
+ Added .dif file with a patch fixing some
multiplatforms issues in original dbu source.
It's a quick hack, I might have missed something,
and I didn't do any testing. Add your own fix,
if you have some.
* DBU_DIR -> HB_DIR_DBU
* make_b32.mak
* contrib/mtpl_b32.mak
* config/w32/bcc32.cf
+ Added following switches for BCC:
-d: merge duplicate strings (was enabled already in GNU make)
-w: enable warnings.
-w-sig-: disable 'Conversion may lose significant digits' warnings.
* include/hbsetup.ch
* include/hbsetup.h
* source/common/hbverdsp.c
* source/vm/arrays.c
- HB_FUNC_CALLCONV - no longer used.
- HARBOUR_OBJ_GENERATION - no longer used.
+ Added profiler setting to build info.
- YACC debug setting removed frmo build info.
* Build info strict compatibility line now says 5.2e/5.3b.
* HB_EXTENSION renamed to "non-portable extension"
- HB_COMP_STRONG_TYPES - no longer used.
- HB_FIX_ACOPY_BUG
Replaced with a HB_C52_STRICT guard, but locally
overridden to always be strict (thus replicating
the bug). This means no change in functionality
for default builds. In any ways this is not a decision
to make by the Harbour users. If anyone had this
locally #defined anyway, pls shout.
; NOTE: It's nice that I'm removing unused stuff, but
my impression is that by time we have added
quite some new such settings burried in the code,
so if you're aware of any such ones, please
add them to hbsetup.h (or let's discuss which
ones to add).
* harbour/source/vm/extrap.c
! disabled SetUnhandledExceptionFilter() for WinCE builds
* harbour/contrib/hbole/ole2.c
* cleaned compilation in different env C/C++/UNICODE/compilers
* harbour/contrib/hbw32/w32_ole.c
* harbour/contrib/hbole/ole2.c
* harbour/contrib/gtwvg/gtwvg.h
! do not use HB_ID_REF() for _WIN64 - I would like to ask someone
with Win64 to verify current Harbour build status?
* harbour/source/rtl/hbgtcore.c
* removed unnecessary variable
* harbour/contrib/hbw32/w32_ole.c
* harbour/contrib/hbole/ole2.c
* harbour/contrib/gtwvg/gtwvg.h
! use trick with HB_ID_REF() only for BCC and MSVC
some other C++ compilers like OpenWatcom have different
header files and does not need it.
* harbour/include/hbvm.h
* harbour/source/vm/hvm.c
* harbour/source/vm/extrap.c
* moved code to set exception handler from hvm.c to extrap.c
+ added void hb_vmSetExceptionHandler( void ) to set exception
filter
! fixed problem with C++ builds caused by missing extern "C"
declaration for exception handlers in extrap.c
* harbour/source/vm/estack.c
* declare hb_stack as static variable when HB_STACK_MACROS is
disabled to be sure that non extern code will access hb_stack
It's very important to eliminate such code before we add MT
support.
* harbour/source/vm/hvm.c
* changed hb_vmFrame() to work in the same way as hb_vmVFrame()
* harbour/source/rtl/hbgtcore.c
! fixed wrong clear column in right horizontal scrolling
* harbour/source/rtl/memoedit.prg
* use hb_inkeySetLast( n ) instead of KEYBOARD Chr( n ) ; InKey()
* source/rtl/dateshb.c
* source/rtl/datesx.c
% Reworked to be a bit faster than non-HB_FAST_STOD.
- Removed HB_FAST_STOD build time option, because it wasn't
safe. It caused reaching into undefined buffers when
passed string was shorter than 8 chars.
* common.mak
* source/vm/Makefile
* source/vm/mainwin.c
* source/vm/estack.c
+ source/vm/extrap.c
* source/vm/hvm.c
* Rearranged/cleaned up exception handlers.
* Renamed OS/2 one to comply with namespace rules.
* Moved from estack.c/mainwin.c to extrap.c and hvm.c.
* win32 ex.handler now enabled by default at HVM startup.
* win32 ex.handler now writes exception info into hb_ex.log.
* win32 ex.handler now pops up a MessageBox() by default.
We should consider removing this but currently the default
Windows handler kicks in anyway, which is also a GUI dialog.
; TODO: A common way to log these errors across all platforms.
; NOTE: HB_INCLUDE_WINEXCHANDLER is not used by Harbour anymore.
; NOTE: Please test OS/2
* source/rtl/tget.prg
* ::picture(), ::PutMask(), ::unTransform() moved next
to each other for easier editing/fixing.
* common.mak
- source/common/hbfhnd.c
* source/common/Makefile
- Removed file not used by Harbour anymore.
* contrib/hbole/ole2.c
! Fixed OLE C++ errors under MSVC. Using Przemek's method.
; TOFIX: This one is still left:
.\ole2.c(714) : error C2664: 'HRESULT (IUnknown *,const IID &,void **)' : cannot convert parameter 2 from 'LPIID' to 'const IID &'
Reason: cannot convert from 'LPIID' to 'const IID'
No constructor could take the source type, or constructor overload resolution was ambiguous
* tests/rto_get.prg
+ Some tests added.
* source/rtl/tget.prg
+ Some notes about C5.x behaviour.
! Formatting/indentation fixes.
% Minor optimizations.
* contrib/xhb/Makefile
* contrib/xhb/common.mak
! Added hbfast.h, hbxml.h
* contrib/hbfimage/fi_winfu.c
* contrib/hbfimage/fi_wrp.c
! Fixed two BCC warnings in new code.
* contrib/hbgd/gdwrp.c
! Changed to generate proper extern references even
for BCC. Now tests compile OK.
The trick was to explicitly #include <windows.h>
before all the other headers, instead of just requesting
it using HB_OS_WIN_32_USED.
* contrib/hbfimage/fi_winfu.c
* contrib/hbfimage/fi_wrp.c
* contrib/hbgd/gdwrp.c
* contrib/hbct/ct.h
* contrib/hbpgsql/postgres.c
- Removed #defining _CLIPDEFS_H. It's only needed when
using Clipper compatibility API headers (*.api, extend.h).
* source/hbpcre/cnv_o2hb.bat
* source/hbpcre/cnv_hb2o.bat
+ Added COPYING
* contrib/hbfimage/tests/fitest.prg
* contrib/hbfimage/fi_wrp.c
+ Added FI_LOADFROMMEM(), FI_GETFILETYPEFROMMEM()
; Borrowed from Pavel Tsarenko / xhb.
* contrib/hbclipsm/gauge.c
% Minor rearrangement.
* contrib/hbmysql/make_vc.bat
! #defining __WIN32__ to make it build under VC.
; NOTE: C++ builds of everything related to OLE2
are broken. Could someone look into it?
(hbw32, gtwvg, hbole under BCC and MSVC)
* harbour/source/hbzlib/ChangeLog
* harbour/source/hbzlib/zutil.c
* harbour/source/hbzlib/gzio.c
* harbour/source/hbzlib/zutil.h
* harbour/source/hbzlib/zconf.h
* use _WINCE macro instead of _WIN32_WCE to detect WinCE builds
defining _WIN32_WCE interacts with header files and should be
left for user to specify exact WinCE version
* source/rtl/tget.prg
! Fixed ::unTransform() padding for strings with @R picture.
(Edmer Issue #1)
! Fixed ::unTransform() to not use the "Chr( 1 )" hack to
remove certain chars from string. (there is still one such
remaining)
! Fixed ::unTransform() padding with zero decimals for numerics.
This cleared some differences in rto_get.prg.
! Fixed ::toDecPos() to not crash with non-numeric vars.
- Removed some XBase++ specific code which is not
needed for Harbour.
- Removed some other unnecessary code dealing with '.'/',' swapping.
% Minor cleanups.
; WARNING! Please test these with real code, as we have no extensive
regression test suite for the above code parts.
* tests/rto_get.prg
+ Added some test cases (and counter test cases) for
problems reported by Edmer.
* source/hbpcre/cnv_o2hb.bat
* source/hbpcre/cnv_hb2o.bat
! Fix for potential s&r problem.
(not adapted to converted code yet)
* contrib/xhb/Makefile
* contrib/xhb/common.mak
+ contrib/xhb/xstrdel.c
+ STRDEL() added from Walter Negro / xhb.
* contrib/rddads/adsfunc.c
+ Minor correction to HB_TRACE handling.
* contrib/hbfimage/fi_winfu.c
% Removed unused var.
* include/hbapi.h
* source/vm/hvm.c
* source/vm/cmdarg.c
+ Added support for internal switch format:
--hb:<internal switch>
//hb:<internal switch>
Both are equivalent to original CA-Cl*pper:
//<internal switch>
* bin/bld.bat
+ MSVC now sets the lib dir globally, so lib names don't
need to contain the path anymore.
* source/vm/fm.c
* Minor cleanup.
- contrib/hbgd/tests/bldtest.sh
+ contrib/hbgd/tests/bld.sh
* Update, cleanup, SVN header.
* harbour/source/rtl/tbrowse.prg
! fixed cursor positioning when it's moved faster then record
buffer refreshed. It should also fix flickering problem reported
by Viktor - please test.