diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 01b65fefe7..774585e312 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,22 @@ The license applies to all entries newer than 2009-04-28. */ +2011-05-04 17:01 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/include/hbinit.h + * formatting + + * harbour/src/common/hbstr.c + * pacified warnings generated by C compilers having + modf() function wrongly defined in header files + + * harbour/src/rtl/hbtoken.c + ! fixed bug reported by Patrick on xHarbour devel list + + * harbour/src/rdd/dbfcdx/dbfcdx1.c + * modified to use different startup function names as workaround + for problems with non unique function names reported by compilers + using HB_INITSEG_STARTUP - it's not a fix but workaround only. + 2011-05-04 14:05 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/src/pp/ppcore.c ! fixed #pragma __binarystreaminclude used with zero length files. diff --git a/harbour/include/hbinit.h b/harbour/include/hbinit.h index c2a4de7a84..91e66ef354 100644 --- a/harbour/include/hbinit.h +++ b/harbour/include/hbinit.h @@ -161,7 +161,9 @@ extern HB_EXPORT PHB_SYMB hb_vmProcessSymbols( PHB_SYMB pSymbols, HB_USHORT uiSy } #elif defined( HB_GNUC_STARTUP ) || \ - defined( __GNUC__ ) || defined( __SUNPRO_C ) || defined( __SUNPRO_CC ) || defined( __DCC__ ) + defined( __GNUC__ ) || \ + defined( __SUNPRO_C ) || defined( __SUNPRO_CC ) || \ + defined( __DCC__ ) #if defined( HB_PRAGMA_STARTUP ) || defined( HB_DATASEG_STARTUP ) #error Wrong macros set for startup code - clean your make/env settings. diff --git a/harbour/src/common/hbstr.c b/harbour/src/common/hbstr.c index 7f73c7ccd8..2000813834 100644 --- a/harbour/src/common/hbstr.c +++ b/harbour/src/common/hbstr.c @@ -497,7 +497,7 @@ double hb_numRound( double dNum, int iDec ) doComplete5 *= HB_DBLFL_PREC_FACTOR; #endif - modf( doComplete5, &doComplete5i ); + ( void ) modf( doComplete5, &doComplete5i ); #if defined( __XCC__ ) || defined( __POCC__ ) if( iDec < 16 ) @@ -522,7 +522,7 @@ double hb_numInt( double dNum ) /* Similar hack as in round to make this functions compatible */ dNum *= HB_DBLFL_PREC_FACTOR; #endif - modf( dNum, &dInt ); + ( void ) modf( dNum, &dInt ); return dInt; } diff --git a/harbour/src/rdd/dbfcdx/dbfcdx1.c b/harbour/src/rdd/dbfcdx/dbfcdx1.c index 895482231c..a59ce35bcd 100644 --- a/harbour/src/rdd/dbfcdx/dbfcdx1.c +++ b/harbour/src/rdd/dbfcdx/dbfcdx1.c @@ -9939,28 +9939,45 @@ static void hb_cdxRddInit( void * cargo ) } #if defined( HB_SIXCDX ) + HB_FUNC_EXTERN( _DBF ); HB_FUNC( SIXCDX ) { HB_FUNC_EXEC( _DBF ); } -HB_INIT_SYMBOLS_BEGIN( _hb_cdx1_InitSymbols_ ) +HB_INIT_SYMBOLS_BEGIN( _hb_sixcdx1_InitSymbols_ ) { "SIXCDX", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( SIXCDX )}, NULL }, { "SIXCDX_GETFUNCTABLE", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( _GETFUNCTABLE )}, NULL } -HB_INIT_SYMBOLS_END( _hb_cdx1_InitSymbols_ ) -#else -HB_FUNC_EXTERN( _DBF ); HB_FUNC( DBFCDX ) { HB_FUNC_EXEC( _DBF ); } -HB_INIT_SYMBOLS_BEGIN( _hb_cdx1_InitSymbols_ ) -{ "DBFCDX", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( DBFCDX )}, NULL }, -{ "DBFCDX_GETFUNCTABLE", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( _GETFUNCTABLE )}, NULL } -HB_INIT_SYMBOLS_END( _hb_cdx1_InitSymbols_ ) -#endif +HB_INIT_SYMBOLS_END( _hb_sixcdx1_InitSymbols_ ) -HB_CALL_ON_STARTUP_BEGIN( _hb_cdx_rdd_init_ ) +HB_CALL_ON_STARTUP_BEGIN( _hb_sixcdx_rdd_init_ ) hb_vmAtInit( hb_cdxRddInit, NULL ); -HB_CALL_ON_STARTUP_END( _hb_cdx_rdd_init_ ) +HB_CALL_ON_STARTUP_END( _hb_sixcdx_rdd_init_ ) #if defined( HB_PRAGMA_STARTUP ) - #pragma startup _hb_cdx1_InitSymbols_ - #pragma startup _hb_cdx_rdd_init_ + #pragma startup _hb_sixcdx1_InitSymbols_ + #pragma startup _hb_sixcdx_rdd_init_ #elif defined( HB_DATASEG_STARTUP ) - #define HB_DATASEG_BODY HB_DATASEG_FUNC( _hb_cdx1_InitSymbols_ ) \ - HB_DATASEG_FUNC( _hb_cdx_rdd_init_ ) + #define HB_DATASEG_BODY HB_DATASEG_FUNC( _hb_sixcdx1_InitSymbols_ ) \ + HB_DATASEG_FUNC( _hb_sixcdx_rdd_init_ ) #include "hbiniseg.h" #endif + +#else + +HB_FUNC_EXTERN( _DBF ); HB_FUNC( DBFCDX ) { HB_FUNC_EXEC( _DBF ); } +HB_INIT_SYMBOLS_BEGIN( _hb_dbfcdx1_InitSymbols_ ) +{ "DBFCDX", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( DBFCDX )}, NULL }, +{ "DBFCDX_GETFUNCTABLE", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( _GETFUNCTABLE )}, NULL } +HB_INIT_SYMBOLS_END( _hb_dbfcdx1_InitSymbols_ ) + +HB_CALL_ON_STARTUP_BEGIN( _hb_dbfcdx_rdd_init_ ) + hb_vmAtInit( hb_cdxRddInit, NULL ); +HB_CALL_ON_STARTUP_END( _hb_dbfcdx_rdd_init_ ) + +#if defined( HB_PRAGMA_STARTUP ) + #pragma startup _hb_dbfcdx1_InitSymbols_ + #pragma startup _hb_dbfcdx_rdd_init_ +#elif defined( HB_DATASEG_STARTUP ) + #define HB_DATASEG_BODY HB_DATASEG_FUNC( _hb_dbfcdx1_InitSymbols_ ) \ + HB_DATASEG_FUNC( _hb_dbfcdx_rdd_init_ ) + #include "hbiniseg.h" +#endif + +#endif diff --git a/harbour/src/rtl/hbtoken.c b/harbour/src/rtl/hbtoken.c index 3d24b3e4d9..d2aaa9b58d 100644 --- a/harbour/src/rtl/hbtoken.c +++ b/harbour/src/rtl/hbtoken.c @@ -123,7 +123,8 @@ static const char * hb_tokenGet( const char * szLine, HB_SIZE nLen, while( ul + 1 < nLen && szLine[ ul + 1 ] == szDelim[ 0 ] ) ++ul; } - nStart = ul + nDelim; + ul += nDelim - 1; + nStart = ul + 1; } } if( --nToken == 0 ) @@ -166,7 +167,8 @@ static PHB_ITEM hb_tokenArray( const char * szLine, HB_SIZE nLen, while( ul + 1 < nLen && szLine[ ul + 1 ] == szDelim[ 0 ] ) ++ul; } - nStart = ul + nDelim; + ul += nDelim - 1; + nStart = ul + 1; } } hb_arraySetCL( pArray, ++nToken, szLine + nStart, ul - nStart );