diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-02-22 16:39:20 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-04-04 06:38:03 +0000 |
commit | 5676ced82539d9e40bde6196d2aa3b2e4c7b3fdb (patch) | |
tree | db860b2365f8cb0e2fab4772e80e4e38d4d89b37 /i18npool | |
parent | 1a1d1a86e9129ec3885610b641179b30f9bf5e79 (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.cxx | 2 | ||||
-rw-r--r-- | i18npool/source/inputchecker/inputsequencechecker.cxx | 11 | ||||
-rw-r--r-- | i18npool/source/transliteration/transliterationImpl.cxx | 40 |
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++; |