diff options
author | Caolán McNamara <caolan.mcnamara@collabora.com> | 2024-01-26 09:44:38 +0000 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2024-01-30 10:45:35 +0100 |
commit | c59adfea8314ae56f3d4d9d946807f405b975a72 (patch) | |
tree | 107c7556fce49cfb64c5f24900c1b6aa71991dc2 | |
parent | 79da840fac78f11c156801c43d8b79d6d4f32869 (diff) |
LanguageTag ctor can canonicalize against various known tags
so can optimize skipping the _lt_tag_canonicalize path which ends up
using a fairly expensive xmlXPathEval
Change-Id: Ie96f16482d247f3731c1c8eac6d613736b8b289a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162596
Tested-by: Jenkins
Reviewed-by: Eike Rathke <erack@redhat.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit c225d602e093da9240693d7f67afb9da4806e0e9)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162628
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
-rw-r--r-- | editeng/source/misc/acorrcfg.cxx | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/editeng/source/misc/acorrcfg.cxx b/editeng/source/misc/acorrcfg.cxx index 53a43cff3f22..be4cc90e3680 100644 --- a/editeng/source/misc/acorrcfg.cxx +++ b/editeng/source/misc/acorrcfg.cxx @@ -65,13 +65,12 @@ static void scanAutoCorrectDirForLanguageTags( const OUString& rURL ) continue; const OUString aBcp47( aTitle.copy( 5, aTitle.getLength() - 9)); - OUString aCanonicalized; // Ignore invalid langtags and canonicalize for good, // allow private-use tags. - if (!LanguageTag::isValidBcp47( aBcp47, &aCanonicalized)) + const LanguageTag aLanguageTag (aBcp47, true); + if (!aLanguageTag.isValidBcp47()) continue; - const LanguageTag aLanguageTag( aCanonicalized); if (SvtLanguageTable::HasLanguageType( aLanguageTag.getLanguageType())) continue; @@ -83,7 +82,7 @@ static void scanAutoCorrectDirForLanguageTags( const OUString& rURL ) // other private-use tag (which should not fallback, // but avoid). if (aLanguageTag.getCountry().isEmpty() - && LanguageTag::isValidBcp47( aCanonicalized, nullptr, + && LanguageTag::isValidBcp47( aLanguageTag.getBcp47(), nullptr, LanguageTag::PrivateUse::DISALLOW)) { LanguageTag aFallback( aLanguageTag); |