summaryrefslogtreecommitdiff
path: root/svl
diff options
context:
space:
mode:
authorNoel Grandin <noelgrandin@gmail.com>2017-04-17 21:35:35 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2017-04-26 08:50:54 +0200
commitc70d49c7c888da8cfd73db8585e7be1f37fc398a (patch)
treec0e540401850018464ca76300536faf9aa7e27d2 /svl
parentcd4344d3bdef631b3e64ac12a9e64bc9670c1b7c (diff)
use strong_int for LanguageType
Change-Id: If99a944f7032180355da291ad283b4cfcea4f448 Reviewed-on: https://gerrit.libreoffice.org/36629 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'svl')
-rw-r--r--svl/qa/unit/svl.cxx2
-rw-r--r--svl/source/config/languageoptions.cxx6
-rw-r--r--svl/source/items/srchitem.cxx8
-rw-r--r--svl/source/numbers/zforlist.cxx6
-rw-r--r--svl/source/numbers/zformat.cxx290
-rw-r--r--svl/source/numbers/zforscan.cxx169
6 files changed, 212 insertions, 269 deletions
diff --git a/svl/qa/unit/svl.cxx b/svl/qa/unit/svl.cxx
index 99a1626f37cd..10fcbd5672b6 100644
--- a/svl/qa/unit/svl.cxx
+++ b/svl/qa/unit/svl.cxx
@@ -405,7 +405,7 @@ void Test::checkPreviewString(SvNumberFormatter& aFormatter,
aMessage += "\", ";
aMessage += rtl::OString::number( fPreviewNumber );
aMessage += ", sStr, ppColor, ";
- aMessage += rtl::OString::number( eLang );
+ aMessage += rtl::OString::number( (sal_uInt16)eLang );
aMessage += " ) failed";
CPPUNIT_FAIL( aMessage.getStr() );
}
diff --git a/svl/source/config/languageoptions.cxx b/svl/source/config/languageoptions.cxx
index 3d2f5947c925..c7314aede9ce 100644
--- a/svl/source/config/languageoptions.cxx
+++ b/svl/source/config/languageoptions.cxx
@@ -134,7 +134,7 @@ bool SvtLanguageOptions::IsReadOnly(SvtLanguageOptions::EOption eOption) const
}
// returns for a language the scripttype
-SvtScriptType SvtLanguageOptions::GetScriptTypeOfLanguage( sal_uInt16 nLang )
+SvtScriptType SvtLanguageOptions::GetScriptTypeOfLanguage( LanguageType nLang )
{
if( LANGUAGE_DONTKNOW == nLang )
nLang = LANGUAGE_ENGLISH_US;
@@ -184,7 +184,7 @@ sal_Int16 SvtLanguageOptions::FromSvtScriptTypeToI18N( SvtScriptType nItemType )
return 0;
}
-sal_Int16 SvtLanguageOptions::GetI18NScriptTypeOfLanguage( sal_uInt16 nLang )
+sal_Int16 SvtLanguageOptions::GetI18NScriptTypeOfLanguage( LanguageType nLang )
{
return FromSvtScriptTypeToI18N( GetScriptTypeOfLanguage( nLang ) );
}
@@ -237,7 +237,7 @@ bool SvtSystemLanguageOptions::isKeyboardLayoutTypeInstalled(sal_Int16 scriptTyp
for(int i = 0; i < nLayouts; ++i)
{
LCID lang = MAKELCID((WORD)(reinterpret_cast<DWORD_PTR>(lpList[i]) & 0xffff), SORT_DEFAULT);
- if (MsLangId::getScriptType(lang) == scriptType)
+ if (MsLangId::getScriptType(LanguageType(lang)) == scriptType)
{
isInstalled = true;
break;
diff --git a/svl/source/items/srchitem.cxx b/svl/source/items/srchitem.cxx
index 32806948fc29..32440a4cd7d0 100644
--- a/svl/source/items/srchitem.cxx
+++ b/svl/source/items/srchitem.cxx
@@ -481,12 +481,12 @@ bool SvxSearchItem::QueryValue( css::uno::Any& rVal, sal_uInt8 nMemberId ) const
rVal <<= (sal_Int32)m_aSearchOpt.transliterateFlags; break;
case MID_SEARCH_LOCALE:
{
- sal_Int16 nLocale;
+ LanguageType nLocale;
if (!m_aSearchOpt.Locale.Language.isEmpty() || !m_aSearchOpt.Locale.Country.isEmpty() )
nLocale = LanguageTag::convertToLanguageType( m_aSearchOpt.Locale );
else
nLocale = LANGUAGE_NONE;
- rVal <<= nLocale;
+ rVal <<= (sal_Int16)(sal_uInt16)nLocale;
break;
}
@@ -655,13 +655,13 @@ bool SvxSearchItem::PutValue( const css::uno::Any& rVal, sal_uInt8 nMemberId )
bRet = (rVal >>= nInt);
if ( bRet )
{
- if ( nInt == LANGUAGE_NONE )
+ if ( LanguageType(nInt) == LANGUAGE_NONE )
{
m_aSearchOpt.Locale = css::lang::Locale();
}
else
{
- m_aSearchOpt.Locale = LanguageTag::convertToLocale( nInt);
+ m_aSearchOpt.Locale = LanguageTag::convertToLocale( LanguageType(nInt) );
}
}
break;
diff --git a/svl/source/numbers/zforlist.cxx b/svl/source/numbers/zforlist.cxx
index e2284f83782d..decaa845640a 100644
--- a/svl/source/numbers/zforlist.cxx
+++ b/svl/source/numbers/zforlist.cxx
@@ -748,7 +748,7 @@ void SvNumberFormatter::DeleteEntry(sal_uInt32 nKey)
aFTable.erase(nKey);
}
-void SvNumberFormatter::GetUsedLanguages( std::vector<sal_uInt16>& rList )
+void SvNumberFormatter::GetUsedLanguages( std::vector<LanguageType>& rList )
{
rList.clear();
@@ -3593,7 +3593,7 @@ const NfCurrencyEntry* SvNumberFormatter::GetCurrencyEntry( bool & bFoundBank,
}
else
{
- eExtLang = (LanguageType) ((nExtLang < 0) ? -nExtLang : nExtLang);
+ eExtLang = LanguageType((nExtLang < 0) ? -nExtLang : nExtLang);
}
}
else
@@ -4091,7 +4091,7 @@ OUString NfCurrencyEntry::BuildSymbolString(bool bBank,
}
if ( !bWithoutExtension && eLanguage != LANGUAGE_DONTKNOW && eLanguage != LANGUAGE_SYSTEM )
{
- sal_Int32 nLang = static_cast<sal_Int32>(eLanguage);
+ sal_Int32 nLang = static_cast<sal_uInt16>(eLanguage);
aBuf.append('-').append( OUString::number(nLang, 16).toAsciiUpperCase());
}
}
diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx
index b180eb384bee..cf2a245755f1 100644
--- a/svl/source/numbers/zformat.cxx
+++ b/svl/source/numbers/zformat.cxx
@@ -142,10 +142,10 @@ sal_uInt8 SvNumberNatNum::MapDBNumToNatNum( sal_uInt8 nDBNum, LanguageType eLang
{
sal_uInt8 nNatNum = 0;
eLang = MsLangId::getRealLanguage( eLang ); // resolve SYSTEM etc.
- eLang &= 0x03FF; // 10 bit primary language
+ eLang = primary(eLang); // 10 bit primary language
if ( bDate )
{
- if ( nDBNum == 4 && eLang == (LANGUAGE_KOREAN & 0x03FF) )
+ if ( nDBNum == 4 && eLang == primary(LANGUAGE_KOREAN) )
{
nNatNum = 9;
}
@@ -159,57 +159,34 @@ sal_uInt8 SvNumberNatNum::MapDBNumToNatNum( sal_uInt8 nDBNum, LanguageType eLang
switch ( nDBNum )
{
case 1:
- switch ( eLang )
- {
- case (LANGUAGE_CHINESE & 0x03FF):
+ if ( eLang == primary(LANGUAGE_CHINESE) )
nNatNum = 4;
- break;
- case (LANGUAGE_JAPANESE & 0x03FF):
+ else if ( eLang == primary(LANGUAGE_JAPANESE) )
nNatNum = 1;
- break;
- case (LANGUAGE_KOREAN & 0x03FF):
+ else if ( eLang == primary(LANGUAGE_KOREAN) )
nNatNum = 1;
- break;
- }
break;
case 2:
- switch ( eLang )
- {
- case (LANGUAGE_CHINESE & 0x03FF):
+ if ( eLang == primary(LANGUAGE_CHINESE))
nNatNum = 5;
- break;
- case (LANGUAGE_JAPANESE & 0x03FF):
+ else if ( eLang == primary(LANGUAGE_JAPANESE) )
nNatNum = 4;
- break;
- case (LANGUAGE_KOREAN & 0x03FF):
+ else if ( eLang == primary(LANGUAGE_KOREAN) )
nNatNum = 2;
- break;
- }
break;
case 3:
- switch ( eLang )
- {
- case (LANGUAGE_CHINESE & 0x03FF):
+ if ( eLang == primary(LANGUAGE_CHINESE) )
nNatNum = 6;
- break;
- case (LANGUAGE_JAPANESE & 0x03FF):
+ else if ( eLang == primary(LANGUAGE_JAPANESE) )
nNatNum = 5;
- break;
- case (LANGUAGE_KOREAN & 0x03FF):
+ else if ( eLang == primary(LANGUAGE_KOREAN) )
nNatNum = 3;
- break;
- }
break;
case 4:
- switch ( eLang )
- {
- case (LANGUAGE_JAPANESE & 0x03FF):
+ if ( eLang == primary(LANGUAGE_JAPANESE) )
nNatNum = 7;
- break;
- case (LANGUAGE_KOREAN & 0x03FF):
+ else if ( eLang == primary(LANGUAGE_KOREAN) )
nNatNum = 9;
- break;
- }
break;
}
}
@@ -221,10 +198,10 @@ sal_uInt8 SvNumberNatNum::MapNatNumToDBNum( sal_uInt8 nNatNum, LanguageType eLan
{
sal_uInt8 nDBNum = 0;
eLang = MsLangId::getRealLanguage( eLang ); // resolve SYSTEM etc.
- eLang &= 0x03FF; // 10 bit primary language
+ eLang = primary(eLang); // 10 bit primary language
if ( bDate )
{
- if ( nNatNum == 9 && eLang == (LANGUAGE_KOREAN & 0x03FF) )
+ if ( nNatNum == 9 && eLang == primary(LANGUAGE_KOREAN) )
{
nDBNum = 4;
}
@@ -238,79 +215,44 @@ sal_uInt8 SvNumberNatNum::MapNatNumToDBNum( sal_uInt8 nNatNum, LanguageType eLan
switch ( nNatNum )
{
case 1:
- switch ( eLang )
- {
- case (LANGUAGE_JAPANESE & 0x03FF):
+ if ( eLang == primary(LANGUAGE_JAPANESE) )
nDBNum = 1;
- break;
- case (LANGUAGE_KOREAN & 0x03FF):
+ else if ( eLang == primary(LANGUAGE_KOREAN) )
nDBNum = 1;
- break;
- }
break;
case 2:
- switch ( eLang )
- {
- case (LANGUAGE_KOREAN & 0x03FF):
+ if ( eLang == primary(LANGUAGE_KOREAN) )
nDBNum = 2;
- break;
- }
break;
case 3:
- switch ( eLang )
- {
- case (LANGUAGE_KOREAN & 0x03FF):
+ if ( eLang == primary(LANGUAGE_KOREAN) )
nDBNum = 3;
- break;
- }
break;
case 4:
- switch ( eLang )
- {
- case (LANGUAGE_CHINESE & 0x03FF):
+ if ( eLang == primary(LANGUAGE_CHINESE) )
nDBNum = 1;
- break;
- case (LANGUAGE_JAPANESE & 0x03FF):
+ else if ( eLang == primary(LANGUAGE_JAPANESE) )
nDBNum = 2;
- break;
- }
break;
case 5:
- switch ( eLang )
- {
- case (LANGUAGE_CHINESE & 0x03FF):
+ if ( eLang == primary(LANGUAGE_CHINESE) )
nDBNum = 2;
- break;
- case (LANGUAGE_JAPANESE & 0x03FF):
+ else if ( eLang == primary(LANGUAGE_JAPANESE) )
nDBNum = 3;
- break;
- }
break;
case 6:
- switch ( eLang )
- {
- case (LANGUAGE_CHINESE & 0x03FF):
+ if ( eLang == primary(LANGUAGE_CHINESE) )
nDBNum = 3;
- break;
- }
break;
case 7:
- switch ( eLang )
- {
- case (LANGUAGE_JAPANESE & 0x03FF):
+ if ( eLang == primary(LANGUAGE_JAPANESE) )
nDBNum = 4;
- break;
- }
break;
case 8:
break;
case 9:
- switch ( eLang )
- {
- case (LANGUAGE_KOREAN & 0x03FF):
+ if ( eLang == primary(LANGUAGE_KOREAN) )
nDBNum = 4;
- break;
- }
break;
case 10:
break;
@@ -577,10 +519,10 @@ OUString SvNumberformat::ImpObtainCalendarAndNumerals( OUStringBuffer& rString,
case 0x17 : // same?
sCalendar = "[~hijri]";
// Only Arabic or Farsi languages support Hijri calendar
- if ( ( ( nLocaleLang & LANGUAGE_MASK_PRIMARY ) != LANGUAGE_ARABIC_PRIMARY_ONLY )
+ if ( ( primary( nLocaleLang ) != LANGUAGE_ARABIC_PRIMARY_ONLY )
&& nLocaleLang != LANGUAGE_FARSI )
{
- if ( ( ( nTmpLocaleLang & LANGUAGE_MASK_PRIMARY ) == LANGUAGE_ARABIC_PRIMARY_ONLY )
+ if ( ( primary( nTmpLocaleLang ) == LANGUAGE_ARABIC_PRIMARY_ONLY )
|| nTmpLocaleLang == LANGUAGE_FARSI )
{
nLang = maLocale.meLanguage = aTmpLocale.meLanguage;
@@ -686,9 +628,9 @@ OUString SvNumberformat::ImpObtainCalendarAndNumerals( OUStringBuffer& rString,
case 0x10 : // Burmese (Myanmar) numerals
case 0x11 : // Tigrigna (Ethiopia) numerals
case 0x12 : // Khmer numerals
- if ( ( nLocaleLang & LANGUAGE_MASK_PRIMARY ) != ( nReferenceLanguage & LANGUAGE_MASK_PRIMARY ) )
+ if ( primary( nLocaleLang ) != primary( nReferenceLanguage ) )
{
- if ( ( nTmpLocaleLang & LANGUAGE_MASK_PRIMARY ) == ( nReferenceLanguage & LANGUAGE_MASK_PRIMARY ) )
+ if ( primary( nTmpLocaleLang ) == primary( nReferenceLanguage ) )
{
nLang = maLocale.meLanguage = aTmpLocale.meLanguage;
}
@@ -702,10 +644,10 @@ OUString SvNumberformat::ImpObtainCalendarAndNumerals( OUStringBuffer& rString,
case 0x04 : // Devanagari (Hindi) numerals
// same numerals (Devanagari) for languages with different primary masks
if ( nLocaleLang != LANGUAGE_HINDI && nLocaleLang != LANGUAGE_MARATHI
- && ( nLocaleLang & LANGUAGE_MASK_PRIMARY ) != ( LANGUAGE_NEPALI & LANGUAGE_MASK_PRIMARY ) )
+ && primary( nLocaleLang ) != primary( LANGUAGE_NEPALI ) )
{
if ( nTmpLocaleLang == LANGUAGE_HINDI || nTmpLocaleLang == LANGUAGE_MARATHI
- || ( nTmpLocaleLang & LANGUAGE_MASK_PRIMARY ) == ( LANGUAGE_NEPALI & LANGUAGE_MASK_PRIMARY ) )
+ || primary( nTmpLocaleLang ) == primary( LANGUAGE_NEPALI ) )
{
nLang = maLocale.meLanguage = aTmpLocale.meLanguage;
}
@@ -735,10 +677,10 @@ OUString SvNumberformat::ImpObtainCalendarAndNumerals( OUStringBuffer& rString,
break;
case 0x02 : // Eastern-Arabic numerals
// all arabic primary mask + LANGUAGE_PUNJABI_ARABIC_LSO
- if ( ( nLocaleLang & LANGUAGE_MASK_PRIMARY ) != LANGUAGE_ARABIC_PRIMARY_ONLY
+ if ( primary( nLocaleLang ) != LANGUAGE_ARABIC_PRIMARY_ONLY
&& nLocaleLang != LANGUAGE_PUNJABI_ARABIC_LSO )
{
- if ( ( nTmpLocaleLang & LANGUAGE_MASK_PRIMARY ) == LANGUAGE_ARABIC_PRIMARY_ONLY
+ if ( primary( nTmpLocaleLang ) == LANGUAGE_ARABIC_PRIMARY_ONLY
|| nTmpLocaleLang != LANGUAGE_PUNJABI_ARABIC_LSO )
{
nLang = maLocale.meLanguage = aTmpLocale.meLanguage;
@@ -758,9 +700,9 @@ OUString SvNumberformat::ImpObtainCalendarAndNumerals( OUStringBuffer& rString,
case 0x26 : // Arabic fullwidth numerals, Korean
case 0x27 : // Korean Hangul numerals
// Japanese and Korean are regular
- if ( ( nLocaleLang & LANGUAGE_MASK_PRIMARY ) != ( nReferenceLanguage & LANGUAGE_MASK_PRIMARY ) )
+ if ( primary( nLocaleLang ) != primary( nReferenceLanguage ) )
{
- if ( ( nTmpLocaleLang & LANGUAGE_MASK_PRIMARY ) == ( nReferenceLanguage & LANGUAGE_MASK_PRIMARY ) )
+ if ( primary( nTmpLocaleLang ) == primary( nReferenceLanguage ) )
{
nLang = maLocale.meLanguage = aTmpLocale.meLanguage;
}
@@ -1057,7 +999,7 @@ SvNumberformat::SvNumberformat(OUString& rString,
// result in an unknown (empty) language
// listbox entry and the user would never see
// this format.
- if (nIndex == 0 && (aTmpLocale.meLanguage == 0 ||
+ if (nIndex == 0 && (aTmpLocale.meLanguage == LANGUAGE_SYSTEM ||
SvNumberFormatter::IsLocaleInstalled( aTmpLocale.meLanguage)))
{
maLocale = aTmpLocale;
@@ -1173,7 +1115,7 @@ SvNumberformat::SvNumberformat(OUString& rString,
((eLanguage = MsLangId::getRealLanguage( eLan)) == LANGUAGE_THAI) &&
NumFor[nIndex].GetNatNum().GetLang() == LANGUAGE_DONTKNOW)
{
- sStr = "[$-" + OUString::number( eLanguage, 16 ).toAsciiUpperCase() + "]" + sStr;
+ sStr = "[$-" + OUString::number( sal_uInt16(eLanguage), 16 ).toAsciiUpperCase() + "]" + sStr;
NumFor[nIndex].SetNatNumLang( eLanguage);
}
sBuff.remove(nPosOld, nPos - nPosOld);
@@ -1551,7 +1493,7 @@ SvNumberformat::LocaleType SvNumberformat::ImpGetLocaleType(const OUString& rStr
}
else
{
- return LANGUAGE_DONTKNOW;
+ return LocaleType(); // LANGUAGE_DONTKNOW;
}
++nPos;
}
@@ -5159,7 +5101,7 @@ OUString SvNumberformat::GetMappedFormatstring( const NfKeywordTable& rKeywords,
}
}
sal_uInt32 nAlphabetID = 0x0000000; // Excel ID of alphabet used for numerals see tdf#36038
- sal_uInt32 nLanguageID = 0x0000000;
+ LanguageType nLanguageID = LANGUAGE_SYSTEM;
if ( aNatNum.IsComplete() )
{
nLanguageID = MsLangId::getRealLanguage( aNatNum.GetLang());
@@ -5171,115 +5113,105 @@ OUString SvNumberformat::GetMappedFormatstring( const NfKeywordTable& rKeywords,
{ // if no DBNum code then use long LCID
// if DBNum value != NatNum value, use DBNum and not extended LCID
// if calendar, then DBNum will be removed
- switch ( nLanguageID & LANGUAGE_MASK_PRIMARY )
- {
- case LANGUAGE_ARABIC_PRIMARY_ONLY:
+ LanguageType pri = primary(nLanguageID);
+ if ( pri == LANGUAGE_ARABIC_PRIMARY_ONLY )
nAlphabetID = 0x02000000; // Arabic-indic numerals
- break;
- case LANGUAGE_FARSI & LANGUAGE_MASK_PRIMARY:
+ else if ( pri == primary(LANGUAGE_FARSI) )
nAlphabetID = 0x03000000; // Farsi numerals
- break;
- case LANGUAGE_HINDI & LANGUAGE_MASK_PRIMARY:
- case LANGUAGE_MARATHI & LANGUAGE_MASK_PRIMARY:
- case LANGUAGE_NEPALI & LANGUAGE_MASK_PRIMARY:
+ else if ( pri.anyOf(
+ primary(LANGUAGE_HINDI),
+ primary(LANGUAGE_MARATHI),
+ primary(LANGUAGE_NEPALI) ))
nAlphabetID = 0x04000000; // Devanagari numerals
- break;
- case LANGUAGE_BENGALI & LANGUAGE_MASK_PRIMARY:
+ else if ( pri == primary(LANGUAGE_BENGALI) )
nAlphabetID = 0x05000000; // Bengali numerals
- break;
- case LANGUAGE_PUNJABI & LANGUAGE_MASK_PRIMARY:
- if ( nLanguageID == LANGUAGE_PUNJABI_ARABIC_LSO )
- nAlphabetID = 0x02000000; // Arabic-indic numerals
- else
- nAlphabetID = 0x06000000; // Punjabi numerals
- break;
- case LANGUAGE_GUJARATI & LANGUAGE_MASK_PRIMARY:
+ else if ( pri == primary(LANGUAGE_PUNJABI) )
+ {
+ if ( nLanguageID == LANGUAGE_PUNJABI_ARABIC_LSO )
+ nAlphabetID = 0x02000000; // Arabic-indic numerals
+ else
+ nAlphabetID = 0x06000000; // Punjabi numerals
+ }
+ else if ( pri == primary(LANGUAGE_GUJARATI) )
nAlphabetID = 0x07000000; // Gujarati numerals
- break;
- case LANGUAGE_ODIA & LANGUAGE_MASK_PRIMARY:
+ else if ( pri == primary(LANGUAGE_ODIA))
nAlphabetID = 0x08000000; // Odia (Oriya) numerals
- break;
- case LANGUAGE_TAMIL & LANGUAGE_MASK_PRIMARY:
+ else if ( pri == primary(LANGUAGE_TAMIL))
nAlphabetID = 0x09000000; // Tamil numerals
- break;
- case LANGUAGE_TELUGU & LANGUAGE_MASK_PRIMARY:
+ else if ( pri == primary(LANGUAGE_TELUGU))
nAlphabetID = 0x0A000000; // Telugu numerals
- break;
- case LANGUAGE_KANNADA & LANGUAGE_MASK_PRIMARY:
+ else if ( pri == primary(LANGUAGE_KANNADA))
nAlphabetID = 0x0B000000; // Kannada numerals
- break;
- case LANGUAGE_MALAYALAM & LANGUAGE_MASK_PRIMARY:
+ else if ( pri == primary(LANGUAGE_MALAYALAM))
nAlphabetID = 0x0C000000; // Malayalam numerals
- break;
- case LANGUAGE_THAI & LANGUAGE_MASK_PRIMARY:
- // The Thai T NatNum modifier during Xcl export.
- if ( rKeywords[NF_KEY_THAI_T] == "T" )
- nAlphabetID = 0x0D000000; // Thai numerals
- break;
- case LANGUAGE_LAO & LANGUAGE_MASK_PRIMARY:
+ else if ( pri == primary(LANGUAGE_THAI))
+ {
+ // The Thai T NatNum modifier during Xcl export.
+ if ( rKeywords[NF_KEY_THAI_T] == "T" )
+ nAlphabetID = 0x0D000000; // Thai numerals
+ }
+ else if ( pri == primary(LANGUAGE_LAO))
nAlphabetID = 0x0E000000; // Lao numerals
- break;
- case LANGUAGE_TIBETAN & LANGUAGE_MASK_PRIMARY:
+ else if ( pri == primary(LANGUAGE_TIBETAN))
nAlphabetID = 0x0F000000; // Tibetan numerals
- break;
- case LANGUAGE_BURMESE & LANGUAGE_MASK_PRIMARY:
+ else if ( pri == primary(LANGUAGE_BURMESE))
nAlphabetID = 0x10000000; // Burmese numerals
- break;
- case LANGUAGE_TIGRIGNA_ETHIOPIA & LANGUAGE_MASK_PRIMARY:
+ else if ( pri == primary(LANGUAGE_TIGRIGNA_ETHIOPIA))
nAlphabetID = 0x11000000; // Tigrigna numerals
- break;
- case LANGUAGE_KHMER & LANGUAGE_MASK_PRIMARY:
+ else if ( pri == primary(LANGUAGE_KHMER))
nAlphabetID = 0x12000000; // Khmer numerals
- break;
- case LANGUAGE_MONGOLIAN_MONGOLIAN_MONGOLIA & LANGUAGE_MASK_PRIMARY:
- if ( nLanguageID != LANGUAGE_MONGOLIAN_CYRILLIC_MONGOLIA
- && nLanguageID != LANGUAGE_MONGOLIAN_CYRILLIC_LSO )
- nAlphabetID = 0x13000000; // Mongolian numerals
- break;
+ else if ( pri == primary(LANGUAGE_MONGOLIAN_MONGOLIAN_MONGOLIA))
+ {
+ if ( nLanguageID != LANGUAGE_MONGOLIAN_CYRILLIC_MONGOLIA
+ && nLanguageID != LANGUAGE_MONGOLIAN_CYRILLIC_LSO )
+ nAlphabetID = 0x13000000; // Mongolian numerals
+ }
// CJK numerals
- case LANGUAGE_JAPANESE & LANGUAGE_MASK_PRIMARY:
- nAlphabetID = 0x1B;
+ else if ( pri == primary(LANGUAGE_JAPANESE))
+ {
+ nAlphabetID = 0x1B;
+ lcl_incrementAlphabetWithNatNum ( nAlphabetID, aNatNum.GetNatNum() );
+ }
+ else if ( pri == primary(LANGUAGE_CHINESE))
+ {
+ if ( nLanguageID == LANGUAGE_CHINESE_TRADITIONAL
+ || nLanguageID == LANGUAGE_CHINESE_HONGKONG
+ || nLanguageID == LANGUAGE_CHINESE_MACAU )
+ {
+ nAlphabetID = 0x21;
lcl_incrementAlphabetWithNatNum ( nAlphabetID, aNatNum.GetNatNum() );
- break;
- case LANGUAGE_CHINESE & LANGUAGE_MASK_PRIMARY:
- if ( nLanguageID == LANGUAGE_CHINESE_TRADITIONAL
- || nLanguageID == LANGUAGE_CHINESE_HONGKONG
- || nLanguageID == LANGUAGE_CHINESE_MACAU )
- {
- nAlphabetID = 0x21;
- lcl_incrementAlphabetWithNatNum ( nAlphabetID, aNatNum.GetNatNum() );
- }
- else // LANGUAGE_CHINESE_SIMPLIFIED
- {
- nAlphabetID = 0x1E;
- lcl_incrementAlphabetWithNatNum ( nAlphabetID, aNatNum.GetNatNum() );
- }
- break;
- case LANGUAGE_KOREAN & LANGUAGE_MASK_PRIMARY:
- if ( aNatNum.GetNatNum() == 9 ) // Hangul
- {
- nAlphabetID = 0x27000000;
- }
- else
- {
- nAlphabetID = 0x24;
- lcl_incrementAlphabetWithNatNum ( nAlphabetID, aNatNum.GetNatNum() );
- }
- break;
+ }
+ else // LANGUAGE_CHINESE_SIMPLIFIED
+ {
+ nAlphabetID = 0x1E;
+ lcl_incrementAlphabetWithNatNum ( nAlphabetID, aNatNum.GetNatNum() );
+ }
+ }
+ else if ( pri == primary(LANGUAGE_KOREAN))
+ {
+ if ( aNatNum.GetNatNum() == 9 ) // Hangul
+ {
+ nAlphabetID = 0x27000000;
+ }
+ else
+ {
+ nAlphabetID = 0x24;
+ lcl_incrementAlphabetWithNatNum ( nAlphabetID, aNatNum.GetNatNum() );
+ }
}
}
// Add LCID to DBNum
- if ( aNatNum.GetDBNum() > 0 && nLanguageID == 0 )
+ if ( aNatNum.GetDBNum() > 0 && nLanguageID == LANGUAGE_SYSTEM )
nLanguageID = MsLangId::getRealLanguage( aNatNum.GetLang());
}
if ( nCalendarID > 0 )
{ // Add alphabet and language to calendar
if ( nAlphabetID == 0 )
nAlphabetID = 0x01000000;
- if ( nLanguageID == 0 && nOriginalLang != LANGUAGE_DONTKNOW )
+ if ( nLanguageID == LANGUAGE_SYSTEM && nOriginalLang != LANGUAGE_DONTKNOW )
nLanguageID = nOriginalLang;
}
- lcl_insertLCID( aStr, nAlphabetID + nCalendarID + nLanguageID, nPosInsertLCID );
+ lcl_insertLCID( aStr, nAlphabetID + nCalendarID + (sal_uInt16)nLanguageID, nPosInsertLCID );
}
for ( ; nSub<4 && bDefault[nSub]; ++nSub )
{ // append empty subformats
diff --git a/svl/source/numbers/zforscan.cxx b/svl/source/numbers/zforscan.cxx
index 4bf7f4838604..16d5f31bd65b 100644
--- a/svl/source/numbers/zforscan.cxx
+++ b/svl/source/numbers/zforscan.cxx
@@ -228,13 +228,13 @@ void ImpSvNumberformatScan::SetDependentKeywords()
{
sKeyword[NF_KEY_THAI_T] = "t";
}
- switch ( eLang )
+ if ( eLang.anyOf(
+ LANGUAGE_GERMAN,
+ LANGUAGE_GERMAN_SWISS,
+ LANGUAGE_GERMAN_AUSTRIAN,
+ LANGUAGE_GERMAN_LUXEMBOURG,
+ LANGUAGE_GERMAN_LIECHTENSTEIN))
{
- case LANGUAGE_GERMAN:
- case LANGUAGE_GERMAN_SWISS:
- case LANGUAGE_GERMAN_AUSTRIAN:
- case LANGUAGE_GERMAN_LUXEMBOURG:
- case LANGUAGE_GERMAN_LIECHTENSTEIN:
//! all capital letters
sKeyword[NF_KEY_M] = "M"; // month 1
sKeyword[NF_KEY_MM] = "MM"; // month 01
@@ -261,13 +261,14 @@ void ImpSvNumberformatScan::SetDependentKeywords()
sKeyword[NF_KEY_GREY] = "GRAU";
sKeyword[NF_KEY_YELLOW] = "GELB";
sKeyword[NF_KEY_WHITE] = "WEISS";
- break;
- default:
+ }
+ else
+ {
// day
- switch ( eLang )
+ if ( eLang.anyOf(
+ LANGUAGE_ITALIAN,
+ LANGUAGE_ITALIAN_SWISS))
{
- case LANGUAGE_ITALIAN:
- case LANGUAGE_ITALIAN_SWISS:
sKeyword[NF_KEY_D] = "G";
sKeyword[NF_KEY_DD] = "GG";
sKeyword[NF_KEY_DDD] = "GGG";
@@ -276,41 +277,45 @@ void ImpSvNumberformatScan::SetDependentKeywords()
sKeyword[NF_KEY_G] = "X";
sKeyword[NF_KEY_GG] = "XX";
sKeyword[NF_KEY_GGG] = "XXX";
- break;
- case LANGUAGE_FRENCH:
- case LANGUAGE_FRENCH_BELGIAN:
- case LANGUAGE_FRENCH_CANADIAN:
- case LANGUAGE_FRENCH_SWISS:
- case LANGUAGE_FRENCH_LUXEMBOURG:
- case LANGUAGE_FRENCH_MONACO:
+ }
+ else if ( eLang.anyOf(
+ LANGUAGE_FRENCH,
+ LANGUAGE_FRENCH_BELGIAN,
+ LANGUAGE_FRENCH_CANADIAN,
+ LANGUAGE_FRENCH_SWISS,
+ LANGUAGE_FRENCH_LUXEMBOURG,
+ LANGUAGE_FRENCH_MONACO))
+ {
sKeyword[NF_KEY_D] = "J";
sKeyword[NF_KEY_DD] = "JJ";
sKeyword[NF_KEY_DDD] = "JJJ";
sKeyword[NF_KEY_DDDD] = "JJJJ";
- break;
- case LANGUAGE_FINNISH:
+ }
+ else if ( eLang == LANGUAGE_FINNISH )
+ {
sKeyword[NF_KEY_D] = "P";
sKeyword[NF_KEY_DD] = "PP";
sKeyword[NF_KEY_DDD] = "PPP";
sKeyword[NF_KEY_DDDD] = "PPPP";
- break;
- default:
+ }
+ else
+ {
sKeyword[NF_KEY_D] = "D";
sKeyword[NF_KEY_DD] = "DD";
sKeyword[NF_KEY_DDD] = "DDD";
sKeyword[NF_KEY_DDDD] = "DDDD";
}
// month
- switch ( eLang )
+ if ( eLang == LANGUAGE_FINNISH )
{
- case LANGUAGE_FINNISH:
sKeyword[NF_KEY_M] = "K";
sKeyword[NF_KEY_MM] = "KK";
sKeyword[NF_KEY_MMM] = "KKK";
sKeyword[NF_KEY_MMMM] = "KKKK";
sKeyword[NF_KEY_MMMMM] = "KKKKK";
- break;
- default:
+ }
+ else
+ {
sKeyword[NF_KEY_M] = "M";
sKeyword[NF_KEY_MM] = "MM";
sKeyword[NF_KEY_MMM] = "MMM";
@@ -318,76 +323,83 @@ void ImpSvNumberformatScan::SetDependentKeywords()
sKeyword[NF_KEY_MMMMM] = "MMMMM";
}
// year
- switch ( eLang )
- {
- case LANGUAGE_ITALIAN:
- case LANGUAGE_ITALIAN_SWISS:
- case LANGUAGE_FRENCH:
- case LANGUAGE_FRENCH_BELGIAN:
- case LANGUAGE_FRENCH_CANADIAN:
- case LANGUAGE_FRENCH_SWISS:
- case LANGUAGE_FRENCH_LUXEMBOURG:
- case LANGUAGE_FRENCH_MONACO:
- case LANGUAGE_PORTUGUESE:
- case LANGUAGE_PORTUGUESE_BRAZILIAN:
- case LANGUAGE_SPANISH_MODERN:
- case LANGUAGE_SPANISH_DATED:
- case LANGUAGE_SPANISH_MEXICAN:
- case LANGUAGE_SPANISH_GUATEMALA:
- case LANGUAGE_SPANISH_COSTARICA:
- case LANGUAGE_SPANISH_PANAMA:
- case LANGUAGE_SPANISH_DOMINICAN_REPUBLIC:
- case LANGUAGE_SPANISH_VENEZUELA:
- case LANGUAGE_SPANISH_COLOMBIA:
- case LANGUAGE_SPANISH_PERU:
- case LANGUAGE_SPANISH_ARGENTINA:
- case LANGUAGE_SPANISH_ECUADOR:
- case LANGUAGE_SPANISH_CHILE:
- case LANGUAGE_SPANISH_URUGUAY:
- case LANGUAGE_SPANISH_PARAGUAY:
- case LANGUAGE_SPANISH_BOLIVIA:
- case LANGUAGE_SPANISH_EL_SALVADOR:
- case LANGUAGE_SPANISH_HONDURAS:
- case LANGUAGE_SPANISH_NICARAGUA:
- case LANGUAGE_SPANISH_PUERTO_RICO:
+ if ( eLang.anyOf(
+ LANGUAGE_ITALIAN,
+ LANGUAGE_ITALIAN_SWISS,
+ LANGUAGE_FRENCH,
+ LANGUAGE_FRENCH_BELGIAN,
+ LANGUAGE_FRENCH_CANADIAN,
+ LANGUAGE_FRENCH_SWISS,
+ LANGUAGE_FRENCH_LUXEMBOURG,
+ LANGUAGE_FRENCH_MONACO,
+ LANGUAGE_PORTUGUESE,
+ LANGUAGE_PORTUGUESE_BRAZILIAN,
+ LANGUAGE_SPANISH_MODERN,
+ LANGUAGE_SPANISH_DATED,
+ LANGUAGE_SPANISH_MEXICAN,
+ LANGUAGE_SPANISH_GUATEMALA,
+ LANGUAGE_SPANISH_COSTARICA,
+ LANGUAGE_SPANISH_PANAMA,
+ LANGUAGE_SPANISH_DOMINICAN_REPUBLIC,
+ LANGUAGE_SPANISH_VENEZUELA,
+ LANGUAGE_SPANISH_COLOMBIA,
+ LANGUAGE_SPANISH_PERU,
+ LANGUAGE_SPANISH_ARGENTINA,
+ LANGUAGE_SPANISH_ECUADOR,
+ LANGUAGE_SPANISH_CHILE,
+ LANGUAGE_SPANISH_URUGUAY,
+ LANGUAGE_SPANISH_PARAGUAY,
+ LANGUAGE_SPANISH_BOLIVIA,
+ LANGUAGE_SPANISH_EL_SALVADOR,
+ LANGUAGE_SPANISH_HONDURAS,
+ LANGUAGE_SPANISH_NICARAGUA,
+ LANGUAGE_SPANISH_PUERTO_RICO))
+ {
sKeyword[NF_KEY_YY] = "AA";
sKeyword[NF_KEY_YYYY] = "AAAA";
// must exchange the day of week name code, same as Xcl
sKeyword[NF_KEY_AAA] = "OOO";
sKeyword[NF_KEY_AAAA] = "OOOO";
- break;
- case LANGUAGE_DUTCH:
- case LANGUAGE_DUTCH_BELGIAN:
+ }
+ else if ( eLang.anyOf(
+ LANGUAGE_DUTCH,
+ LANGUAGE_DUTCH_BELGIAN))
+ {
sKeyword[NF_KEY_YY] = "JJ";
sKeyword[NF_KEY_YYYY] = "JJJJ";
- break;
- case LANGUAGE_FINNISH:
+ }
+ else if ( eLang == LANGUAGE_FINNISH )
+ {
sKeyword[NF_KEY_YY] = "VV";
sKeyword[NF_KEY_YYYY] = "VVVV";
- break;
- default:
+ }
+ else
+ {
sKeyword[NF_KEY_YY] = "YY";
sKeyword[NF_KEY_YYYY] = "YYYY";
}
// hour
- switch ( eLang )
+ if ( eLang.anyOf(
+ LANGUAGE_DUTCH,
+ LANGUAGE_DUTCH_BELGIAN))
{
- case LANGUAGE_DUTCH:
- case LANGUAGE_DUTCH_BELGIAN:
sKeyword[NF_KEY_H] = "U";
sKeyword[NF_KEY_HH] = "UU";
- break;
- case LANGUAGE_FINNISH:
- case LANGUAGE_SWEDISH:
- case LANGUAGE_SWEDISH_FINLAND:
- case LANGUAGE_DANISH:
- case LANGUAGE_NORWEGIAN:
- case LANGUAGE_NORWEGIAN_BOKMAL:
- case LANGUAGE_NORWEGIAN_NYNORSK:
+ }
+ else if ( eLang.anyOf(
+ LANGUAGE_FINNISH,
+ LANGUAGE_SWEDISH,
+ LANGUAGE_SWEDISH_FINLAND,
+ LANGUAGE_DANISH,
+ LANGUAGE_NORWEGIAN,
+ LANGUAGE_NORWEGIAN_BOKMAL,
+ LANGUAGE_NORWEGIAN_NYNORSK))
+ {
sKeyword[NF_KEY_H] = "T";
sKeyword[NF_KEY_HH] = "TT";
- break;
- default:
+ }
+ else
+ {
sKeyword[NF_KEY_H] = "H";
sKeyword[NF_KEY_HH] = "HH";
}
@@ -405,7 +417,6 @@ void ImpSvNumberformatScan::SetDependentKeywords()
sKeyword[NF_KEY_GREY] = "GREY";
sKeyword[NF_KEY_YELLOW] = "YELLOW";
sKeyword[NF_KEY_WHITE] = "WHITE";
- break;
}
// boolean keywords