summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan-Marek Glogowski <jan-marek.glogowski@extern.cib.de>2019-11-26 22:05:10 +0100
committerThorsten Behrens <Thorsten.Behrens@CIB.de>2019-12-05 15:31:20 +0100
commit0aaf48842a3ae0b592ee0415f152ff02a62be7ff (patch)
tree7358647b3a24dd715f586cc091d54e732b5bc7c2
parentb5ad13a606f93955d983beef5baacac6a694b7cb (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 (cherry picked from commit 7a22576478efcf9445a572574b905d6dd07b1e74) Reviewed-on: https://gerrit.libreoffice.org/84305 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
-rw-r--r--sal/osl/w32/file_url.cxx10
-rw-r--r--sal/qa/osl/getsystempathfromfileurl/test-getsystempathfromfileurl.cxx2
2 files changed, 6 insertions, 6 deletions
diff --git a/sal/osl/w32/file_url.cxx b/sal/osl/w32/file_url.cxx
index 9b5cb51b110a..d6339849f08d 100644
--- a/sal/osl/w32/file_url.cxx
+++ b/sal/osl/w32/file_url.cxx
@@ -634,7 +634,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: \"" << rtl::OUString(strURL) << "\" is not encoded !!!");
@@ -653,8 +653,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;
@@ -665,8 +665,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() {