diff options
author | Noel Grandin <noelgrandin@gmail.com> | 2017-04-17 21:35:35 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-04-26 08:50:54 +0200 |
commit | c70d49c7c888da8cfd73db8585e7be1f37fc398a (patch) | |
tree | c0e540401850018464ca76300536faf9aa7e27d2 /svl | |
parent | cd4344d3bdef631b3e64ac12a9e64bc9670c1b7c (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.cxx | 2 | ||||
-rw-r--r-- | svl/source/config/languageoptions.cxx | 6 | ||||
-rw-r--r-- | svl/source/items/srchitem.cxx | 8 | ||||
-rw-r--r-- | svl/source/numbers/zforlist.cxx | 6 | ||||
-rw-r--r-- | svl/source/numbers/zformat.cxx | 290 | ||||
-rw-r--r-- | svl/source/numbers/zforscan.cxx | 169 |
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 |