summaryrefslogtreecommitdiffstats
path: root/i18npool/source/transliteration
diff options
context:
space:
mode:
Diffstat (limited to 'i18npool/source/transliteration')
-rw-r--r--i18npool/source/transliteration/chartonum.cxx2
-rw-r--r--i18npool/source/transliteration/fullwidthToHalfwidth.cxx3
-rw-r--r--i18npool/source/transliteration/halfwidthToFullwidth.cxx1
-rw-r--r--i18npool/source/transliteration/hiraganaToKatakana.cxx3
-rw-r--r--i18npool/source/transliteration/ignoreBaFa_ja_JP.cxx2
-rw-r--r--i18npool/source/transliteration/ignoreHyuByu_ja_JP.cxx3
-rw-r--r--i18npool/source/transliteration/ignoreIandEfollowedByYa_ja_JP.cxx1
-rw-r--r--i18npool/source/transliteration/ignoreIterationMark_ja_JP.cxx1
-rw-r--r--i18npool/source/transliteration/ignoreKana.cxx1
-rw-r--r--i18npool/source/transliteration/ignoreKiKuFollowedBySa_ja_JP.cxx1
-rw-r--r--i18npool/source/transliteration/ignoreProlongedSoundMark_ja_JP.cxx1
-rw-r--r--i18npool/source/transliteration/ignoreSeZe_ja_JP.cxx3
-rw-r--r--i18npool/source/transliteration/ignoreSize_ja_JP.cxx1
-rw-r--r--i18npool/source/transliteration/ignoreTiJi_ja_JP.cxx3
-rw-r--r--i18npool/source/transliteration/ignoreWidth.cxx1
-rw-r--r--i18npool/source/transliteration/largeToSmall_ja_JP.cxx3
-rw-r--r--i18npool/source/transliteration/smallToLarge_ja_JP.cxx3
-rw-r--r--i18npool/source/transliteration/textToPronounce_zh.cxx55
-rw-r--r--i18npool/source/transliteration/texttonum.cxx2
-rw-r--r--i18npool/source/transliteration/transliterationImpl.cxx77
-rw-r--r--i18npool/source/transliteration/transliteration_Numeric.cxx6
-rw-r--r--i18npool/source/transliteration/transliteration_body.cxx51
-rw-r--r--i18npool/source/transliteration/transliteration_caseignore.cxx2
-rw-r--r--i18npool/source/transliteration/transliteration_commonclass.cxx2
24 files changed, 89 insertions, 139 deletions
diff --git a/i18npool/source/transliteration/chartonum.cxx b/i18npool/source/transliteration/chartonum.cxx
index 41a6549b67ef..899ba9212ab7 100644
--- a/i18npool/source/transliteration/chartonum.cxx
+++ b/i18npool/source/transliteration/chartonum.cxx
@@ -19,8 +19,6 @@
#include <chartonum.hxx>
-using namespace com::sun::star::uno;
-
namespace i18npool {
#define TRANSLITERATION_CHARTONUM( name ) \
diff --git a/i18npool/source/transliteration/fullwidthToHalfwidth.cxx b/i18npool/source/transliteration/fullwidthToHalfwidth.cxx
index 6a90a957f038..558177128618 100644
--- a/i18npool/source/transliteration/fullwidthToHalfwidth.cxx
+++ b/i18npool/source/transliteration/fullwidthToHalfwidth.cxx
@@ -26,7 +26,6 @@
using namespace com::sun::star::uno;
using namespace com::sun::star::i18n;
-using namespace com::sun::star::lang;
namespace i18npool {
@@ -50,7 +49,7 @@ fullwidthToHalfwidth::transliterateImpl( const OUString& inStr, sal_Int32 startP
const OUString& newStr = i18nutil::widthfolding::decompose_ja_voiced_sound_marks (inStr, startPos, nCount, pOffset);
// One to One mapping
- return transliteration_OneToOne::transliterateImpl( newStr, 0, newStr.getLength(), pOffset);
+ return transliteration_OneToOne::transliterateImpl( newStr, 0, newStr.getLength(), nullptr);
}
sal_Unicode SAL_CALL
diff --git a/i18npool/source/transliteration/halfwidthToFullwidth.cxx b/i18npool/source/transliteration/halfwidthToFullwidth.cxx
index 8351291031f7..528aa0d87523 100644
--- a/i18npool/source/transliteration/halfwidthToFullwidth.cxx
+++ b/i18npool/source/transliteration/halfwidthToFullwidth.cxx
@@ -22,7 +22,6 @@
#include <transliteration_OneToOne.hxx>
using namespace com::sun::star::uno;
-using namespace com::sun::star::lang;
namespace i18npool {
diff --git a/i18npool/source/transliteration/hiraganaToKatakana.cxx b/i18npool/source/transliteration/hiraganaToKatakana.cxx
index 80b6f14d82f8..4cefa0d79e61 100644
--- a/i18npool/source/transliteration/hiraganaToKatakana.cxx
+++ b/i18npool/source/transliteration/hiraganaToKatakana.cxx
@@ -19,9 +19,6 @@
#include <transliteration_OneToOne.hxx>
-using namespace com::sun::star::uno;
-using namespace com::sun::star::lang;
-
namespace i18npool
{
// see http://charts.unicode.org/Web/U3040.html Hiragana (U+3040..U+309F)
diff --git a/i18npool/source/transliteration/ignoreBaFa_ja_JP.cxx b/i18npool/source/transliteration/ignoreBaFa_ja_JP.cxx
index 042e09c1df9f..34b4a465e40c 100644
--- a/i18npool/source/transliteration/ignoreBaFa_ja_JP.cxx
+++ b/i18npool/source/transliteration/ignoreBaFa_ja_JP.cxx
@@ -19,8 +19,6 @@
#include <transliteration_Ignore.hxx>
-using namespace com::sun::star::uno;
-
namespace i18npool {
const transliteration_Ignore::Mapping BaFa[] = {
diff --git a/i18npool/source/transliteration/ignoreHyuByu_ja_JP.cxx b/i18npool/source/transliteration/ignoreHyuByu_ja_JP.cxx
index be66ddfc9381..b564ab0930af 100644
--- a/i18npool/source/transliteration/ignoreHyuByu_ja_JP.cxx
+++ b/i18npool/source/transliteration/ignoreHyuByu_ja_JP.cxx
@@ -19,9 +19,6 @@
#include <transliteration_Ignore.hxx>
-using namespace com::sun::star::uno;
-using namespace com::sun::star::lang;
-
namespace i18npool {
const transliteration_Ignore::Mapping HyuByu[] = {
diff --git a/i18npool/source/transliteration/ignoreIandEfollowedByYa_ja_JP.cxx b/i18npool/source/transliteration/ignoreIandEfollowedByYa_ja_JP.cxx
index 5e8659027992..84fffc560358 100644
--- a/i18npool/source/transliteration/ignoreIandEfollowedByYa_ja_JP.cxx
+++ b/i18npool/source/transliteration/ignoreIandEfollowedByYa_ja_JP.cxx
@@ -24,7 +24,6 @@
#include <numeric>
using namespace com::sun::star::uno;
-using namespace com::sun::star::lang;
namespace i18npool {
diff --git a/i18npool/source/transliteration/ignoreIterationMark_ja_JP.cxx b/i18npool/source/transliteration/ignoreIterationMark_ja_JP.cxx
index c5a3cb04565c..a1f64d163bd6 100644
--- a/i18npool/source/transliteration/ignoreIterationMark_ja_JP.cxx
+++ b/i18npool/source/transliteration/ignoreIterationMark_ja_JP.cxx
@@ -24,7 +24,6 @@
#include <numeric>
using namespace com::sun::star::uno;
-using namespace com::sun::star::lang;
namespace i18npool {
diff --git a/i18npool/source/transliteration/ignoreKana.cxx b/i18npool/source/transliteration/ignoreKana.cxx
index 86a484e1a67b..36c1b528c4aa 100644
--- a/i18npool/source/transliteration/ignoreKana.cxx
+++ b/i18npool/source/transliteration/ignoreKana.cxx
@@ -25,7 +25,6 @@
namespace com::sun::star::uno { class XComponentContext; }
using namespace com::sun::star::uno;
-using namespace com::sun::star::lang;
namespace i18npool {
diff --git a/i18npool/source/transliteration/ignoreKiKuFollowedBySa_ja_JP.cxx b/i18npool/source/transliteration/ignoreKiKuFollowedBySa_ja_JP.cxx
index 113c80f9aeeb..293ff03b2bb8 100644
--- a/i18npool/source/transliteration/ignoreKiKuFollowedBySa_ja_JP.cxx
+++ b/i18npool/source/transliteration/ignoreKiKuFollowedBySa_ja_JP.cxx
@@ -22,7 +22,6 @@
#include <numeric>
using namespace com::sun::star::uno;
-using namespace com::sun::star::lang;
namespace i18npool {
diff --git a/i18npool/source/transliteration/ignoreProlongedSoundMark_ja_JP.cxx b/i18npool/source/transliteration/ignoreProlongedSoundMark_ja_JP.cxx
index 3291afa9ba7d..dba1165d5162 100644
--- a/i18npool/source/transliteration/ignoreProlongedSoundMark_ja_JP.cxx
+++ b/i18npool/source/transliteration/ignoreProlongedSoundMark_ja_JP.cxx
@@ -22,7 +22,6 @@
#include <numeric>
using namespace com::sun::star::uno;
-using namespace com::sun::star::lang;
namespace i18npool {
diff --git a/i18npool/source/transliteration/ignoreSeZe_ja_JP.cxx b/i18npool/source/transliteration/ignoreSeZe_ja_JP.cxx
index 1851a2791bb2..83ef32dad35f 100644
--- a/i18npool/source/transliteration/ignoreSeZe_ja_JP.cxx
+++ b/i18npool/source/transliteration/ignoreSeZe_ja_JP.cxx
@@ -19,9 +19,6 @@
#include <transliteration_Ignore.hxx>
-using namespace com::sun::star::uno;
-using namespace com::sun::star::lang;
-
namespace i18npool
{
const transliteration_Ignore::Mapping SeZe[] = {
diff --git a/i18npool/source/transliteration/ignoreSize_ja_JP.cxx b/i18npool/source/transliteration/ignoreSize_ja_JP.cxx
index 01f3f20da43f..24279439ca97 100644
--- a/i18npool/source/transliteration/ignoreSize_ja_JP.cxx
+++ b/i18npool/source/transliteration/ignoreSize_ja_JP.cxx
@@ -22,7 +22,6 @@
#include <rtl/ref.hxx>
using namespace com::sun::star::uno;
-using namespace com::sun::star::lang;
namespace i18npool {
diff --git a/i18npool/source/transliteration/ignoreTiJi_ja_JP.cxx b/i18npool/source/transliteration/ignoreTiJi_ja_JP.cxx
index a3e6116a9b62..40b216a00007 100644
--- a/i18npool/source/transliteration/ignoreTiJi_ja_JP.cxx
+++ b/i18npool/source/transliteration/ignoreTiJi_ja_JP.cxx
@@ -19,9 +19,6 @@
#include <transliteration_Ignore.hxx>
-using namespace com::sun::star::uno;
-using namespace com::sun::star::lang;
-
namespace i18npool
{
const transliteration_Ignore::Mapping TiJi[] = {
diff --git a/i18npool/source/transliteration/ignoreWidth.cxx b/i18npool/source/transliteration/ignoreWidth.cxx
index 1b9f15fde159..80d285ccfed8 100644
--- a/i18npool/source/transliteration/ignoreWidth.cxx
+++ b/i18npool/source/transliteration/ignoreWidth.cxx
@@ -25,7 +25,6 @@
namespace com::sun::star::uno { class XComponentContext; }
using namespace com::sun::star::uno;
-using namespace com::sun::star::lang;
namespace i18npool {
diff --git a/i18npool/source/transliteration/largeToSmall_ja_JP.cxx b/i18npool/source/transliteration/largeToSmall_ja_JP.cxx
index f6771fb6d4ac..089cd6e53e7a 100644
--- a/i18npool/source/transliteration/largeToSmall_ja_JP.cxx
+++ b/i18npool/source/transliteration/largeToSmall_ja_JP.cxx
@@ -21,9 +21,6 @@
#include <transliteration_OneToOne.hxx>
-using namespace com::sun::star::uno;
-using namespace com::sun::star::lang;
-
namespace i18npool
{
// ftp://ftp.unicode.org/Public/3.0-Update/UnicodeData-3.0.0.txt
diff --git a/i18npool/source/transliteration/smallToLarge_ja_JP.cxx b/i18npool/source/transliteration/smallToLarge_ja_JP.cxx
index 47ddba1a96d3..c71706bfbffb 100644
--- a/i18npool/source/transliteration/smallToLarge_ja_JP.cxx
+++ b/i18npool/source/transliteration/smallToLarge_ja_JP.cxx
@@ -21,9 +21,6 @@
#include <transliteration_OneToOne.hxx>
-using namespace com::sun::star::uno;
-using namespace com::sun::star::lang;
-
namespace i18npool
{
// ftp://ftp.unicode.org/Public/3.0-Update/UnicodeData-3.0.0.txt
diff --git a/i18npool/source/transliteration/textToPronounce_zh.cxx b/i18npool/source/transliteration/textToPronounce_zh.cxx
index ad33bdf31dca..2057f8c43e28 100644
--- a/i18npool/source/transliteration/textToPronounce_zh.cxx
+++ b/i18npool/source/transliteration/textToPronounce_zh.cxx
@@ -21,10 +21,12 @@
#include <com/sun/star/i18n/MultipleCharsOutputException.hpp>
#include <com/sun/star/i18n/TransliterationType.hpp>
+#include <o3tl/temporary.hxx>
#include <rtl/ustring.hxx>
#include <rtl/ustrbuf.hxx>
#include <textToPronounce_zh.hxx>
+#include <indexentrysupplier_asian.hxx>
using namespace com::sun::star::i18n;
using namespace com::sun::star::uno;
@@ -43,7 +45,7 @@ TextToPronounce_zh::getPronounce(const sal_Unicode ch)
if (idx) {
sal_uInt16 address = idx[0][ch>>8];
if (address != 0xFFFF)
- return reinterpret_cast<sal_Unicode *>(
+ return reinterpret_cast<sal_Unicode const *>(
&idx[2][idx[1][address + (ch & 0xFF)]]);
}
return emptyString;
@@ -122,74 +124,27 @@ TextToPronounce_zh::equals( const OUString & str1, sal_Int32 pos1, sal_Int32 nCo
return (nCount1 == nCount2);
}
-#ifdef DISABLE_DYNLOADING
-
-extern "C" {
-
-sal_uInt16** get_zh_zhuyin();
-sal_uInt16** get_zh_pinyin();
-
-}
-
-#endif
-
TextToPinyin_zh_CN::TextToPinyin_zh_CN() :
-#ifndef DISABLE_DYNLOADING
- TextToPronounce_zh("get_zh_pinyin")
-#else
TextToPronounce_zh(get_zh_pinyin)
-#endif
{
transliterationName = "ChineseCharacterToPinyin";
implementationName = "com.sun.star.i18n.Transliteration.TextToPinyin_zh_CN";
}
TextToChuyin_zh_TW::TextToChuyin_zh_TW() :
-#ifndef DISABLE_DYNLOADING
- TextToPronounce_zh("get_zh_zhuyin")
-#else
TextToPronounce_zh(get_zh_zhuyin)
-#endif
{
transliterationName = "ChineseCharacterToChuyin";
implementationName = "com.sun.star.i18n.Transliteration.TextToChuyin_zh_TW";
}
-#ifndef DISABLE_DYNLOADING
-
-extern "C" { static void thisModule() {} }
-
-TextToPronounce_zh::TextToPronounce_zh(const char* func_name)
-{
-#ifdef SAL_DLLPREFIX
- OUString lib(SAL_DLLPREFIX"index_data" SAL_DLLEXTENSION);
-#else
- OUString lib("index_data" SAL_DLLEXTENSION);
-#endif
- hModule = osl_loadModuleRelative(
- &thisModule, lib.pData, SAL_LOADMODULE_DEFAULT );
- idx=nullptr;
- if (hModule) {
- sal_uInt16** (*function)() = reinterpret_cast<sal_uInt16** (*)()>(osl_getFunctionSymbol(hModule, OUString::createFromAscii(func_name).pData));
- if (function)
- idx=function();
- }
-}
-
-#else
-
-TextToPronounce_zh::TextToPronounce_zh(sal_uInt16 ** (*function)())
+TextToPronounce_zh::TextToPronounce_zh(sal_uInt16 const ** (*function)(sal_Int16 &))
{
- idx = function();
+ idx = function(o3tl::temporary(sal_Int16()));
}
-#endif
-
TextToPronounce_zh::~TextToPronounce_zh()
{
-#ifndef DISABLE_DYNLOADING
- if (hModule) osl_unloadModule(hModule);
-#endif
}
}
diff --git a/i18npool/source/transliteration/texttonum.cxx b/i18npool/source/transliteration/texttonum.cxx
index 5fd0e898de96..4517471d3a68 100644
--- a/i18npool/source/transliteration/texttonum.cxx
+++ b/i18npool/source/transliteration/texttonum.cxx
@@ -19,8 +19,6 @@
#include <texttonum.hxx>
-using namespace com::sun::star::uno;
-
namespace i18npool {
#define TRANSLITERATION_TEXTTONUM( name ) \
diff --git a/i18npool/source/transliteration/transliterationImpl.cxx b/i18npool/source/transliteration/transliterationImpl.cxx
index c85d16442341..c5b6d9cf5cce 100644
--- a/i18npool/source/transliteration/transliterationImpl.cxx
+++ b/i18npool/source/transliteration/transliterationImpl.cxx
@@ -27,6 +27,7 @@
#include <comphelper/sequence.hxx>
#include <cppuhelper/supportsservice.hxx>
+#include <o3tl/string_view.hxx>
#include <rtl/ustring.hxx>
#include <algorithm>
@@ -64,22 +65,44 @@ TMList const TMlist[] = { // Modules ModulesNew
// No enum define for this trans. application has to use impl name to load it
// TmItem1 (IGNORE_CASE_SIMPLE), // (1<<11 1024) (66)
- TmItem1 (IgnoreTraditionalKanji_ja_JP), // 3. (1<<12 4096) (10)
- TmItem1 (IgnoreTraditionalKana_ja_JP), // 4. (1<<13 8192) (11)
- TmItem1 (IgnoreMinusSign_ja_JP), // 5. (1<<13 16384) (12)
- TmItem1 (IgnoreIterationMark_ja_JP), // 6. (1<<14 32768) (13)
- TmItem1 (IgnoreSeparator_ja_JP), // 7. (1<<15 65536) (14)
- TmItem1 (IgnoreSize_ja_JP), // 15. (1<<23 16777216) (22)
- TmItem1 (IgnoreMiddleDot_ja_JP), // 17. (1<<25 67108864) (24)
- TmItem1 (IgnoreSpace_ja_JP), // 18. (1<<26 134217728) (25)
- TmItem1 (IgnoreZiZu_ja_JP), // 8. (1<<16 131072) (15)
- TmItem1 (IgnoreBaFa_ja_JP), // 9. (1<<17 262144) (16)
- TmItem1 (IgnoreTiJi_ja_JP), // 10. (1<<18 524288) (17)
- TmItem1 (IgnoreHyuByu_ja_JP), // 11. (1<<19 1048576) (18)
- TmItem1 (IgnoreSeZe_ja_JP), // 12. (1<<20 2097152) (19)
- TmItem1 (IgnoreIandEfollowedByYa_ja_JP), // 13. (1<<21 4194304) (20)
- TmItem1 (IgnoreKiKuFollowedBySa_ja_JP), // 14. (1<<22 8388608) (21)
- TmItem1 (IgnoreProlongedSoundMark_ja_JP), // 16. (1<<24 33554432) (23)
+ {TransliterationModules_IgnoreTraditionalKanji_ja_JP,
+ TransliterationModulesNew_IgnoreTraditionalKanji_ja_JP, "ignoreTraditionalKanji_ja_JP"},
+ // 3. (1<<12 4096) (10)
+ {TransliterationModules_IgnoreTraditionalKana_ja_JP,
+ TransliterationModulesNew_IgnoreTraditionalKana_ja_JP, "ignoreTraditionalKana_ja_JP"},
+ // 4. (1<<13 8192) (11)
+ {TransliterationModules_IgnoreMinusSign_ja_JP, TransliterationModulesNew_IgnoreMinusSign_ja_JP,
+ "ignoreMinusSign_ja_JP"}, // 5. (1<<13 16384) (12)
+ {TransliterationModules_IgnoreIterationMark_ja_JP,
+ TransliterationModulesNew_IgnoreIterationMark_ja_JP, "ignoreIterationMark_ja_JP"},
+ // 6. (1<<14 32768) (13)
+ {TransliterationModules_IgnoreSeparator_ja_JP, TransliterationModulesNew_IgnoreSeparator_ja_JP,
+ "ignoreSeparator_ja_JP"}, // 7. (1<<15 65536) (14)
+ {TransliterationModules_IgnoreSize_ja_JP, TransliterationModulesNew_IgnoreSize_ja_JP,
+ "ignoreSize_ja_JP"}, // 15. (1<<23 16777216) (22)
+ {TransliterationModules_IgnoreMiddleDot_ja_JP, TransliterationModulesNew_IgnoreMiddleDot_ja_JP,
+ "ignoreMiddleDot_ja_JP"}, // 17. (1<<25 67108864) (24)
+ {TransliterationModules_IgnoreSpace_ja_JP, TransliterationModulesNew_IgnoreSpace_ja_JP,
+ "ignoreSpace_ja_JP"}, // 18. (1<<26 134217728) (25)
+ {TransliterationModules_IgnoreZiZu_ja_JP, TransliterationModulesNew_IgnoreZiZu_ja_JP,
+ "ignoreZiZu_ja_JP"}, // 8. (1<<16 131072) (15)
+ {TransliterationModules_IgnoreBaFa_ja_JP, TransliterationModulesNew_IgnoreBaFa_ja_JP,
+ "ignoreBaFa_ja_JP"}, // 9. (1<<17 262144) (16)
+ {TransliterationModules_IgnoreTiJi_ja_JP, TransliterationModulesNew_IgnoreTiJi_ja_JP,
+ "ignoreTiJi_ja_JP"}, // 10. (1<<18 524288) (17)
+ {TransliterationModules_IgnoreHyuByu_ja_JP, TransliterationModulesNew_IgnoreHyuByu_ja_JP,
+ "ignoreHyuByu_ja_JP"}, // 11. (1<<19 1048576) (18)
+ {TransliterationModules_IgnoreSeZe_ja_JP, TransliterationModulesNew_IgnoreSeZe_ja_JP,
+ "ignoreSeZe_ja_JP"}, // 12. (1<<20 2097152) (19)
+ {TransliterationModules_IgnoreIandEfollowedByYa_ja_JP,
+ TransliterationModulesNew_IgnoreIandEfollowedByYa_ja_JP, "ignoreIandEfollowedByYa_ja_JP"},
+ // 13. (1<<21 4194304) (20)
+ {TransliterationModules_IgnoreKiKuFollowedBySa_ja_JP,
+ TransliterationModulesNew_IgnoreKiKuFollowedBySa_ja_JP, "ignoreKiKuFollowedBySa_ja_JP"},
+ // 14. (1<<22 8388608) (21)
+ {TransliterationModules_IgnoreProlongedSoundMark_ja_JP,
+ TransliterationModulesNew_IgnoreProlongedSoundMark_ja_JP, "ignoreProlongedSoundMark_ja_JP"},
+ // 16. (1<<24 33554432) (23)
TmItem1 (UPPERCASE_LOWERCASE), // 19. (1) (1)
TmItem1 (LOWERCASE_UPPERCASE), // 20. (2) (2)
@@ -88,8 +111,10 @@ TMList const TMlist[] = { // Modules ModulesNew
TmItem1 (KATAKANA_HIRAGANA), // 23. (5) (5)
TmItem1 (HIRAGANA_KATAKANA), // 24. (6) (6)
- TmItem1 (SmallToLarge_ja_JP), // 25. (1<<27 268435456) (26)
- TmItem1 (LargeToSmall_ja_JP), // 26. (1<<28 536870912) (27)
+ {TransliterationModules_SmallToLarge_ja_JP, TransliterationModulesNew_SmallToLarge_ja_JP,
+ "smallToLarge_ja_JP"}, // 25. (1<<27 268435456) (26)
+ {TransliterationModules_LargeToSmall_ja_JP, TransliterationModulesNew_LargeToSmall_ja_JP,
+ "largeToSmall_ja_JP"}, // 26. (1<<28 536870912) (27)
TmItem2 (NumToTextLower_zh_CN), // 27. () (28)
TmItem2 (NumToTextUpper_zh_CN), // 28. () (29)
TmItem2 (NumToTextLower_zh_TW), // 29. () (30)
@@ -203,11 +228,11 @@ TransliterationImpl::loadModule( TransliterationModules modType, const Locale& r
// additional transliterations from TransliterationModulesExtra (we cannot extend TransliterationModules)
if (bool(modType & TransliterationModules(TransliterationModulesExtra::IGNORE_DIACRITICS_CTL)))
{
- if (loadModuleByName("ignoreDiacritics_CTL", bodyCascade[numCascade], rLocale))
+ if (loadModuleByName(u"ignoreDiacritics_CTL", bodyCascade[numCascade], rLocale))
numCascade++;
}
if (bool(modType & TransliterationModules(TransliterationModulesExtra::IGNORE_KASHIDA_CTL)))
- if (loadModuleByName("ignoreKashida_CTL", bodyCascade[numCascade], rLocale))
+ if (loadModuleByName(u"ignoreKashida_CTL", bodyCascade[numCascade], rLocale))
numCascade++;
} else if (bool(modType & TransliterationModules_NON_IGNORE_MASK)) {
@@ -294,8 +319,6 @@ TransliterationImpl::transliterate( const OUString& inStr, sal_Int32 startPos, s
if (numCascade == 0)
return inStr;
- if (offset.getLength() != nCount)
- offset.realloc(nCount);
if (numCascade == 1)
{
if ( startPos == 0 && nCount == inStr.getLength() )
@@ -600,17 +623,17 @@ void TransliterationImpl::loadBody( OUString const &implName, Reference<XExtende
}
bool
-TransliterationImpl::loadModuleByName( const OUString& implName,
+TransliterationImpl::loadModuleByName( std::u16string_view implName,
Reference<XExtendedTransliteration>& body, const Locale& rLocale)
{
- OUString cname = TRLT_IMPLNAME_PREFIX + implName;
+ OUString cname = OUString::Concat(TRLT_IMPLNAME_PREFIX) + implName;
loadBody(cname, body);
if (body.is()) {
body->loadModule(TransliterationModules(0), rLocale); // toUpper/toLoad need rLocale
// if the module is ignore case/kana/width, load caseignore for equals/compareString mothed
for (sal_Int16 i = 0; i < 3; i++) {
- if (implName.equalsAscii(TMlist[i].implName)) {
+ if (o3tl::equalsAscii(implName, TMlist[i].implName)) {
if (i == 0) // current module is caseignore
body->loadModule(TMlist[0].tm, rLocale); // caseignore need to setup module name
if (! caseignore.is()) {
@@ -631,7 +654,7 @@ TransliterationImpl::loadModuleByName( const OUString& implName,
OUString SAL_CALL
TransliterationImpl::getImplementationName()
{
- return "com.sun.star.i18n.Transliteration";
+ return u"com.sun.star.i18n.Transliteration"_ustr;
}
sal_Bool SAL_CALL
@@ -643,7 +666,7 @@ TransliterationImpl::supportsService(const OUString& rServiceName)
Sequence< OUString > SAL_CALL
TransliterationImpl::getSupportedServiceNames()
{
- return { "com.sun.star.i18n.Transliteration" };
+ return { u"com.sun.star.i18n.Transliteration"_ustr };
}
}
diff --git a/i18npool/source/transliteration/transliteration_Numeric.cxx b/i18npool/source/transliteration/transliteration_Numeric.cxx
index 57c5b7e9942b..e0717379ed4c 100644
--- a/i18npool/source/transliteration/transliteration_Numeric.cxx
+++ b/i18npool/source/transliteration/transliteration_Numeric.cxx
@@ -58,13 +58,13 @@ Sequence< OUString > SAL_CALL
#define NUMBER_ZERO 0x30
OUString
-transliteration_Numeric::transliterateBullet( const OUString& inStr, sal_Int32 startPos, sal_Int32 nCount,
+transliteration_Numeric::transliterateBullet( std::u16string_view inStr, sal_Int32 startPos, sal_Int32 nCount,
Sequence< sal_Int32 >* pOffset ) const
{
sal_Int32 number = -1, j = 0, endPos = startPos + nCount;
- if (endPos > inStr.getLength())
- endPos = inStr.getLength();
+ if (endPos > static_cast<sal_Int32>(inStr.size()))
+ endPos = inStr.size();
rtl_uString* pStr = rtl_uString_alloc(nCount);
sal_Unicode* out = pStr->buffer;
diff --git a/i18npool/source/transliteration/transliteration_body.cxx b/i18npool/source/transliteration/transliteration_body.cxx
index e1fc11a8d70a..36c5ccc72f46 100644
--- a/i18npool/source/transliteration/transliteration_body.cxx
+++ b/i18npool/source/transliteration/transliteration_body.cxx
@@ -121,8 +121,17 @@ Transliteration_body::transliterateImpl(
// Yes, on massive use even such small things do count.
if ( pOffset )
{
- std::vector<sal_Int32> aVec;
- aVec.reserve(std::max<sal_Int32>(nLocalBuf, nCount) * NMAPPINGMAX);
+ sal_Int32* offsetData;
+ std::unique_ptr<sal_Int32[]> pOffsetHeapBuf;
+ sal_Int32 nOffsetCount = std::max<sal_Int32>(nLocalBuf, nCount);
+ if (nOffsetCount <= nLocalBuf)
+ offsetData = static_cast<sal_Int32*>(alloca(nOffsetCount * NMAPPINGMAX * sizeof(sal_Int32)));
+ else
+ {
+ pOffsetHeapBuf.reset(new sal_Int32[ nOffsetCount * NMAPPINGMAX ]);
+ offsetData = pOffsetHeapBuf.get();
+ }
+ sal_Int32* offsetDataEnd = offsetData;
for (sal_Int32 i = 0; i < nCount; i++)
{
@@ -130,12 +139,13 @@ Transliteration_body::transliterateImpl(
MappingType nTmpMappingType = lcl_getMappingTypeForToggleCase( nMappingType, in[i] );
const i18nutil::Mapping &map = i18nutil::casefolding::getValue( in, i, nCount, aLocale, nTmpMappingType );
- std::fill_n(std::back_inserter(aVec), map.nmap, i + startPos);
+ std::fill_n(offsetDataEnd, map.nmap, i + startPos);
+ offsetDataEnd += map.nmap;
std::copy_n(map.map, map.nmap, out + j);
j += map.nmap;
}
- *pOffset = comphelper::containerToSequence(aVec);
+ *pOffset = css::uno::Sequence< sal_Int32 >(offsetData, offsetDataEnd - offsetData);
}
else
{
@@ -191,26 +201,18 @@ Transliteration_casemapping::Transliteration_casemapping()
implementationName = "com.sun.star.i18n.Transliteration.Transliteration_casemapping";
}
-void
-Transliteration_casemapping::setMappingType( const MappingType rMappingType, const Locale& rLocale )
-{
- nMappingType = rMappingType;
- if (aLocale != rLocale)
- aLocale = rLocale;
-}
-
Transliteration_u2l::Transliteration_u2l()
{
nMappingType = MappingType::UpperToLower;
transliterationName = "upper_to_lower(generic)";
- implementationName = "com.sun.star.i18n.Transliteration.Transliteration_u2l";
+ implementationName = "com.sun.star.i18n.Transliteration.UPPERCASE_LOWERCASE";
}
Transliteration_l2u::Transliteration_l2u()
{
nMappingType = MappingType::LowerToUpper;
transliterationName = "lower_to_upper(generic)";
- implementationName = "com.sun.star.i18n.Transliteration.Transliteration_l2u";
+ implementationName = "com.sun.star.i18n.Transliteration.LOWERCASE_UPPERCASE";
}
Transliteration_togglecase::Transliteration_togglecase()
@@ -221,23 +223,23 @@ Transliteration_togglecase::Transliteration_togglecase()
// a per character basis.
nMappingType = MappingType::LowerToUpper | MappingType::UpperToLower;
transliterationName = "toggle(generic)";
- implementationName = "com.sun.star.i18n.Transliteration.Transliteration_togglecase";
+ implementationName = "com.sun.star.i18n.Transliteration.TOGGLE_CASE";
}
Transliteration_titlecase::Transliteration_titlecase()
{
nMappingType = MappingType::ToTitle;
transliterationName = "title(generic)";
- implementationName = "com.sun.star.i18n.Transliteration.Transliteration_titlecase";
+ implementationName = "com.sun.star.i18n.Transliteration.TITLE_CASE";
}
/// @throws RuntimeException
static OUString transliterate_titlecase_Impl(
- const OUString& inStr, sal_Int32 startPos, sal_Int32 nCount,
+ std::u16string_view inStr, sal_Int32 startPos, sal_Int32 nCount,
const Locale &rLocale,
Sequence< sal_Int32 >* pOffset )
{
- const OUString aText( inStr.copy( startPos, nCount ) );
+ const OUString aText( inStr.substr( startPos, nCount ) );
OUString aRes;
if (!aText.isEmpty())
@@ -262,11 +264,14 @@ static OUString transliterate_titlecase_Impl(
// The rest of the text should just become lowercase.
aRes = xCharClassImpl->toTitle( aResolvedLigature, 0, nResolvedLen, rLocale ) +
xCharClassImpl->toLower( aText, 1, aText.getLength() - 1, rLocale );
- pOffset->realloc( aRes.getLength() );
+ if (pOffset)
+ {
+ pOffset->realloc( aRes.getLength() );
- auto [begin, end] = asNonConstRange(*pOffset);
- sal_Int32* pOffsetInt = std::fill_n(begin, nResolvedLen, 0);
- std::iota(pOffsetInt, end, 1);
+ auto [begin, end] = asNonConstRange(*pOffset);
+ sal_Int32* pOffsetInt = std::fill_n(begin, nResolvedLen, 0);
+ std::iota(pOffsetInt, end, 1);
+ }
}
return aRes;
}
@@ -284,7 +289,7 @@ Transliteration_sentencecase::Transliteration_sentencecase()
{
nMappingType = MappingType::ToTitle; // though only to be applied to the first word...
transliterationName = "sentence(generic)";
- implementationName = "com.sun.star.i18n.Transliteration.Transliteration_sentencecase";
+ implementationName = "com.sun.star.i18n.Transliteration.SENTENCE_CASE";
}
// this function expects to be called on a sentence-by-sentence basis,
diff --git a/i18npool/source/transliteration/transliteration_caseignore.cxx b/i18npool/source/transliteration/transliteration_caseignore.cxx
index dcd7b3b94be7..b5c8c24d10c8 100644
--- a/i18npool/source/transliteration/transliteration_caseignore.cxx
+++ b/i18npool/source/transliteration/transliteration_caseignore.cxx
@@ -38,7 +38,7 @@ Transliteration_caseignore::Transliteration_caseignore()
nMappingType = MappingType::FullFolding;
moduleLoaded = TransliterationFlags::NONE;
transliterationName = "case ignore (generic)";
- implementationName = "com.sun.star.i18n.Transliteration.Transliteration_caseignore";
+ implementationName = "com.sun.star.i18n.Transliteration.IGNORE_CASE";
}
void SAL_CALL
diff --git a/i18npool/source/transliteration/transliteration_commonclass.cxx b/i18npool/source/transliteration/transliteration_commonclass.cxx
index 054ae60e220c..625a8a9177ab 100644
--- a/i18npool/source/transliteration/transliteration_commonclass.cxx
+++ b/i18npool/source/transliteration/transliteration_commonclass.cxx
@@ -127,7 +127,7 @@ sal_Bool SAL_CALL transliteration_commonclass::supportsService(const OUString& r
Sequence< OUString > SAL_CALL transliteration_commonclass::getSupportedServiceNames()
{
- return { "com.sun.star.i18n.Transliteration.l10n" };
+ return { u"com.sun.star.i18n.Transliteration.l10n"_ustr };
}
}