* xharbour/include/hbvmpub.h
* changed definition of HB_SYMB structure.
HB_SYMBOLSCOPE cScope
replaced by:
union
{
HB_SYMBOLSCOPE value; /* the scope of the symbol */
void * pointer; /* filler to force alignment */
} scope;
This modification should only force the same alignment independently
on used compiler alignment switches or executed #pragma pack*
It's important to keep this structure with fixed size because it's
used in .c files generated from .prg code.
The code with #pragma pack* removed - it should not be longer
necessary but please make a real tests with different compiler
alignment switches
* harbour/contrib/btree/hb_btree.c
* harbour/contrib/rdd_ads/ads1.c
* harbour/contrib/runjava/runjava.c
* harbour/source/compiler/genc.c
* harbour/source/rdd/dbf1.c
* harbour/source/rdd/delim1.c
* harbour/source/rdd/sdf1.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* harbour/source/rdd/dbfdbt/dbfdbt1.c
* harbour/source/rdd/dbffpt/dbffpt1.c
* harbour/source/rdd/dbfntx/dbfntx1.c
* harbour/source/vm/dynsym.c
* harbour/source/vm/hvm.c
* harbour/source/vm/initsymb.c
* harbour/source/vm/runner.c
* updated for modified HB_SYMB structure.
* harbour/make_gnu.sh
+ harbour/make_xmingw.sh
* harbour/bin/hb-mkslib.sh
* harbour/bin/postinst.sh
* harbour/config/w32/mingw32.cf
* added support for cross compilation (Windows binaries at Linux) with
MinGW - borrowed from xHarbour Phil Krylov solution
* harbour/contrib/btree/hb_btree.c
* casting
* harbour/contrib/libct/files.c
! fixed iAttr initialization in SETFATTR()
* harbour/contrib/ole/ole2.c
! fixed names of included files
* harbour/contrib/rdd_ads/ace.h
* cover #pragma warning( error : 4706 ) by !defined( __GNUC__ )
* harbour/include/hbapi.h
* harbour/include/hbdefs.h
+ harbour/source/common/hbarch.c
* harbour/source/common/Makefile
* added functions for machine independent double and long long conversions
(my code borrowed from xHarbour)
* harbour/include/hbapifs.h
* synced file IO with xHarbour - it fixes some problems, adds some
missing functionality and long (64bit) file support for Windows.
For Linux I added it some time ago.
* harbour/include/hbcomp.h
* changed 'char cScope' to 'HB_SYMBOLSCOPE cScope'
* harbour/source/common/hbfsapi.c
! fixed some possible buffer overflow
* harbour/source/common/hbstr.c
* synced with xHarbour
* harbour/source/common/hbver.c
+ added hb_iswinnt() (borrowed from xHarbour)
* harbour/source/compiler/cmdcheck.c
+ added -undef: compiler switch (borrowed from xHarbour)
* harbour/source/compiler/gencobj.c
* cleanup
* harbour/source/pp/ppcore.c
! fixed path delimiters in included file names
* harbour/source/rtl/Makefile
+ harbour/source/rtl/fserror.c
+ added C -> OS file error trnalsations - not perfect but better then
the used hacks (borrowed from xHarbour)
* harbour/source/rtl/file.c
* use hb_fileNameConv() instead of hb_filecase() - hb_fileNameConv()
is the only one function to make file name conversions dependent on
some SETs.
* harbour/source/rtl/filesys.c
* synced file IO with xHarbour - it fixes some problems, adds some
missing functionality and long (64bit) file support for Windows.
For Linux I added it some time ago.
* harbour/source/rtl/fstemp.c
* synced with xHarbour
* harbour/source/rtl/strings.c
* use ULONG instead of size_t in hb_strnicmp declaration - we have to
decide what we should use. Using size_t or its Harbour version f.e.
HB_SIZE_T seems to be reasonable but it has to be global - redefining
single functions does not make sense and will create troubles only.
* harbour/contrib/btree/hb_btree.c
+ added _CLIPDEFS_H define to let it compile on OS/2 GCC
* harbour/contrib/libct/bit1.c
* harbour/contrib/libct/bit3.c
* harbour/contrib/libct/ct.h
+ added _CLIPDEFS_H define to let it compile on OS/2 GCC
* changed redefined base tipes to C ones, like WORD -> long, bit3.c was already
partly fixed before this one
* harbour/contrib/libnf/chdir.c
* harbour/contrib/libnf/dispc.c
* harbour/contrib/libnf/getenvrn.c
* harbour/contrib/libnf/kspeed.c
* harbour/contrib/libnf/mouse.c
* harbour/contrib/libnf/rmdir.c
+ added _CLIPDEFS_H define to let it compile on OS/2 GCC, now it compiles,
but a lot of functions are DOS only
! contrib/btree/hb_BTree.c
* struct hb_btree pStrCompare function pointer changed to use the size_t
type for the third param, to coincide with ChangeLog 2002-07-14 14:14 UTC+0500
* contrib/btree/hb_btree.api
+ extern "C"
* rename nFlags to ulFlags
+ declaration for hb_BTreeDataItem()
* declaration for hb_BTreeInsert() to use a PHB_ITEM vs LONG
* contrib/btree/hb_btree.ch
- comments from around 'inmemory' definition
* contrib/btree/test/test.prg
+ code to test in-memory tree, including passing floats vs longs
* contrib/btree/test/ctest.c
! a SEEK call that was incorrectly failing because the
DATA param passed as 0
* hb_BTreeInsert() calls to use new form (PHB_ITEM vs long)
* contrib/btree/hb_btree.c
; the following warnings are reported by BCC (thanks Alexander):
Suspicious pointer conversion in function hb_BTreeNew & hb_BTreeOpen
pBTree->pStrCompare = strncmp;
Parameter 'ulFlags' is never used in function hb_BTreeOpen
- defintion and use of DBG() macro
+ extern "C" ifdef'd
- comments from around 'inmemory' definition
* renamed nFlags to ulFlags, lFlags to ulFlags, position to iPosition
* hb_btreenew [hi level] - when flag contains HB_BTREE_INMEMORY,
first
parameter is ignored
* hb_btreenew [lo level] - when flag contains HB_BTREE_INMEMORY,
dont
try to open the file, etc, and clear necessary fields
* hb_btreeclose [lo level] - close file and release file name only when
necessary
* only call HeaderWrite() when not in-memory tree
+ ioOneBufferAlloc() - allocate one ioBuffer_T block, called by
ioBufferAlloc(), and Grow() when in-memory
* Grow() in-memory - add a page to the link list
+ Prune() in-memory - added code to remove a page from the link list
* (assorted) IsDirty flag is assigned the tree property IsDirtyFlagAssignment,
so that in-memory trees never fire the write methods (ie. always false)
* hb_BTreeGoTop(), hb_BTreeGoBottom() [lo-level]
+ bug fix: preserve last node found
+ if tree is empty, clear key/data, else retrieve selected key/data
* ioBufferRead() - moved IsDirty reset within "if ( IsDirty )" block
* ioBufferScan() - call ioBufferRead() when not in-memory tree
- SearchNode() redundant BufferRelease() and return statement
- enum ExceptionTypes (not used)
- Buffer_T typedef struct, incorporating into the ioBuffer_T typedef struct
* hb_KeyData_T: replaced lData with a union lData/pData
+ definition for hb_BTreeDataItem()
* definition for hb_BTreeInsert() to use a PHB_ITEM vs LONG
* hb_btreeinsert() [hi-level] accepts only number for file i/o and
any data type for in-memory
- macro SETKEYDATA(), placing equivalent code into hb_BTreeInsert()
+ Prune() - release individial items and then the page itself
! CountAdj() last param should have been SHORT not USHORT
; RecDelete() moved the inline assignment & comparision around to remove
the b32 warning
TODO: find a solution to the 'Suspicious pointer conversion in function
hb_BTreeNew & hb_BTreeOpen' [strncmp() & hb_strncmp()]
TODO: impliment ulFlags within hb_btreeopen() - see warning above
- clear im-memory flag
- get unique flag from file header
* contrib/btree/doc/hb_btree.txt
* spelling corrections
* clarified use of HB_BTREE_INMEMORY flag with hb_BTreeNew() API
! corrected type of pBTree params, from 'hb_BTree *' to 'struct hb_BTree *'
+ definition for hb_BTreeDataItem()
* clarified use of data param and data return value