* 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/hbexprb.c
! do not optimize HB_BIAND(), HB_BITOR() and HB_BITXOR() when only
one parameter is passed to keep RT error compatibility
* use hb_compExprListStrip() to optimize function calls also when
parameters are passed in parenthesis, f.e.:
? CHR(65), CHR((65))
It's not Clipper compatible and disabled by -kc switch.
Viktor it will interact with some hbtest tests when compile time
optimization used by Clipper gives different results then RT function
f.e. CHR( ( 256 ) ). Please think if we should keep it.
It's important optimization if someone uses constant values or
expressions defined in parentheses.
* 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).
* contrib/hbw32/w32_prn.c
* contrib/hbhpdf/harupdf.c
! Fixed to not GPF in garbage collector if objects
were explicitly released by caller using HPDF_FREE(),
WIN32_DELETEDC().
* contrib/hbw32/w32_prn.c
% Minor opt.
* Formatting.
* contrib/hbcurl/hbcurl.c
% Minor opt.
* 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.
* contrib/make_b32_all.bat
* contrib/make_vc_all.bat
* contrib/make_gcc_all.sh
+ contrib/hbsqlit3
+ contrib/hbsqlit3/Makefile
+ contrib/hbsqlit3/make_b32.bat
+ contrib/hbsqlit3/make_vc.bat
+ contrib/hbsqlit3/make_gcc.sh
+ contrib/hbsqlit3/common.mak
+ contrib/hbsqlit3/hbsqlit3.c
+ contrib/hbsqlit3/hbsqlit3.ch
+ contrib/hbsqlit3/sqlite3/sqlite3.c
+ contrib/hbsqlit3/sqlite3/sqlite3.h
+ contrib/hbsqlit3/tests/bld_b32.bat
+ contrib/hbsqlit3/tests/bld_vc.bat
+ contrib/hbsqlit3/tests/blob.prg
+ contrib/hbsqlit3/tests/pack.prg
+ contrib/hbsqlit3/tests/metadata.prg
+ contrib/hbsqlit3/tests/sqlite3_test.prg
+ Added Harbour interface for SQLite 3.x.
Thanks goes to Petr Chornyj <myorg63/at/mail.ru> for
creating this code and making it available for this project.
(The code also based on Alejandro de G rate
<alex_degarate/at/hotmail.com> SQLite 2 interface work)
+ Added make files, arranged std contrib layout.
* Renamed header, source and lib name to comply with 8.3 rules.
+ Added to 'all' make files.
+ Added foreign SQLite 3.5.9 (amalgamation) latest version
source code to the repository.
Compiles with lots of warnings under BCC and
doesn't compile in C++ mode in MSVC (due to missing
casts).
; We may remove foreign code once the warnings
has been fixed and retrofitted in the original
package. Since the two required files are simply
#included in the Harbour source code, moving them
anywhere, or accessing them from anywhere is a matter
of -I switch.
; TOFIX:
- Replace MessageBox() with RTE or HB_TRACE().
- Remove HB_OS_WIN_32_USED dependency.
- Review if __XHARBOUR__ branches are indeed necessary.
* 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.
+ contrib/hbcurl
+ contrib/hbcurl/Makefile
+ contrib/hbcurl/make_b32.bat
+ contrib/hbcurl/make_vc.bat
+ contrib/hbcurl/common.mak
+ contrib/hbcurl/make_gcc.sh
+ contrib/hbcurl/hbcurl.ch
+ contrib/hbcurl/hbcurl.c
+ contrib/hbcurl/tests
+ contrib/hbcurl/tests/bld_b32.bat
+ contrib/hbcurl/tests/bld_vc.bat
+ contrib/hbcurl/tests/ftp_uldl.prg
+ Added hbcurl - CURL interface library.
; Based on original work of Luiz Rafael Culik / xhb,
but heavily reworked and fixed, and still a work
in progress.
* 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.