diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2019-02-15 06:38:32 +0300 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2019-02-15 11:10:19 +0100 |
commit | d9f9a9e56d558174cb5ff96c3bb78a5692a26570 (patch) | |
tree | f6e5a2f5a9eaa2912c416f243d760fed41c2b26a /desktop/source | |
parent | 465939feb0e9c382e5581b53b72008979ece4807 (diff) |
tdf#123474: use INetURLObject methods to construct valid URI
This ensures that no extra slashes are added to the path when it
already ends with a slash; for Windows drive root path (e.g. C:\)
the trailing slash is always kept to not change the meaning to
"current path on the drive", which is different from "root of the
drive". Our IsValidFilePath does not allow more than one slash
after <drive:>.
Change-Id: Ife3cd9e146573a0c278834f795f0d7318c2d303a
Reviewed-on: https://gerrit.libreoffice.org/67850
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'desktop/source')
-rw-r--r-- | desktop/source/app/dispatchwatcher.cxx | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/desktop/source/app/dispatchwatcher.cxx b/desktop/source/app/dispatchwatcher.cxx index 3a8b2d9961a0..872d98333982 100644 --- a/desktop/source/app/dispatchwatcher.cxx +++ b/desktop/source/app/dispatchwatcher.cxx @@ -575,10 +575,13 @@ bool DispatchWatcher::executeDispatchRequests( const std::vector<DispatchRequest else aFilterOut = aParam.copy( nPathIndex+1 ); - INetURLObject aOutFilename( aObj ); - aOutFilename.SetExtension( aFilterExt ); FileBase::getFileURLFromSystemPath( aFilterOut, aFilterOut ); - OUString aOutFile = aFilterOut + "/" + aOutFilename.getName(); + INetURLObject aOutFilename(aFilterOut); + aOutFilename.Append(aObj.getName(INetURLObject::LAST_SEGMENT, true, + INetURLObject::DecodeMechanism::NONE)); + aOutFilename.SetExtension(aFilterExt); + OUString aOutFile + = aOutFilename.GetMainURL(INetURLObject::DecodeMechanism::NONE); std::unique_ptr<utl::TempFile> fileForCat; if( aDispatchRequest.aRequestType == REQUEST_CAT ) |