summaryrefslogtreecommitdiff
path: root/i18nlangtag
AgeCommit message (Collapse)Author
2023-01-07Related: tdf#152781 Pin some known on-the-fly langtags to user-defined LCIDsEike Rathke
These are pulled in by either our own bundled extension dictionaries (es-*, ca-*), or hunspell dictionary (en-AG), but have no language listbox entry (and don't need one until someone insists) thus are generated. So if selected and in case stored in binary MS file formats ensure a stable back-and-forth conversion. The on-the-fly 0x7e1, 0x7e2, ... are generated arbitrarily in order as encountered. Change-Id: I0dc72bf1301b26d5b82e1b271c58fc77c82eea0f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145161 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit 54d25b36c0bf3dcc715f2098ad658bb113e868ec) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145124
2023-01-06Related: tdf#152781 Stab the 0xE40A {es} vs Latin America quirkEike Rathke
First, the LANGUAGE_SPANISH_LATIN_AMERICA 0xE40A is not a MS system LCID, it is Spanish 0x00a with sublanguage 0x39 => user defined (in the range 0x20 to 0x3f). Meanwhile MS reserved 0x580A for {es-419}, so obsolete the legacy 0xE40A definition and replace with 0x580A when encountered. Second, due to the legacy plain {es} mapping being present, an encountered 'es' (from our bundled dictionary extension) got mapped to 0xE40A instead of 0xA and thus was added to the character language listbox (that otherwise suppresses LCIDs without sublanguage), resulting in a "Spanish {es}" entry. Besides, it's currently not clear how to actually proceed with such dictionary situation when, for example, both 'es-ES' and 'es' dictionaries are present and the 'es' dictionary apparently is meant as base and contains entries the 'es-ES' does not or 'es-ES' overrides entries. It might be it's handled half-way in linguistics, but maybe not even that, I didn't investigate. Change-Id: Id859731ba5efa65d4a6de429b7f52027aa69327c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145093 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins (cherry picked from commit 375630ae76f46c096421dfadee8d37b406bc10c5) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145114
2022-11-28Resolves: tdf#148792 Add Portuguese (Mozambique) {pt-MZ} locale and dataEike Rathke
Basically copies pt_PT.xml but replaces translated with untranslated keywords (AA,AAAA => YY,YYYY), hence no ref="pt_PT" for LC_FORMAT (and LC_CTYPE). Also use sort-formats.awk -v group=1 to sort FormatElement by usage group and formatIndex as those went quite wild over time.. Change-Id: Iececac0ebdd0317fd14ab65f32c08501f3ce32c8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143398 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2022-10-11Deduplicate O(U)StringConcatenationMike Kaganski
And use an overloaded helper function with a better (?) unified name to show that the result is not an O(U)String. Change-Id: I8956338b05d02bf46a6185828130ea8ef145d46b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141203 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2022-10-08Konkani is CTL, the other unknowns are not ("Western")Eike Rathke
Change-Id: If6c9af6d4a6c7faee6231189014401314d1b1f25 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/141124 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Eike Rathke <erack@redhat.com>
2022-10-05More zh-* legacyEike Rathke
Change-Id: I859bb1d100eed0d1940e31575611f34c1c308698 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140982 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2022-10-04Check acor_langtag for language-script fallback instead of only languageEike Rathke
A tag with script could be added for which we don't have locale data but for the same language in another script. Do not fall back to that. With that the share/autocorr/acor_zh-{CN,TW}.dat files created additional Asian language listbox entries "Chinese (Simplified, China) {zh-Hans-CN}" "Chinese (Traditional, Taiwan) {zh-Hant-TW}" because those are the canonicalized language tags. Prefer the known legacy zh-CN and zh-TW tags instead. Could also had happened with any document import. Which again revealed a flaw in the handling of mapping overrides where converting from a LanguageType LCID to Locale could yield a different mapping than from BCP47 to LCID, which in the case of a fallback for locale data lead to odd side effects. Change-Id: I1e2aaa8e9f99b6b3bc2c9a661215cb00bddd33d6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140939 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2022-09-01Resolves: tdf#150370 Accept 'art-x-...' private-use input in language boxEike Rathke
... for artificial constructed languages. Change-Id: Ifd0f2ca63738eb9bbe78361cd3fdf507f3e397f5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139135 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2022-08-31Related: tdf#150370 Convert isValidBcp47() bool to enum LanguageTag::PrivateUseEike Rathke
... to prepare for more finegrained private-use control. Change-Id: I118c3f5ee6e437435c07ed2cf699c4597e9cdf88 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139112 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2022-07-07i18nlangtag: replace tools::Long with longChris Sherlock
Revert to long as originally used in commit e81359a9a324: "added registerImpl() re-entered warning" and then apparently accidentally broken in the mass conversion commit e25fd7782ad04: "long->tools::Long in hwpfilter..oox". Change-Id: I39c983ddec83c84953bc3db167793944c671894b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135714 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2022-06-06Resolves: tdf#147390 tag oc-FR to oc-FR-lengadoc, oc-ES to oc-ES-aranesEike Rathke
Change-Id: I849e8e2c6cf2a61b81b25c96b79478bc04907b5c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135458 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2022-05-26convertLanguageToLocaleImpl() speed-up a gazillion en-US fallback casesEike Rathke
Change-Id: I7f9290383eabcf3733f15f8f45193ee04db9852f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134953 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2022-04-28use more string_view in i18nlangtagNoel Grandin
Change-Id: I92e3d60180c31d765994a2212e1c4547c09c93d2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133517 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-04-13loplugin:stringviewparam whitelist some more functionsNoel Grandin
for which we have o3tl:: equivalents Change-Id: I4670fd8b703ac47214be213f41e88d1c6ede7032 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132913 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-03-24loplugin:constantparamNoel Grandin
Change-Id: I86592be0717c062a918108bf4437074b0f70b372 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132029 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-01-26tdf#146602 Add Pennsylvania Dutch {pdc-US} 0x06AF to language listEike Rathke
Change-Id: Icc4ed353c1bad53c2e2bf85fc098a50d66ee5b33 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128988 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2022-01-12Fix typosAndrea Gelmini
Change-Id: Ib132f2582fce1fb62755926d3f55987ea474ec74 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128297 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2022-01-10tdf#146084 Test for languages without hyphenationHossein
Add test for languages without hyphenation. The fix can be tested with: make CPPUNIT_TEST_NAME="testLanguagesWithoutHyphenation" -sr \ CppunitTest_i18nlangtag_test_languagetag It is important to know that Kurdish language consists of different dialects with differences in hyphenation: 1. Central Kurdish (Sorani): Arabic script, no hyphenation 2. Northern Kurdish (Kurmanji): Latin script, uses hyphenation 3. Southern Kurdish (Xwarîn): Arabic script, no hyphenation Change-Id: I541281af6de296e57a5ab2dc8254f511787ebda0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128188 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2022-01-09tdf#146084 No hyphenation warning for PashtoHossein
Pashto language, which is spoken in Afghanistan and Pakistan uses the Arabic script, and does not use hyphenation. Change-Id: I87a1235b183055b0961ab27f45281be7aa9965c3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128191 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-01-09tdf#146084 No hyphenation warning for VietnameseHossein
The Vietnamese language does not use hyphenation, so LO should not warn for lack of hyphenation data. This was described in the commit message of 151c56ed547490a99d912524c0e56b5d6d4a1939, but the actual code for fixing the problem for Vietnamese langauge was missing. This patch, adds the Vietnamese language to the list of languages that do not use hyphenation, so the warning for the lack of hyphenation data will no longer be displayed for this language. As described in the above commit: "In Vietnamese all words consist of single syllables, so they are often very short; hyphenation is not allowed at all." https://tug.org/TUGboat/tb29-1/tb91thanh-vntex.pdf Hyphenation is declined in Vietnamese orthography since 1975 https://www.quora.com/When-did-hyphenation-decline-in-Vietnamese-orthography Change-Id: Id8d3681ad0a93065e61e9da2422af64793fbc111 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128177 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
2022-01-07tdf#146084 Don't warn for languages without hyphenationHossein
Upon opening a Writer document containing some languages that do not use hyphen, an alert is created with the text: 'Missing hyphenation data Please install the hyphenation package for locale "ab_CD".' in which 'ab_CD' is the locale. This patch removes the warning for these languages, that do not use hyphenation: * Arabic script languages (except Uighur) + Persian (Farsi) + Kashmiri + Kurdish (Central Kurdish and Southern Kurdish with Arabic script) + Punjabi + Sindhi + Malai + Somali + Swahili + Urdu "Words are not hyphenated in Arabic language text, however hyphenation is possible for Uighur text written in the Arabic script" https://www.w3.org/International/i18n-tests/results/word-break-shaping The list from MS documents is lenghty, but some of the languages are were not available in LibreOffice, so they are ommited: https://docs.microsoft.com/en-us/typography/script-development/arabic There were languages like Hausa and Kanuri from Nigeria that use both Latin and Arabic script, but only Latin script was listed in the LibreOffice languages, so they were also ommited. * CJK languages + Japanese + Korean + Chinese + Yue Chinese "CJK languages differ from European languages in that there are no hyphenation rules" https://tug.org/TUGboat/tb25-0/cho.pdf * Vietnamese "In Vietnamese all words consist of single syllables, so they are often very short; hyphenation is not allowed at all." https://tug.org/TUGboat/tb29-1/tb91thanh-vntex.pdf Hyphenation is declined in Vietnamese orthography since 1975 https://www.quora.com/When-did-hyphenation-decline-in-Vietnamese-orthography The fix for Japanese (tdf#143422) was previously done in: 53d5555f13371252874ec962dee4643168d26780 and the functionality is preserverd with the current patch. An alternate approach would be adding all the unicode scripts, specifying the script for each langauge, and decide upon the script (mostly) and not (only) the language. More information about the hyphenation usage of many scripts can be found in: https://r12a.github.io/scripts/ This is the list of Unicode scripts: https://unicode.org/standard/supported.html https://en.wikipedia.org/wiki/Script_(Unicode)#List_of_scripts_in_Unicode Change-Id: I7d2b4ee55a0893d1f0d1f9cd3b7cc037a49589b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126435 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2021-12-30Use primary().anyOf() instead of yet another equalsPrimary()Eike Rathke
... where for each or'ed expression the same nLang was masked again. Change-Id: I61d572be6f72c70d24dc56e67b950af2d2b5f767 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127642 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-12-22loplugin:flatten in filter..includeNoel Grandin
Change-Id: I74c1ea8b9b490eaa9508a885758224063e39051b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127235 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-12-18Change Interslavic Latin tag to {art-Latn-x-interslv}, tdf#145853 follow-upEike Rathke
Change-Id: I4d19251fe350d8d2139ede9adbe0de1e3b570a5f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127028 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-12-18Resolves: tdf#145853 Add Interslavic Latin|Cyrillic to language listEike Rathke
Interslavic Latin {art-x-interslv} 0x06AD Interslavic Cyrillic {art-Cyrl-x-interslv} 0x06AE Change-Id: I487d6593db89af038555a192674298e2dabf5582 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/127018 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-12-15Related: tdf#146228 convertIsoNamesToLanguage() fallback for empty tagEike Rathke
An empty tag might be the result of a bad LANGUAGE=":" setting. The old implementation tried an unconditional "-" tag (for both language and country empty) that was wrong anyway. Do not keep the resulting LANGUAGE_SYSTEM as that is exactly what we want to know the actual locale for. Change-Id: I7d6587f59e9a3362c7d877926a325ebcfe7b48db Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126863 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-12-15Resolves: tdf#146228 env-var $LANGUAGE can be a colon separated listEike Rathke
Try to extract a first or second if first is empty. Ideally the sequence would be matched against available UI localizations, but that's simply not available at this stage. Change-Id: I37d0c289fe165c76a98086c63279aacf6856900c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126862 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-11-29loplugin:stringliteraldefine in i18nlangtagNoel Grandin
Change-Id: Ibc4758235ad15858d288e6f3015e2dfcb1650a26 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126042 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-23Removed break; after returnAndrea Gelmini
Change-Id: Ib712072deec9368a3a580562dd1fc3bc28e86e68 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125679 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Eike Rathke <erack@redhat.com>
2021-11-22osl::Mutex->std::recursive_mutex in LanguageTagNoel Grandin
Change-Id: I75e2d0b78ebf4390ed67d94eb1021145f245fe50 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/125631 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-10initialization-order-fiasco, againStephan Bergmann
...after b5758cb2729236d9eaf52bd25b1b113a3ff06b4e "rtl::Static to thread-safe static" (which this partially reverts again), like 71d0c43fb4cf535239cb41baf7b6e03de765ce7a "initialization-order-fiasco" in the past Change-Id: Ie3f352a63ee3939b1727faf6cf11b2768173437c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124998 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-11-10rtl::Static to thread-safe staticNoel Grandin
Change-Id: Ie4c26b0b2c0880bcf6ec6d786b219f142d715af5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124930 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-11-08Convert erroneous kw-UK language tag to kw-GB when encounteringEike Rathke
Change-Id: I67a79dab3fac36b494ebc66b81d6d571e2486b1a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124842 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-11-08The country code for the United Kingdom is GB not UKCaolán McNamara
e.g. see gd and cy Change-Id: Ic2f9746dc1fc2b08f000f8efff113f5981e427f6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124839 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-10-25Introduce LanguageTag::convertToLanguageTypeWithFallback(Locale)Eike Rathke
... with keeping LANGUAGE_SYSTEM not resolved or falling back. Change-Id: I10211c2b2140a9822f1403dc00af3ee9ded08f69 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124140 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-10-25Get rid of fuzziness in MsLangId::Conversion::convertIsoNamesToLanguage()Eike Rathke
With on-the-fly LanguageTag the fuzzy fallbacks for a few languages aren't needed anymore. Proper fallbacks should be obtained when needed, like when configuring default locales, or configured values used after. Change-Id: I8b85b8099e085508435036ac846db6c3e516dc23 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124127 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-10-24Return LANGUAGE_ENGLISH_US for AppleLanguageId::ENGLISHEike Rathke
Most likely was an oversight when using LANGUAGE_ENGLISH as other LANGUAGE_FRENCH and LANGUAGE_GERMAN are locales already. Change-Id: Ie16395340cef9939a5397e3d10d6df6b13ac8d99 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124124 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-10-19Related: tdf#145173 Add English (Israel) {en-IL} 0xB409 to language listEike Rathke
Change-Id: I0c1d89a8869e3788f18851ae004bac24275923b5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123829 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-10-18Introduce MsLangId::getConfiguredSystemLanguage()Eike Rathke
To be used instead of getSystemLanguage() in a subsequent change. For details see commit summary of commit aec5312ffab24236876693d7a8b55843847f2a48 CommitDate: Mon Oct 18 21:14:24 2021 +0200 Related: tdf#145173 Ensure known supported system and default document locale Change-Id: I5bed125e47c2a03fe2e7a4f84988b2e8841143c1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/123766 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-10-03A more lightweight O[U]StringConcatenationStephan Bergmann
...compared to a full-blown O[U]String, for temporary objects holding an O[U]StringConcat result that can then be used as a std::[u16]string_view. It's instructive to see how some invocations of operator ==, operator !=, and O[U]StringBuffer::insert with an O[U]StringConcat argument required implicit materialization of an O[U]String temporary, and how that expensive operation has now been made explicit with the explicit O[U]StringConcatenation ctor. (The additional operator == and operator != overloads are necessary because the overloads taking two std::[u16]string_view parameters wouldn't even be found here with ADL. And the OUString-related ones would cause ambiguities in at least sal/qa/rtl/strings/test_oustring_stringliterals.cxx built with RTL_STRING_UNITTEST, so have simply been disabled for that special test-code case.) Change-Id: Id29799fa8da21a09ff9794cbc7cc9b366e6803b8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122890 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-08-30Resolves: tdf#144059 Tigrigna {ti-*} (Ethi) is CTLEike Rathke
Change-Id: I5fb56e039c854471ae444395feee27e820902181 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121297 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-08-21Resolves: tdf#143946 Add Klingon, tlhIngan Hol {tlh} 0x06AC to language listEike Rathke
Change-Id: Icf7452b2aef3ecae8ccdbcd4a66ab8b121a8120c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120814 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-08-21Unit test for LanguageTagIcu::getDisplayName()Eike Rathke
Change-Id: Ibe95fba21ed94be7fb4848f19161d492bc403e4d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120798 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2021-08-21Introduce LanguageTagIcu::getDisplayName()Eike Rathke
To be used in generating display names for on-the-fly language tags in the language listbox. Change-Id: Ibb36fe312e550f77f1e2d3acc2dbff9e83c15f7b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120797 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-08-06Adapt LCIDs and language tags to [MS-LCID] rev.15Eike Rathke
See https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/70feba9f-294e-491e-b6eb-56532684c37f https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-LCID/%5bMS-LCID%5d-210625.pdf and commit 402dab839b2e451dec81bfb83dadbe0d5a231db2 CommitDate: Wed Aug 4 21:21:51 2021 +0200 update list of [MS-LCID] from 6/25/2021 15.0 rev. Change-Id: I44db2bfaf894ead119c7014e3770fc44be537148 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120128 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-08-04update list of [MS-LCID] from 6/25/2021 15.0 rev.DaeHyun Sung
update list of [MS-LCID] from 6/25/2021 15.0 revision see [MS-LCID]: Windows Language Code Identifier (LCID) Reference Link: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/70feba9f-294e-491e-b6eb-56532684c37f Change-Id: I8264a246d3a0f34a19f35684bdb987565f37e69d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119772 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2021-08-02initialization-order-fiascoStephan Bergmann
...after a943936eeff04b60ebd0b2552bc18b42606f3321 "rtl::Static -> static local" (and the relevant static isn't even local), when building e.g. Gallery/backgrounds, see <https://ci.libreoffice.org/job/lo_ubsan/2090/>: > ==26993==ERROR: AddressSanitizer: initialization-order-fiasco on address 0x2b52e50be408 at pc 0x2b52e4d32753 bp 0x7fff5670f090 sp 0x7fff5670f088 > READ of size 8 at 0x2b52e50be408 thread T0 > #0 0x2b52e4d32752 in std::_Rb_tree<rtl::OUString, std::pair<rtl::OUString const, std::shared_ptr<LanguageTagImpl> >, std::_Select1st<std::pair<rtl::OUString const, std::shared_ptr<LanguageTagImpl> > >, (anonymous namespace)::compareIgnoreAsciiCaseLess, std::allocator<std::pair<rtl::OUString const, std::shared_ptr<LanguageTagImpl> > > >::_M_begin() /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_tree.h:737:64 > #1 0x2b52e4d355f3 in std::_Rb_tree<rtl::OUString, std::pair<rtl::OUString const, std::shared_ptr<LanguageTagImpl> >, std::_Select1st<std::pair<rtl::OUString const, std::shared_ptr<LanguageTagImpl> > >, (anonymous namespace)::compareIgnoreAsciiCaseLess, std::allocator<std::pair<rtl::OUString const, std::shared_ptr<LanguageTagImpl> > > >::find(rtl::OUString const&) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_tree.h:2523:37 > #2 0x2b52e4d3507d in std::__cxx1998::map<rtl::OUString, std::shared_ptr<LanguageTagImpl>, (anonymous namespace)::compareIgnoreAsciiCaseLess, std::allocator<std::pair<rtl::OUString const, std::shared_ptr<LanguageTagImpl> > > >::find(rtl::OUString const&) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/bits/stl_map.h:1164:21 > #3 0x2b52e4cf116c in std::__debug::map<rtl::OUString, std::shared_ptr<LanguageTagImpl>, (anonymous namespace)::compareIgnoreAsciiCaseLess, std::allocator<std::pair<rtl::OUString const, std::shared_ptr<LanguageTagImpl> > > >::find(rtl::OUString const&) /home/tdf/lode/opt_private/gcc-7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/../../../../include/c++/7.3.0/debug/map.h:561:32 > #4 0x2b52e4d00dcd in LanguageTag::registerImpl() const /i18nlangtag/source/languagetag/languagetag.cxx:888:50 > #5 0x2b52e4cdf693 in LanguageTag::getImpl() /i18nlangtag/source/languagetag/languagetag.cxx:1004:18 > #6 0x2b52e4cdf3fd in LanguageTag::LanguageTag(rtl::OUString const&, bool) /i18nlangtag/source/languagetag/languagetag.cxx:489:9 > #7 0x2b52b9aed628 in __cxx_global_var_init.2 /sfx2/source/view/lokhelper.cxx:77:13 > #8 0x2b52b9aed75e in _GLOBAL__sub_I_lokhelper.cxx /sfx2/source/view/lokhelper.cxx > #9 0x2b52b4f069c2 in _dl_init_internal (/lib64/ld-linux-x86-64.so.2+0xf9c2) > #10 0x2b52b4ef8179 (/lib64/ld-linux-x86-64.so.2+0x1179) > > 0x2b52e50be408 is located 40 bytes inside of global variable '(anonymous namespace)::theMapBcp47' defined in '/home/tdf/lode/jenkins/workspace/lo_ubsan/i18nlangtag/source/languagetag/languagetag.cxx:93:10' (0x2b52e50be3e0) of size 72 > registered at: > #0 0x43f4c8 in __asan_register_globals.part.13 /home/tdf/lode/packages/llvm-llvmorg-9.0.1.src/compiler-rt/lib/asan/asan_globals.cc:362 > #1 0x2b52e4d4031b in asan.module_ctor (/instdir/program/libi18nlangtag.so+0x16831b) > LLVMSymbolizer: error reading file: No such file or directory > #2 0x7fff567143b7 ([stack]+0x203b7) This is a partial revert of a943936eeff04b60ebd0b2552bc18b42606f3321 "rtl::Static -> static local". Change-Id: I5d6803d217d4e8927b5864b2392f3ddd18310a5a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119882 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2021-07-31rtl::Static -> static localNoel Grandin
in a handful cases, like a map or a vector, we don't need init on demand at all, the default constructor can be laid out at compile time Change-Id: Ifa3188af7a65cd475ce0f603d15a8c26bcda7e6d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119710 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-12Resolves: tdf#123466 Add Microsoft ill-used {x-none} to known language tagsEike Rathke
'x-none' is a private-use tag and letting it escape into the wild isn't such a private use.. This just prevents the lt_string_value assertion that doesn't harm anyway but seems to confuse people and makes the tag known to LibreOffice with a reproducible assigned LCID instead of an on-the-fly generated one. Whatever it may take to actually support something tagged with 'x-none'. Change-Id: I3f32c9ba18a2528584a112157509c1dfda75e29c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118788 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-07-09Make loplugin:stringadd slightly more aggressiveStephan Bergmann
...by assuming that all const member functions are side-effect free. (This presumably means that some of the special cases in StringAdd::isSideEffectFree are obsoleted by this more general case, but any such removal is postponed to later clean-up.) (Came across this when idly wondering why 8b7f948d9d79393bc6c1b11d239706666fd5d7de "sc, VmlFormControlExporter: avoid OStringBuffer style" had not been found by the plugin before.) Change-Id: I6bca10df53885b14a590543aabd61f23b3748572 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118675 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>