sw/qa/extras/ooxmlexport/data/absolute-link.docx |binary sw/qa/extras/ooxmlexport/ooxmllinks.cxx | 8 +++++--- sw/source/filter/ww8/wrtw8nds.cxx | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-)
New commits: commit 84dda56fe8c9b8999fda61d95b0615be57d6e97f Author: Szymon KÅos <[email protected]> Date: Mon Nov 20 22:40:21 2017 +0100 tdf#86087 don't decode links Example of link causing problems: "file:///foo#bar" Change-Id: Ifb781c27c3b9726ba262f10cf07c13cfd889dcd3 Reviewed-on: https://gerrit.libreoffice.org/45010 Reviewed-by: Miklos Vajna <[email protected]> Tested-by: Miklos Vajna <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/45051 Reviewed-by: Thorsten Behrens <[email protected]> Tested-by: Thorsten Behrens <[email protected]> diff --git a/sw/qa/extras/ooxmlexport/data/absolute-link.docx b/sw/qa/extras/ooxmlexport/data/absolute-link.docx index 34480d0a2b94..db36a6f32a87 100755 Binary files a/sw/qa/extras/ooxmlexport/data/absolute-link.docx and b/sw/qa/extras/ooxmlexport/data/absolute-link.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmllinks.cxx b/sw/qa/extras/ooxmlexport/ooxmllinks.cxx index 5d1c8f6a2d56..b6a1f77061fd 100755 --- a/sw/qa/extras/ooxmlexport/ooxmllinks.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmllinks.cxx @@ -39,7 +39,8 @@ protected: \ /* Get original link */ \ OUString sOriginalFileName = getProperty<OUString>(xText, "HyperLinkURL"); \ INetURLObject aOriginalURL; \ - aOriginalURL.setFSysPath(sOriginalFileName, INetURLObject::FSYS_DETECT); \ + bool bOk = aOriginalURL.setFSysPath(sOriginalFileName, INetURLObject::FSYS_DETECT); \ + if(!bOk) aOriginalURL = INetURLObject(sOriginalFileName); \ OUString sFileName = aOriginalURL.GetName().isEmpty() ? sOriginalFileName : aOriginalURL.GetName(); \ \ /* Get temp path */ \ @@ -139,7 +140,8 @@ DECLARE_LINKS_IMPORT_TEST(testAbsoluteToAbsoluteImport, "absolute-link.docx", US { uno::Reference<text::XTextRange> xParagraph = getParagraph(1); uno::Reference<text::XTextRange> xText = getRun(xParagraph, 1); - CPPUNIT_ASSERT_EQUAL(OUString("file:///B:\\Users\\user\\Desktop\\test.docx"), getProperty<OUString>(xText, "HyperLinkURL")); + // # should be encoded + CPPUNIT_ASSERT_EQUAL(OUString("file:///B:/Users/user/Desktop/a%23b/test.docx"), getProperty<OUString>(xText, "HyperLinkURL")); } DECLARE_LINKS_IMPORT_TEST(testAbsoluteToRelativeImport, "absolute-link.docx", USE_RELATIVE) @@ -147,7 +149,7 @@ DECLARE_LINKS_IMPORT_TEST(testAbsoluteToRelativeImport, "absolute-link.docx", US uno::Reference<text::XTextRange> xParagraph = getParagraph(1); uno::Reference<text::XTextRange> xText = getRun(xParagraph, 1); // when target file (B:\\...) & document with link (temp dir) are placed on different partitions, absolute path will be loaded - CPPUNIT_ASSERT_EQUAL(OUString("file:///B:\\Users\\user\\Desktop\\test.docx"), getProperty<OUString>(xText, "HyperLinkURL")); + CPPUNIT_ASSERT_EQUAL(OUString("file:///B:/Users/user/Desktop/a%23b/test.docx"), getProperty<OUString>(xText, "HyperLinkURL")); } /* EXPORT */ diff --git a/sw/source/filter/ww8/wrtw8nds.cxx b/sw/source/filter/ww8/wrtw8nds.cxx index bc98076f174c..467355777f29 100644 --- a/sw/source/filter/ww8/wrtw8nds.cxx +++ b/sw/source/filter/ww8/wrtw8nds.cxx @@ -947,7 +947,7 @@ OUString AttributeOutputBase::ConvertURL( const OUString& rUrl, bool bAbsoluteOu INetURLObject anAbsoluteNew; if ( anAbsoluteParent.GetNewAbsURL( rUrl, &anAbsoluteNew ) ) - sURL = anAbsoluteNew.GetMainURL( INetURLObject::DECODE_WITH_CHARSET ); + sURL = anAbsoluteNew.GetMainURL( INetURLObject::NO_DECODE ); else sURL = rUrl; } @@ -956,7 +956,7 @@ OUString AttributeOutputBase::ConvertURL( const OUString& rUrl, bool bAbsoluteOu OUString sToConvert = rUrl.replaceAll( "\\", "/" ); INetURLObject aURL( sToConvert ); sToConvert = INetURLObject::GetScheme( aURL.GetProtocol() ) + aURL.GetURLPath(); - OUString sRelative = INetURLObject::GetRelURL( sParentPath, sToConvert, INetURLObject::WAS_ENCODED, INetURLObject::DECODE_WITH_CHARSET ); + OUString sRelative = INetURLObject::GetRelURL( sParentPath, sToConvert, INetURLObject::WAS_ENCODED, INetURLObject::NO_DECODE ); if ( !sRelative.isEmpty() ) sURL = sRelative; }
_______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
