summaryrefslogtreecommitdiff
path: root/i18npool
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2012-08-11 12:50:11 +0200
committerEike Rathke <erack@redhat.com>2012-08-11 13:41:26 +0200
commitd724f64703eaa0b0595fc4983e42875f2b439e88 (patch)
tree6147a4051d32cc7eb24c1990263feb814244113f /i18npool
parent15e7f34a2134b1a4d892f4e4d945b9cb547202ac (diff)
langtag: pass system path as data path instead of file URL
Diffstat (limited to 'i18npool')
-rw-r--r--i18npool/qa/cppunit/test_languagetag.cxx6
-rw-r--r--i18npool/source/languagetag/languagetag.cxx14
2 files changed, 13 insertions, 7 deletions
diff --git a/i18npool/qa/cppunit/test_languagetag.cxx b/i18npool/qa/cppunit/test_languagetag.cxx
index fee5769f795c..c8a5f7c522b5 100644
--- a/i18npool/qa/cppunit/test_languagetag.cxx
+++ b/i18npool/qa/cppunit/test_languagetag.cxx
@@ -54,12 +54,14 @@ void TestLanguageTag::testInit()
const char* pEnv = getenv("OUTDIR");
CPPUNIT_ASSERT_MESSAGE("No $OUTDIR", pEnv);
aBuf.append( "file:///").append( OStringToOUString( pEnv, RTL_TEXTENCODING_UTF8)).append( "/share/liblangtag");
- OUString aPath( aBuf.makeStringAndClear());
- OUString aData( aPath);
+ OUString aURL( aBuf.makeStringAndClear());
+ OUString aData( aURL);
aData += "/language-subtag-registry.xml";
osl::DirectoryItem aDirItem;
CPPUNIT_ASSERT_MESSAGE("liblangtag data not found",
osl::DirectoryItem::get( aData, aDirItem) == osl::DirectoryItem::E_None);
+ OUString aPath;
+ CPPUNIT_ASSERT( osl::FileBase::getSystemPathFromFileURL( aURL, aPath) == osl::FileBase::E_None);
LanguageTag::overrideDataPath( aPath);
#endif
}
diff --git a/i18npool/source/languagetag/languagetag.cxx b/i18npool/source/languagetag/languagetag.cxx
index 41923742a2b1..68474d8907a6 100644
--- a/i18npool/source/languagetag/languagetag.cxx
+++ b/i18npool/source/languagetag/languagetag.cxx
@@ -113,19 +113,23 @@ void LiblantagDataRef::presetDataPath( const rtl::OUString& rPath )
void LiblantagDataRef::setupDataPath()
{
// maDataPath is assumed to be empty here.
- OUString aPath;
- if (!rtl::Bootstrap::get( "BRAND_BASE_DIR", aPath))
+ OUString aURL;
+ if (!rtl::Bootstrap::get( "BRAND_BASE_DIR", aURL))
OSL_FAIL( "LiblantagDataRef: can't get BRAND_BASE_DIR");
else
{
// Check if data is in our own installation, else assume system
// installation.
- aPath += "/share/liblangtag";
- OUString aData( aPath);
+ aURL += "/share/liblangtag";
+ OUString aData( aURL);
aData += "/language-subtag-registry.xml";
osl::DirectoryItem aDirItem;
if (osl::DirectoryItem::get( aData, aDirItem) == osl::DirectoryItem::E_None)
- maDataPath = OUStringToOString( aPath, RTL_TEXTENCODING_UTF8);
+ {
+ OUString aPath;
+ if (osl::FileBase::getSystemPathFromFileURL( aURL, aPath) == osl::FileBase::E_None)
+ maDataPath = OUStringToOString( aPath, RTL_TEXTENCODING_UTF8);
+ }
}
if (maDataPath.isEmpty())
maDataPath = "|"; // assume system