diff --git a/ChangeLog.txt b/ChangeLog.txt index 2bfc70e2ed..4250cb888d 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -10,6 +10,11 @@ * Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment */ +2016-04-18 18:05 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) + * src/rtl/strrepl.c + ! fixed hb_strReplace() for strings longer then 1024 bytes and + array used in 3-rd parameter. + 2016-04-18 17:33 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * contrib/gtqtc/gtqtc1.cpp * src/rtl/gtwin/gtwin.c diff --git a/src/rtl/strrepl.c b/src/rtl/strrepl.c index b599ffb7fc..248c5bb0d3 100644 --- a/src/rtl/strrepl.c +++ b/src/rtl/strrepl.c @@ -88,13 +88,12 @@ HB_FUNC( HB_STRREPLACE ) uc = ( HB_UCHAR ) pszSrc[ nAt ]; else { - if( HB_IS_HASH( pSrc ) ) - pDst = hb_hashGetKeyAt( pSrc, nAt + 1 ); - else - pDst = hb_arrayGetItemPtr( pSrc, nAt + 1 ); - if( hb_itemGetCLen( pDst ) == 0 ) + PHB_ITEM pItem = HB_IS_HASH( pSrc ) ? + hb_hashGetKeyAt( pSrc, nAt + 1 ) : + hb_arrayGetItemPtr( pSrc, nAt + 1 ); + if( hb_itemGetCLen( pItem ) == 0 ) continue; - uc = ( HB_UCHAR ) hb_itemGetCPtr( pDst )[ 0 ]; + uc = ( HB_UCHAR ) hb_itemGetCPtr( pItem )[ 0 ]; } if( ptrOpt[ uc ] == 0 ) ptrOpt[ uc ] = nAt + 1;