[PATCH] Change in core[libreoffice-4-0]: resolved fdo#58503 restore awkward handling of empty locale ...
Eike Rathke (via Code Review)
gerrit at gerrit.libreoffice.org
Wed Jan 9 08:05:28 PST 2013
Hi,
I have submitted a patch for review:
https://gerrit.libreoffice.org/1616
To pull it, you can do:
git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/16/1616/1
resolved fdo#58503 restore awkward handling of empty locale for legacy
Partly reverts d7a5ec62e91ce3dc5b784815254218f16181f676
An empty locale was treated as LANGUAGE_NONE, effectively being
interpreted as absence or undetermined or multiple or all depending on
context. Restore this behavior as it was an undocumented feature of the
API.
Change-Id: I256b352961f09e41cadb3e44c9ef01ee7677fd31
---
M lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
M lingucomponent/source/lingutil/lingutil.cxx
M lingucomponent/source/spellcheck/macosxspell/macspellimp.mm
M lingucomponent/source/spellcheck/spell/sspellimp.cxx
M lingucomponent/source/thesaurus/libnth/nthesimp.cxx
M linguistic/inc/linguistic/misc.hxx
M linguistic/source/convdic.cxx
M linguistic/source/convdiclist.cxx
M linguistic/source/dicimp.cxx
M linguistic/source/dlistimp.cxx
M linguistic/source/gciterator.cxx
M linguistic/source/hyphdsp.cxx
M linguistic/source/lngsvcmgr.cxx
M linguistic/source/misc.cxx
M linguistic/source/spelldsp.cxx
M linguistic/source/spelldta.cxx
M linguistic/source/thesdsp.cxx
M linguistic/workben/sspellimp.cxx
18 files changed, 106 insertions(+), 55 deletions(-)
diff --git a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
index e7fe7a4..990b45b 100644
--- a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
+++ b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
@@ -485,13 +485,13 @@
sal_Int16 nPos = (sal_Int16) ((nHyphenationPosAltHyph < nHyphenationPos) ?
nHyphenationPosAltHyph : nHyphenationPos);
// dicretionary hyphenation
- xRes = HyphenatedWord::CreateHyphenatedWord( aWord, LanguageTag( aLocale ).getLanguageType(), nPos,
+ xRes = HyphenatedWord::CreateHyphenatedWord( aWord, LinguLocaleToLanguage( aLocale ), nPos,
aWord.replaceAt(nHyphenationPosAlt + 1, cut[nHyphenationPos], repHyph),
(sal_Int16) nHyphenationPosAltHyph);
}
else
{
- xRes = HyphenatedWord::CreateHyphenatedWord( aWord, LanguageTag( aLocale ).getLanguageType(),
+ xRes = HyphenatedWord::CreateHyphenatedWord( aWord, LinguLocaleToLanguage( aLocale ),
(sal_Int16)nHyphenationPos, aWord, (sal_Int16) nHyphenationPos);
}
}
@@ -542,7 +542,7 @@
//well as "hyphenate"
if (aWord.getLength() < minLen)
{
- return PossibleHyphens::CreatePossibleHyphens( aWord, LanguageTag( aLocale ).getLanguageType(),
+ return PossibleHyphens::CreatePossibleHyphens( aWord, LinguLocaleToLanguage( aLocale ),
aWord, Sequence< sal_Int16 >() );
}
@@ -689,7 +689,7 @@
OUString hyphenatedWord = hyphenatedWordBuffer.makeStringAndClear();
Reference< XPossibleHyphens > xRes = PossibleHyphens::CreatePossibleHyphens(
- aWord, LanguageTag( aLocale ).getLanguageType(), hyphenatedWord, aHyphPos);
+ aWord, LinguLocaleToLanguage( aLocale ), hyphenatedWord, aHyphPos);
delete[] hyphens;
delete[] lcword;
diff --git a/lingucomponent/source/lingutil/lingutil.cxx b/lingucomponent/source/lingutil/lingutil.cxx
index 194f0b7..8754442 100644
--- a/lingucomponent/source/lingutil/lingutil.cxx
+++ b/lingucomponent/source/lingutil/lingutil.cxx
@@ -216,7 +216,7 @@
{
LanguageType nLang = LanguageTag( aIt2->aLocaleNames[0] ).getLanguageType();
- if (nLang == LANGUAGE_DONTKNOW || nLang == LANGUAGE_NONE)
+ if (nLang == LANGUAGE_DONTKNOW || linguistic::LinguIsUnspecified( nLang))
{
OSL_FAIL( "old style dictionary with invalid language found!" );
continue;
diff --git a/lingucomponent/source/spellcheck/macosxspell/macspellimp.mm b/lingucomponent/source/spellcheck/macosxspell/macspellimp.mm
index d021fc0..3149c02 100644
--- a/lingucomponent/source/spellcheck/macosxspell/macspellimp.mm
+++ b/lingucomponent/source/spellcheck/macosxspell/macspellimp.mm
@@ -296,7 +296,7 @@
sal_Int16 nFailure = GetSpellFailure( rWord, rLocale );
if (nFailure != -1)
{
- sal_Int16 nLang = LanguageTag( rLocale ).getLanguageType();
+ sal_Int16 nLang = LinguLocaleToLanguage( rLocale );
// postprocess result for errors that should be ignored
if ( (!rHelper.IsSpellUpperCase() && IsUpper( rWord, nLang ))
|| (!rHelper.IsSpellWithDigits() && HasDigits( rWord ))
@@ -320,7 +320,7 @@
Reference< XSpellAlternatives > xRes;
// note: mutex is held by higher up by spell which covers both
- sal_Int16 nLang = LanguageTag( rLocale ).getLanguageType();
+ sal_Int16 nLang = LinguLocaleToLanguage( rLocale );
int count;
Sequence< OUString > aStr( 0 );
diff --git a/lingucomponent/source/spellcheck/spell/sspellimp.cxx b/lingucomponent/source/spellcheck/spell/sspellimp.cxx
index 160eed15..273743b 100644
--- a/lingucomponent/source/spellcheck/spell/sspellimp.cxx
+++ b/lingucomponent/source/spellcheck/spell/sspellimp.cxx
@@ -375,7 +375,7 @@
sal_Int16 nFailure = GetSpellFailure( rWord, rLocale );
if (nFailure != -1 && !rWord.match(A2OU(SPELLML_HEADER), 0))
{
- sal_Int16 nLang = LanguageTag( rLocale ).getLanguageType();
+ sal_Int16 nLang = LinguLocaleToLanguage( rLocale );
// postprocess result for errors that should be ignored
const bool bIgnoreError =
(!rHelper.IsSpellUpperCase() && IsUpper( rWord, nLang )) ||
@@ -418,7 +418,7 @@
if (n)
{
- sal_Int16 nLang = LanguageTag( rLocale ).getLanguageType();
+ sal_Int16 nLang = LinguLocaleToLanguage( rLocale );
int numsug = 0;
Sequence< OUString > aStr( 0 );
diff --git a/lingucomponent/source/thesaurus/libnth/nthesimp.cxx b/lingucomponent/source/thesaurus/libnth/nthesimp.cxx
index 7f17e22..886f37a 100644
--- a/lingucomponent/source/thesaurus/libnth/nthesimp.cxx
+++ b/lingucomponent/source/thesaurus/libnth/nthesimp.cxx
@@ -308,9 +308,9 @@
sal_Int32 stem = 0;
sal_Int32 stem2 = 0;
- sal_Int16 nLanguage = LanguageTag( rLocale ).getLanguageType();
+ sal_Int16 nLanguage = LinguLocaleToLanguage( rLocale );
- if (nLanguage == LANGUAGE_NONE || rTerm.isEmpty())
+ if (LinguIsUnspecified( nLanguage) || rTerm.isEmpty())
return noMeanings;
if (!hasLocale( rLocale ))
diff --git a/linguistic/inc/linguistic/misc.hxx b/linguistic/inc/linguistic/misc.hxx
index 32637ab..6f4563a 100644
--- a/linguistic/inc/linguistic/misc.hxx
+++ b/linguistic/inc/linguistic/misc.hxx
@@ -90,6 +90,24 @@
sal_Int32 LevDistance( const rtl::OUString &rTxt1, const rtl::OUString &rTxt2 );
+/** Convert Locale to LanguageType for legacy handling.
+ Linguistic specific handling of an empty locale denoting LANGUAGE_NONE.
+ Does not resolve empty locale as system locale.
+ */
+LNG_DLLPUBLIC LanguageType LinguLocaleToLanguage( const ::com::sun::star::lang::Locale& rLocale );
+
+/** Convert LanguageType to Locale for legacy handling.
+ Linguistic specific handling of LANGUAGE_NONE resulting in an empty locale.
+ Avoid use!
+ */
+LNG_DLLPUBLIC ::com::sun::star::lang::Locale LinguLanguageToLocale( LanguageType nLanguage );
+
+/** Checks if a LanguageType is one of the values that denote absence of
+ language or undetermined language or multiple languages, in short all
+ values used in linguistic context that do not denote a specific language.
+ */
+LNG_DLLPUBLIC bool LinguIsUnspecified( LanguageType nLanguage );
+
::com::sun::star::uno::Sequence< sal_Int16 >
LocaleSeqToLangSeq( ::com::sun::star::uno::Sequence<
::com::sun::star::lang::Locale > &rLocaleSeq );
diff --git a/linguistic/source/convdic.cxx b/linguistic/source/convdic.cxx
index c497c86..37310db 100644
--- a/linguistic/source/convdic.cxx
+++ b/linguistic/source/convdic.cxx
@@ -152,7 +152,7 @@
uno::Reference< XInterface > xRef( (document::XFilter *) pImport, UNO_QUERY );
ReadThroughDic( rFileURL, *pImport ); // will implicitly add the entries
- bRes = pImport->GetLanguage() != LANGUAGE_NONE &&
+ bRes = !LinguIsUnspecified( pImport->GetLanguage()) &&
pImport->GetConversionType() != -1;
DBG_ASSERT( bRes, "conversion dictionary corrupted?" );
diff --git a/linguistic/source/convdiclist.cxx b/linguistic/source/convdiclist.cxx
index 52ea621..9fa05f4 100644
--- a/linguistic/source/convdiclist.cxx
+++ b/linguistic/source/convdiclist.cxx
@@ -483,7 +483,7 @@
{
MutexGuard aGuard( GetLinguMutex() );
- sal_Int16 nLang = LanguageTag( rLocale ).getLanguageType();
+ sal_Int16 nLang = LinguLocaleToLanguage( rLocale );
if (GetNameContainer().hasByName( rName ))
throw ElementExistException();
diff --git a/linguistic/source/dicimp.cxx b/linguistic/source/dicimp.cxx
index dafa95d..231779b 100644
--- a/linguistic/source/dicimp.cxx
+++ b/linguistic/source/dicimp.cxx
@@ -419,7 +419,10 @@
pStream->WriteLine(rtl::OString(pVerOOo7));
if (0 != (nErr = pStream->GetError()))
return nErr;
- if (nLanguage == LANGUAGE_NONE)
+ /* XXX: the <none> case could be differentiated, is it absence or
+ * undetermined or multiple? Earlier versions did not know about 'und' and
+ * 'mul' and 'zxx' codes. Sync with ReadDicVersion() */
+ if (LinguIsUnspecified(nLanguage))
pStream->WriteLine(rtl::OString(RTL_CONSTASCII_STRINGPARAM("lang: <none>")));
else
{
@@ -773,7 +776,7 @@
throw(RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
- sal_Int16 nLanguageP = LanguageTag( aLocale ).getLanguageType();
+ sal_Int16 nLanguageP = LinguLocaleToLanguage( aLocale );
if (!bIsReadonly && nLanguage != nLanguageP)
{
nLanguage = nLanguageP;
diff --git a/linguistic/source/dlistimp.cxx b/linguistic/source/dlistimp.cxx
index ed7a8a7..39d816b 100644
--- a/linguistic/source/dlistimp.cxx
+++ b/linguistic/source/dlistimp.cxx
@@ -566,7 +566,7 @@
{
osl::MutexGuard aGuard( GetLinguMutex() );
- sal_Int16 nLanguage = LanguageTag( rLocale ).getLanguageType();
+ sal_Int16 nLanguage = LinguLocaleToLanguage( rLocale );
bool bIsWriteablePath = rURL.match( GetDictionaryWriteablePath(), 0 );
return new DictionaryNeo( rName, nLanguage, eDicType, rURL, bIsWriteablePath );
}
@@ -578,7 +578,7 @@
throw(RuntimeException)
{
osl::MutexGuard aGuard( GetLinguMutex() );
- return SearchDicList( this, rWord, LanguageTag( rLocale ).getLanguageType(),
+ return SearchDicList( this, rWord, LinguLocaleToLanguage( rLocale ),
bSearchPosDics, bSearchSpellEntry );
}
@@ -669,7 +669,7 @@
// and add it to list
rtl::OUString aDicName( A2OU( "IgnoreAllList" ) );
uno::Reference< XDictionary > xIgnAll(
- createDictionary( aDicName, LanguageTag( LANGUAGE_NONE ).getLocale(),
+ createDictionary( aDicName, LinguLanguageToLocale( LANGUAGE_NONE ),
DictionaryType_POSITIVE, rtl::OUString() ) );
if (xIgnAll.is())
{
diff --git a/linguistic/source/gciterator.cxx b/linguistic/source/gciterator.cxx
index c9bafd4..792d406 100644
--- a/linguistic/source/gciterator.cxx
+++ b/linguistic/source/gciterator.cxx
@@ -1072,12 +1072,12 @@
{
::osl::Guard< ::osl::Mutex > aGuard( MyMutex::get() );
- LanguageType nLanguage = LanguageTag( rLocale ).getLanguageType();
+ LanguageType nLanguage = LinguLocaleToLanguage( rLocale );
OUString aImplName;
if (rSvcImplNames.getLength() > 0)
aImplName = rSvcImplNames[0]; // there is only one grammar checker per language
- if (nLanguage != LANGUAGE_NONE && nLanguage != LANGUAGE_DONTKNOW)
+ if (!LinguIsUnspecified(nLanguage) && nLanguage != LANGUAGE_DONTKNOW)
{
if (!aImplName.isEmpty())
m_aGCImplNamesByLang[ nLanguage ] = aImplName;
@@ -1095,7 +1095,7 @@
uno::Sequence< OUString > aRes(1);
OUString aImplName; // there is only one grammar checker per language
- LanguageType nLang = LanguageTag( rLocale ).getLanguageType();
+ LanguageType nLang = LinguLocaleToLanguage( rLocale );
GCImplNames_t::const_iterator aIt( m_aGCImplNamesByLang.find( nLang ) );
if (aIt != m_aGCImplNamesByLang.end())
aImplName = aIt->second;
diff --git a/linguistic/source/hyphdsp.cxx b/linguistic/source/hyphdsp.cxx
index ac08631..757e836 100644
--- a/linguistic/source/hyphdsp.cxx
+++ b/linguistic/source/hyphdsp.cxx
@@ -236,7 +236,7 @@
throw(RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
- HyphSvcByLangMap_t::const_iterator aIt( aSvcMap.find( LanguageTag( rLocale ).getLanguageType() ) );
+ HyphSvcByLangMap_t::const_iterator aIt( aSvcMap.find( LinguLocaleToLanguage( rLocale ) ) );
return aIt != aSvcMap.end();
}
@@ -252,8 +252,8 @@
Reference< XHyphenatedWord > xRes;
sal_Int32 nWordLen = rWord.getLength();
- sal_Int16 nLanguage = LanguageTag( rLocale ).getLanguageType();
- if (nLanguage == LANGUAGE_NONE || !nWordLen ||
+ sal_Int16 nLanguage = LinguLocaleToLanguage( rLocale );
+ if (LinguIsUnspecified(nLanguage) || !nWordLen ||
nMaxLeading == 0 || nMaxLeading == nWordLen)
return xRes;
@@ -390,8 +390,8 @@
Reference< XHyphenatedWord > xRes;
sal_Int32 nWordLen = rWord.getLength();
- sal_Int16 nLanguage = LanguageTag( rLocale ).getLanguageType();
- if (nLanguage == LANGUAGE_NONE || !nWordLen)
+ sal_Int16 nLanguage = LinguLocaleToLanguage( rLocale );
+ if (LinguIsUnspecified(nLanguage) || !nWordLen)
return xRes;
// search for entry with that language
@@ -521,8 +521,8 @@
Reference< XPossibleHyphens > xRes;
- sal_Int16 nLanguage = LanguageTag( rLocale ).getLanguageType();
- if (nLanguage == LANGUAGE_NONE || rWord.isEmpty())
+ sal_Int16 nLanguage = LinguLocaleToLanguage( rLocale );
+ if (LinguIsUnspecified(nLanguage) || rWord.isEmpty())
return xRes;
// search for entry with that language
@@ -638,7 +638,7 @@
{
MutexGuard aGuard( GetLinguMutex() );
- sal_Int16 nLanguage = LanguageTag( rLocale ).getLanguageType();
+ sal_Int16 nLanguage = LinguLocaleToLanguage( rLocale );
sal_Int32 nLen = rSvcImplNames.getLength();
if (0 == nLen)
@@ -673,7 +673,7 @@
Sequence< OUString > aRes;
// search for entry with that language and use data from that
- sal_Int16 nLanguage = LanguageTag( rLocale ).getLanguageType();
+ sal_Int16 nLanguage = LinguLocaleToLanguage( rLocale );
HyphenatorDispatcher *pThis = (HyphenatorDispatcher *) this;
const HyphSvcByLangMap_t::iterator aIt( pThis->aSvcMap.find( nLanguage ) );
const LangSvcEntries_Hyph *pEntry = aIt != aSvcMap.end() ? aIt->second.get() : NULL;
diff --git a/linguistic/source/lngsvcmgr.cxx b/linguistic/source/lngsvcmgr.cxx
index 4f68407..93697e6 100644
--- a/linguistic/source/lngsvcmgr.cxx
+++ b/linguistic/source/lngsvcmgr.cxx
@@ -115,7 +115,7 @@
for (sal_Int32 k = 0; k < nLoc; ++k)
{
const lang::Locale *pLoc = aLoc.getConstArray();
- LanguageType nLang = LanguageTag( pLoc[k] ).getLanguageType();
+ LanguageType nLang = LinguLocaleToLanguage( pLoc[k] );
// language not already added?
if (aLanguages.find( nLang ) == aLanguages.end())
@@ -1602,11 +1602,11 @@
OUString *pImplName = aRes.getArray();
sal_uInt16 nCnt = 0;
- LanguageType nLanguage = LanguageTag( rLocale ).getLanguageType();
+ LanguageType nLanguage = LinguLocaleToLanguage( rLocale );
for (size_t i = 0; i < nMaxCnt; ++i)
{
const SvcInfo &rInfo = (*pInfoArray)[i];
- if (LANGUAGE_NONE == nLanguage
+ if (LinguIsUnspecified( nLanguage )
|| rInfo.HasLanguage( nLanguage ))
{
pImplName[ nCnt++ ] = rInfo.aSvcImplName;
@@ -1689,8 +1689,8 @@
#if OSL_DEBUG_LEVEL > 1
#endif
- LanguageType nLanguage = LanguageTag( rLocale ).getLanguageType();
- if (LANGUAGE_NONE != nLanguage)
+ LanguageType nLanguage = LinguLocaleToLanguage( rLocale );
+ if (!LinguIsUnspecified( nLanguage))
{
if (0 == rServiceName.compareToAscii( SN_SPELLCHECKER ))
{
diff --git a/linguistic/source/misc.cxx b/linguistic/source/misc.cxx
index 536daf4..a7dc5a1 100644
--- a/linguistic/source/misc.cxx
+++ b/linguistic/source/misc.cxx
@@ -85,6 +85,36 @@
return aLclDtaWrp;
}
+
+LanguageType LinguLocaleToLanguage( const ::com::sun::star::lang::Locale& rLocale )
+{
+ if ( rLocale.Language.isEmpty() )
+ return LANGUAGE_NONE;
+ return LanguageTag( rLocale ).getLanguageType();
+}
+
+
+::com::sun::star::lang::Locale LinguLanguageToLocale( LanguageType nLanguage )
+{
+ if (nLanguage == LANGUAGE_NONE)
+ return ::com::sun::star::lang::Locale();
+ return LanguageTag( nLanguage).getLocale();
+}
+
+
+bool LinguIsUnspecified( LanguageType nLanguage )
+{
+ switch (nLanguage)
+ {
+ case LANGUAGE_NONE:
+ case LANGUAGE_UNDETERMINED:
+ case LANGUAGE_MULTIPLE:
+ return true;
+ }
+ return false;
+}
+
+
static inline sal_Int32 Minimum( sal_Int32 n1, sal_Int32 n2, sal_Int32 n3 )
{
sal_Int32 nMin = n1 < n2 ? n1 : n2;
@@ -266,10 +296,10 @@
uno::Reference< XDictionary > axDic( pDic[i], UNO_QUERY );
DictionaryType eType = axDic->getDictionaryType();
- sal_Int16 nLang = LanguageTag( axDic->getLocale() ).getLanguageType();
+ sal_Int16 nLang = LinguLocaleToLanguage( axDic->getLocale() );
if ( axDic.is() && axDic->isActive()
- && (nLang == nLanguage || nLang == LANGUAGE_NONE) )
+ && (nLang == nLanguage || LinguIsUnspecified( nLang)) )
{
DBG_ASSERT( eType != DictionaryType_MIXED,
"lng : unexpected dictionary type" );
@@ -373,7 +403,7 @@
sal_Int16 *pLang = aLangs.getArray();
for (sal_Int32 i = 0; i < nCount; ++i)
{
- pLang[i] = LanguageTag( pLocale[i] ).getLanguageType();
+ pLang[i] = LinguLocaleToLanguage( pLocale[i] );
}
return aLangs;
@@ -554,7 +584,7 @@
}
else
{
- sal_Int16 nLang = LanguageTag( rxHyphWord->getLocale() ).getLanguageType();
+ sal_Int16 nLang = LinguLocaleToLanguage( rxHyphWord->getLocale() );
xRes = new HyphenatedWord(
rOrigWord, nLang, nOrigHyphenationPos,
aOrigHyphenatedWord, nOrigHyphenPos );
diff --git a/linguistic/source/spelldsp.cxx b/linguistic/source/spelldsp.cxx
index 5c3c974..815a5b3 100644
--- a/linguistic/source/spelldsp.cxx
+++ b/linguistic/source/spelldsp.cxx
@@ -227,7 +227,7 @@
throw(RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
- SpellSvcByLangMap_t::const_iterator aIt( aSvcMap.find( LanguageTag( rLocale ).getLanguageType() ) );
+ SpellSvcByLangMap_t::const_iterator aIt( aSvcMap.find( LinguLocaleToLanguage( rLocale ) ) );
return aIt != aSvcMap.end();
}
@@ -238,7 +238,7 @@
throw(IllegalArgumentException, RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
- return isValid_Impl( rWord, LanguageTag( rLocale ).getLanguageType(), rProperties, sal_True );
+ return isValid_Impl( rWord, LinguLocaleToLanguage( rLocale ), rProperties, sal_True );
}
@@ -248,7 +248,7 @@
throw(IllegalArgumentException, RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
- return spell_Impl( rWord, LanguageTag( rLocale ).getLanguageType(), rProperties, sal_True );
+ return spell_Impl( rWord, LinguLocaleToLanguage( rLocale ), rProperties, sal_True );
}
@@ -297,7 +297,7 @@
sal_Bool bRes = sal_True;
- if (nLanguage == LANGUAGE_NONE || rWord.isEmpty())
+ if (LinguIsUnspecified( nLanguage) || rWord.isEmpty())
return bRes;
// search for entry with that language
@@ -467,7 +467,7 @@
Reference< XSpellAlternatives > xRes;
- if (nLanguage == LANGUAGE_NONE || rWord.isEmpty())
+ if (LinguIsUnspecified( nLanguage) || rWord.isEmpty())
return xRes;
// search for entry with that language
@@ -774,7 +774,7 @@
if (pCache)
pCache->Flush(); // new services may spell differently...
- sal_Int16 nLanguage = LanguageTag( rLocale ).getLanguageType();
+ sal_Int16 nLanguage = LinguLocaleToLanguage( rLocale );
sal_Int32 nLen = rSvcImplNames.getLength();
if (0 == nLen)
@@ -808,7 +808,7 @@
Sequence< OUString > aRes;
// search for entry with that language and use data from that
- sal_Int16 nLanguage = LanguageTag( rLocale ).getLanguageType();
+ sal_Int16 nLanguage = LinguLocaleToLanguage( rLocale );
SpellCheckerDispatcher *pThis = (SpellCheckerDispatcher *) this;
const SpellSvcByLangMap_t::iterator aIt( pThis->aSvcMap.find( nLanguage ) );
const LangSvcEntries_Spell *pEntry = aIt != aSvcMap.end() ? aIt->second.get() : NULL;
diff --git a/linguistic/source/spelldta.cxx b/linguistic/source/spelldta.cxx
index f135003..886af70 100644
--- a/linguistic/source/spelldta.cxx
+++ b/linguistic/source/spelldta.cxx
@@ -78,10 +78,10 @@
{
Reference< XDictionary > xDic( pDic[i], UNO_QUERY );
- sal_Int16 nLang = LanguageTag( xDic->getLocale() ).getLanguageType();
+ sal_Int16 nLang = LinguLocaleToLanguage( xDic->getLocale() );
if ( xDic.is() && xDic->isActive()
- && (nLang == nLanguage || nLang == LANGUAGE_NONE) )
+ && (nLang == nLanguage || LinguIsUnspecified( nLang)) )
{
#if OSL_DEBUG_LEVEL > 1
DictionaryType eType = xDic->getDictionaryType();
diff --git a/linguistic/source/thesdsp.cxx b/linguistic/source/thesdsp.cxx
index e8656af..dfd106f 100644
--- a/linguistic/source/thesdsp.cxx
+++ b/linguistic/source/thesdsp.cxx
@@ -101,7 +101,7 @@
throw(RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
- ThesSvcByLangMap_t::const_iterator aIt( aSvcMap.find( LanguageTag( rLocale ).getLanguageType() ) );
+ ThesSvcByLangMap_t::const_iterator aIt( aSvcMap.find( LinguLocaleToLanguage( rLocale ) ) );
return aIt != aSvcMap.end();
}
@@ -116,8 +116,8 @@
Sequence< Reference< XMeaning > > aMeanings;
- sal_Int16 nLanguage = LanguageTag( rLocale ).getLanguageType();
- if (nLanguage == LANGUAGE_NONE || rTerm.isEmpty())
+ sal_Int16 nLanguage = LinguLocaleToLanguage( rLocale );
+ if (LinguIsUnspecified( nLanguage) || rTerm.isEmpty())
return aMeanings;
// search for entry with that language
@@ -210,7 +210,7 @@
{
MutexGuard aGuard( GetLinguMutex() );
- sal_Int16 nLanguage = LanguageTag( rLocale ).getLanguageType();
+ sal_Int16 nLanguage = LinguLocaleToLanguage( rLocale );
sal_Int32 nLen = rSvcImplNames.getLength();
if (0 == nLen)
@@ -244,7 +244,7 @@
Sequence< OUString > aRes;
// search for entry with that language and use data from that
- sal_Int16 nLanguage = LanguageTag( rLocale ).getLanguageType();
+ sal_Int16 nLanguage = LinguLocaleToLanguage( rLocale );
ThesaurusDispatcher *pThis = (ThesaurusDispatcher *) this;
const ThesSvcByLangMap_t::iterator aIt( pThis->aSvcMap.find( nLanguage ) );
const LangSvcEntries_Thes *pEntry = aIt != aSvcMap.end() ? aIt->second.get() : NULL;
diff --git a/linguistic/workben/sspellimp.cxx b/linguistic/workben/sspellimp.cxx
index 68071d2..003ceab 100644
--- a/linguistic/workben/sspellimp.cxx
+++ b/linguistic/workben/sspellimp.cxx
@@ -185,7 +185,7 @@
sal_Int16 nFailure = GetSpellFailure( rWord, rLocale );
if (nFailure != -1)
{
- sal_Int16 nLang = LanguageTag( rLocale ).getLanguageType();
+ sal_Int16 nLang = LinguLocaleToLanguage( rLocale );
// postprocess result for errors that should be ignored
if ( (!rHelper.IsSpellUpperCase() && IsUpper( rWord, nLang ))
|| (!rHelper.IsSpellWithDigits() && HasDigits( rWord ))
@@ -214,7 +214,7 @@
String aTmp( rWord );
if (aTmp.Len())
{
- sal_Int16 nLang = LanguageTag( rLocale ).getLanguageType();
+ sal_Int16 nLang = LinguLocaleToLanguage( rLocale );
if (STRING_NOTFOUND != aTmp.SearchAscii( "liss" ))
{
--
To view, visit https://gerrit.libreoffice.org/1616
To unsubscribe, visit https://gerrit.libreoffice.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I256b352961f09e41cadb3e44c9ef01ee7677fd31
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: libreoffice-4-0
Gerrit-Owner: Eike Rathke <erack at redhat.com>
More information about the LibreOffice
mailing list