summaryrefslogtreecommitdiff
path: root/sc/source/filter/excel/xestream.cxx
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2017-08-24 09:59:42 +0200
committerSzymon Kłos <szymon.klos@collabora.com>2017-08-25 09:58:15 +0200
commit51e610e584e09ecdec4cbc5c7c550bc806d7ee1c (patch)
treef4811e90caf1542a3d909758d3d2c3b4477df5fc /sc/source/filter/excel/xestream.cxx
parentf0b0123fa3f70ede8592befcd01381542db76617 (diff)
tdf#111876 Save correct relative links in Calc
Relative links were saved as: file:///a/file.odt instead of: ../a/file.odt Relative path was based on source document, not target. Unit test contains spreadsheet with relative link to the "../xls/bug-fixes.xls" file. Change-Id: I803b7b8936bde9644ae5760756ee7249677f2641 Reviewed-on: https://gerrit.libreoffice.org/41500 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Diffstat (limited to 'sc/source/filter/excel/xestream.cxx')
-rw-r--r--sc/source/filter/excel/xestream.cxx4
1 files changed, 4 insertions, 0 deletions
diff --git a/sc/source/filter/excel/xestream.cxx b/sc/source/filter/excel/xestream.cxx
index e4ef28b4e4dd..52e4d5b34056 100644
--- a/sc/source/filter/excel/xestream.cxx
+++ b/sc/source/filter/excel/xestream.cxx
@@ -1060,6 +1060,10 @@ bool XclExpXmlStream::exportDocument()
aData.maMaxPos.SetRow( ::std::min( aData.maScMaxPos.Row(), aData.maXclMaxPos.Row() ) );
aData.maMaxPos.SetTab( ::std::min( aData.maScMaxPos.Tab(), aData.maXclMaxPos.Tab() ) );
aData.mpCompileFormulaCxt.reset( new sc::CompileFormulaContext(&rDoc) );
+ // set target path to get correct relative links to target document, not source
+ INetURLObject aPath(getFileUrl());
+ aData.maBasePath = aPath.GetPath() + "\\";
+ aData.maBasePath = "file:///" + aData.maBasePath.replace('\\', '/');
XclExpRoot aRoot( aData );