* src/common/hbwince.c
* include/hbwince.h
! Added abort() declaration and implementation
for poccarm and old msvcarm targets.
* contrib/hbwin/win_bmp.c
+ Enabled for WinCE: WIN_BITMAPDIMENSIONS()
* contrib/hbwin/win_bmpd.c
+ All functions enabled for WinCE.
* contrib/hbwin/win_prn1.c
+ WIN_TEXTOUT() changed to always use ExtTextOut() internally,
so that it work on WinCE. (it's also faster)
+ WIN_CREATEFONT() changed to use CreateFontIndirect() which
also works for WinCE.
* contrib/hbwin/wapi_wingdi.c
+ Added WAPI_CREATEFONTINDIRECT(), which always works on both
Windows and WinCE.
* contrib/hbwin/win_prn1.c
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_prn3.c
* contrib/hbwin/wapi_wingdi.c
+ All functions enabled for WinCE. The ones not available
on WinCE, will return permanent error.
* contrib/hbwin/legacycd.c
! Added missing WinCE header after previous commit.
* src/rtl/fstemp.c
! Using hb_fsTempDir() in HB_FTEMPCREATEEX() instead of
old solution. This should fix it for some non-*nix
platforms where *nix specific TEMPDIR envvar was used
to determine temp directory.
* contrib/hbwin/Makefile
* include/Makefile
* src/rtl/Makefile
- contrib/hbwin/hbdyn.ch
+ include/hbdyn.ch
- contrib/hbwin/hbdyn.c
+ src/rtl/hbdyn.c
- contrib/hbwin/win_dllc.c
+ src/rtl/hbdynhb.c
- contrib/hbwin/tests/testdll.c
+ tests/testdyn.c
- contrib/hbwin/tests/testdll.prg
+ tests/testdyn.prg
- contrib/hbwin/tests/testdll1.prg
+ tests/testdyn1.prg
- contrib/hbwin/hbdyn.h
* include/hbapi.h
* Moved dynamic library call related functions to
core (RTL).
* Windows specific test code (currently all) guarded
for platform.
* Changed default calling convention to cdecl.
Tests adaptd accordingly.
* Terminology change: 'dll' -> 'dynamic library'
; HB_DYNCALL() is now part of core Harbour, and it's
platform independent. It's platform (ABI) dependent though,
and currently x64 and x86/stdcall/syscall/cdecl
is supported and these were tested (except OS/2 syscall).
* contrib/hbwin/hbwin.h
* contrib/hbwin/win_misc.c
* contrib/hbwin/legacycd.c
* Low level hbwin_getprocaddress() function moved
to legacy file and made static.
* contrib/xpp/Makefile
* contrib/xpp/dllx.c
* contrib/xpp/xpp.hbc
+ Enabled DLL*() functions for all platforms.
- Deleted dependence on hbwin library.
* contrib/xpp/tests/testdll.prg
* Windows specific parts (currently the whole test) guarded
for platform.
* contrib/hbct/Makefile
- contrib/hbct/diskhb.prg
* contrib/hbct/disk.c
* contrib/xhb/Makefile
+ contrib/xhb/diskhb.prg
* GETVOLINFO() moved from hbct to xhb.
* ChangeLog
* Marked some TODO/TOFIX items as DONE.
* harbour/include/hbvm.h
* harbour/src/vm/hvm.c
+ added new C function hb_vmFindFuncSym() which looks for function with
given name registered in HVM by dynamically loaded library. It looks
for public function and if public function cannot be located it tries
to find first static function which has requested name.
* harbour/include/hbapi.h
* harbour/src/vm/dynlibhb.c
+ added new C functions to manage dynamic libraries:
PHB_ITEM hb_libLoad( PHB_ITEM pLibName, PHB_ITEM pArgs );
HB_BOOL hb_libFree( PHB_ITEM pDynLib );
void * hb_libHandle( PHB_ITEM pDynLib );
void * hb_libSymAddr( PHB_ITEM pDynLib, const char * pszSymbol );
* harbour/include/hbextern.ch
* harbour/src/vm/dynlibhb.c
- removed HB_LIBDO() PRG function. If someone used it then please
use DO() instead
+ added new PRG function:
HB_LIBGETFUNSYM( <pLibHandle>, <cFuncName> ) -> <sFuncSym> | NIL
It works in similar way to HB_HRBGETFUNSYM() but it looks for
PRG function in given library. It tries to find public function
and if such function does not exists it looks for first static one.
<pLibHandle> is library handle returned by HB_LIBLOAD()
<cFuncName> is PRG function name.
<sFuncSym> is symbol of located function
If function can be found HB_LIBGETFUNSYM() returns NIL.
Warning: this function returns only symbols for functions registered
in HVM when library was loaded. It will not return symbols
for functions written in C and not explicitly registered
using own symbol table.
* ChangeLog
+ Added more description to WIN_DLLCALL() function usage.
* contrib/hbwin/hbdyn.c
+ Type conversion fixes after actual testing.
Now everything should work except float parameter passing
on x64 and passing/receiving unsigned longlongs to/from .dlls
on both x64/x86. I couldn't found how to interact properly
with HVM in this case.
Please review remaining TOFIXes.
+ contrib/hbwin/tests/testdll1.prg
+ contrib/hbwin/tests/testdll.c
+ Added code to test parameter passing.
* contrib/hbwin/legacycd.c
* contrib/hbwin/win_dll.c
+ Forcing stdcall calling convention. (it's the default yet,
but this may change to cdecl).
* contrib/hbwin/win_dll.c
* bUNICODE -> bWIDE.
* contrib/hbwin/hbdyn.ch
+ Added comment.
* include/hbdefs.h
* Typo in comment.
* contrib/hbwin/Makefile
! Added missing hbdyn.h.
* utils/hbmk2/hbmk2.prg
! Fixed to never add double backslash to output dir.
* include/hbdefs.h
* HB_BYTE made a synonym for HB_UCHAR.
HB_BYTE is only there for convenience, HB_UCHAR is recommended
for unsigned byte streams.
* HB_U8 now based on HB_UCHAR.
! Fixed UINT64/INT64 left defined in some cases.
* contrib/hbwin/hbwin.h
* contrib/hbwin/hbwin.ch
* contrib/hbwin/tests/testdll.prg
* contrib/hbwin/win_dll.c
* contrib/hbwin/legacycd.c
+ Added LONGLONG C types.
+ Added support for user-specifiable parameter types.
This works now in low-level C dll call function and also
on high level in HB_DLLCALL().
+ Added support for LONGLONG/int64 integers.
+ Added support for raw strings. (no UNICODE or codepage
conversion).
! Fixed typo in iRetTypeRaw assigment.
+ Added one new test for param type spec test. (pretty bare)
! Fixed WAPI_GETPROCADDRESS() to GETPROCADDRESS(). Latter
has some extra features so we still need it.
* GETPROCADDRESS() moved back to non-compatibility.
; Please review the code. There are some integer conversion
which might not be proper (& 0xFFFF).
* utils/hbmk2/hbmk2.prg
! Typo in recently added help text.
* contrib/Makefile
- contrib/hbbmcdx
+ contrib/rddbmcdx
* contrib/rddbmcdx/bmdbfcdx.c
* contrib/rddbmcdx/Makefile
* Renamed hbbmcdx to rddbmcdx.
* More cleanup to RDD code. (sync with rddcdx, deleted
unnecessary lines)
- Deleted "turbo" functionality. BM_TURBO() is now a dummy.
AFAIR this isn't safe, and even if it is it should be
implemented differently, not as a static variable.
* harbour/src/pp/Makefile
* harbour/src/pp/hbpp.c
! fixed compilation with HB_DYNLIB macro
- harbour/src/vm/maindll.c
- removed unused dummy file
* harbour/src/vm/Makefile
* harbour/include/hbapi.h
+ harbour/src/vm/procaddr.c
+ added hb_vmProcAddress() function
* harbour/include/hbdefs.h
+ added HB_EXPORT_ATTR and HB_IMPORT_ATTR macros - they are always
defined regardless of HB_DYNLIB macro state
* harbour/src/vm/maindllh/Makefile
* disabled HB_DYNLIB
* harbour/src/vm/maindllp/Makefile
+ harbour/src/vm/maindllp/dllpcode.c
+ added new import library for PCODE DLLs. It contains wrappers for
hb_vmProcessSymbols() and hb_vmExecute() implemented in a way
which creates minimal speed overhead.
+ added error reporting (MessageBox()) when redirected functions
cannot be found.
+ added hb_dllGetProcAddress() C function
* harbour/include/hbtypes.h
- harbour/src/vm/maindllp.c
+ harbour/src/vm/maindllp/dllext.c
* moved old wrappers to some of extended and array API functions
into separate file
* updated to use hb_dllGetProcAddress()
- removed functions which should not be used by user code
% cleaned, optimized and added error reporting to function wrappers.
I do not know who chose exported functions but it looks like a
quite random set which should be extended for real functionality.
If someone is interested then he can do that. I updated this file
only for backward compatibility.
Above modifications allows to use PCODE DLLs with any application
also static ones using Harbour compiled without exported symbols.
It's enough to link it with this function:
HB_EXPORT_ATTR PHB_FUNC dll_hb_vmProcAddress( const char * szFuncName )
{
return hb_vmProcAddress( szFuncName );
}
The official form of including above function to final binaries is not
defined yet.
* include/hbdefs.h
+ Added more info on HB_SIZE/HB_ISIZ future plans.
* contrib/hbmemio/memio.c
* contrib/hbnetio/netiocli.c
- Deleted ( HB_SIZE ) casts in more obscure places.
* utils/hbmk2/hbmk2.prg
+ -hbnolib option is now automatically enabled in -hbdyn mode.
To disable it anyway, -hbnolib- option can be used.
* src/vm/runner.c
* src/vm/garbage.c
* src/vm/classes.c
* src/rtl/cdpapi.c
* src/rtl/cdpapihb.c
* src/rdd/dbcmd.c
* include/hbapicdp.h
* include/hbapiitm.h
* include/hbextern.ch
* include/hbdefs.h
* include/hbsetup.h
* include/hbapi.h
- Deleted code guarded with (previously disabled) HB_LEGACY_LEVEL2
* include/rdd.api
* include/clipdefs.h
+ Permanently enabled HB_LEGACY_LEVEL2 related changes.
* contrib/xhb/bkgtsks.c
- Deleted HB_OS_WIN_USED. It wasn't used.
* include/hbapi.h
* src/vm/cmdarg.c
* hb_winmainArgGet() changed to not use Windows types.
This function is declared in hbapi.h and this header
shouldn't depend on windows.h.
* include/hbwince.h
* include/hbsetup.h
* HB_OS_HAS_DRIVE_LETTER is now configured in central
place (hbsetup.h) for WinCE platform also.
* include/hbwince.h
* include/hbdefs.h
* Windows (CE and not-CE) specific declarations moved from
hbwince.h to hbdefs.h.
* include/hbdefs.h
% hbwince.h inclusion now better guarded to not include it
for non WinCE platforms.
+ HB_OS_WIN_USED macro will now autodetected by checking
whether windows.h was included before this header.
This is required for hbwince.h. I don't like it, since
hbapi.h still depends on windows.h for WinCE platform,
which still ties us to unnecessary windows.h inclusion
rules. Rather, hbwince.h should be included directly
by .c files when needed and when HB_OS_WIN_CE is defined.
After all this our little Windows API implementation
for compilers which need it.
* include/hbdefs.h
* include/hbwmain.c
+ hb_winmainArgInit() declaration moved to hbwmain.c, the
only place where this is used.
* Deleted HB_EXPORT from hb_winmainArgInit. Pls speak up if
this is wrong. It's possible to move this back to hbdefs.h,
but parameter types should be changed to ANSI ones.
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/gtwvg.h
* contrib/gtwvg/wvggui.c
* contrib/gtwvg/wvgcuig.c
* contrib/gtwvg/wvggui.h
* contrib/gtwvg/wvgwin.c
* contrib/gtwvg/wvgutils.c
* contrib/gtwvg/wvgcore.c
* contrib/gtwvg/wvgwing.c
- Deleted HB_OS_WIN_USED. Now it should work without it.
windows.h was already included in non-official method, so
it's now okay also.
* include/hbsetup.ch
+ HB_LEGACY_OFF will also enable HB_LEGACY_TYPES_OFF.
* contrib/hbfimage/Makefile
* contrib/hbfimage/fi_winfu.c
* contrib/hbfimage/fi_wrp.c
+ Forcing HB_LEGACY_TYPES_OFF.
+ Switched to new regular kind of windows.h inclusion.
+ Enabled for *nix platforms. Now it should build w/o problems.
; New regular windows.h inclusion goes as follows:
---
/* After #include "hbapi.h", write this: */
#if defined( HB_OS_WIN )
#include <windows.h> /* or any other Windows API header you may need, in any valid order or combination. */
#endif
---
Old hacky method can now be safely deleted:
'#define HB_OS_WIN_USED' and/or
'#define HB_OS_WIN32_USED'
* contrib/hbbtree/hb_btree.c
! Cleaned '{};' to be '{}' after prev cleanup (';' -> '{};')
* doc/whatsnew.txt
+ Added section for version 2.1.0.
* src/pp/pplib.c
* src/common/hbprintf.c
* src/rtl/gtclip.c
* src/rdd/dbfntx/dbfntx1.c
* src/rdd/dbfnsx/dbfnsx1.c
* src/rdd/dbfcdx/dbfcdx1.c
* src/rdd/dbffpt/dbffpt1.c
* src/compiler/hbpcode.c
* include/hbgtcore.h
* contrib/hbbmcdx/bmdbfcdx.c
* contrib/hbbtree/hb_btree.h
* contrib/hbbtree/hb_btree.c
! Fixed remaining type conversion problems after doing
live testing on win/bcc.
Please test it on other platforms.
* config/rules.mk
+ Enabled HB_LEGACY_TYPES_OFF on default Harbour
builds. This is required to keep new type usage
enforced.
* harbour/include/hbapicdp.h
* harbour/src/rtl/cdpapi.c
* replaced 'unsigned char' with 'HB_UCHAR'
* harbour/src/rtl/cdpapihb.c
* harbour/contrib/hbwin/wapi_shellapi.c
% minor optimization
* harbour/src/vm/maindllp.c
* use already existing HB_MACRO2STRING() macro instead of locally
defined HB_DLLSTR_()
* respect defined but not used so far HB_DLL_NAMEMT and HB_DLL_NAMEMT2
* include/hbdefs.h
+ Changed HB_LONG and HB_ULONG to 'long' and 'unsigned long'
32-bit integer types, the new equivalents of legacy
types LONG and ULONG.
WARNING, INCOMPATIBLE: The legacy meaning of these types
were 64-bit integers. Existing code
should changes these types to HB_VMMAXINT,
HB_VMMAXUINT respectively.
Notice this change is non-delayable and non-togglable, so
you must update your code now.
- Deleted HB_CHAR type.
* HB_UCHAR/HB_BYTE marked with QUESTION.
- Deleted some commented new types.
* contrib/hbbmcdx/bmdbfcdx.c
+ Attempt to sync with DBFCDX RDD source.
Please try to help in this, there are some larger patches
which I didn't apply.
I'd be very nice if someone could take this code and convert
it to a filter RDD instead of current copy+patch approach.
In such case it could even be moved to core.
* include/hbdefs.h
+ Readded HB_U8 and HB_I8. Currently mapped to HB_BYTE/HB_CHAR,
but it should be used where 8-bitness of a char is a requirement.
F.e. when writing/reading to/from files.
+ HB_CHAR changed from 'char' to 'signed char'. This is brand
new type, not yet used in Harbour code, so it's safe.
For char with non-guaranteed signedness, ANSI type 'char'
should be used.
* HB_UCHAR is now a synonym for HB_BYTE. It's now also legacy.
* HB_SCHAR is now a synonym for HB_CHAR. It's now also legacy.
; TODO: Replace all HB_SCHAR with HB_CHAR and HB_UCHAR with HB_BYTE,
and move the old types to compatibility status.
* ChangeLog
! Fixed date in my today's entries.
* include/hbdefs.h
+ Changed types to have our "new" types as primary
ones, and old types as legacy ones. This also means
that all old/legacy types are now based on new types.
+ Added HB_LEGACY_TYPES_OFF #define, with which you can
disable all legacy types for testing purposes.
This mode will become the default in the future,
so start to prepare for the new types.
; NOTE: Harbour and 3rd party components can't be compiled
with this switch enabled yet, since there is still some
type conversions tasks left. For now its purpose
is to look for remaining legacy types in Harbour code.
* include/hbvmpub.h
* BYTE -> HB_BYTE
* include/hbdefs.h
! New Harbour types moved upper in the file to avoid
errors reported on the list.
- Deleted HB_I8 and HB_U8 types. Practice shows that
HB_UCHAR and HB_SCHAR are used instead of these.
* harbour/src/rdd/dbfcdx/dbfcdx1.c
* minor code cleanup
* harbour/src/vm/macro.c
% eliminated memory allocation in macro compiler for object item assign
operation
* updated hb_macroGenMessage() to work like hb_compilerGenMessage()
* harbour/src/vm/memvars.c
* reverted HB_ISIZ -> int
* harbour/include/hbmacro.h
* harbour/include/hbexprop.h
* harbour/include/hbexpra.c
* harbour/src/common/expropt1.c
- eliminated old hb_compExprNewSend()/hb_macroExprNewSend()
+ added common for compiler and macrocompiler functions:
hb_compExprNewSend(),
hb_compExprNewMacroSend(),
hb_compExprNewMethodObject()
* harbour/include/hbcomp.h
* harbour/src/compiler/harbour.y
* harbour/src/compiler/harbour.yyc
* harbour/src/compiler/harbour.yyh
* use new functions for send coperator
% eliminated asMessage structure - it was the biggest one so this
modification reduce total memory usage by grammar stack
+ added new terminal symbol MacroAny and simplified some rules using it
+ added static function hb_compCheckMethod() used for enumerator
messages
- eliminated public function hb_compForEachVarError()
* harbour/src/macro/macro.y
* harbour/src/macro/macro.yyc
* use new functions for send coperator
* include/hbapi.h
* src/vm/memvars.c
* ULONG -> HB_SIZE where applicable
* int -> HB_ISIZ where it was used for size
* src/vm/macro.c
! LONG -> long for date/time.
* include/hbchksum.h
* src/rtl/hbadler.c
* src/rtl/hbcrc.c
* src/rtl/hbi18n1.c
* contrib/hbmzip/hbmzip.c
* ULONG -> HB_U32 for crc32 and adler32
* ULONG -> HB_U16 for crc16
(the crc table was also changed to HB_U16, pls speak up if this
may cause less-optimal performance than previous state.)
* int -> HB_ISIZ where it was used for size (in adler loop)
* include/hbapi.h
* HB_VMHANDLE is now mapped to 'unsigned long' instead of ULONG
* contrib/hbwin/win_bmp.c
- Deleted no more necessary cast.
* src/vm/runner.c
! Fixed error reported by Petr.
I'm not really sure about the problem, and current code
is not 100% future proof as a HB_SIZE is passed by reference
where ULONG ptr is expected.
* include/hbsetup.h
+ Added HB_DEPRECATED. Can be used as function or variable attribute.
* src/rtl/gttone.c
+ Using ANSI C types.
! ULONG -> DWORD for Windows API calls.
* src/rtl/direct.c
! ULONG -> HB_FATTR
* src/rtl/itemseri.c
* include/hbapiitm.h
* ULONG -> HB_SIZE
* src/rtl/samples.c
+ Using ANSI C types. This fixes possible
incompatibilities with original .prg implementation
in Clipper.
* contrib/hbhpdf/harupdf.c
* Conversion to libharu BOOL value cleaned.
* include/hbapicdp.h
* utils/hbmk2/hbmk2.prg
* Formatting.
* harbour/include/hbapifs.h
* harbour/src/rtl/filebuf.c
* harbour/contrib/hbmemio/memio.c
* harbour/contrib/hbnetio/netiocli.c
+ added new method:
void Flush( PHB_FILE pFile, HB_BOOL fDirty );
to replaceable RDD IO structure (HB_FILE)
+ added new function:
void hb_fileFlush( PHB_FILE pFile, HB_BOOL fDirty );
* harbour/src/rdd/dbfntx/dbfntx1.c
* harbour/src/rdd/dbfnsx/dbfnsx1.c
* harbour/src/rdd/dbfcdx/dbfcdx1.c
* harbour/src/rdd/dbffpt/dbffpt1.c
* use hb_fileFlush()
* harbour/src/vm/hvm.c
* harbour/include/hbxvm.h
! fixed hb_xvm{Local,Static,Module}Name() to use 'const char *'
instead of 'char *' - modifications by Xavi (jarabal)
* harbour/include/hbapi.h
* harbour/include/hbxvm.h
* harbour/include/hbmacro.h
* harbour/include/hbcompdf.h
* harbour/src/vm/hvm.c
* harbour/src/vm/macro.c
* harbour/src/vm/memvars.c
* replaced some 'BYTE' types with 'unsigned char' or 'int' types
* cleanup some other casting and types to reduce conversions
between function calls
* harbour/src/common/expropt1.c
; updated comments
* harbour/include/hbpp.h
* harbour/include/hbexprop.h
* harbour/include/hbexpra.c
* harbour/include/hbexprb.c
* eliminated HB_EXPR_PCODE?() macros
! fixed potential GPF trap during compilation of _GET_() functions
which can be exploited by strange code using some special expressions
as get variable.
TODO: eliminate hb_compExprClone() used in hb_compExprSetGetBlock(),
our optimization module does not care about shared expressions
so it can be source of serious problems in the future if someone
use this functions for non optimized expression which will be
reduced later.
* emulate clipper behavior for codeblock optimizations and do
not optimize all codeblocks if -kc switch is used and codeblocks
is inside non optimized part of code like (Clipper has such
places)
% simplified and optimized some functions like hb_compExprReduceList()
* src/rtl/fstemp.c
* include/hbapifs.h
* include/hbextern.ch
+ Added HB_DIRTEMP() .prg level function. Returns name of temp dir,
with closing backslash.
+ Added hb_fsTempDir() .c level function.
; Please review, especially MS-DOS, OS/2, which I won't be able
to test.
* src/rtl/fstemp.c
* Cleanup: Deleted hb_fsCreateTempLow(), made layout more clear.
; TOFIX: For some builds, MS-DOS, OS/2 and WIN without WIN IO
the temp directory will be wrongly calculated by checking
TMPDIR envvar. Such envvar seems *nix specific.
If new hb_fsTempDir() will be tested, above can be fixed
by using this new function.
* package/winuni/RELNOTES
+ Noted update to Firebird 2.5.0rc1
* contrib/hbpgsql/postgres.c
+ Marked recently deprecated function as HB_LEGACY_LEVEL3.
* contrib/hbfbird/firebird.c
* Cleanup for a macro.
* contrib/hbnetio/utils/netiosrv.prg
+ Using HB_HRB_BIND_FORCELOCAL when loading .hrb.
* contrib/hbnetio/utils/modules/test.prg
+ Marked function as STATIC.
* ChangeLog
* Old TODO marked DONE.
* harbour/include/hbvm.h
* harbour/src/vm/hvm.c
* covered hb_vmPushState() and hb_vmPopState() functions by
HB_LEGACY_LEVEL3 macro. These functions are depreciated,
hb_vmRequestReenter()/hb_vmRequestRestore() should be used
instead.
* harbour/src/vm/hvm.c
* harbour/src/vm/itemapi.c
* harbour/src/rtl/errapi.c
* harbour/contrib/xhb/cstructc.c
* changed HB_TRACE_STEALTH() to HB_TRACE()
* harbour/include/hbtrace.h
* harbour/include/hbstack.h
* harbour/src/vm/estack.c
* harbour/src/nortl/nortl.c
+ added hb_traceset() and hb_traceinfo()
* harbour/include/hbtrace.h
* harbour/src/common/hbtrace.c
* use hb_traceset()/hb_traceinfo() instead of hb_tr_file_, hb_tr_line_,
hb_tr_level_
- removed hb_tr_file_, hb_tr_line_, hb_tr_level_
+ added hb_tr_stealth() function and modified HB_TRACE_STEALTH()
macro to not touch any of hb_tr_*_ global variables
+ added HB_TR_FM macro which can be used to infrom FM statistic
module that it should take filename and line number from hb_tr_*_
global variables
* harbour/src/vm/fm.c
- removed dummy code with HB_TR_LEVEL setting - HB_TR_LEVEL is
always defined by hbtrace.h
* use hb_traceset()/hb_traceinfo() instead of hb_tr_file_, hb_tr_line_,
hb_tr_level_
* respect HB_TR_FM
* harbour/src/rtl/gttrm/gttrm.c
* formatting
* harbour/src/vm/itemapi.c
* harbour/src/vm/extend.c
* harbour/src/rtl/descend.c
* harbour/src/rtl/hbgtcore.c
* harbour/src/rtl/mtran.c
* harbour/src/rtl/samples.c
* harbour/src/common/hbstr.c
* harbour/src/common/hbdate.c
! fixed possible GPF traps in HB_TRACE() messages caused by %s used
for not \0 terminated strings or uninitialized buffers
* harbour/src/rtl/direct.c
! do not strip other attributes when "V" is set - it's neither
DOS not Clipper compatible behavior
Clipper passes attributes to OS and then OS decides about
their interpretation, i.e. FreeDOS replicates hardcoded
in our previous DIRECTORY() code behavior but MS-DOS doesn't.
% small simplification
* harbour/src/common/hbffind.c
! fixed emulation of DOS volum attribute in MS-Windows builds of
hb_fsFindFirst()/hb_fsFindNext().
It also fixes problem in HBCT FILEATTR() function in MS-Windows
builds.
This is still not full DOS emulation. Exact emulation should
automatically add trailing \ to given path, detect drive letter
and resolve their current directories. If some windows users
think it's important then they can extend this emulation.
Now it can be done as local modifications only.
Please test with real MS-Windows.
! fixed error code setting in UNICODE MS-Windows builds of
hb_fsFindFirst()/hb_fsFindNext().
* harbour/contrib/hbct/files.c
* removed old hack which is not longer necessary for current code.
* harbour/include/hbapifs.h
* small modifications to make HB_FNAME structure alignment independent
* harbour/src/vm/hvm.c
! fixed GPF when WITH OBJECT reference is used inside codeblock
evaluated outside WITH OBJECT / ENDWITH structure
TODO: forbid using WITH OBJECT references in nested codeblocks
* src/rtl/Makefile
* src/rtl/cdpapi.c
+ src/rtl/cdpapihb.c
* include/hbapicdp.h
+ Moved Harbour level functions to a separate file.
I had to rename and publish three static functions.
Eventually the low level part should go to hbcommon lib.
; TODO: HB_CDPLIST() is still to be moved, I couldn't find out elegant
low-level API to solve it.
* contrib/hbwin/wapi_wingdi.c
* contrib/hbwin/wapi_winuser.c
* contrib/hbwin/hbwapi.h
+ Added hbwapi_stor_*() functions to store Windows structures
RECT, POINT and DEVMODE. Latter supports hash only (due
to large number of structure members), other two supports
both array and hash.
Please review my code.
+ WAPI_MOVETOEX() now uses hbwapi_stor_POINT().
! WAPI_DRAWTEXT() fixed to return RECT (using hbwapi_stor_RECT()).
* contrib/hbwin/legacy.prg
* contrib/xhb/xhw32prn.prg
* Moved Win32Bmp compatibility class from hbwin to xhb lib.
! Deleted Win32Prn compatibility clsss from hbwin, as it's
now implemented in xhb in a better way.
* harbour-win-spec
* harbour-wce-spec
* harbour.spec
* include/hbver.h
* config/global.mk
+ Changed to new major version number:
2.1.0dev (from 2.0.1dev)
This gives way for 2.0.x branch to take
the 2.0.1dev version number.