diff options
Diffstat (limited to 'i18npool')
-rw-r--r-- | i18npool/qa/cppunit/test_languagetag.cxx | 6 | ||||
-rw-r--r-- | i18npool/source/languagetag/languagetag.cxx | 14 |
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 |