summaryrefslogtreecommitdiff
path: root/i18nutil
diff options
context:
space:
mode:
authorVladimir Glazounov <vg@openoffice.org>2009-03-16 19:01:31 +0000
committerVladimir Glazounov <vg@openoffice.org>2009-03-16 19:01:31 +0000
commit44e008b01f72c3f02ab3328cdc44f987617f272b (patch)
tree77a3fd345db6b1965e2af144669343af752452d0 /i18nutil
parent1c36c112707677fe89e427b3baf93c7c0b78d17d (diff)
CWS-TOOLING: integrate CWS ooo31gsl4_DEV300
2009-03-11 16:07:53 +0100 gh r269340 : missed compile on bigendian system (OSL_BIGENDIAN defined) 2009-03-11 10:22:27 +0100 pl r269300 : #i100057# one more case 2009-03-10 15:10:01 +0100 pl r269274 : #i100057# filter formatting marks in vcl i18n helper 2009-03-10 13:31:01 +0100 gh r269269 : #i100044#remove BiDi markers before sending to VCLTestTool 2009-03-10 10:16:05 +0100 hdu r269248 : #i100057# fix casefolding::getNextChar() end-of-string behaviour 2009-03-10 09:51:36 +0100 hdu r269245 : #i100044# add TransliterationModules_IGNORE_FORMATTING option 2009-03-09 14:30:00 +0100 pl r269176 : #i99360# workaround XIfEvent never returning
Diffstat (limited to 'i18nutil')
-rw-r--r--i18nutil/source/utility/casefolding.cxx9
1 files changed, 8 insertions, 1 deletions
diff --git a/i18nutil/source/utility/casefolding.cxx b/i18nutil/source/utility/casefolding.cxx
index 401a2a5803f7..8a679b8afbe5 100644
--- a/i18nutil/source/utility/casefolding.cxx
+++ b/i18nutil/source/utility/casefolding.cxx
@@ -131,9 +131,13 @@ is_ja_voice_sound_mark(sal_Unicode& current, sal_Unicode next)
sal_Unicode casefolding::getNextChar(const sal_Unicode *str, sal_Int32& idx, sal_Int32 len, MappingElement& e, Locale& aLocale, sal_uInt8 nMappingType, TransliterationModules moduleLoaded) throw (RuntimeException)
{
+ if( idx >= len )
+ return 0;
+
sal_Unicode c;
+
if (moduleLoaded & TransliterationModules_IGNORE_CASE) {
- if (e.current >= e.element.nmap && idx < len ) {
+ if( e.current >= e.element.nmap ) {
e.element = getValue(str, idx++, len, aLocale, nMappingType);
e.current = 0;
}
@@ -141,6 +145,7 @@ sal_Unicode casefolding::getNextChar(const sal_Unicode *str, sal_Int32& idx, sal
} else {
c = *(str + idx++);
}
+
if (moduleLoaded & TransliterationModules_IGNORE_KANA) {
if (0x3040 <= c && c <= 0x3094 || 0x309d <= c && c <= 0x309f)
c += 0x60;
@@ -154,7 +159,9 @@ sal_Unicode casefolding::getNextChar(const sal_Unicode *str, sal_Int32& idx, sal
is_ja_voice_sound_mark(c, half2fullTable[*(str + idx)]))
idx++;
}
+
return c;
}
} } } }
+