diff options
author | Jan-Marek Glogowski <jan-marek.glogowski@extern.cib.de> | 2019-11-26 22:05:10 +0100 |
---|---|---|
committer | Jan-Marek Glogowski <glogow@fbihome.de> | 2019-12-03 09:11:18 +0100 |
commit | 7a22576478efcf9445a572574b905d6dd07b1e74 (patch) | |
tree | 4e504b35f4a172b58a5ef4c1c56c0840da4c8988 /sal | |
parent | 65611a4772b6537658dbbc9392cdac31aef6c7a7 (diff) |
WIN accept single-backslash file URIs
From all I could find, a single (back-)slash file URI is fine as
a local file path.
This includes the commit "WIN enable NoAuthority test"
(cherry picked from commit f9fd9d4cd4f792cd4ec8e14df78f3193653dae67)
Change-Id: I75e95c809894cdef88f708d0477cb98eb114a107
Reviewed-on: https://gerrit.libreoffice.org/83837
Tested-by: Jenkins
Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
(cherry picked from commit 895cd72158fc8a455f705764ae4ae000b933eba4)
Reviewed-on: https://gerrit.libreoffice.org/83952
Diffstat (limited to 'sal')
-rw-r--r-- | sal/osl/w32/file_url.cxx | 10 | ||||
-rw-r--r-- | sal/qa/osl/getsystempathfromfileurl/test-getsystempathfromfileurl.cxx | 2 |
2 files changed, 6 insertions, 6 deletions
diff --git a/sal/osl/w32/file_url.cxx b/sal/osl/w32/file_url.cxx index e44a17a4d472..a5aba24248c4 100644 --- a/sal/osl/w32/file_url.cxx +++ b/sal/osl/w32/file_url.cxx @@ -676,7 +676,7 @@ oslFileError osl_getSystemPathFromFileURL_( rtl_uString *strURL, rtl_uString **p SAL_WARN_IF( strUTF8->length != strURL->length && - 0 == rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength( strURL->buffer, strURL->length, "file:\\\\", 7 ) + 0 == rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength( strURL->buffer, strURL->length, "file:\\", 6 ) , "sal.osl" ,"osl_getSystemPathFromFileURL: \"" << OUString(strURL) << "\" is not encoded !!!"); @@ -695,8 +695,8 @@ oslFileError osl_getSystemPathFromFileURL_( rtl_uString *strURL, rtl_uString **p const sal_Unicode *pDecodedURL = rtl_uString_getStr( strDecodedURL ); nDecodedLen = rtl_uString_getLength( strDecodedURL ); - /* Must start with "file://" */ - if ( 0 == rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength( pDecodedURL, nDecodedLen, "file:\\\\", 7 ) ) + /* Must start with "file:/" */ + if ( 0 == rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength( pDecodedURL, nDecodedLen, "file:\\", 6 ) ) { sal_uInt32 nSkip; @@ -707,8 +707,10 @@ oslFileError osl_getSystemPathFromFileURL_( rtl_uString *strURL, rtl_uString **p 0 == rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength( pDecodedURL, nDecodedLen, "file:\\\\127.0.0.1\\", 17 ) ) nSkip = 17; - else + else if ( 0 == rtl_ustr_ascii_shortenedCompareIgnoreAsciiCase_WithLength( pDecodedURL, nDecodedLen, "file:\\\\", 7 ) ) nSkip = 5; + else + nSkip = 6; /* Indicates local root */ if ( nDecodedLen == nSkip ) diff --git a/sal/qa/osl/getsystempathfromfileurl/test-getsystempathfromfileurl.cxx b/sal/qa/osl/getsystempathfromfileurl/test-getsystempathfromfileurl.cxx index 51022d9e3fe2..4fd5d6b16ffb 100644 --- a/sal/qa/osl/getsystempathfromfileurl/test-getsystempathfromfileurl.cxx +++ b/sal/qa/osl/getsystempathfromfileurl/test-getsystempathfromfileurl.cxx @@ -134,12 +134,10 @@ void Test::testLocalhost3Authority() { } void Test::testNoAuthority() { -#if !defined(_WIN32) //TODO OUString p; auto e = osl::FileBase::getSystemPathFromFileURL("file:" MY_PATH_IN, p); CPPUNIT_ASSERT_EQUAL(osl::FileBase::E_None, e); CPPUNIT_ASSERT_EQUAL(OUString(MY_PATH_OUT), p); -#endif } void Test::testEmptyPath() { |