diff options
author | Bjoern Michaelsen <bjoern.michaelsen@canonical.com> | 2011-07-21 18:56:16 +0200 |
---|---|---|
committer | Bjoern Michaelsen <bjoern.michaelsen@canonical.com> | 2011-07-21 18:56:16 +0200 |
commit | a233dac0653f3f3054f7ad2da114ed989747e89a (patch) | |
tree | bf1e11438321c06125a94308649c496648061ccb /i18npool | |
parent | acb6133d89abe071108577f821d7eaa381378879 (diff) | |
parent | e5647de7dd26775e45af24f11ac4f82a5518bd9e (diff) |
resyncing to master
Diffstat (limited to 'i18npool')
27 files changed, 625 insertions, 175 deletions
diff --git a/i18npool/inc/i18npool/lang.h b/i18npool/inc/i18npool/lang.h index 1870a7b48351..0059a1b6978e 100644 --- a/i18npool/inc/i18npool/lang.h +++ b/i18npool/inc/i18npool/lang.h @@ -78,7 +78,7 @@ /* It must be safe to include this file in plain C code, so only C style * comments are used. Do NOT use // C++ style comments. */ -/* disable typedef for usage in svx/source/dialog/langtab.src */ +/* disable typedef for usage in svtools/source/misc/langtab.src */ #ifndef RSC_RESOURCE_USAGE typedef unsigned short LanguageType; #endif diff --git a/i18npool/inc/i18npool/mslangid.hxx b/i18npool/inc/i18npool/mslangid.hxx index b2a9e054482c..a38ccdfd68c1 100644 --- a/i18npool/inc/i18npool/mslangid.hxx +++ b/i18npool/inc/i18npool/mslangid.hxx @@ -75,9 +75,7 @@ public: special value. @descr: NOTE: The "system" values may be overridden by the - application's configuration. If you need to access the system - values use <method>getRealLanguageWithoutConfig()</method> - instead. + application's configuration. @returns case LANGUAGE_PROCESS_OR_USER_DEFAULT : configured or system language @@ -154,13 +152,6 @@ public: static ::com::sun::star::lang::Locale getFallbackLocale( const ::com::sun::star::lang::Locale & rLocale ); - - /** Get fall-back LanguageType for LanguageType, resolving LANGUAGE_SYSTEM. - Returns the same LanguageType if an exact match was found. - */ - static LanguageType getFallbackLanguage( LanguageType nLang ); - - // ----------------------------- // - ConvertLanguageToIsoNames - // ----------------------------- @@ -184,34 +175,9 @@ public: const rtl::OString& rCountry ); static LanguageType convertIsoStringToLanguage( const rtl::OUString& rString, sal_Unicode cSep = '-' ); - static LanguageType convertIsoByteStringToLanguage( - const rtl::OString& rString, sal_Char cSep = '-' ); static LanguageType convertUnxByteStringToLanguage( const rtl::OString& rString ); - - /** @short: A real language/locale if the nLang parameter designates some - special value. - - @descr: NOTE: This is a raw interface to the system and does not take - any application configuration into account. If that is wanted, - which is most likely, use <method>getRealLanguage()</method> - instead. - - @returns - case LANGUAGE_PROCESS_OR_USER_DEFAULT : getSystemLanguage() - case LANGUAGE_SYSTEM_DEFAULT : getSystemLanguage() - case LANGUAGE_SYSTEM : getSystemLanguage() - case LANGUAGE_NONE : getSystemUILanguage() - case LANGUAGE_DONTKNOW : LANGUAGE_ENGLISH_US - else: nLang - - In case getSystemLanguage() or getSystemUILanguage() returned - LANGUAGE_DONTKNOW, LANGUAGE_ENGLISH_US is returned instead. - */ - static LanguageType getRealLanguageWithoutConfig( LanguageType nLang ); - - static LanguageType resolveSystemLanguageByScriptType( LanguageType nLang, sal_Int16 nType ); diff --git a/i18npool/prj/build.lst b/i18npool/prj/build.lst index 3a2e0c2d2b9c..113a9fa6c111 100644 --- a/i18npool/prj/build.lst +++ b/i18npool/prj/build.lst @@ -1,4 +1,4 @@ -inp i18npool : bridges sax stoc comphelper CPPUNIT:cppunit ICU:icu i18nutil regexp cpputools LIBXSLT:libxslt NULL +inp i18npool : bridges sax stoc comphelper CPPUNIT:cppunit ICU:icu i18nutil regexp DESKTOP:cpputools LIBXSLT:libxslt NULL inp i18npool usr1 - all inp_mkout NULL inp i18npool\inc nmake - all inp_inc NULL inp i18npool\source\registerservices nmake - all inp_rserv inp_inc NULL diff --git a/i18npool/prj/d.lst b/i18npool/prj/d.lst index 71e0ae3b4758..d6fd70f9adf9 100644 --- a/i18npool/prj/d.lst +++ b/i18npool/prj/d.lst @@ -40,11 +40,13 @@ mkdir: %_DEST%\inc\i18npool ..\%__SRC%\bin\i18nisol*.dll %_DEST%\bin\i18nisol*.dll ..\%__SRC%\lib\libi18nisolang*.so %_DEST%\lib\libi18nisolang*.so ..\%__SRC%\lib\libi18nisolang*.dylib %_DEST%\lib\libi18nisolang*.dylib +..\%__SRC%\lib\libi18nisolang*.a %_DEST%\lib\libi18nisolang*.a ..\%__SRC%\lib\ii18npaper*.lib %_DEST%\lib\ii18npaper*.lib ..\%__SRC%\bin\i18npaper*.dll %_DEST%\bin\i18npaper*.dll ..\%__SRC%\lib\libi18npaper*.so %_DEST%\lib\libi18npaper*.so ..\%__SRC%\lib\libi18npaper*.dylib %_DEST%\lib\libi18npaper*.dylib +..\%__SRC%\lib\libi18npaper*.a %_DEST%\lib\libi18npaper*.a ..\%__SRC%\misc\i18npool.component %_DEST%\xml\i18npool.component ..\%__SRC%\misc\i18nsearch.component %_DEST%\xml\i18nsearch.component diff --git a/i18npool/qa/cppunit/test_breakiterator.cxx b/i18npool/qa/cppunit/test_breakiterator.cxx index fc81cc9860fb..7740cf9188f6 100644 --- a/i18npool/qa/cppunit/test_breakiterator.cxx +++ b/i18npool/qa/cppunit/test_breakiterator.cxx @@ -57,11 +57,13 @@ public: void testLineBreaking(); void testGraphemeIteration(); void testWeak(); + void testAsian(); CPPUNIT_TEST_SUITE(TestBreakIterator); CPPUNIT_TEST(testLineBreaking); CPPUNIT_TEST(testGraphemeIteration); CPPUNIT_TEST(testWeak); + CPPUNIT_TEST(testAsian); CPPUNIT_TEST_SUITE_END(); private: @@ -104,7 +106,7 @@ void TestBreakIterator::testGraphemeIteration() aLocale.Country = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("IN")); { - sal_Unicode BA_HALANT_LA[] = { 0x09AC, 0x09CD, 0x09AF }; + const sal_Unicode BA_HALANT_LA[] = { 0x09AC, 0x09CD, 0x09AF }; ::rtl::OUString aTest1(BA_HALANT_LA, SAL_N_ELEMENTS(BA_HALANT_LA)); sal_Int32 nDone=0; @@ -118,7 +120,7 @@ void TestBreakIterator::testGraphemeIteration() } { - sal_Unicode HA_HALANT_NA_VOWELSIGNI[] = { 0x09B9, 0x09CD, 0x09A3, 0x09BF }; + const sal_Unicode HA_HALANT_NA_VOWELSIGNI[] = { 0x09B9, 0x09CD, 0x09A3, 0x09BF }; ::rtl::OUString aTest1(HA_HALANT_NA_VOWELSIGNI, SAL_N_ELEMENTS(HA_HALANT_NA_VOWELSIGNI)); sal_Int32 nDone=0; @@ -132,7 +134,7 @@ void TestBreakIterator::testGraphemeIteration() } { - sal_Unicode TA_HALANT_MA_HALANT_YA [] = { 0x09A4, 0x09CD, 0x09AE, 0x09CD, 0x09AF }; + const sal_Unicode TA_HALANT_MA_HALANT_YA [] = { 0x09A4, 0x09CD, 0x09AE, 0x09CD, 0x09AF }; ::rtl::OUString aTest1(TA_HALANT_MA_HALANT_YA, SAL_N_ELEMENTS(TA_HALANT_MA_HALANT_YA)); sal_Int32 nDone=0; @@ -156,10 +158,12 @@ void TestBreakIterator::testWeak() aLocale.Country = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("US")); { - sal_Unicode WEAKS[] = + const sal_Unicode WEAKS[] = { 0x0001, 0x0002, 0x0020, 0x00A0, + 0x2150, 0x215F, //Number Forms, fractions + 0x2160, 0x2180, //Number Forms, roman numerals 0x2200, 0x22FF, //Mathematical Operators 0x27C0, 0x27EF, //Miscellaneous Mathematical Symbols-A 0x2980, 0x29FF, //Miscellaneous Mathematical Symbols-B @@ -184,6 +188,45 @@ void TestBreakIterator::testWeak() } } +//A test to ensure that certain ranges and codepoints that are categorized as +//asian remain as asian, so that existing docs that depend on this don't silently +//change font for those asian chars. +//See https://bugs.freedesktop.org/show_bug.cgi?id=38095 +void TestBreakIterator::testAsian() +{ + lang::Locale aLocale; + aLocale.Language = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("en")); + aLocale.Country = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("US")); + + { + const sal_Unicode ASIANS[] = + { + //some typical CJK chars + 0x4E00, 0x62FF, + //The full HalfWidth and FullWidth block has historically been + //designated as taking the CJK font :-( + //HalfWidth and FullWidth forms of ASCII 0-9, categorized under + //UAX24 as "Common" i.e. by that logic WEAK + 0xFF10, 0xFF19, + //HalfWidth and FullWidth forms of ASCII A-z, categorized under + //UAX25 as "Latin", i.e. by that logic LATIN + 0xFF21, 0xFF5A + }; + ::rtl::OUString aAsians(ASIANS, SAL_N_ELEMENTS(ASIANS)); + + for (sal_Int32 i = 0; i < aAsians.getLength(); ++i) + { + sal_Int16 nScript = m_xBreak->getScriptType(aAsians, i); + rtl::OStringBuffer aMsg; + aMsg.append(RTL_CONSTASCII_STRINGPARAM("Char 0x")); + aMsg.append(static_cast<sal_Int32>(aAsians.getStr()[i]), 16); + aMsg.append(RTL_CONSTASCII_STRINGPARAM(" should have been asian")); + CPPUNIT_ASSERT_MESSAGE(aMsg.getStr(), + nScript == i18n::ScriptType::ASIAN); + } + } +} + TestBreakIterator::TestBreakIterator() { m_xContext = cppu::defaultBootstrap_InitialComponentContext(); diff --git a/i18npool/source/breakiterator/breakiteratorImpl.cxx b/i18npool/source/breakiterator/breakiteratorImpl.cxx index 3cc974870c3d..e81bfff9452a 100644 --- a/i18npool/source/breakiterator/breakiteratorImpl.cxx +++ b/i18npool/source/breakiterator/breakiteratorImpl.cxx @@ -443,67 +443,155 @@ sal_Int16 SAL_CALL BreakIteratorImpl::getWordType( const OUString& /*Text*/, return 0; } -static sal_Int16 scriptTypes[] = { - ScriptType::WEAK, ScriptType::WEAK, ScriptType::COMPLEX, ScriptType::LATIN, ScriptType::COMPLEX, - ScriptType::ASIAN, ScriptType::LATIN, ScriptType::LATIN, ScriptType::LATIN, ScriptType::COMPLEX, - ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::LATIN, ScriptType::LATIN, ScriptType::LATIN, -// 15 - ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::ASIAN, ScriptType::ASIAN, ScriptType::COMPLEX, - ScriptType::ASIAN, ScriptType::COMPLEX, ScriptType::ASIAN, ScriptType::COMPLEX, ScriptType::COMPLEX, - ScriptType::LATIN, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::LATIN, -// 30 - ScriptType::LATIN, ScriptType::COMPLEX, ScriptType::LATIN, ScriptType::COMPLEX, ScriptType::COMPLEX, - ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, - ScriptType::LATIN, ScriptType::ASIAN, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, -// 45 - ScriptType::COMPLEX, ScriptType::LATIN, ScriptType::LATIN, ScriptType::COMPLEX, ScriptType::COMPLEX, - ScriptType::LATIN, ScriptType::LATIN, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::LATIN, - ScriptType::COMPLEX, ScriptType::LATIN, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, -// 60 - ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, - ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::LATIN, ScriptType::LATIN, ScriptType::COMPLEX, - ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::ASIAN, ScriptType::ASIAN, -// 75 - ScriptType::COMPLEX, ScriptType::LATIN, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, - ScriptType::LATIN, ScriptType::LATIN, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, - ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, -// 90 - ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, - ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, - ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::WEAK, ScriptType::WEAK, ScriptType::COMPLEX, -// 105 - ScriptType::ASIAN, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, - ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, - ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::ASIAN, -// 120 - ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, - ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::WEAK, ScriptType::WEAK, - ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, -// 135 - ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, - ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, - ScriptType::COMPLEX, - ScriptType::WEAK}; - -#define scriptListCount SAL_N_ELEMENTS(scriptTypes) +namespace +{ + //See unicode/uscript.h + static sal_Int16 scriptTypes[] = + { + ScriptType::WEAK, ScriptType::WEAK, ScriptType::COMPLEX, ScriptType::LATIN, ScriptType::COMPLEX, + ScriptType::ASIAN, ScriptType::LATIN, ScriptType::LATIN, ScriptType::LATIN, ScriptType::COMPLEX, + ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::LATIN, ScriptType::LATIN, ScriptType::LATIN, + // 15 + ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::ASIAN, ScriptType::ASIAN, ScriptType::COMPLEX, + ScriptType::ASIAN, ScriptType::COMPLEX, ScriptType::ASIAN, ScriptType::COMPLEX, ScriptType::COMPLEX, + ScriptType::LATIN, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::LATIN, + // 30 + ScriptType::LATIN, ScriptType::COMPLEX, ScriptType::LATIN, ScriptType::COMPLEX, ScriptType::COMPLEX, + ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, + ScriptType::LATIN, ScriptType::ASIAN, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, + // 45 + ScriptType::COMPLEX, ScriptType::LATIN, ScriptType::LATIN, ScriptType::COMPLEX, ScriptType::COMPLEX, + ScriptType::LATIN, ScriptType::LATIN, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::LATIN, + ScriptType::COMPLEX, ScriptType::LATIN, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, + // 60 + ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, + ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::LATIN, ScriptType::LATIN, ScriptType::COMPLEX, + ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::ASIAN, ScriptType::ASIAN, + // 75 + ScriptType::COMPLEX, ScriptType::LATIN, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, + ScriptType::LATIN, ScriptType::LATIN, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, + ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, + // 90 + ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, + ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, + ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::WEAK, ScriptType::WEAK, ScriptType::COMPLEX, + // 105 + ScriptType::ASIAN, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, + ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, + ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::ASIAN, + // 120 + ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, + ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::WEAK, ScriptType::WEAK, + ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, + // 135 + ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, + ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, ScriptType::COMPLEX, + ScriptType::COMPLEX, + ScriptType::WEAK + }; + +# define scriptTypesCount SAL_N_ELEMENTS(scriptTypes) + + sal_Int16 getScriptClassByUAX24Script(sal_uInt32 currentChar) + { + sal_Int16 nRet; + int32_t script = u_getIntPropertyValue(currentChar, UCHAR_SCRIPT); + if (script < 0) + nRet = ScriptType::WEAK; + else if (static_cast<size_t>(script) >= SAL_N_ELEMENTS(scriptTypes)) + nRet = ScriptType::COMPLEX; // anything new is going to be pretty wild + else + nRet = scriptTypes[script]; + return nRet; + } + + struct UBlock2Script + { + UBlockCode from; + UBlockCode to; + sal_Int16 script; + }; + + static UBlock2Script scriptList[] = + { + {UBLOCK_NO_BLOCK, UBLOCK_NO_BLOCK, ScriptType::WEAK}, + {UBLOCK_BASIC_LATIN, UBLOCK_ARMENIAN, ScriptType::LATIN}, + {UBLOCK_HEBREW, UBLOCK_MYANMAR, ScriptType::COMPLEX}, + {UBLOCK_GEORGIAN, UBLOCK_GEORGIAN, ScriptType::LATIN}, + {UBLOCK_HANGUL_JAMO, UBLOCK_HANGUL_JAMO, ScriptType::ASIAN}, + {UBLOCK_ETHIOPIC, UBLOCK_ETHIOPIC, ScriptType::COMPLEX}, + {UBLOCK_CHEROKEE, UBLOCK_RUNIC, ScriptType::LATIN}, + {UBLOCK_KHMER, UBLOCK_MONGOLIAN, ScriptType::COMPLEX}, + {UBLOCK_LATIN_EXTENDED_ADDITIONAL, UBLOCK_GREEK_EXTENDED, ScriptType::LATIN}, + {UBLOCK_NUMBER_FORMS, UBLOCK_NUMBER_FORMS, ScriptType::WEAK}, + {UBLOCK_CJK_RADICALS_SUPPLEMENT, UBLOCK_HANGUL_SYLLABLES, ScriptType::ASIAN}, + {UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS, UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS, ScriptType::ASIAN}, + {UBLOCK_ARABIC_PRESENTATION_FORMS_A, UBLOCK_ARABIC_PRESENTATION_FORMS_A, ScriptType::COMPLEX}, + {UBLOCK_CJK_COMPATIBILITY_FORMS, UBLOCK_CJK_COMPATIBILITY_FORMS, ScriptType::ASIAN}, + {UBLOCK_ARABIC_PRESENTATION_FORMS_B, UBLOCK_ARABIC_PRESENTATION_FORMS_B, ScriptType::COMPLEX}, + {UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS, UBLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS, ScriptType::ASIAN}, + {UBLOCK_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B, UBLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT, ScriptType::ASIAN}, + {UBLOCK_CJK_STROKES, UBLOCK_CJK_STROKES, ScriptType::ASIAN}, + {UBLOCK_LATIN_EXTENDED_C, UBLOCK_LATIN_EXTENDED_D, ScriptType::LATIN} + }; + + #define scriptListCount SAL_N_ELEMENTS(scriptList) + + //always sets rScriptType + // + //returns true for characters historically explicitly assigned to + //latin/weak/asian + // + //returns false for characters that historically implicitly assigned to + //weak as unknown + bool getCompatibilityScriptClassByBlock(sal_uInt32 currentChar, sal_Int16 &rScriptType) + { + bool bKnown = true; + //handle specific characters always as weak: + // 0x01 - this breaks a word + // 0x02 - this can be inside a word + // 0x20 & 0xA0 - Bug 102975, declare western space and non-break space as WEAK char. + if( 0x01 == currentChar || 0x02 == currentChar || 0x20 == currentChar || 0xA0 == currentChar) + rScriptType = ScriptType::WEAK; + // workaround for Coptic + else if ( 0x2C80 <= currentChar && 0x2CE3 >= currentChar) + rScriptType = ScriptType::LATIN; + else + { + UBlockCode block=ublock_getCode(currentChar); + size_t i = 0; + while (i < scriptListCount) + { + if (block <= scriptList[i].to) + break; + ++i; + } + if (i < scriptListCount && block >= scriptList[i].from) + rScriptType = scriptList[i].script; + else + { + rScriptType = ScriptType::WEAK; + bKnown = false; + } + } + return bKnown; + } +} sal_Int16 BreakIteratorImpl::getScriptClass(sal_uInt32 currentChar) { - static sal_uInt32 lastChar = 0; - static sal_Int16 nRet = 0; + static sal_uInt32 lastChar = 0; + static sal_Int16 nRet = 0; - if (currentChar != lastChar) { - lastChar = currentChar; + if (currentChar != lastChar) + { + lastChar = currentChar; - int32_t script = u_getIntPropertyValue(currentChar, UCHAR_SCRIPT); - if (script < 0) - nRet = ScriptType::WEAK; - else if (static_cast<size_t>(script) >= SAL_N_ELEMENTS(scriptTypes)) - nRet = ScriptType::COMPLEX; // anything new is going to be pretty wild - else - nRet = scriptTypes[script]; - } - return nRet; + if (!getCompatibilityScriptClassByBlock(currentChar, nRet)) + nRet = getScriptClassByUAX24Script(currentChar); + } + + return nRet; } static inline sal_Bool operator == (const Locale& l1, const Locale& l2) { diff --git a/i18npool/source/breakiterator/data/makefile.mk b/i18npool/source/breakiterator/data/makefile.mk index 81bbbbd280e1..572446a80e15 100644 --- a/i18npool/source/breakiterator/data/makefile.mk +++ b/i18npool/source/breakiterator/data/makefile.mk @@ -34,7 +34,7 @@ LIBTARGET=NO .INCLUDE : settings.mk # Fix heap limit problem on MSC -.IF "$(OS)" == "WNT" +.IF "$(COM)" == "MSC" .IF "$(COMEX)" != "8" CDEFS+=-Zm300 .ENDIF diff --git a/i18npool/source/breakiterator/makefile.mk b/i18npool/source/breakiterator/makefile.mk index 434fdc9f5d88..961d7aa1ac6e 100644 --- a/i18npool/source/breakiterator/makefile.mk +++ b/i18npool/source/breakiterator/makefile.mk @@ -57,6 +57,8 @@ SLOFILES= \ $(SLO)/xdictionary.obj \ $(subst,$(MISC)/,$(SLO)/ $(MY_MISC_CXXFILES:s/.c/.obj/)) +.IF "$(CROSS_COMPILING)" != "YES" + OBJFILES = $(OBJ)/gendict.obj APP1TARGET = gendict @@ -67,6 +69,8 @@ APP1OBJS = $(DEPOBJFILES) APP1STDLIBS = $(SALLIB) +.ENDIF + # --- Targets ------------------------------------------------------ .IF "$(SYSTEM_ICU)" == "YES" diff --git a/i18npool/source/collator/data/makefile.mk b/i18npool/source/collator/data/makefile.mk index 59eb1a55f807..920e50609d8e 100644 --- a/i18npool/source/collator/data/makefile.mk +++ b/i18npool/source/collator/data/makefile.mk @@ -33,7 +33,7 @@ TARGET=collator_data .INCLUDE : settings.mk # Fix heap limit problem on MSC -.IF "$(OS)" == "WNT" +.IF "$(COM)" == "MSC" .IF "$(COMEX)" != "8" CDEFS+=-Zm300 .ENDIF diff --git a/i18npool/source/collator/makefile.mk b/i18npool/source/collator/makefile.mk index 654b857b7d25..b9be239a00e4 100644 --- a/i18npool/source/collator/makefile.mk +++ b/i18npool/source/collator/makefile.mk @@ -49,6 +49,8 @@ SLOFILES= \ $(SLO)$/chaptercollator.obj \ $(rules_obj) +.IF "$(CROSS_COMPILING)" != "YES" + APP1TARGET = gencoll_rule APP1RPATH = NONE @@ -61,6 +63,8 @@ APP1STDLIBS = $(SALLIB) \ $(ICUUCLIB) \ $(ICUDATALIB) +.ENDIF + # --- Targets ------------------------------------------------------ .INCLUDE : target.mk diff --git a/i18npool/source/indexentry/data/makefile.mk b/i18npool/source/indexentry/data/makefile.mk index 42378dab25bc..84d4281a3f53 100644 --- a/i18npool/source/indexentry/data/makefile.mk +++ b/i18npool/source/indexentry/data/makefile.mk @@ -34,7 +34,7 @@ LIBTARGET=NO .INCLUDE : settings.mk # Fix heap limit problem on MSC -.IF "$(OS)" == "WNT" +.IF "$(COM)" == "MSC" .IF "$(COMEX)" != "8" CDEFS+=-Zm300 .ENDIF diff --git a/i18npool/source/indexentry/makefile.mk b/i18npool/source/indexentry/makefile.mk index 6b4ea3ed5ff2..79e3eaf95c4e 100644 --- a/i18npool/source/indexentry/makefile.mk +++ b/i18npool/source/indexentry/makefile.mk @@ -37,7 +37,6 @@ ENABLE_EXCEPTIONS=TRUE .INCLUDE : settings.mk - # --- Files -------------------------------------------------------- SLOFILES= \ @@ -47,6 +46,8 @@ SLOFILES= \ $(SLO)$/indexentrysupplier_default.obj \ $(SLO)$/indexentrysupplier_common.obj +.IF "$(CROSS_COMPILING)" != "YES" + OBJFILES = $(OBJ)$/genindex_data.obj APP1TARGET = genindex_data @@ -60,6 +61,8 @@ APP1STDLIBS = $(SALLIB) \ $(ICUUCLIB) \ $(ICUDATALIB) +.ENDIF + # --- Targets ------------------------------------------------------ .INCLUDE : target.mk diff --git a/i18npool/source/isolang/isolang.cxx b/i18npool/source/isolang/isolang.cxx index a96f80719357..0a1d524d2cda 100644 --- a/i18npool/source/isolang/isolang.cxx +++ b/i18npool/source/isolang/isolang.cxx @@ -1012,26 +1012,6 @@ LanguageType MsLangId::convertIsoStringToLanguage( // ----------------------------------------------------------------------- -// static -LanguageType MsLangId::convertIsoByteStringToLanguage( - const rtl::OString& rString, sal_Char cSep ) -{ - rtl::OString aLang; - rtl::OString aCountry; - sal_Int32 nSepPos = rString.indexOf( cSep ); - if ( nSepPos >= 0 ) - { - aLang = rString.copy( 0, nSepPos ); - aCountry = rString.copy( nSepPos+1 ); - } - else - aLang = rString; - - return convertIsoNamesToLanguage( aLang, aCountry ); -} - -// ----------------------------------------------------------------------- - struct IsoLangGLIBCModifiersEntry { LanguageType mnLang; diff --git a/i18npool/source/isolang/makefile.mk b/i18npool/source/isolang/makefile.mk index b8f01460f67b..2ade308aa91c 100644 --- a/i18npool/source/isolang/makefile.mk +++ b/i18npool/source/isolang/makefile.mk @@ -43,7 +43,11 @@ SLOFILES= $(SLO)$/insys.obj \ $(SLO)$/mslangid.obj SHL1TARGET= $(ISOLANG_TARGET)$(ISOLANG_MAJOR)$(COMID) +.IF "$(COM)" == "MSC" SHL1IMPLIB= i$(ISOLANG_TARGET) +.ELSE +SHL1IMPLIB= $(ISOLANG_TARGET)$(ISOLANG_MAJOR)$(COMID) +.ENDIF DEF1DEPN= $(MISC)$/$(SHL1TARGET).flt SHL1DEF= $(MISC)$/$(SHL1TARGET).def diff --git a/i18npool/source/isolang/mslangid.cxx b/i18npool/source/isolang/mslangid.cxx index c11d4d6d1387..2b5c59e865a7 100644 --- a/i18npool/source/isolang/mslangid.cxx +++ b/i18npool/source/isolang/mslangid.cxx @@ -90,29 +90,6 @@ inline LanguageType MsLangId::simplifySystemLanguages( LanguageType nLang ) return nLang; } - -// static -LanguageType MsLangId::getRealLanguageWithoutConfig( LanguageType nLang ) -{ - switch (simplifySystemLanguages( nLang)) - { - case LANGUAGE_SYSTEM : - nLang = getSystemLanguage(); - break; - case LANGUAGE_NONE : - nLang = getSystemUILanguage(); - break; - default: - /* TODO: would this be useful here? */ - //nLang = MsLangId::getReplacementForObsoleteLanguage( nLang); - ; // nothing - } - if (nLang == LANGUAGE_DONTKNOW) - nLang = LANGUAGE_ENGLISH_US; - return nLang; -} - - // static LanguageType MsLangId::getRealLanguage( LanguageType nLang ) { @@ -252,14 +229,6 @@ LanguageType MsLangId::convertLocaleToLanguageWithFallback( return lookupFallbackLocale( rLocale); } - -// static -LanguageType MsLangId::getFallbackLanguage( LanguageType nLang ) -{ - return lookupFallbackLanguage( MsLangId::getRealLanguage( nLang)); -} - - // static bool MsLangId::isRightToLeft( LanguageType nLang ) { diff --git a/i18npool/source/localedata/LocaleNode.cxx b/i18npool/source/localedata/LocaleNode.cxx index 05f6156489a6..caa40746fd31 100644 --- a/i18npool/source/localedata/LocaleNode.cxx +++ b/i18npool/source/localedata/LocaleNode.cxx @@ -484,24 +484,24 @@ void LCCTYPENode::generateCode (const OFileWriter &of) const "DoubleQuotationEnd is an ASCII character but DoubleQuotationStart is not."); if (aQuoteStart.toChar() <= 127 && aQuoteEnd.toChar() <= 127) fprintf( stderr, "Warning: %s\n", - "QuotationStart and QuotationEnd are both ASCII characters. Not necessarily an error, but unusual."); + "QuotationStart and QuotationEnd are both ASCII characters. Not necessarily an issue, but unusual."); if (aDoubleQuoteStart.toChar() <= 127 && aDoubleQuoteEnd.toChar() <= 127) fprintf( stderr, "Warning: %s\n", - "DoubleQuotationStart and DoubleQuotationEnd are both ASCII characters. Not necessarily an error, but unusual."); + "DoubleQuotationStart and DoubleQuotationEnd are both ASCII characters. Not necessarily an issue, but unusual."); if (aQuoteStart == aQuoteEnd) fprintf( stderr, "Warning: %s\n", - "QuotationStart equals QuotationEnd. Not necessarily an error, but unusual."); + "QuotationStart equals QuotationEnd. Not necessarily an issue, but unusual."); if (aDoubleQuoteStart == aDoubleQuoteEnd) fprintf( stderr, "Warning: %s\n", - "DoubleQuotationStart equals DoubleQuotationEnd. Not necessarily an error, but unusual."); + "DoubleQuotationStart equals DoubleQuotationEnd. Not necessarily an issue, but unusual."); /* TODO: should equalness of single and double quotes be an error? Would * need to adapt quite some locales' data. */ if (aQuoteStart == aDoubleQuoteStart) fprintf( stderr, "Warning: %s\n", - "QuotationStart equals DoubleQuotationStart. Not necessarily an error, but unusual."); + "QuotationStart equals DoubleQuotationStart. Not necessarily an isue, but unusual."); if (aQuoteEnd == aDoubleQuoteEnd) fprintf( stderr, "Warning: %s\n", - "QuotationEnd equals DoubleQuotationEnd. Not necessarily an error, but unusual."); + "QuotationEnd equals DoubleQuotationEnd. Not necessarily an issue, but unusual."); // Known good values, exclude ASCII single (U+0027, ') and double (U+0022, ") quotes. int ic; switch (ic = aQuoteStart.toChar()) diff --git a/i18npool/source/localedata/data/gd_GB.xml b/i18npool/source/localedata/data/gd_GB.xml new file mode 100644 index 000000000000..0a1c64a0136d --- /dev/null +++ b/i18npool/source/localedata/data/gd_GB.xml @@ -0,0 +1,357 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE Locale SYSTEM "locale.dtd"> +<Locale versionDTD="2.0.3" allowUpdateFromCLDR="no" version="1.0"> +<LC_INFO> +<Language> +<LangID>gd</LangID> +<DefaultName>Gaelic, Scottish</DefaultName> +</Language> +<Country> +<CountryID>GB</CountryID> +<DefaultName>United Kingdom</DefaultName> +</Country> +</LC_INFO> +<LC_CTYPE unoid="generic"> +<Separators> +<DateSeparator>/</DateSeparator> +<ThousandSeparator>,</ThousandSeparator> +<DecimalSeparator>.</DecimalSeparator> +<TimeSeparator>:</TimeSeparator> +<Time100SecSeparator>.</Time100SecSeparator> +<ListSeparator>;</ListSeparator> +<LongDateDayOfWeekSeparator>, </LongDateDayOfWeekSeparator> +<LongDateDaySeparator>, </LongDateDaySeparator> +<LongDateMonthSeparator> </LongDateMonthSeparator> +<LongDateYearSeparator> </LongDateYearSeparator> +</Separators> +<Markers> +<QuotationStart>‘</QuotationStart> +<QuotationEnd>’</QuotationEnd> +<DoubleQuotationStart>“</DoubleQuotationStart> +<DoubleQuotationEnd>”</DoubleQuotationEnd> +</Markers> +<TimeAM>m</TimeAM> +<TimePM>f</TimePM> +<MeasurementSystem>metric</MeasurementSystem> +</LC_CTYPE> +<LC_FORMAT replaceFrom="[CURRENCY]" replaceTo="[$£-43C]"> +<FormatElement msgid="FixedFormatskey1" default="true" type="medium" usage="FIXED_NUMBER" formatindex="0"> +<FormatCode>General</FormatCode> +</FormatElement> +<FormatElement msgid="FixedFormatskey2" default="true" type="short" usage="FIXED_NUMBER" formatindex="1"> +<FormatCode>0</FormatCode> +</FormatElement> +<FormatElement msgid="FixedFormatskey3" default="false" type="medium" usage="FIXED_NUMBER" formatindex="2"> +<FormatCode>0.00</FormatCode> +</FormatElement> +<FormatElement msgid="FixedFormatskey4" default="false" type="short" usage="FIXED_NUMBER" formatindex="3"> +<FormatCode>#,##0</FormatCode> +</FormatElement> +<FormatElement msgid="FixedFormatskey5" default="false" type="medium" usage="FIXED_NUMBER" formatindex="4"> +<FormatCode>#,##0.00</FormatCode> +</FormatElement> +<FormatElement msgid="FixedFormatskey6" default="false" type="medium" usage="FIXED_NUMBER" formatindex="5"> +<FormatCode>#,###.00</FormatCode> +</FormatElement> +<FormatElement msgid="ScientificFormatskey1" default="true" type="medium" usage="SCIENTIFIC_NUMBER" formatindex="6"> +<FormatCode>0.00E+00</FormatCode> +</FormatElement> +<FormatElement msgid="ScientificFormatskey2" default="false" type="medium" usage="SCIENTIFIC_NUMBER" formatindex="7"> +<FormatCode>0.00E+000</FormatCode> +</FormatElement> +<FormatElement msgid="PercentFormatskey1" default="true" type="short" usage="PERCENT_NUMBER" formatindex="8"> +<FormatCode>0%</FormatCode> +</FormatElement> +<FormatElement msgid="PercentFormatskey2" default="true" type="long" usage="PERCENT_NUMBER" formatindex="9"> +<FormatCode>0.00%</FormatCode> +</FormatElement> +<FormatElement msgid="CurrencyFormatskey1" default="true" type="short" usage="CURRENCY" formatindex="12"> +<FormatCode>[CURRENCY]#,##0;-[CURRENCY]#,##0</FormatCode> +</FormatElement> +<FormatElement msgid="CurrencyFormatskey2" default="false" type="medium" usage="CURRENCY" formatindex="13"> +<FormatCode>[CURRENCY]#,##0.00;-[CURRENCY]#,##0.00</FormatCode> +</FormatElement> +<FormatElement msgid="CurrencyFormatskey3" default="false" type="medium" usage="CURRENCY" formatindex="14"> +<FormatCode>[CURRENCY]#,##0;[RED]-[CURRENCY]#,##0</FormatCode> +</FormatElement> +<FormatElement msgid="CurrencyFormatskey4" default="true" type="medium" usage="CURRENCY" formatindex="15"> +<FormatCode>[CURRENCY]#,##0.00;[RED]-[CURRENCY]#,##0.00</FormatCode> +</FormatElement> +<FormatElement msgid="CurrencyFormatskey5" default="false" type="medium" usage="CURRENCY" formatindex="16"> +<FormatCode>CCC#,##0.00</FormatCode> +</FormatElement> +<FormatElement msgid="CurrencyFormatskey6" default="false" type="medium" usage="CURRENCY" formatindex="17"> +<FormatCode>[CURRENCY]#,##0.--;[RED]-[CURRENCY]#,##0.--</FormatCode> +</FormatElement> +<FormatElement msgid="DateFormatskey11" default="true" type="short" usage="DATE" formatindex="18"> +<FormatCode>D/MM/YY</FormatCode> +</FormatElement> +<FormatElement msgid="DateFormatskey14" default="true" type="long" usage="DATE" formatindex="19"> +<FormatCode>NNNNDD, MMMM YYYY</FormatCode> +</FormatElement> +<FormatElement msgid="DateFormatskey6" default="true" type="medium" usage="DATE" formatindex="20"> +<FormatCode>DD/MM/YY</FormatCode> +</FormatElement> +<FormatElement msgid="DateFormatskey5" default="false" type="medium" usage="DATE" formatindex="21"> +<FormatCode>DD/MM/YYYY</FormatCode> +</FormatElement> +<FormatElement msgid="DateFormatskey15" default="false" type="long" usage="DATE" formatindex="22"> +<FormatCode>D, MMM YY</FormatCode> +</FormatElement> +<FormatElement msgid="DateFormatskey16" default="false" type="long" usage="DATE" formatindex="23"> +<FormatCode>D, MMM YYYY</FormatCode> +</FormatElement> +<FormatElement msgid="DateFormatskey21" default="false" type="long" usage="DATE" formatindex="24"> +<FormatCode>D, MMM YYYY</FormatCode> +</FormatElement> +<FormatElement msgid="DateFormatskey17" default="false" type="long" usage="DATE" formatindex="25"> +<FormatCode>D, MMMM YYYY</FormatCode> +</FormatElement> +<FormatElement msgid="DateFormatskey22" default="false" type="long" usage="DATE" formatindex="26"> +<FormatCode>D, MMMM YY</FormatCode> +</FormatElement> +<FormatElement msgid="DateFormatskey10" default="false" type="medium" usage="DATE" formatindex="27"> +<FormatCode>NN, DD/MMM/YY</FormatCode> +</FormatElement> +<FormatElement msgid="DateFormatskey18" default="false" type="long" usage="DATE" formatindex="28"> +<FormatCode>NN, D, MMM YY</FormatCode> +</FormatElement> +<FormatElement msgid="DateFormatskey19" default="false" type="long" usage="DATE" formatindex="29"> +<FormatCode>NN, D, MMMM YYYY</FormatCode> +</FormatElement> +<FormatElement msgid="DateFormatskey20" default="false" type="long" usage="DATE" formatindex="30"> +<FormatCode>NNNND, MMMM YYYY</FormatCode> +</FormatElement> +<FormatElement msgid="DateFormatskey12" default="false" type="short" usage="DATE" formatindex="31"> +<FormatCode>MM/DD</FormatCode> +</FormatElement> +<FormatElement msgid="DateFormatskey7" default="false" type="medium" usage="DATE" formatindex="32"> +<FormatCode>YY-MM-DD</FormatCode> +<DefaultName>ISO 8601</DefaultName> +</FormatElement> +<FormatElement msgid="DateFormatskey8" default="false" type="medium" usage="DATE" formatindex="33"> +<FormatCode>YYYY-MM-DD</FormatCode> +<DefaultName>ISO 8601</DefaultName> +</FormatElement> +<FormatElement msgid="DateFormatskey1" default="false" type="medium" usage="DATE" formatindex="34"> +<FormatCode>MM/YY</FormatCode> +</FormatElement> +<FormatElement msgid="DateFormatskey2" default="false" type="medium" usage="DATE" formatindex="35"> +<FormatCode>MMM/DD</FormatCode> +</FormatElement> +<FormatElement msgid="DateFormatskey3" default="false" type="medium" usage="DATE" formatindex="36"> +<FormatCode>MMMM</FormatCode> +</FormatElement> +<FormatElement msgid="DateFormatskey4" default="false" type="medium" usage="DATE" formatindex="37"> +<FormatCode>QQ YY</FormatCode> +</FormatElement> +<FormatElement msgid="DateFormatskey9" default="false" type="medium" usage="DATE" formatindex="38"> +<FormatCode>WW</FormatCode> +</FormatElement> +<FormatElement msgid="TimeFormatskey1" default="false" type="short" usage="TIME" formatindex="39"> +<FormatCode>HH:MM</FormatCode> +</FormatElement> +<FormatElement msgid="TimeFormatskey2" default="false" type="medium" usage="TIME" formatindex="40"> +<FormatCode>HH:MM:SS</FormatCode> +</FormatElement> +<FormatElement msgid="TimeFormatskey3" default="true" type="short" usage="TIME" formatindex="41"> +<FormatCode>HH:MM AM/PM</FormatCode> +</FormatElement> +<FormatElement msgid="TimeFormatskey4" default="true" type="medium" usage="TIME" formatindex="42"> +<FormatCode>HH:MM:SS AM/PM</FormatCode> +</FormatElement> +<FormatElement msgid="TimeFormatskey5" default="false" type="medium" usage="TIME" formatindex="43"> +<FormatCode>[HH]:MM:SS</FormatCode> +</FormatElement> +<FormatElement msgid="TimeFormatskey6" default="false" type="short" usage="TIME" formatindex="44"> +<FormatCode>MM:SS.00</FormatCode> +</FormatElement> +<FormatElement msgid="TimeFormatskey7" default="false" type="medium" usage="TIME" formatindex="45"> +<FormatCode>[HH]:MM:SS.00</FormatCode> +</FormatElement> +<FormatElement msgid="DateTimeFormatskey1" default="true" type="medium" usage="DATE_TIME" formatindex="46"> +<FormatCode>DD/MM/YY HH:MM</FormatCode> +</FormatElement> +<FormatElement msgid="DateTimeFormatskey2" default="false" type="medium" usage="DATE_TIME" formatindex="47"> +<FormatCode>DD/MM/YYYY HH:MM:SS AM/PM</FormatCode> +</FormatElement> +</LC_FORMAT> +<LC_COLLATION> +<Collator default="true" unoid="alphanumeric"/> +<CollationOptions> +<TransliterationModules>IGNORE_CASE</TransliterationModules> +</CollationOptions> +</LC_COLLATION> +<LC_SEARCH> +<SearchOptions> +<TransliterationModules>IGNORE_CASE</TransliterationModules> +</SearchOptions> +</LC_SEARCH> +<LC_INDEX> +<IndexKey phonetic="false" default="true" unoid="alphanumeric">AÀÁBCDEÈÉFGHIJKÌLMNOÒÓPQRSTUÙVWXYZ</IndexKey> +<UnicodeScript>0</UnicodeScript> +<UnicodeScript>1</UnicodeScript> +<FollowPageWord>td</FollowPageWord> +<FollowPageWord>td</FollowPageWord> +</LC_INDEX> +<LC_CALENDAR> +<Calendar unoid="gregorian" default="true"> +<DaysOfWeek> +<Day> +<DayID>sun</DayID> +<DefaultAbbrvName>DiD</DefaultAbbrvName> +<DefaultFullName>DiDòmhnaich</DefaultFullName> +</Day> +<Day> +<DayID>mon</DayID> +<DefaultAbbrvName>DiL</DefaultAbbrvName> +<DefaultFullName>DiLuain</DefaultFullName> +</Day> +<Day> +<DayID>tue</DayID> +<DefaultAbbrvName>DiM</DefaultAbbrvName> +<DefaultFullName>DiMàirt</DefaultFullName> +</Day> +<Day> +<DayID>wed</DayID> +<DefaultAbbrvName>DiC</DefaultAbbrvName> +<DefaultFullName>DiCiadain</DefaultFullName> +</Day> +<Day> +<DayID>thu</DayID> +<DefaultAbbrvName>Dia</DefaultAbbrvName> +<DefaultFullName>DiarDaoin</DefaultFullName> +</Day> +<Day> +<DayID>fri</DayID> +<DefaultAbbrvName>Dih</DefaultAbbrvName> +<DefaultFullName>DihAoine</DefaultFullName> +</Day> +<Day> +<DayID>sat</DayID> +<DefaultAbbrvName>DiS</DefaultAbbrvName> +<DefaultFullName>DiSathairne</DefaultFullName> +</Day> +</DaysOfWeek> +<MonthsOfYear> +<Month> +<MonthID>jan</MonthID> +<DefaultAbbrvName>Faoi</DefaultAbbrvName> +<DefaultFullName>Faoilleach</DefaultFullName> +</Month> +<Month> +<MonthID>feb</MonthID> +<DefaultAbbrvName>Gearr</DefaultAbbrvName> +<DefaultFullName>Gearran</DefaultFullName> +</Month> +<Month> +<MonthID>mar</MonthID> +<DefaultAbbrvName>Màrt</DefaultAbbrvName> +<DefaultFullName>Màrt</DefaultFullName> +</Month> +<Month> +<MonthID>apr</MonthID> +<DefaultAbbrvName>Gibl</DefaultAbbrvName> +<DefaultFullName>Giblean</DefaultFullName> +</Month> +<Month> +<MonthID>may</MonthID> +<DefaultAbbrvName>Cèit</DefaultAbbrvName> +<DefaultFullName>Cèitean</DefaultFullName> +</Month> +<Month> +<MonthID>jun</MonthID> +<DefaultAbbrvName>Ògmh</DefaultAbbrvName> +<DefaultFullName>Ògmhios</DefaultFullName> +</Month> +<Month> +<MonthID>jul</MonthID> +<DefaultAbbrvName>Iuch</DefaultAbbrvName> +<DefaultFullName>Iuchar</DefaultFullName> +</Month> +<Month> +<MonthID>aug</MonthID> +<DefaultAbbrvName>Lùna</DefaultAbbrvName> +<DefaultFullName>Lùnastal</DefaultFullName> +</Month> +<Month> +<MonthID>sep</MonthID> +<DefaultAbbrvName>Sult</DefaultAbbrvName> +<DefaultFullName>Sultain</DefaultFullName> +</Month> +<Month> +<MonthID>oct</MonthID> +<DefaultAbbrvName>Dàmh</DefaultAbbrvName> +<DefaultFullName>Dàmhair</DefaultFullName> +</Month> +<Month> +<MonthID>nov</MonthID> +<DefaultAbbrvName>Samh</DefaultAbbrvName> +<DefaultFullName>Samhain</DefaultFullName> +</Month> +<Month> +<MonthID>dec</MonthID> +<DefaultAbbrvName>Dùbh</DefaultAbbrvName> +<DefaultFullName>Dùbhlachd</DefaultFullName> +</Month> +</MonthsOfYear> +<Eras> +<Era> +<EraID>bc</EraID> +<DefaultAbbrvName>RC</DefaultAbbrvName> +<DefaultFullName>ro Chrìost</DefaultFullName> +</Era> +<Era> +<EraID>ad</EraID> +<DefaultAbbrvName>AD</DefaultAbbrvName> +<DefaultFullName>as dèidh Chrìost</DefaultFullName> +</Era> +</Eras> +<StartDayOfWeek> +<DayID>mon</DayID> +</StartDayOfWeek> +<MinimalDaysInFirstWeek>1</MinimalDaysInFirstWeek> +</Calendar> +</LC_CALENDAR> +<LC_CURRENCY> +<Currency default="true" usedInCompatibleFormatCodes="true"> +<CurrencyID>GBP</CurrencyID> +<CurrencySymbol>£</CurrencySymbol> +<BankSymbol>GBP</BankSymbol> +<CurrencyName>Punnd Sasannach</CurrencyName> +<DecimalPlaces>2</DecimalPlaces> +</Currency> +</LC_CURRENCY> +<LC_TRANSLITERATION> +<Transliteration unoid="LOWERCASE_UPPERCASE"/> +<Transliteration unoid="UPPERCASE_LOWERCASE"/> +<Transliteration unoid="IGNORE_CASE"/> +</LC_TRANSLITERATION> +<LC_MISC> +<ReservedWords> +<trueWord>Fìor</trueWord> +<falseWord>Breug</falseWord> +<quarter1Word>Ràithe 1</quarter1Word> +<quarter2Word>Ràithe 2</quarter2Word> +<quarter3Word>Ràithe 3</quarter3Word> +<quarter4Word>Ràithe 4</quarter4Word> +<aboveWord>Os cionn</aboveWord> +<belowWord>Fo</belowWord> +<quarter1Abbreviation>R 1</quarter1Abbreviation> +<quarter2Abbreviation>R 2</quarter2Abbreviation> +<quarter3Abbreviation>R 3</quarter3Abbreviation> +<quarter4Abbreviation>R 4</quarter4Abbreviation> +</ReservedWords> +</LC_MISC> +<LC_NumberingLevel> +<NumberingLevel NumType="4" Prefix=" " Suffix=")"/> +<NumberingLevel NumType="4" Prefix=" " Suffix="."/> +<NumberingLevel NumType="4" Prefix="(" Suffix=")"/> +<NumberingLevel NumType="2" Prefix=" " Suffix="."/> +<NumberingLevel NumType="0" Prefix=" " Suffix=")"/> +<NumberingLevel NumType="1" Prefix=" " Suffix=")"/> +<NumberingLevel NumType="1" Prefix="(" Suffix=")"/> +<NumberingLevel NumType="3" Prefix=" " Suffix="."/> +</LC_NumberingLevel> +<LC_OutLineNumberingLevel ref="en_US"/> +</Locale> diff --git a/i18npool/source/localedata/data/localedata_euro.map b/i18npool/source/localedata/data/localedata_euro.map index b9dd20c724d7..db16f9f7f35c 100644 --- a/i18npool/source/localedata/data/localedata_euro.map +++ b/i18npool/source/localedata/data/localedata_euro.map @@ -31,6 +31,7 @@ getAllCalendars_fr_MC; getAllCalendars_fur_IT; getAllCalendars_fy_NL; getAllCalendars_ga_IE; +getAllCalendars_gd_GB; getAllCalendars_gsc_FR; getAllCalendars_hr_HR; getAllCalendars_hsb_DE; @@ -102,6 +103,7 @@ getAllCurrencies_fr_MC; getAllCurrencies_fur_IT; getAllCurrencies_fy_NL; getAllCurrencies_ga_IE; +getAllCurrencies_gd_GB; getAllCurrencies_gsc_FR; getAllCurrencies_hr_HR; getAllCurrencies_hsb_DE; @@ -173,6 +175,7 @@ getAllFormats0_fr_MC; getAllFormats0_fur_IT; getAllFormats0_fy_NL; getAllFormats0_ga_IE; +getAllFormats0_gd_GB; getAllFormats0_gsc_FR; getAllFormats0_hr_HR; getAllFormats0_hsb_DE; @@ -244,6 +247,7 @@ getBreakIteratorRules_fr_MC; getBreakIteratorRules_fur_IT; getBreakIteratorRules_fy_NL; getBreakIteratorRules_ga_IE; +getBreakIteratorRules_gd_GB; getBreakIteratorRules_gsc_FR; getBreakIteratorRules_hr_HR; getBreakIteratorRules_hsb_DE; @@ -315,6 +319,7 @@ getCollationOptions_fr_MC; getCollationOptions_fur_IT; getCollationOptions_fy_NL; getCollationOptions_ga_IE; +getCollationOptions_gd_GB; getCollationOptions_gsc_FR; getCollationOptions_hr_HR; getCollationOptions_hsb_DE; @@ -386,6 +391,7 @@ getCollatorImplementation_fr_MC; getCollatorImplementation_fur_IT; getCollatorImplementation_fy_NL; getCollatorImplementation_ga_IE; +getCollatorImplementation_gd_GB; getCollatorImplementation_gsc_FR; getCollatorImplementation_hr_HR; getCollatorImplementation_hsb_DE; @@ -457,6 +463,7 @@ getContinuousNumberingLevels_fr_MC; getContinuousNumberingLevels_fur_IT; getContinuousNumberingLevels_fy_NL; getContinuousNumberingLevels_ga_IE; +getContinuousNumberingLevels_gd_GB; getContinuousNumberingLevels_gsc_FR; getContinuousNumberingLevels_hr_HR; getContinuousNumberingLevels_hsb_DE; @@ -528,6 +535,7 @@ getFollowPageWords_fr_MC; getFollowPageWords_fur_IT; getFollowPageWords_fy_NL; getFollowPageWords_ga_IE; +getFollowPageWords_gd_GB; getFollowPageWords_gsc_FR; getFollowPageWords_hr_HR; getFollowPageWords_hsb_DE; @@ -599,6 +607,7 @@ getForbiddenCharacters_fr_MC; getForbiddenCharacters_fur_IT; getForbiddenCharacters_fy_NL; getForbiddenCharacters_ga_IE; +getForbiddenCharacters_gd_GB; getForbiddenCharacters_gsc_FR; getForbiddenCharacters_hr_HR; getForbiddenCharacters_hsb_DE; @@ -670,6 +679,7 @@ getIndexAlgorithm_fr_MC; getIndexAlgorithm_fur_IT; getIndexAlgorithm_fy_NL; getIndexAlgorithm_ga_IE; +getIndexAlgorithm_gd_GB; getIndexAlgorithm_gsc_FR; getIndexAlgorithm_hr_HR; getIndexAlgorithm_hsb_DE; @@ -741,6 +751,7 @@ getLCInfo_fr_MC; getLCInfo_fur_IT; getLCInfo_fy_NL; getLCInfo_ga_IE; +getLCInfo_gd_GB; getLCInfo_gsc_FR; getLCInfo_hr_HR; getLCInfo_hsb_DE; @@ -812,6 +823,7 @@ getLocaleItem_fr_MC; getLocaleItem_fur_IT; getLocaleItem_fy_NL; getLocaleItem_ga_IE; +getLocaleItem_gd_GB; getLocaleItem_gsc_FR; getLocaleItem_hr_HR; getLocaleItem_hsb_DE; @@ -883,6 +895,7 @@ getOutlineNumberingLevels_fr_MC; getOutlineNumberingLevels_fur_IT; getOutlineNumberingLevels_fy_NL; getOutlineNumberingLevels_ga_IE; +getOutlineNumberingLevels_gd_GB; getOutlineNumberingLevels_gsc_FR; getOutlineNumberingLevels_hr_HR; getOutlineNumberingLevels_hsb_DE; @@ -954,6 +967,7 @@ getReservedWords_fr_MC; getReservedWords_fur_IT; getReservedWords_fy_NL; getReservedWords_ga_IE; +getReservedWords_gd_GB; getReservedWords_gsc_FR; getReservedWords_hr_HR; getReservedWords_hsb_DE; @@ -1025,6 +1039,7 @@ getSearchOptions_fr_MC; getSearchOptions_fur_IT; getSearchOptions_fy_NL; getSearchOptions_ga_IE; +getSearchOptions_gd_GB; getSearchOptions_gsc_FR; getSearchOptions_hr_HR; getSearchOptions_hsb_DE; @@ -1096,6 +1111,7 @@ getTransliterations_fr_MC; getTransliterations_fur_IT; getTransliterations_fy_NL; getTransliterations_ga_IE; +getTransliterations_gd_GB; getTransliterations_gsc_FR; getTransliterations_hr_HR; getTransliterations_hsb_DE; @@ -1167,6 +1183,7 @@ getUnicodeScripts_fr_MC; getUnicodeScripts_fur_IT; getUnicodeScripts_fy_NL; getUnicodeScripts_ga_IE; +getUnicodeScripts_gd_GB; getUnicodeScripts_gsc_FR; getUnicodeScripts_hr_HR; getUnicodeScripts_hsb_DE; diff --git a/i18npool/source/localedata/data/makefile.mk b/i18npool/source/localedata/data/makefile.mk index 38595ee538e8..c67e9082d7ce 100644 --- a/i18npool/source/localedata/data/makefile.mk +++ b/i18npool/source/localedata/data/makefile.mk @@ -36,7 +36,7 @@ LIBTARGET=NO debug!= .ENDIF -.IF "$(OS)" == "WNT" +.IF "$(OS_FOR_BUILD)" == "WNT" my_file = file:/// .ELSE my_file = file:// @@ -167,6 +167,7 @@ SHL3OBJS= \ $(SLO)$/localedata_fur_IT.obj \ $(SLO)$/localedata_fy_NL.obj \ $(SLO)$/localedata_ga_IE.obj \ + $(SLO)$/localedata_gd_GB.obj \ $(SLO)$/localedata_gsc_FR.obj \ $(SLO)$/localedata_hr_HR.obj \ $(SLO)$/localedata_hsb_DE.obj \ @@ -326,12 +327,20 @@ MY_MISC_CXXFILES := $(foreach,i,$(DEPOBJFILES) $(MISC)/$(i:b).cxx) .INCLUDE : target.mk -$(MY_MISC_CXXFILES) : $(OUT_FOR_BUILD)$/bin$/saxparser$(EXECPOST) $(MISC)/saxparser.rdb +$(MY_MISC_CXXFILES) : $(OUT_FOR_BUILD)$/bin$/saxparser$(EXECPOST_FOR_BUILD) $(MISC)/saxparser.rdb + +.IF "$(CROSS_COMPILING)" == "YES" +# Always cross-compiling from some Unix, +# so the BUILD platform's lib directory is correct +sharedlibdir=$(SOLARLIBDIR_FOR_BUILD) +.ELSE +sharedlibdir=$(SOLARSHAREDBIN) +.ENDIF $(MISC)$/localedata_%.cxx : %.xml $(AUGMENT_LIBRARY_PATH) $(WRAPCMD) $(OUT_FOR_BUILD)$/bin$/saxparser $* $< $@ \ $(my_file)$(PWD)/$(MISC_FOR_BUILD)/saxparser.rdb $(SOLARBINDIR)$/types.rdb \ - -env:OOO_INBUILD_SHAREDLIB_DIR=$(my_file)$(SOLARSHAREDBIN) + -env:OOO_INBUILD_SHAREDLIB_DIR=$(my_file)$(sharedlibdir) $(RM) $(BIN)$/$(@:b).rdb $(MISC)/saxparser.rdb .ERRREMOVE : $(SOLARENV)/bin/packcomponents.xslt \ diff --git a/i18npool/source/localedata/localedata.cxx b/i18npool/source/localedata/localedata.cxx index d011865a7e35..b6245fca6268 100644 --- a/i18npool/source/localedata/localedata.cxx +++ b/i18npool/source/localedata/localedata.cxx @@ -149,6 +149,7 @@ static const struct { { "eu", lcl_DATA_EURO }, { "fo_FO", lcl_DATA_EURO }, { "ga_IE", lcl_DATA_EURO }, + { "gd_GB", lcl_DATA_EURO }, { "ka_GE", lcl_DATA_EURO }, { "be_BY", lcl_DATA_EURO }, { "kl_GL", lcl_DATA_EURO }, diff --git a/i18npool/source/localedata/makefile.mk b/i18npool/source/localedata/makefile.mk index 9a671e8bcd6b..798b401d21f7 100644 --- a/i18npool/source/localedata/makefile.mk +++ b/i18npool/source/localedata/makefile.mk @@ -58,6 +58,8 @@ CDEFS+=-D__STD_LIMITS SLOFILES= $(SLO)$/localedata.obj +.IF "$(CROSS_COMPILING)" != "YES" + OBJFILES = \ $(OBJ)$/saxparser.obj \ $(OBJ)$/LocaleNode.obj \ @@ -78,6 +80,8 @@ DEPOBJFILES = \ $(OBJ)$/LocaleNode.obj \ $(OBJ)$/filewriter.obj +.ENDIF + # --- Targets ------------------------------------------------------ .INCLUDE : target.mk diff --git a/i18npool/source/paper/makefile.mk b/i18npool/source/paper/makefile.mk index fa05cc21f3f9..f0b9bc8b02f1 100644 --- a/i18npool/source/paper/makefile.mk +++ b/i18npool/source/paper/makefile.mk @@ -44,7 +44,11 @@ SLOFILES=$(SLO)$/paper.obj SHL1OBJS=$(SLOFILES) SHL1TARGET=$(TARGET)$(DLLPOSTFIX) +.IF "$(COM)" == "MSC" SHL1IMPLIB=i$(TARGET) +.ELSE +SHL1IMPLIB=$(TARGET)$(DLLPOSTFIX) +.ENDIF DEF1DEPN=$(MISC)$/$(SHL1TARGET).flt SHL1DEF=$(MISC)$/$(SHL1TARGET).def diff --git a/i18npool/source/paper/paper.cxx b/i18npool/source/paper/paper.cxx index 913cc7d834ed..fe376184edba 100644 --- a/i18npool/source/paper/paper.cxx +++ b/i18npool/source/paper/paper.cxx @@ -247,7 +247,7 @@ PaperInfo PaperInfo::getSystemDefaultPaper() // try user-defined locale setting xConfigNA->getByName( CREATE_OUSTRING( "ooSetupSystemLocale" ) ) >>= aLocaleStr; } - catch( Exception& ) + catch(const Exception&) { } @@ -377,7 +377,9 @@ PaperInfo PaperInfo::getSystemDefaultPaper() xConfigNA->getByName( CREATE_OUSTRING( "Locale" ) ) >>= aLocaleStr; } } - catch( Exception& ) {} + catch(const Exception&) + { + } if (aLocaleStr.getLength() == 0) aLocaleStr = CREATE_OUSTRING("en-US"); diff --git a/i18npool/source/registerservices/registerservices.cxx b/i18npool/source/registerservices/registerservices.cxx index fd08933af2fa..5df7bb931b7c 100644 --- a/i18npool/source/registerservices/registerservices.cxx +++ b/i18npool/source/registerservices/registerservices.cxx @@ -576,11 +576,6 @@ static const struct InstancesArray { extern "C" { -SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( const sal_Char** ppEnvTypeName, uno_Environment** /*ppEnv*/ ) -{ - *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; -} - SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( const sal_Char* sImplementationName, void* _pServiceManager, void* /*_pRegistryKey*/ ) { void* pRet = NULL; diff --git a/i18npool/source/search/textsearch.cxx b/i18npool/source/search/textsearch.cxx index 756d6c863ff9..f407a614ed1f 100644 --- a/i18npool/source/search/textsearch.cxx +++ b/i18npool/source/search/textsearch.cxx @@ -982,12 +982,6 @@ SAL_CALL TextSearch_CreateInstance( extern "C" { -SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( - const sal_Char** ppEnvTypeName, uno_Environment** /*ppEnv*/ ) -{ - *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; -} - SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( const sal_Char* sImplementationName, void* _pServiceManager, void* /*_pRegistryKey*/ ) { diff --git a/i18npool/source/textconversion/data/makefile.mk b/i18npool/source/textconversion/data/makefile.mk index 967b4f982ea2..6f54d2033f0b 100644 --- a/i18npool/source/textconversion/data/makefile.mk +++ b/i18npool/source/textconversion/data/makefile.mk @@ -34,7 +34,7 @@ LIBTARGET=NO .INCLUDE : settings.mk # Fix heap limit problem on MSC -.IF "$(OS)" == "WNT" +.IF "$(COM)" == "MSC" .IF "$(COMEX)" != "8" CDEFS+=-Zm300 .ENDIF diff --git a/i18npool/source/textconversion/makefile.mk b/i18npool/source/textconversion/makefile.mk index 2b91d964b2ad..dca748309ca7 100644 --- a/i18npool/source/textconversion/makefile.mk +++ b/i18npool/source/textconversion/makefile.mk @@ -44,6 +44,8 @@ SLOFILES= \ $(SLO)$/textconversion_ko.obj \ $(SLO)$/textconversion_zh.obj +.IF "$(CROSS_COMPILING)" != "YES" + OBJFILES = $(OBJ)$/genconv_dict.obj APP1TARGET = genconv_dict @@ -53,6 +55,8 @@ APP1OBJS = $(OBJ)$/genconv_dict.obj APP1STDLIBS = $(SALLIB) +.ENDIF + # --- Targets ------------------------------------------------------ .INCLUDE : target.mk |