* harbour/source/common/hbwince.c
+ added GetDriveTypeA() wrapper for WinCE builds
* harbour/source/rtl/gtwvt/gtwvt.c
! changed wrongly used NULL to 0
* harbour/source/rtl/gtwvt/gtwvt.c
* changed LoadLibrary() to LoadLibraryA() for UNICODE builds
still some other code have to be updated for UNICODE builds.
* source/rtl/gtwvt/gtwvt.c
! Fixed windows size after maximize.
* Temporary restored "instant resize" on mouse move.
+ contrib/hbw32/dllcall.c
* contrib/hbw32/common.mak
* contrib/hbw32/Makefile
+ Added DLL interface. From xhb. Work of several authors.
; I've applied some modifications made by Alex Strickland.
; The API calls below are implemented:
XBase++ compatible:
- DLLLoad()
- DLLUnload()
- DLLPrepareCall()
- DLLExecuteCall()
- DLLCall()
Proprietary:
- LoadLibrary() - Same as DLLLoad()
- FreeLibrary() - Same as DLLUnload()
- GetProcAddress()
- CallDLL()
- CallDLLBool()
- GetLastError()
- SetLastError()
! Fixed GetProcAddress() passed ordinals to always be
WORDs casted to DWORD.
! Fixed a few possible buffer overruns.
* Cleanup, format, etc.
; Compile with HB_NO_ASM if you use BCC55 and don't have
TASM32 (or upgrade to free BCC58 which contains TASM32).
; "C struct" support was stripped (but that seems only a
small portion.
; Please test. I doesn't work me for simple test code,
I have no idea why.
; TOFIX: Replace MessageBox() calls with RTEs.
; TOFIX: Solve any name clashing problems and/or use namespace
for the proprietary interface.
* include/hbapierr.h
+ HB_ERR_FUNCNAME() added to replace &hb_errFuncName
* harbour/doc/whatsnew.txt
* minor fixes in formatting
* harbour/source/rtl/hbgtcore.c
! fixed memory leak when HB_GTI_NOTIFIERBLOCK was used to overload
register before block
* harbour/source/vm/eval.c
+ added support for SYMBOL items in hb_evalLaunch() to be compatible
with hb_itemDo()
* harbour/contrib/hbmisc/spd.c
* cleaned warnings
* source/rtl/gtwvt/gtwvt.c
! Fixed most cases of trashing whilst marking.
Maybe there is a simpler way of doing this...
! Readded "HB_NOSTARTUPWINDOW" feature deleted by mistake.
; TOFIX: Some trashing is still visible if switching
directions relative to the starting corner.
; TOFIX: It doesn't seem to be possible to select
the last row and the last column. Pritpal,
could you take a look at it?
* tests/wvtext.prg
* include/hbgtinfo.ch
* include/hbgtcore.h
* source/rtl/hbgtcore.c
* source/rtl/gtwvt/gtwvt.c
* Changed the way notifications work. It's now platform
neutral and more simple.
hb_gtInfo( HB_GTI_NOTIFIERBLOCK, {|nEvent, ...| myhandler( nEvent, mycustomdata, ... ) })
may be used to set it. Use NIL to disable it. The purpose of
this is to be able to get notifications from GT related
user interactions not initiated inside the apps UI world.
F.e. to save screen size after the user has changed it,
or to have a last chance to commit tables, set flags, etc
when user (or OS) closed the app window.
+ Added basic support to handle return values from notifier.
! Added missing SVN header to wvtext.prg
; TOFIX: New TIMER stuff in GTWVT should be replace by
a platform neutral solution, which is probably MT.
(see also "background events")
; TOFIX: Is there a way to force "non-full content" resize
on the window level? This way we could avoid
current trashing while resizing.
* harbour/source/rtl/gtwvt/gtwvt.c
* Hack to fix maxrow() display. Now maximizing the window displays
correctly on 25x80.
* harbour/tests/wvtext.pr
* More information.
* tests/wvtext.prg
* include/hbgtinfo.ch
* include/hbgtcore.h
* source/rtl/gtwvt/gtwvt.h
* source/rtl/gtwvt/gtwvt.c
! Fixed a few warnings.
! Fixed bad selection behaviour when starting the
selection (to not let it "stick" to the upper left corned).
- Removed predefined symbols as a way to control GT
behaviour.
* HB_GTI_MARKCOPY -> HB_GTI_SELECTCOPY to use more generic
terminology.
* HB_GTI_RESIZEABLE -> HB_GTI_RESIZABLE
* harbour/source/rtl/gtwvt/gtwvt.c
* More fixes on resizing. Now appears to be behaving correctly. Please test.
* harbour/tests/wvtext.pr
* Formatting and typos.
* harbour/source/rtl/gtwvt/gtwvt.c
* harbour/source/rtl/gtwvt/gtwvt.h
* harbour/source/rtl/hbgtcore.c
* harbour/include/hbgtinfo.ch
+ HB_GTI_MARKCOPY
Added feature to toggle "Mark and Copy" Sysmenu option with:
Hb_GtInfo( HB_GTI_MARKCOPY, TRUE|FALSE ) -> lPrevState
Removed necessity to have Hb_NoCopyConsole() to not include it.
Now appln always HAS this SysMenu option.
+ HB_GTI_RESIZEABLE
Added feature to toggle resizing of appln window as:
Hb_GtInfo( HB_GTI_RESIZEABLE, TRUE|FALSE ) -> lPrevState
Function Hb_NoResizeableWindow() still hold good for startup.
You always can activate/deactivate this feature from within appln.
Few more optimizations while resizing, still work in progress.
* harbour/tests/wvtext.prg
* Updated to demonstrate above functionality.
* harbour/source/rtl/gtwvt/gtwvt.c
+ Added functionality to disable "Mark and Copy" prompt in the SysMenu.
Include Function Hb_NoCopyConsole() if you do not want this functionality.
+ Added funtionality to resize the console window with mouse operations.
/*
Resizing of console is enabled by default.
To supress this behavior include a dummy function Hb_NoResizableWindow()
Resizing is available in both directions. I mean horizontal as well as verticle.
Maximize button is also enabled. Click it to see to your surprize that now
console window will provide you DOS like terminal.
However there is a bug in maximized operation, last row does not show up correct.
I feel it belongs to some miscalculation, but what that is I am unable to locate, so far.
Please experiment.
*/
* harbour/tests/wvtext.prg
* Updated to new HB_GT*_ constants and new functionality.
* include/hbgtinfo.ch
+ Added comment to compatibility #defines, to not use
them, since they deprecated.
[TOMERGE RC1]
* HB_GTI_CB_* -> HB_GTE_* (stands for GT Event). Removed
plain GTI_ versions, GTI_* range is frozen, pls don't
and new codes to them and especially don't use them in
core code.
* include/hbgfx.ch
* include/hbgfxdef.ch
* contrib/gtwvg/gtwvg.c
* source/rtl/gtxwc/gtxwc.c
* source/rtl/gtwvt/gtwvt.c
* GFX_* constants renamed to HB_GFX_*. The old ones are
still working but it's recommended to update to use HB_GFX_*.
#define HB_GT_NO_XHB to disable the compatibility #defines,
if it collides with your code or you want to test after
transition.
; [TOMERGE RC1]
* source/rtl/dirdrive.c
! Guarded C53 undoc functions with HB_C52_UNDOC, which is enabled
so it won't make a difference in default builds.
; [TOMERGE RC1]
* source/rtl/filesys.c
! Fixed hb_fsIsDrv() to use GetDriveTypeA() API, to avoid some
win32 system MessageBox() to be shown when certain types of
drives (f.e. USB reader devices) are queried.
; Please test.
; TOFIX: hb_fsChDrv() suffers from the same problem.
; [TOMERGE RC1 - after testing]
* contrib/hbcurl/hbcurl.c
* contrib/rddads/adsfunc.c
* contrib/rddads/ads1.c
% Optimized out explicit function name strings in RTE calls.
! The above is actually a fix (I hope) for the one in
hb_adsCheckLock(). Error text also made more consistent.
; [TOMERGE RC1 - after testing]
* contrib/hbw32/w32_prn.c
% Minor optimizations, cleanups.
* harbour/source/rtl/gtwvt/gtwvt.c
* harbour/source/rtl/gtwvt/gtwvt.h
+ Added feature to copy text from WVT console just like any console window.
/*
1. Click on SysMenu icon at the left on Title Bar
2. Click on "Mark" option
3. Place cursor on top of the text you wish to copy.
4. Keep left button down and drag to desired end of console text.
5. Release left button.
6. Right click anywhere "Paste" operation is supported.
7. Copies text is there.
You can drag the mouse in any direction, copied text will always be in order.
*/
* source/rtl/gtwvt/gtwvt.c
! Fixed cursor width to be synced properly after
a font change.
! Fixed cursor SC_NORMAL height to be calculated
from the font height, instead of being a static
number. [RC1_TOMERGE]
* contrib/hbcurl/hbcurl.c
+ Added RTEs when wrong parameter was passed
to the remaining functions:
CURL_EASY_STRERROR()
CURL_SHARE_STRERROR()
CURL_MULTI_STRERROR()
CURL_GETDATE()
* harbour/source/rtl/hbgtcore.c
* harbour/include/hbgtcore.h
* harbour/include/hbgtinfo.ch
* harbour/source/rtl/gtwvt/gtwvt.c
* harbour/source/rtl/gtwvt/gtwvt.h
+ Added building blocks for CallBacks to be set with Hb_GtInfo( GTI_* ).
* harbour/tests/wvtext.prg
+ Test program to taste few of the callbacks.
/* This also sets the ground for futuristic multi-window GT
I have kept MW GT code out of current implementation.
This implementation does not interfere nor affects current functionality.
A work in progress.
Viktor, I have found a way to implement 'consol shearing, working on it
and for that to happen these building blocks are a must.
Przemek, please review the structure of <PHB_PGT>. I have added a few members.
Please bear with my meagre knowledge if I did something stupid, just correct it.
*/
* harbour/include/hbpp.h
* harbour/source/pp/ppcore.c
+ added hb_pp_errorCount() which returns total number of errors
which appeared during preprocessing
* harbour/source/pp/hbpp.c
* added new switch:
-u[<file>] use command def set in <file> (or none)
* if neither -o nor -v is specified then -w is default action
+ added to default search paths INCLUDE envvar
* set application exit code to non 0 value if errors appear
during preprocessing
* harbour/source/compiler/harbour.yyc
* harbour/source/compiler/harbour.y
! added support for expression list without parenthesis used in
statements - Clipper compatibility fix.
* harbour/harbour-ce-spec
* harbour/harbour-w32-spec
* harbour/harbour.spec
* harbour/make_tgz.sh
* removed not longer used HBPP references, thanks to Adam
* added hbppgen to list of installed binaries for native builds
* removed hbppgen from cross builds
* harbour/source/pp/Makefile
* harbour/config/install.cf
* added hack to install also hbppgen
I do not want to make deeper modifications in non GNU makefiles now.
Looks that now we are ready to rename hbppgen to hbpp. I would like
to keep -w hbppgen option semantic as is. Does anyone find it as
a problem?
* harbour/source/vm/macro.c
! pass macro compiled string to error object. It fixes Clipper
incompatible behavior reported by Mindaugas.
! fixed few possible internal errors when user error handler will
try to force wrong substitution
* 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.