summaryrefslogtreecommitdiff
path: root/i18npool
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2017-02-22 16:39:20 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2017-04-04 06:38:03 +0000
commit5676ced82539d9e40bde6196d2aa3b2e4c7b3fdb (patch)
treedb860b2365f8cb0e2fab4772e80e4e38d4d89b37 /i18npool
parent1a1d1a86e9129ec3885610b641179b30f9bf5e79 (diff)
make UNO enums scoped for internal LO code
this modifies codemaker so that, for an UNO enum, we generate code that effectively looks like: #ifdef LIBO_INTERNAL_ONLY && HAVE_CX11_CONSTEXPR enum class XXX { ONE = 1 }; constexpr auto ONE = XXX_ONE; #else ...the old normal way.. #endif which means that for LO internal code, the enums are scoped. The "constexpr auto" trick acts like an alias so we don't have to use scoped naming everywhere. Change-Id: I3054ecb230e8666ce98b4a9cb87b384df5f64fb4 Reviewed-on: https://gerrit.libreoffice.org/34546 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'i18npool')
-rw-r--r--i18npool/qa/cppunit/test_textsearch.cxx2
-rw-r--r--i18npool/source/inputchecker/inputsequencechecker.cxx11
-rw-r--r--i18npool/source/transliteration/transliterationImpl.cxx40
3 files changed, 32 insertions, 21 deletions
diff --git a/i18npool/qa/cppunit/test_textsearch.cxx b/i18npool/qa/cppunit/test_textsearch.cxx
index 0f286a247f07..303af41db72e 100644
--- a/i18npool/qa/cppunit/test_textsearch.cxx
+++ b/i18npool/qa/cppunit/test_textsearch.cxx
@@ -149,7 +149,7 @@ void TestTextSearch::testWildcardSearch()
aOptions.WildcardEscapeCharacter = '~';
// aOptions.searchFlag = ::css::util::SearchFlags::WILD_MATCH_SELECTION;
// is not set, so substring match is allowed.
- aOptions.transliterateFlags = ::css::i18n::TransliterationModules::TransliterationModules_IGNORE_CASE;
+ aOptions.transliterateFlags = (sal_Int32)::css::i18n::TransliterationModules::TransliterationModules_IGNORE_CASE;
aText = "abAca";
aOptions.searchString = "a";
diff --git a/i18npool/source/inputchecker/inputsequencechecker.cxx b/i18npool/source/inputchecker/inputsequencechecker.cxx
index e3b72cd51413..ed6f12c59d20 100644
--- a/i18npool/source/inputchecker/inputsequencechecker.cxx
+++ b/i18npool/source/inputchecker/inputsequencechecker.cxx
@@ -81,24 +81,25 @@ InputSequenceCheckerImpl::correctInputSequence(OUString& Text, sal_Int32 nStartP
static ScriptTypeList typeList[] = {
//{ UnicodeScript_kHebrew, UnicodeScript_kHebrew }, // 10,
//{ UnicodeScript_kArabic, UnicodeScript_kArabic }, // 11,
- { UnicodeScript_kDevanagari,UnicodeScript_kDevanagari, UnicodeScript_kDevanagari }, // 14,
- { UnicodeScript_kThai, UnicodeScript_kThai, UnicodeScript_kThai }, // 24,
+ { UnicodeScript_kDevanagari, UnicodeScript_kDevanagari, (sal_Int16)UnicodeScript_kDevanagari }, // 14,
+ { UnicodeScript_kThai, UnicodeScript_kThai, (sal_Int16)UnicodeScript_kThai }, // 24,
- { UnicodeScript_kScriptCount, UnicodeScript_kScriptCount, UnicodeScript_kScriptCount } // 88
+ { UnicodeScript_kScriptCount, UnicodeScript_kScriptCount, (sal_Int16)UnicodeScript_kScriptCount } // 88
};
sal_Char* SAL_CALL
InputSequenceCheckerImpl::getLanguageByScripType(sal_Unicode cChar, sal_Unicode nChar)
{
- sal_Int16 type = unicode::getUnicodeScriptType( cChar, typeList, UnicodeScript_kScriptCount );
+ css::i18n::UnicodeScript type = (css::i18n::UnicodeScript)unicode::getUnicodeScriptType( cChar, typeList, (sal_Int16)UnicodeScript_kScriptCount );
if (type != UnicodeScript_kScriptCount &&
- type == unicode::getUnicodeScriptType( nChar, typeList, UnicodeScript_kScriptCount )) {
+ type == (css::i18n::UnicodeScript)unicode::getUnicodeScriptType( nChar, typeList, (sal_Int16)UnicodeScript_kScriptCount )) {
switch(type) {
case UnicodeScript_kThai: return const_cast<sal_Char*>("th");
//case UnicodeScript_kArabic: return (sal_Char*)"ar";
//case UnicodeScript_kHebrew: return (sal_Char*)"he";
case UnicodeScript_kDevanagari: return const_cast<sal_Char*>("hi");
+ default: break;
}
}
return nullptr;
diff --git a/i18npool/source/transliteration/transliterationImpl.cxx b/i18npool/source/transliteration/transliterationImpl.cxx
index 0076f957a8e8..eccc2088b7de 100644
--- a/i18npool/source/transliteration/transliterationImpl.cxx
+++ b/i18npool/source/transliteration/transliterationImpl.cxx
@@ -170,36 +170,45 @@ TransliterationImpl::getType()
throw ERROR;
}
+TransliterationModules operator&(TransliterationModules lhs, TransliterationModules rhs) {
+ return TransliterationModules(sal_Int32(lhs) & sal_Int32(rhs));
+}
+TransliterationModules operator|(TransliterationModules lhs, TransliterationModules rhs) {
+ return TransliterationModules(sal_Int32(lhs) | sal_Int32(rhs));
+}
+
void SAL_CALL
TransliterationImpl::loadModule( TransliterationModules modType, const Locale& rLocale )
{
clear();
- if (modType&TransliterationModules_IGNORE_MASK && modType&TransliterationModules_NON_IGNORE_MASK) {
+ if (bool(modType & TransliterationModules_IGNORE_MASK) &&
+ bool(modType & TransliterationModules_NON_IGNORE_MASK))
+ {
throw ERROR;
- } else if (modType&TransliterationModules_IGNORE_MASK) {
+ } else if (bool(modType & TransliterationModules_IGNORE_MASK)) {
#define TransliterationModules_IGNORE_CASE_MASK (TransliterationModules_IGNORE_CASE | \
TransliterationModules_IGNORE_WIDTH | \
TransliterationModules_IGNORE_KANA)
- sal_Int32 mask = ((modType&TransliterationModules_IGNORE_CASE_MASK) == modType) ?
+ TransliterationModules mask = ((modType & TransliterationModules_IGNORE_CASE_MASK) == modType) ?
TransliterationModules_IGNORE_CASE_MASK : TransliterationModules_IGNORE_MASK;
- for (sal_Int16 i = 0; TMlist[i].tm & mask; i++) {
- if (modType & TMlist[i].tm)
+ for (sal_Int16 i = 0; bool(TMlist[i].tm & mask); i++) {
+ if (bool(modType & TMlist[i].tm))
if (loadModuleByName(OUString::createFromAscii(TMlist[i].implName),
bodyCascade[numCascade], rLocale))
numCascade++;
}
// additional transliterations from TranslationModuleExtra (we cannot extend TransliterationModule)
- if (modType & TransliterationModulesExtra::IGNORE_DIACRITICS_CTL)
+ if (bool(modType & (TransliterationModules)TransliterationModulesExtra::IGNORE_DIACRITICS_CTL))
{
if (loadModuleByName("ignoreDiacritics_CTL", bodyCascade[numCascade], rLocale))
numCascade++;
}
- if (modType & TransliterationModulesExtra::IGNORE_KASHIDA_CTL)
+ if (bool(modType & (TransliterationModules)TransliterationModulesExtra::IGNORE_KASHIDA_CTL))
if (loadModuleByName("ignoreKashida_CTL", bodyCascade[numCascade], rLocale))
numCascade++;
- } else if (modType&TransliterationModules_NON_IGNORE_MASK) {
- for (sal_Int16 i = 0; TMlist[i].tm; i++) {
+ } else if (bool(modType & TransliterationModules_NON_IGNORE_MASK)) {
+ for (sal_Int16 i = 0; bool(TMlist[i].tm); i++) {
if (TMlist[i].tm == modType) {
if (loadModuleByName(OUString::createFromAscii(TMlist[i].implName), bodyCascade[numCascade], rLocale))
numCascade++;
@@ -213,17 +222,18 @@ void SAL_CALL
TransliterationImpl::loadModuleNew( const Sequence < TransliterationModulesNew > & modType, const Locale& rLocale )
{
clear();
- sal_Int32 mask = 0, count = modType.getLength();
+ TransliterationModules mask = TransliterationModules_END_OF_MODULE;
+ sal_Int32 count = modType.getLength();
if (count > maxCascade)
throw ERROR; // could not handle more than maxCascade
for (sal_Int32 i = 0; i < count; i++) {
- for (sal_Int16 j = 0; TMlist[j].tmn; j++) {
+ for (sal_Int16 j = 0; bool(TMlist[j].tmn); j++) {
if (TMlist[j].tmn == modType[i]) {
- if (mask == 0)
- mask = TMlist[i].tm && (TMlist[i].tm&TransliterationModules_IGNORE_MASK) ?
+ if (mask == TransliterationModules_END_OF_MODULE)
+ mask = bool(TMlist[i].tm) && bool(TMlist[i].tm & TransliterationModules_IGNORE_MASK) ?
TransliterationModules_IGNORE_MASK : TransliterationModules_NON_IGNORE_MASK;
- else if (mask == (sal_Int32) TransliterationModules_IGNORE_MASK &&
- (TMlist[i].tm&TransliterationModules_IGNORE_MASK) == 0)
+ else if (mask == TransliterationModules_IGNORE_MASK &&
+ (TMlist[i].tm&TransliterationModules_IGNORE_MASK) == TransliterationModules_END_OF_MODULE)
throw ERROR; // could not mess up ignore trans. with non_ignore trans.
if (loadModuleByName(OUString::createFromAscii(TMlist[j].implName), bodyCascade[numCascade], rLocale))
numCascade++;