From 7076cc68fd16e28c53138502cbe374efe606a768 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Fri, 23 Oct 2015 20:35:32 +0100 Subject: get rid of erroneous 0x7ff language mask Change-Id: I2b3501967fc0088e0bebf6c366e033c61b652921 --- editeng/source/misc/svxacorr.cxx | 55 ++++++++-------------------------------- 1 file changed, 11 insertions(+), 44 deletions(-) diff --git a/editeng/source/misc/svxacorr.cxx b/editeng/source/misc/svxacorr.cxx index e1879ee009d5..84a0df110e5d 100644 --- a/editeng/source/misc/svxacorr.cxx +++ b/editeng/source/misc/svxacorr.cxx @@ -1718,24 +1718,10 @@ 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 - if(nTmpKey1 != eLang && (m_pLangTable->find(aLanguageTag.reset(nTmpKey1)) != m_pLangTable->end() || - CreateLanguageFile(aLanguageTag, false))) - { - //the language is available - so bring it on - std::unique_ptr const& pList = m_pLangTable->find(aLanguageTag)->second; - pRet = lcl_SearchWordsInList( pList.get(), rTxt, rStt, nEndPos ); - if( pRet ) - { - rLang = aLanguageTag; - return pRet; - } - } - - // otherwise for example EN + // the primary language for example EN aLanguageTag.reset(aLanguageTag.getLanguage()); - LanguageType nTmpKey2 = aLanguageTag.getLanguageType(false); - if (nTmpKey2 != eLang && nTmpKey2 != LANGUAGE_UNDETERMINED && + LanguageType nTmpKey = aLanguageTag.getLanguageType(false); + if (nTmpKey != eLang && nTmpKey != LANGUAGE_UNDETERMINED && (m_pLangTable->find(aLanguageTag) != m_pLangTable->end() || CreateLanguageFile(aLanguageTag, false))) { @@ -1771,9 +1757,8 @@ bool SvxAutoCorrect::FindInWrdSttExceptList( LanguageType eLang, /* TODO-BCP47: again horrible uglyness */ - // First search for eLang, then US-English -> English + // First search for eLang, then primary language of eLang // and last in LANGUAGE_UNDETERMINED - 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)) @@ -1786,19 +1771,10 @@ bool SvxAutoCorrect::FindInWrdSttExceptList( LanguageType eLang, } // If it still could not be found here, then keep on searching - if (nTmpKey1 != eLang && (m_pLangTable->find(aLanguageTag.reset(nTmpKey1)) != m_pLangTable->end() || - CreateLanguageFile(aLanguageTag, false))) - { - //the language is available - so bring it on - auto const& pList = m_pLangTable->find(aLanguageTag)->second; - if(pList->GetWrdSttExceptList()->find(sTemp) != pList->GetWrdSttExceptList()->end() ) - return true; - } - - // otherwise for example EN + // the primary language for example EN aLanguageTag.reset(aLanguageTag.getLanguage()); - LanguageType nTmpKey2 = aLanguageTag.getLanguageType(false); - if (nTmpKey2 != eLang && nTmpKey2 != LANGUAGE_UNDETERMINED && + LanguageType nTmpKey = aLanguageTag.getLanguageType(false); + if (nTmpKey != eLang && nTmpKey != LANGUAGE_UNDETERMINED && (m_pLangTable->find(aLanguageTag) != m_pLangTable->end() || CreateLanguageFile(aLanguageTag, false))) { @@ -1860,9 +1836,8 @@ bool SvxAutoCorrect::FindInCplSttExceptList(LanguageType eLang, /* TODO-BCP47: did I mention terrible horrible uglyness? */ - // First search for eLang, then US-English -> English + // First search for eLang, then primary language of eLang // and last in LANGUAGE_UNDETERMINED - 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)) @@ -1874,18 +1849,10 @@ bool SvxAutoCorrect::FindInCplSttExceptList(LanguageType eLang, } // If it still could not be found here, then keep on searching - if(nTmpKey1 != eLang && (m_pLangTable->find(aLanguageTag.reset(nTmpKey1)) != m_pLangTable->end() || - CreateLanguageFile(aLanguageTag, false))) - { - const SvStringsISortDtor* pList = m_pLangTable->find(aLanguageTag)->second->GetCplSttExceptList(); - if(bAbbreviation ? lcl_FindAbbreviation(pList, sWord) : pList->find(sTemp) != pList->end() ) - return true; - } - - // otherwise for example EN + // the primary language for example EN aLanguageTag.reset(aLanguageTag.getLanguage()); - LanguageType nTmpKey2 = aLanguageTag.getLanguageType(false); - if (nTmpKey2 != eLang && nTmpKey2 != LANGUAGE_UNDETERMINED && + LanguageType nTmpKey = aLanguageTag.getLanguageType(false); + if (nTmpKey != eLang && nTmpKey != LANGUAGE_UNDETERMINED && (m_pLangTable->find(aLanguageTag) != m_pLangTable->end() || CreateLanguageFile(aLanguageTag, false))) { -- cgit v1.2.3