Properly decompose URL

Desktop / LibreOffice - Stephan Bergmann [] - 4 June 2018 18:28 EDT

When the URL encoded in the URL's authority contains a "@" (e.g., because it is a file URL denoting a pathname containging a "@" in one of the segments), that "@" need not be encoded (cf. the grammar at the top of tools/source/fsys/urlobj.cxx) and INetURLObject::GetHost would only return the part following the "@".

When constructing sBaseURI in ODatabaseContext::loadObjectFromURL (dbaccess/source/core/dataaccess/databasecontext.cxx), the path part shall obviously not be decoded (but which the original code erroneously did). However, when obtaining sStreamRelPath in ODBFilter::implImport (dbaccess/source/filter/xml/xmlfilter.cxx), it isn't clear to me whether the path should be decoded, so I left that in (and added a TODO).

(Caused `make CppunitTest_sw_uiwriter CPPUNIT_TEST_NAME=SwUiWriterTest::testEmbeddedDataSource` to fail when SRCDIR is such a pathname containing a "@" in one of the segments.)

Change-Id: I6ffd842f3f3d37d2682e7cf14399fb3dbfa0a2aa Reviewed-on:

e310ac4ab942 Properly decompose URL
.../source/core/dataaccess/databasecontext.cxx | 24 +++++++++++--
dbaccess/source/filter/xml/xmlfilter.cxx | 40 ++++++++++++++++++----
2 files changed, 56 insertions(+), 8 deletions(-)


  • Share