Adapting to liblangtag 0.4.0

Change-Id: Ie70a38a1481a280760a435f4809020ed5a327627
This commit is contained in:
Fridrich Štrba 2012-11-06 14:55:41 +01:00
parent 2254f5022d
commit 6e02f49a0f

View file

@ -285,14 +285,6 @@ bool LanguageTag::canonicalize() const
dumper aDumper( &mpImplLangtag);
#endif
// g_error_free() mocks about NULL, so ...
struct myerror
{
GError* p;
myerror() : p(NULL) {}
~myerror() { if (p) g_error_free( p); }
} aError;
getBcp47(); // side effect: have maBcp47 in any case
// Checking empty for system locale before having allocated mpImplLangtag
// may result in multiple calls of this method because that serves as flag
@ -305,11 +297,16 @@ bool LanguageTag::canonicalize() const
}
if (!mpImplLangtag)
mpImplLangtag = lt_tag_new();
if (lt_tag_parse( MPLANGTAG, OUStringToOString( maBcp47, RTL_TEXTENCODING_UTF8).getStr(), &aError.p))
lt_error_t *pError;
if (lt_tag_parse( MPLANGTAG, OUStringToOString( maBcp47, RTL_TEXTENCODING_UTF8).getStr(), &pError))
{
gchar* pTag = lt_tag_canonicalize( MPLANGTAG, &aError.p);
SAL_WARN_IF( !pTag || aError.p, "i18npool.langtag", "LanguageTag::canonicalize: could not canonicalize, " <<
(aError.p ? aError.p->message : ""));
char* pTag = lt_tag_canonicalize( MPLANGTAG, &pError);
#if 0
SAL_WARN_IF( !pTag || lt_error_is_set(pError), "i18npool.langtag", "LanguageTag::canonicalize: could not canonicalize, " <<
(lt_error_is_set(pError) ? pError->message : ""));
#endif
if (pTag)
{
OUString aOld( maBcp47);
@ -318,26 +315,30 @@ bool LanguageTag::canonicalize() const
// removes default script and such.
if (maBcp47 != aOld)
{
if (!lt_tag_parse( MPLANGTAG, pTag, &aError.p))
if (!lt_tag_parse( MPLANGTAG, pTag, &pError))
{
#if 0
SAL_WARN( "i18npool.langtag", "LanguageTag::canonicalize: could not reparse, " <<
(aError.p ? aError.p->message : ""));
g_free( pTag);
(lt_error_is_set(pError) ? pError->message : ""));
#endif
free( pTag);
meIsValid = DECISION_NO;
return false;
}
}
g_free( pTag);
free( pTag);
meIsValid = DECISION_YES;
return true;
}
}
else
{
#if 0
SAL_INFO(
"i18npool.langtag",
"LanguageTag::canonicalize " << maBcp47 << ": could not parse, "
<< (aError.p ? aError.p->message : ""));
<< (lt_error_is_set(pError) ? pError->message : ""));
#endif
}
meIsValid = DECISION_NO;
return false;
@ -472,7 +473,7 @@ rtl::OUString LanguageTag::getLanguageFromLangtag() const
SAL_WARN_IF( !pLangT, "i18npool.langtag", "LanguageTag::getLanguageFromLangtag: pLangT==NULL");
if (!pLangT)
return aLanguage;
const gchar* pLang = lt_lang_get_tag( pLangT);
const char* pLang = lt_lang_get_tag( pLangT);
SAL_WARN_IF( !pLang, "i18npool.langtag", "LanguageTag::getLanguageFromLangtag: pLang==NULL");
if (pLang)
aLanguage = OUString::createFromAscii( pLang);
@ -491,7 +492,7 @@ rtl::OUString LanguageTag::getScriptFromLangtag() const
// pScriptT==NULL is valid for default scripts
if (!pScriptT)
return aScript;
const gchar* pScript = lt_script_get_tag( pScriptT);
const char* pScript = lt_script_get_tag( pScriptT);
SAL_WARN_IF( !pScript, "i18npool.langtag", "LanguageTag::getScriptFromLangtag: pScript==NULL");
if (pScript)
aScript = OUString::createFromAscii( pScript);
@ -510,7 +511,7 @@ rtl::OUString LanguageTag::getRegionFromLangtag() const
SAL_WARN_IF( !pRegionT, "i18npool.langtag", "LanguageTag::getRegionFromLangtag: pRegionT==NULL");
if (!pRegionT)
return aRegion;
const gchar* pRegion = lt_region_get_tag( pRegionT);
const char* pRegion = lt_region_get_tag( pRegionT);
SAL_WARN_IF( !pRegion, "i18npool.langtag", "LanguageTag::getRegionFromLangtag: pRegion==NULL");
if (pRegion)
aRegion = OUString::createFromAscii( pRegion);