diff --git a/harbour/ChangeLog b/harbour/ChangeLog index c61e63db3e..4ee6f7e4be 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,9 @@ +19990524-21:05 CET Eddie Runia + * source/rtl/strings.c + PAD* didn't work correctly with negative numbers + * source/rtl/extend.c + _parnl needed casting + 19990524-17:10 CET Eddie Runia * tests/working/test_all Fully automated the test bench. diff --git a/harbour/source/rtl/extend.c b/harbour/source/rtl/extend.c index 665520f5f8..ab56944627 100644 --- a/harbour/source/rtl/extend.c +++ b/harbour/source/rtl/extend.c @@ -245,13 +245,13 @@ long _parnl( WORD wParam, ... ) return 0; else if( IS_INTEGER( pItem ) ) - return pItem->value.iNumber; + return (long) pItem->value.iNumber; else if( IS_LONG( pItem ) ) return pItem->value.lNumber; else if( IS_DOUBLE( pItem ) ) - return pItem->value.dNumber; + return (long) pItem->value.dNumber; else return 0; diff --git a/harbour/source/rtl/strings.c b/harbour/source/rtl/strings.c index 24b5d70bcb..078891c301 100644 --- a/harbour/source/rtl/strings.c +++ b/harbour/source/rtl/strings.c @@ -168,12 +168,12 @@ HARBOUR PADR( void ) if( _pcount() > 1 ) { - ULONG lLen = _parnl(2); + long lLen = _parnl(2); - if( lLen > (ULONG)_parclen(1) ) + if( lLen > (long)_parclen(1) ) { char *szResult = (char *)_xgrab(lLen + 1); - ULONG lPos; + long lPos; char cPad; memcpy(szResult, szText, _parclen(1)); @@ -187,7 +187,7 @@ HARBOUR PADR( void ) _xfree(szResult); } else - _retclen(szText, lLen); + _retclen(szText, (long)_parclen(1) ); } else _retc(""); @@ -207,12 +207,12 @@ HARBOUR PADL( void ) if( _pcount() > 1 ) { - ULONG lLen = _parnl(2); + long lLen = _parnl(2); - if( lLen > (ULONG)_parclen(1) ) + if( lLen > (long) _parclen(1) ) { char *szResult = (char *)_xgrab(lLen + 1); - ULONG lPos = lLen - _parclen(1); + long lPos = lLen - _parclen(1); char cPad; memcpy(szResult + lPos, szText, _parclen(1)); @@ -228,7 +228,7 @@ HARBOUR PADL( void ) _xfree(szResult); } else - _retclen(szText, lLen); + _retclen(szText, (long)_parclen(1) ); } else _retc(""); @@ -242,13 +242,13 @@ HARBOUR PADC( void ) if( _pcount() > 1 ) { - ULONG lLen = _parnl(2); + long lLen = _parnl(2); - if( lLen > (ULONG)_parclen(1) ) + if( lLen > (long) _parclen(1) ) { char *szResult = (char *)_xgrab(lLen + 1); char cPad; - ULONG w, lPos = (lLen - _parclen(1)) / 2; + long w, lPos = (lLen - _parclen(1)) / 2; memcpy(szResult + lPos, szText, _parclen(1) + 1); @@ -266,7 +266,7 @@ HARBOUR PADC( void ) _xfree(szResult); } else - _retclen(szText, lLen); + _retclen(szText, (long)_parclen(1) ); } else _retc("");