diff options
author | Caolán McNamara <caolanm@redhat.com> | 2015-10-23 09:11:56 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2015-10-23 09:13:09 +0100 |
commit | a1ff0745cc4f78777e8dba1e7bb52d18386d7394 (patch) | |
tree | 3ad924aef22e2d4b6d3903b731a00531bff96ba7 /editeng/source | |
parent | b7ec9d722fc24b8a01e34df259594567c3fc7d43 (diff) |
Resolves: tdf#76964 fall back to primary language via getLanguage
instead of bittwiddling which ends up trying to resolve the
system language
Change-Id: I545bd5e39f99003ddedf3c90031e8b818edc1de2
Diffstat (limited to 'editeng/source')
-rw-r--r-- | editeng/source/misc/svxacorr.cxx | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx index c0fe6852e038..93c56bb7b31b 100644 --- a/editeng/source/misc/svxacorr.cxx +++ b/editeng/source/misc/svxacorr.cxx @@ -1717,10 +1717,8 @@ const SvxAutocorrWord* SvxAutoCorrect::SearchWordsInList( } // If it still could not be found here, then keep on searching - LanguageType eLang = aLanguageTag.getLanguageType(); - LanguageType nTmpKey1 = eLang & 0x7ff, // the main language in many cases DE - nTmpKey2 = eLang & 0x3ff; // otherwise for example EN + LanguageType nTmpKey1 = eLang & 0x7ff; // the main language in many cases DE if(nTmpKey1 != eLang && (m_pLangTable->find(aLanguageTag.reset(nTmpKey1)) != m_pLangTable->end() || CreateLanguageFile(aLanguageTag, false))) { @@ -1734,8 +1732,12 @@ const SvxAutocorrWord* SvxAutoCorrect::SearchWordsInList( } } - if (nTmpKey2 != eLang && (m_pLangTable->find(aLanguageTag.reset(nTmpKey2)) != m_pLangTable->end() || - CreateLanguageFile(aLanguageTag, false))) + // otherwise for example EN + aLanguageTag.reset(aLanguageTag.getLanguage()); + LanguageType nTmpKey2 = aLanguageTag.getLanguageType(false); + if (nTmpKey2 != eLang && nTmpKey2 != LANGUAGE_UNDETERMINED && + (m_pLangTable->find(aLanguageTag) != m_pLangTable->end() || + CreateLanguageFile(aLanguageTag, false))) { //the language is available - so bring it on std::unique_ptr<SvxAutoCorrectLanguageLists> const& pList = m_pLangTable->find(aLanguageTag)->second; @@ -1771,8 +1773,7 @@ bool SvxAutoCorrect::FindInWrdSttExceptList( LanguageType eLang, // First search for eLang, then US-English -> English // and last in LANGUAGE_UNDETERMINED - LanguageType nTmpKey1 = eLang & 0x7ff, // the main language in many cases DE - nTmpKey2 = eLang & 0x3ff; // otherwise for example EN + LanguageType nTmpKey1 = eLang & 0x7ff; // the main language in many cases DE OUString sTemp(sWord); if (m_pLangTable->find(aLanguageTag) != m_pLangTable->end() || CreateLanguageFile(aLanguageTag, false)) @@ -1794,8 +1795,11 @@ bool SvxAutoCorrect::FindInWrdSttExceptList( LanguageType eLang, return true; } - if (nTmpKey2 != eLang && (m_pLangTable->find(aLanguageTag.reset(nTmpKey2)) != m_pLangTable->end() || - CreateLanguageFile(aLanguageTag, false))) + // otherwise for example EN + LanguageType nTmpKey2 = aLanguageTag.getLanguageType(false); + if (nTmpKey2 != eLang && nTmpKey2 != LANGUAGE_UNDETERMINED && + (m_pLangTable->find(aLanguageTag) != m_pLangTable->end() || + CreateLanguageFile(aLanguageTag, false))) { //the language is available - so bring it on auto const& pList = m_pLangTable->find(aLanguageTag)->second; @@ -1857,8 +1861,7 @@ bool SvxAutoCorrect::FindInCplSttExceptList(LanguageType eLang, // First search for eLang, then US-English -> English // and last in LANGUAGE_UNDETERMINED - LanguageType nTmpKey1 = eLang & 0x7ff, // the main language in many cases DE - nTmpKey2 = eLang & 0x3ff; // otherwise for example EN + LanguageType nTmpKey1 = eLang & 0x7ff; // the main language in many cases DE OUString sTemp( sWord ); if (m_pLangTable->find(aLanguageTag) != m_pLangTable->end() || CreateLanguageFile(aLanguageTag, false)) @@ -1878,8 +1881,11 @@ bool SvxAutoCorrect::FindInCplSttExceptList(LanguageType eLang, return true; } - if(nTmpKey2 != eLang && (m_pLangTable->find(aLanguageTag.reset(nTmpKey2)) != m_pLangTable->end() || - CreateLanguageFile(aLanguageTag, false))) + // otherwise for example EN + LanguageType nTmpKey2 = aLanguageTag.getLanguageType(false); + if (nTmpKey2 != eLang && nTmpKey2 != LANGUAGE_UNDETERMINED && + (m_pLangTable->find(aLanguageTag) != m_pLangTable->end() || + CreateLanguageFile(aLanguageTag, false))) { //the language is available - so bring it on const SvStringsISortDtor* pList = m_pLangTable->find(aLanguageTag)->second->GetCplSttExceptList(); |