diff options
Diffstat (limited to 'i18nlangtag')
-rw-r--r-- | i18nlangtag/source/languagetag/languagetag.cxx | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/i18nlangtag/source/languagetag/languagetag.cxx b/i18nlangtag/source/languagetag/languagetag.cxx index fd3f1156c744..862b4e24f777 100644 --- a/i18nlangtag/source/languagetag/languagetag.cxx +++ b/i18nlangtag/source/languagetag/languagetag.cxx @@ -1636,10 +1636,10 @@ OUString LanguageTagImpl::getRegionFromLangtag() OUString LanguageTagImpl::getVariantsFromLangtag() { - OUString aVariants; + OUStringBuffer aVariants; synCanonicalize(); if (maBcp47.isEmpty()) - return aVariants; + return OUString(); if (mpImplLangtag) { const lt_list_t* pVariantsT = lt_tag_get_variants( mpImplLangtag); @@ -1651,10 +1651,9 @@ OUString LanguageTagImpl::getVariantsFromLangtag() const char* p = lt_variant_get_tag( pVariantT); if (p) { - if (aVariants.isEmpty()) - aVariants = OUString::createFromAscii( p); - else - aVariants += "-" + OUString::createFromAscii( p); + if (!aVariants.isEmpty()) + aVariants.append("-"); + aVariants.appendAscii(p); } } } @@ -1664,7 +1663,7 @@ OUString LanguageTagImpl::getVariantsFromLangtag() if (mbCachedVariants || cacheSimpleLSCV()) aVariants = maCachedVariants; } - return aVariants; + return aVariants.makeStringAndClear(); } |