* contrib/hbw32/dllcall.c
! Fixed to not execute code after hb_errRT*() calls.
! Fixed to call hb_gcFree() if the hb_gcAlloc()ed
pointer is not hb_retptrGC()d (in case of errors).
* 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.
* xhb/Makefile
* xhb/common.mak
+ xhb/freadlin.c
+ Adopted HB_FREADLINE().
Work of Marcelo Lombardo / xhb.
! Fixed one potential leak (probably not exploited
by current control flow).
; Please test.
* xhb/hbcrypt.c
% Minor opt. (HB_ERR_FUNCNAME)
* contrib/hbw32/dllcall.c
! Fixed some xhb specific code to work in Harbour.
Now the DLL functions started to work.
! Fixed buffer corruption (by 1 byte) when strings were
passed by reference.
+ Added some XBase++-like support to always pass a copy
of our string buffers to the called functions. This is
safer but slower. The support is probably not complete.
Please test.
+ Added some XBase++ compatible #defines.
+ Added CALLDLLTYPED() function where the return value
type can be specified. Untested work in progress,
feel free to modify.
; Now this test code works:
---
hDLL := DllLoad( "pscript.dll" )
cVersion := Space(24)
DllCall( hDll, NIL, "PSGetVersion", @cVersion )
? cVersion
DllUnload( hDLL )
---
; TODO: Add header for these #defines.
* 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.
* contrib/hbmysql/tmysql.prg
* contrib/hbmysql/mysql.c
* contrib/hbmysql/mysql.ch
* contrib/hbtpathy/telepath.ch
* contrib/hbtpathy/tplinux.c
* contrib/hbtpathy/tpwin32.c
* contrib/hbtpathy/tpos2.c
* contrib/hbtpathy/tpcommon.c
* contrib/hbmsql/msql.h
* contrib/hbmsql/msql.ch
* contrib/hbmsql/msql.c
* contrib/hbfbird/firebird.c
* contrib/hbfbird/tests/test.prg
* contrib/hbapollo/apollo.c
* contrib/hbmisc/hb_f.c
* General code cleanup, formatting, minor optimizations,
Harbour API usage cleanup, ANSI comments.
! Several minor fixes to Firebird interface code, but it
still doesn't seem to work, and the code is very unclear,
partly because of the strange/unsafe Firebird API.
! Firebird test.prg fixes: Variable name typos, undeclared
vars, hard-coded paths.
* contrib/hbfbird/make_b32.bat
* contrib/hbfbird/make_vc.bat
* Fixed location where .libs are looked for.
[TOMERGE RC1]
* contrib/hbcurl/hbcurl.c
% Minor cleanups.
[TOMERGE RC1]
* 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.
*/
* contrib/hbodbc/make_vc.bat
! Removed .dll -> .lib conversion for MSVC,
since the .lib is provided by the MS SDK anyway.
; [TOMERGE RC1]
* contrib/hbcurl/hbcurl.c
* contrib/hbcurl/hbcurl.ch
* contrib/hbcurl/tests/ftp_uldl.prg
! Cleanup the rare case when curl_easy_init() returns NULL.
Functions always return the same type, even in case libcurl
failed to initialize.
+ Returns value for above cases is now HB_CURLE_ERROR (== -1).
! CURL_*() passed pointers now are also checked for the pointer's
type, and RTE is thrown if they are not HBCURL ones. So for
example in the very rare case that any hbcurl functions would
get passed a GC pointer returned by another API, an argument
error would be thrown now.
! CURL_ESCAPE()/CURL_UNESCAPE() fixed picked parameter ordinal.
+ CURL_ESCAPE()/CURL_UNESCAPE() added parameter checking.
; [TOMERGE RC1]
* contrib/rddads/adsmgmnt.c
* Minor formatting.
* contrib/hbmisc/common.mak
* contrib/hbmisc/Makefile
- contrib/hbmisc/mathx.c
+ contrib/hbmisc/spd.c
- Removed math functions equivalent with CT3 ones.
INCOMPATIBLE: If your code used CEIL() from hbmisc, please
update it to use CEILING() from hbct. Functionality
is the same.
+ Added _SPD() function.
Contributed by Javier (jarabal at gmail.com)
* 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()
[RC1]
* contrib/hbcurl/hbcurl.c
% Minor opt. [RC1]
; Not bugfixes per se, but I didn't want to leave a gap
in behaviour. This are the final finishes to this lib.
* 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]
% Few ""s -> NULL (also from RC1, but I forgot this
one from the ChangeLog) [RC1]
* 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/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.
*/
* contrib/hbpgsql/make_b32.bat
- Removed special compiler switches no longer necessary. [RC1]
* contrib/hbcurl/hbcurl.c
+ Now throws RTEs when required parameters are missing
or the wrong type. The concept here is that RTEs are
only to catch syntax mistakes, and not errors resulting
from actual libcurl usage/functionality/states. [RC1]
* contrib/hbapollo/apollo.ch
* Formatting. [RC1]
* contrib/hbapollo/common.mak
* contrib/hbapollo/Makefile
+ contrib/hbapollo/apollo.ch
- contrib/hbapollo/tests/apollo.ch
! apollo.ch file was in tests by mistake. [RC1]
* harbour-w32-spec
! Added 'svn:keywords "Author Date Id Revision"' [RC1]
* contrib/examples/pe/bld_b32.bat
! Fixed. [RC1]
* contrib/hbpgsql/make_vc.bat
+ Now uses the .lib provided in the binary package. [RC1]
(This needs the current 8.3.1 version)
* contrib/hbpgsql/make_b32.bat
* contrib/hbpgsql/make_vc.bat
* contrib/hbpgsql/tests/bld_b32.bat
* contrib/hbpgsql/tests/bld_vc.bat
! Fixed to use the right .dll to generate the .lib. [RC1]
* contrib/hbcurl/hbcurl.ch
* contrib/hbcurl/hbcurl.c
* contrib/hbcurl/tests/ftp_uldl.prg
+ Added test for deleting file.
+ Added dummy upload option:
+ CURL_EASY_SETOPT() / HB_CURLOPT_UL_NULL_SETUP
! Fixed all the setopt options below. Very old bug in
hbcurl code. Now rename, delete, other custom commands
plus a few other options work properly:
HB_CURLOPT_HTTPHEADER
HB_CURLOPT_HTTP200ALIASES
HB_CURLOPT_QUOTE
HB_CURLOPT_POSTQUOTE
HB_CURLOPT_PREQUOTE
HB_CURLOPT_TELNETOPTIONS
; [RC1]
* contrib/hbcurl/hbcurl.c
* Minor. [RC1]
* contrib/hbcurl/hbcurl.c
! Missing cast. [RC1]
* contrib/hbcurl/hbcurl.ch
* contrib/hbcurl/hbcurl.c
* contrib/hbcurl/tests/ftp_uldl.prg
+ Added some more test for downloading to memory,
uploading from memory.
+ Added possibility to download to memory, and upload
from memory:
+ CURL_EASY_SETOPT() / HB_CURLOPT_UL_BUFF_SETUP
+ CURL_EASY_SETOPT() / HB_CURLOPT_DL_BUFF_SETUP
+ CURL_EASY_SETOPT() / HB_CURLOPT_DL_BUFF_GET
+ CURL_EASY_DL_BUFF_GET() -> <cFileContent>
* Changed a few old Harbour setopt defines:
(old ones are still working to retain compatibility)
* HB_CURLOPT_SETUPLOADFILE -> HB_CURLOPT_UL_FILE_SETUP
* HB_CURLOPT_CLOSEUPLOADFILE -> HB_CURLOPT_UL_FILE_CLOSE
* HB_CURLOPT_SETDOWNLOADFILE -> HB_CURLOPT_DL_FILE_SETUP
* HB_CURLOPT_CLOSEDOWNLOADFILE -> HB_CURLOPT_DL_FILE_CLOSE
* HB_CURLOPT_SETPROGRESS -> HB_CURLOPT_PROGRESSBLOCK
; [RC1]
* contrib/hbcurl/hbcurl.c
* Changed all logical options to default to .T.. This
way all work the same way, and in real life usage
the logical parameter can omitted in most cases.
INCOMPATIBLE. [RC1]
* contrib/hbcurl/tests/ftp_uldl.prg
+ Added small example to get a dir listing. [RC1]
* contrib/hbcurl/hbcurl.c
+ Changed to use hb_parc() (instead of hb_parcx()) for all
curl_easy_setopt() string options, so that NULL (NIL) will
reset these options to default state, instead of passing
an empty string to them. [RC1]
* source/rtl/hbbit.c
+ Added important NOTE about hb_bit*() functions'
relation to the compiler optimization engine. [RC1]
* contrib/hbcurl/hbcurl.c
+ Now throws RTEs when required parameters are missing
or the wrong type. The concept here is that RTEs are
only to catch syntax mistakes, and not errors resulting
from actual libcurl usage/functionality/states.
* contrib/hbapollo/apollo.ch
* Formatting.
* 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.