292ignoreProlongedSoundMark_ja_JP::foldingImpl(
const OUString& inStr, sal_Int32 startPos, sal_Int32 nCount,
Sequence< sal_Int32 >* pOffset )
296 rtl_uString * newStr = rtl_uString_alloc(nCount);
298 const sal_Unicode * src = inStr.getStr() + startPos;
302 pOffset->realloc( nCount );
303 auto [
begin,
end] = asNonConstRange(*pOffset);
304 std::iota(begin, end, startPos);
312 while (-- nCount > 0) {
313 currentChar = *src ++;
315 if (currentChar == 0x30fc ||
316 currentChar == 0xff70) {
318 if (0x3041 <= previousChar && previousChar <= 0x30fa) {
321 else if (0xff66 <= previousChar && previousChar <= 0xff9c) {
326 *dst ++ = previousChar;
327 previousChar = currentChar;
331 *dst ++ = previousChar;
336 newStr->length = sal_Int32(dst - newStr->buffer);
338 pOffset->realloc(newStr->length);
339 return OUString(newStr, SAL_NO_ACQUIRE);
Constant values shared between i18npool and, for example, the number formatter.
const sal_Unicode table_normalwidth[]
const sal_Unicode table_halfwidth[]
enumrange< T >::Iterator begin(enumrange< T >)