summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorKohei Yoshida <kohei@libreoffice.org>2019-08-27 13:55:56 -0400
committerKohei Yoshida <kohei@libreoffice.org>2019-08-27 20:55:54 +0200
commitd9f5a8f6cf771017a52252341b75a5d9c1c389e1 (patch)
treebc0fcb9959ee4219006a3d94bfa263e3e11c1690 /sc
parent60d4be99383b6fe13ca55572c43fd022bdc73ce8 (diff)
Use getSystemPathFromFileURL() which is exactly what we need.
Change-Id: I09b77435d1dcd1c5e717fe4f976620bcdcecfb54 Reviewed-on: https://gerrit.libreoffice.org/78206 Tested-by: Jenkins Reviewed-by: Kohei Yoshida <kohei@libreoffice.org>
Diffstat (limited to 'sc')
-rw-r--r--sc/source/filter/inc/orcusfiltersimpl.hxx2
-rw-r--r--sc/source/filter/orcus/orcusfiltersimpl.cxx12
-rw-r--r--sc/source/filter/orcus/xmlcontext.cxx11
3 files changed, 9 insertions, 16 deletions
diff --git a/sc/source/filter/inc/orcusfiltersimpl.hxx b/sc/source/filter/inc/orcusfiltersimpl.hxx
index ac8603c6cfaf..220e32f32608 100644
--- a/sc/source/filter/inc/orcusfiltersimpl.hxx
+++ b/sc/source/filter/inc/orcusfiltersimpl.hxx
@@ -17,8 +17,6 @@
class ScOrcusFiltersImpl : public ScOrcusFilters
{
public:
- static OString toSystemPath(const OUString& rPath);
-
virtual bool importCSV(ScDocument& rDoc, SfxMedium& rMedium) const override;
virtual bool importGnumeric(ScDocument& rDoc, SfxMedium& rMedium) const override;
virtual bool importExcel2003XML(ScDocument& rDoc, SfxMedium& rMedium) const override;
diff --git a/sc/source/filter/orcus/orcusfiltersimpl.cxx b/sc/source/filter/orcus/orcusfiltersimpl.cxx
index 0f3b03dbbd15..72e2f3612aaa 100644
--- a/sc/source/filter/orcus/orcusfiltersimpl.cxx
+++ b/sc/source/filter/orcus/orcusfiltersimpl.cxx
@@ -28,12 +28,6 @@
#include <orcus/stream.hpp>
#include <com/sun/star/task/XStatusIndicator.hpp>
-#ifdef _WIN32
-#define SYSTEM_PATH FSysStyle::Dos
-#else
-#define SYSTEM_PATH FSysStyle::Unix
-#endif
-
using namespace com::sun::star;
namespace {
@@ -81,12 +75,6 @@ bool loadFileContent(SfxMedium& rMedium, orcus::iface::import_filter& filter)
}
-OString ScOrcusFiltersImpl::toSystemPath(const OUString& rPath)
-{
- INetURLObject aURL(rPath);
- return OUStringToOString(aURL.getFSysPath(SYSTEM_PATH), RTL_TEXTENCODING_UTF8);
-}
-
bool ScOrcusFiltersImpl::importCSV(ScDocument& rDoc, SfxMedium& rMedium) const
{
ScOrcusFactory aFactory(rDoc);
diff --git a/sc/source/filter/orcus/xmlcontext.cxx b/sc/source/filter/orcus/xmlcontext.cxx
index 71c44bc35823..18574b0c2a1f 100644
--- a/sc/source/filter/orcus/xmlcontext.cxx
+++ b/sc/source/filter/orcus/xmlcontext.cxx
@@ -16,6 +16,7 @@
#include <vcl/weld.hxx>
#include <ucbhelper/content.hxx>
#include <sal/log.hxx>
+#include <osl/file.hxx>
#include <orcus/xml_structure_tree.hpp>
#include <orcus/xml_namespace.hpp>
@@ -238,8 +239,14 @@ public:
void ScOrcusXMLContextImpl::importXML(const ScOrcusImportXMLParam& rParam)
{
ScOrcusFactory aFactory(mrDoc, true);
- OString aSysPath = ScOrcusFiltersImpl::toSystemPath(maPath);
- const char* path = aSysPath.getStr();
+
+ OUString aSysPath;
+ if (osl::FileBase::getSystemPathFromFileURL(maPath, aSysPath) != osl::FileBase::E_None)
+ return;
+
+ OString aOSysPath = OUStringToOString(aSysPath, RTL_TEXTENCODING_UTF8);
+ const char* path = aOSysPath.getStr();
+
try
{
orcus::orcus_xml filter(maNsRepo, &aFactory, nullptr);