* contrib/hbmisc/strfmt.c
+ contrib/hbmisc/tests/tsstrfmt.prg
+ StrFormat() extended to automatically convert parameters
to strings, above that the result will AllTrim()-med too
before being inserted into the mask string:
StrFormat( "%2 %1 born on %3", "Smith", "Mr.", Date() ) ->
"Mr. Smith born on 06/12/08"
* source/rtl/gtwvt/gtwvt.c
% Minor optimization in new screen marking code.
* contrib/hbmisc/strfmt.c
* Cleanup, optimization, some internal limits removed.
* contrib/hbmisc/spd.c
* Former _SPD() function renamed to SQL_SPRINTF()
* harbour/source/rtl/gtwvt/gtwvt.c
! Completely removed flickering under Mark and Copy operation
without lengthy calculations. Forwarded by Andy Wos - thanks.
; Viktor, now first row and column are being selected.
When right < left only then first column is not accessible
but it is very rare in practical application.
* contrib/hbct/fcopy.prg
! Fixed crash in FILECOPY() (reported by Mario H. Sabado)
[TOMERGE RC1 - if correct]
* contrib/hbodbc/odbc.c
* Using sizeof() wherever possible.
! SQLGETDATA(): One strcpy() converted to hb_strncpy()
+ SQLGETDATA(): One TOFIX added for strcat() usage and
possible buffer overrun.
Also, it looks to me that both of the above
would better be replaced by memcpy() calls
otherwise it cannot support embedded '\0's.
Anyone?
* source/rtl/gtwvt/gtwvt.c
! Fixed remaining Mark&Copy trashing while doing the selection.
* I've undone fix (2008-06-09 14:48 UTC+0800) for non-selectable
maxrow/maxcol, since after the fix the _first_ row/col couldn't
be selected.
TOFIX: Reopened.
* contrib/hbmisc/spd.c
+ Added support for index & indirect arguments ANSI C99.
; Update contributed by original author:
Xavi <jarabal@gmail.com>. Thanks!
* Function renamed from _SPD() to C_SPRINTF().
Name tentative.
* source/rtl/filesys.c
! hb_fsIsDrv() restored to generic version fo WinCE, because
it's API doesn't have GetDriveTypeA().
* contrib/xhb/Makefile
* contrib/xhb/common.mak
- Removed some xhb specific non-standard headers from
the list of those getting installed to the Harbour central
include dir. Only hbcompat.ch, hbcompat.h and xhb.ch
goes now to the official include dir. After this change
has been merged with RC1, xhb.lib may be included in
the default build.
[RC1]
* include/hbgtinfo.ch
+ Added comment to compatibility #defines, to not use
them, since they're deprecated.
[RC1]
* 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.
; [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.
; [RC1]
* contrib/hbfbird/make_b32.bat
* contrib/hbfbird/make_vc.bat
* Fixed location where .libs are looked for.
[RC1]
* contrib/hbcurl/hbcurl.c
% Minor cleanups.
[RC1]
* contrib/hbodbc/make_vc.bat
! Removed .dll -> .lib conversion for MSVC,
since the .lib is provided by the MS SDK anyway.
; [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 now always return the same type, even in case libcurl
failed to initialize.
+ Return values for above cases is now HB_CURLE_ERROR (== -1).
! CURL_*() passed pointers now are also checked for the pointer
type, and RTE is thrown if they are not HBCURL ones. So for
example in the very rare case when 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.
; [RC1]
* include/hbgtinfo.ch
* source/rtl/gtwvt/gtwvt.c
! Fixed stupid typo from me. This is why maximized size
didn't want to get right.
! Fixed to not reposition non-maximized windows while
resizing them and their top/left corner was off screen.
! Fixed to not allow font screen below a certain limit
(3x4 pixels). This fixes some of the more obvious cases
when window gets trashed.
! Fixed to not resize the windows when toggling the
resizing feature using HB_GTI_RESIZABLE.
+ Added to disable maximize icon after maximizing and
reenable it on the first resize attempt.
- Removed TIMER related stuff as it's very difficult
(or impossible) to support on other platforms.
Timer support could be added to hbw32.lib, though.
* Some cleanups.
; Remaining TOFIXes:
- Window trashing when settling on a size which
cannot be properly filled with the console. Try with
vertically or horizontally narrow window shapes.
- Mark&Copy is still trashing when swapping directions
with the selection compared to the starting position.
* tests/wvtext.prg
! Added missing SVN keywords properties.
! Added missing SVN eol property.
! Fixed to use the default font to have a more common
ground for testing.
+ Added markers to the corners to easily spot chopped
borders.
* contrib/xhb/Makefile
* contrib/xhb/common.mak
- Removed some xhb specific non-standard headers from
the list of those getting installed to the Harbour central
include dir. Only hbcompat.ch, hbcompat.h and xhb.ch
goes now to the official include dir. After this change
has been merged with RC1, xhb.lib may be included in
the default build.
[TOMERGE RC1]
* contrib/hbw32/tests/testdll.prg
+ Added some more DLL calling samples.
* harbour/include/hbdate.h
* harbour/source/rtl/dates.c
+ added hb_dateUnformat() - code by David G. Holm extracted from CTOD()
* updated copyright note to point original author of hb_dateFormat()
and hb_dateUnformat()
* harbour/source/rtl/dateshb.c
* use hb_dateUnformat() in CTOD()
* harbour/contrib/hbw32/dllcall.c
* added casting of wOrdinal to HB_PTR_DIFF to avoid waring
* disabled asm code for WIN64 builds
* disabled asm code for WINCE builds
* disabled some code which breaks WINCE builds
; TODO: add support for WINCE/ARM and WIN64
* harbour/source/rtl/gtwvt/gtwvt.c
! always use literal strings inside TEXT() macro for UNICODE builds
* harbour/source/rtl/gtwvt/gtwvt.c
! Fixed maximized state. Borders were missing.
- Removed functionality to force Windows not to show Windows contents while resizing.
; Instead application can issue :
To switch off full drag
DllCall( "user32.dll", NIL, "SystemParametersInfo", 37, 0, 0, 0 )
To switch on full drag
DllCall( "user32.dll", NIL, "SystemParametersInfo", 37, 1, 0, 0 )
! Fixed non-refreshed client area under certain circumstances.
* Removed all the hacks to adjust borders.
* Adjusted maximize operation - now window is centered on the screen.
; TODO - Find a better solution to
enabling and disabling of resizing feature at run time.
* harbour/source/common/hbwince.c
! fixed typo in GetDriveTypeA()
* temporary disabled GetDriveTypeW() call because not all CRTLs for
WinCE support it
* harbour/include/hbexpra.c
* harbour/include/hbexprb.c
* harbour/source/common/expropt2.c
* harbour/source/compiler/harbour.y
* harbour/source/compiler/harbour.yyc
* added full expression list stripping - it enables optimizations
in few additional places
! fixed code to always refresh expression address after direct or
indirect reduction - seems that we have some memory leaks and
possible GPFs not located so far
Please make tests with your code.
* harbour/source/rtl/gtwvt/gtwvt.c
! Fixed maximized state. Borders were missing.
+ Added functionality to force Windows not to show Windows contents while
resizing. This can be set manually via
<Desktop><Right-Click><Properties><Appearance><Effects><Show windows contents while dragging>
; To review: If this behavior be controlled via HB_GTI_SHOWRESIZING or like.
* harbour/tests/wvtext.prg
* Minor changes.
* contrib/hbw32/dllcall.c
% Futher optimizations.
! Fixed LoadLibrary() handle leak in DLLPREPARECALL() when
an invalid function is requested from a valid library.
* contrib/hbw32/dllcall.c
! Fixed memory corruption when more than 15 parameters
were passed to a DLL function.
* contrib/hbw32/w32_regc.c
% Minor optimization.
* 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