From 328e65a71aa1f1b0080944fda39ab164319f8210 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Mon, 8 Feb 2010 23:42:55 +0000 Subject: [PATCH] 2010-02-09 00:41 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * 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 /* 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. --- harbour/ChangeLog | 33 +++++++++++++++++++++++++++-- harbour/contrib/hbbtree/hb_btree.c | 22 ++++++++----------- harbour/contrib/hbfimage/Makefile | 5 ++--- harbour/contrib/hbfimage/fi_winfu.c | 4 ++-- harbour/contrib/hbfimage/fi_wrp.c | 9 ++++---- harbour/doc/whatsnew.txt | 24 +++++++++++++++++++++ harbour/include/hbsetup.ch | 4 +++- 7 files changed, 76 insertions(+), 25 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 32610224f0..45f4befcf6 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,35 @@ past entries belonging to author(s): Viktor Szakats. */ +2010-02-09 00:41 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) + * 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 /* 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. + 2010-02-09 00:13 UTC+0100 Viktor Szakats (harbour.01 syenar.hu) * src/pp/pplib.c * src/common/hbprintf.c @@ -229,11 +258,11 @@ - Verify with grep script [DONE] - Verify with HB_USER_CFLAGS=-DHB_LEGACY_TYPES_OFF [DONE] - Make HB_LEGACY_TYPES_OFF default for Harbour builds. [DONE] - - Tie HB_LEGACY_TYPES_OFF to HB_LEGACY_LEVEL3 + - Tie HB_LEGACY_TYPES_OFF to HB_LEGACY_LEVEL3 [DONE] + - Retest hbfimage on *nix, delete hacks [DONE] - Replace current windows.h inclusion hack with regular method - Delete hacks dealing with former type chaos: HB_CLIPPER_INT_ITEMS, HB_DONT_DEFINE_BASIC_TYPES, HB_DONT_DEFINE_BOOL, HB_DONT_DEFINE_BYTE, HB_DONT_DEFINE_LONG - - Retest hbfimage on *nix, delete hacks - Normalize HB_BYTE vs. HB_UCHAR usage - Type cleanups, f.e. HB_SIZE vs. HB_ULONG - Add new special types (see above) diff --git a/harbour/contrib/hbbtree/hb_btree.c b/harbour/contrib/hbbtree/hb_btree.c index aefaafc088..e5a098ce26 100644 --- a/harbour/contrib/hbbtree/hb_btree.c +++ b/harbour/contrib/hbbtree/hb_btree.c @@ -393,8 +393,7 @@ static void ioBufferScan( struct hb_BTree * pBTree, HB_ULONG page ) or the last buffer in the list */ for ( thisptr = pBTree->ioBuffer; thisptr && !BTREENODEISNULL( pBTree, thisptr->xPage.ulPage ) && thisptr->xPage.ulPage != page && thisptr->next; - thisptr = thisptr->next ) - {}; + thisptr = thisptr->next ) {} /* only shuffle the buffers if the target buffer is not the root buffer */ if ( thisptr != pBTree->ioBuffer ) @@ -668,8 +667,7 @@ static void Prune( struct hb_BTree * pBTree, HB_ULONG ulNode ) ioBuffer_T * thisptr; HB_ULONG n; - for ( thisptr = pBTree->ioBuffer; thisptr && thisptr->xPage.ulPage != ulNode; thisptr = thisptr->next ) - {}; + for ( thisptr = pBTree->ioBuffer; thisptr && thisptr->xPage.ulPage != ulNode; thisptr = thisptr->next ) {} if ( thisptr->prev ) thisptr->prev->next = thisptr->next; if ( thisptr->next ) thisptr->next->prev = thisptr->prev; @@ -1206,8 +1204,8 @@ static void Successor( struct hb_BTree * pBTree, HB_ULONG ulNode, int iPosition for ( tmpnode = BranchGet( pBTree, ulNode, iPosition ); !BTREENODEISNULL( pBTree, BranchGet( pBTree, tmpnode, 0 ) ); - tmpnode = BranchGet( pBTree, tmpnode, 0 ) ) - {}; + tmpnode = BranchGet( pBTree, tmpnode, 0 ) ) {} + KeySet( pBTree, ulNode, iPosition, ( buffer = KeyGet( pBTree, tmpnode, 1, NULL ) ) ); BufferRelease( buffer ); } @@ -1362,7 +1360,7 @@ HB_BOOL hb_BTreeDelete( struct hb_BTree * pBTree, const char *target, HB_LONG lD } #if 0 else - {}; /* error - key does not exist */ + {} /* error - key does not exist */ #endif } else @@ -1381,8 +1379,7 @@ void hb_BTreeGoTop( struct hb_BTree * pBTree ) HB_ULONG ulNode; HB_ULONG ulLastNode; - for ( ulLastNode = ulNode = pBTree->ulRootPage; !BTREENODEISNULL( pBTree, ulNode ); ulLastNode = ulNode, ulNode = BranchGet( pBTree, ulNode, 0 ) ) - {}; + for ( ulLastNode = ulNode = pBTree->ulRootPage; !BTREENODEISNULL( pBTree, ulNode ); ulLastNode = ulNode, ulNode = BranchGet( pBTree, ulNode, 0 ) ) {} if ( BTREENODEISNULL( pBTree, ulLastNode ) ) CLEARKEYDATA( pBTree ); @@ -1395,8 +1392,8 @@ void hb_BTreeGoBottom( struct hb_BTree * pBTree ) HB_ULONG ulNode; HB_ULONG ulLastNode; - for ( ulLastNode = ulNode = pBTree->ulRootPage; !BTREENODEISNULL( pBTree, ulNode ); ulLastNode = ulNode, ulNode = BranchGet( pBTree, ulNode, CountGet( pBTree, ulNode ) ) ) - {}; + for ( ulLastNode = ulNode = pBTree->ulRootPage; !BTREENODEISNULL( pBTree, ulNode ); ulLastNode = ulNode, ulNode = BranchGet( pBTree, ulNode, CountGet( pBTree, ulNode ) ) ) {} + if ( BTREENODEISNULL( pBTree, ulLastNode ) ) CLEARKEYDATA( pBTree ); else @@ -1686,8 +1683,7 @@ static int BTree_SetTreeIndex( struct hb_BTree * pBTree ) if ( pBTree == NULL ) return -1; - for ( n = 0; n < s_BTree_List_Count && s_BTree_List[ n ] != NULL; n++ ) - {}; + for ( n = 0; n < s_BTree_List_Count && s_BTree_List[ n ] != NULL; n++ ) {} if ( n == s_BTree_List_Count ) { diff --git a/harbour/contrib/hbfimage/Makefile b/harbour/contrib/hbfimage/Makefile index 1dcecc1d26..65dd09f44b 100644 --- a/harbour/contrib/hbfimage/Makefile +++ b/harbour/contrib/hbfimage/Makefile @@ -21,18 +21,17 @@ _DET_DSP_NAME := freeimage _DET_VAR_INC_ := HB_INC_FREEIMAGE _DET_VAR_HAS_ := HB_HAS_FREEIMAGE # disabled until a proper solution is found for type collision (except for dos where it's not supported at all) -_DET_FLT_PLAT := !dos !os2 !linux !darwin +_DET_FLT_PLAT := !dos !os2 _DET_FLT_COMP := _DET_INC_DEFP := /usr/include /opt/local/include _DET_INC_HEAD := /FreeImage.h include $(TOP)$(ROOT)config/detfun.mk ifneq ($(HB_HAS_FREEIMAGE),) - HB_CFLAGS += $(foreach d,$(HB_HAS_FREEIMAGE),-I$(d)) + HB_CFLAGS += -DHB_LEGACY_TYPES_OFF $(foreach d,$(HB_HAS_FREEIMAGE),-I$(d)) include $(TOP)$(ROOT)config/header.mk include $(TOP)$(ROOT)config/lib.mk - else HB_SKIP_REASON := $(_DET_RES_TEXT) include $(TOP)$(ROOT)config/none.mk diff --git a/harbour/contrib/hbfimage/fi_winfu.c b/harbour/contrib/hbfimage/fi_winfu.c index a503ec2a2f..66cbea33cc 100644 --- a/harbour/contrib/hbfimage/fi_winfu.c +++ b/harbour/contrib/hbfimage/fi_winfu.c @@ -52,13 +52,13 @@ /* TOFIX: To use GC collected pointers. */ -#define HB_OS_WIN_USED - #include "hbapi.h" #include "hbapierr.h" #if defined( HB_OS_WIN ) && ! ( defined( HB_OS_WIN_CE ) && defined( __POCC__ ) ) +#include + #if !defined( _WINDOWS_ ) && ( defined( __GNUC__ ) || defined( __POCC__ ) || defined( __XCC__ ) ) || defined( __WATCOMC__ ) #define _WINDOWS_ #endif diff --git a/harbour/contrib/hbfimage/fi_wrp.c b/harbour/contrib/hbfimage/fi_wrp.c index a7b4f66afe..e32001286f 100644 --- a/harbour/contrib/hbfimage/fi_wrp.c +++ b/harbour/contrib/hbfimage/fi_wrp.c @@ -52,15 +52,16 @@ /* TOFIX: To use GC collected pointers. */ -#define HB_OS_WIN_USED - #include "hbapi.h" #include "hbapiitm.h" #include "hbapierr.h" #include "hbvm.h" -#if defined( HB_OS_WIN ) && !defined( _WINDOWS_ ) && ( defined( __GNUC__ ) || defined( __POCC__ ) || defined( __XCC__ ) ) || defined( __WATCOMC__ ) - #define _WINDOWS_ +#if defined( HB_OS_WIN ) + #include + #if !defined( _WINDOWS_ ) && ( defined( __GNUC__ ) || defined( __POCC__ ) || defined( __XCC__ ) ) || defined( __WATCOMC__ ) + #define _WINDOWS_ + #endif #endif #ifdef HAVE_CONFIG_H diff --git a/harbour/doc/whatsnew.txt b/harbour/doc/whatsnew.txt index 72d8301ad7..460748b721 100644 --- a/harbour/doc/whatsnew.txt +++ b/harbour/doc/whatsnew.txt @@ -12,6 +12,30 @@ The license applies to all entries on or after Version 1.1.0. */ +Version 2.1.0 (2010-??-??) + +Note +============================= + + [TODO] + +Known build issues +============================= +- Windows 64-bit builds may generate a large amount of type + conversion warnings. This is currently normal and will be + addressed in a future version. +- Contrib hbsqlit3 will not embed foreign sqlite3 library code + for Pelles C 4.5 and Open Watcom 1.7 due to fatal compile problems. + For these compilers you will have to supply sqlite3 library + yourself. For other compilers, some warnings are expected and + normal in this non-Harbour code. +- Using Pelles C 5.00.1 in 64-bit mode, HB_INET*() functions + won't work. +- gtalleg contrib may not compile on all platforms/compilers. +- hbcurl won't build when using DMC and libcurl 7.19.0. + Earlier versions build okay. + + Version 2.0.0 (2009-12-22) Note diff --git a/harbour/include/hbsetup.ch b/harbour/include/hbsetup.ch index ef942fc524..5b6eb1e0a3 100644 --- a/harbour/include/hbsetup.ch +++ b/harbour/include/hbsetup.ch @@ -70,7 +70,7 @@ /* #define HB_COMPAT_CLIP */ /* Enable CLIP extensions */ /* *********************************************************************** - * Leave this #define if you want to allow usage of legacy Harbour 1.0.0/Clipper + * Leave this #define if you want to allow usage of legacy Harbour 2.0.0/Clipper * #defines/types/functions in your 3rd party C code. In later Harbour * versions this macro will be first disabled by default, then completely * removed, leaving the only default the strict Harbour namespace without @@ -80,6 +80,8 @@ */ #ifndef HB_LEGACY_OFF #define HB_LEGACY_LEVEL3 +#else +#define HB_LEGACY_TYPES_OFF #endif /* Future level of legacy cleanup */