diff options
Diffstat (limited to 'i18npool/source/breakiterator/breakiterator_ctl.cxx')
-rw-r--r-- | i18npool/source/breakiterator/breakiterator_ctl.cxx | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/i18npool/source/breakiterator/breakiterator_ctl.cxx b/i18npool/source/breakiterator/breakiterator_ctl.cxx index b307c37fd9ac..932fb1b77182 100644 --- a/i18npool/source/breakiterator/breakiterator_ctl.cxx +++ b/i18npool/source/breakiterator/breakiterator_ctl.cxx @@ -71,8 +71,8 @@ sal_Int32 SAL_CALL BreakIterator_CTL::previousCharacters( const OUString& Text, } else nStartPos = 0; } else { // for BS to delete one char. - nDone = std::min(nStartPos, nCount); - nStartPos -= nDone; + for (nDone = 0; nDone < nCount && nStartPos > 0; nDone++) + Text.iterateCodePoints(&nStartPos, -1); } return nStartPos; @@ -98,8 +98,8 @@ sal_Int32 SAL_CALL BreakIterator_CTL::nextCharacters(const OUString& Text, } else nStartPos = len; } else { - nDone = std::min(len - nStartPos, nCount); - nStartPos += nDone; + for (nDone = 0; nDone < nCount && nStartPos < Text.getLength(); nDone++) + Text.iterateCodePoints(&nStartPos); } return nStartPos; |