sw/qa/extras/htmlexport/data/reqif-p.xhtml | 1 + sw/qa/extras/htmlexport/htmlexport.cxx | 4 ++++ sw/source/filter/html/wrthtml.cxx | 18 +++++++++++++++--- 3 files changed, 20 insertions(+), 3 deletions(-)
New commits: commit bbcab55e7e1b8e062c066dae841ff1318ef4c42a Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Tue Jul 10 13:54:54 2018 +0200 sw HTML export: fix bookmark output in XHTML mode Missing XML namespace, wrong attribute name, missing escaping for the bookmark name. Change-Id: I639c147574e059083646b4c33ede9d478d6c0c38 Reviewed-on: https://gerrit.libreoffice.org/57230 Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> Tested-by: Jenkins (cherry picked from commit 967eb080ac91e3b59fb244dc6d6106a264d0fbf1) diff --git a/sw/qa/extras/htmlexport/data/reqif-p.xhtml b/sw/qa/extras/htmlexport/data/reqif-p.xhtml index fa69342d00a6..304857d9a9f8 100644 --- a/sw/qa/extras/htmlexport/data/reqif-p.xhtml +++ b/sw/qa/extras/htmlexport/data/reqif-p.xhtml @@ -5,3 +5,4 @@ <reqif-xhtml:strong>s</reqif-xhtml:strong> <reqif-xhtml:strike>s</reqif-xhtml:strike> <reqif-xhtml:font color="#ce181e">s</reqif-xhtml:font> +<reqif-xhtml:a name="Bookmark 1"></reqif-xhtml:a> diff --git a/sw/qa/extras/htmlexport/htmlexport.cxx b/sw/qa/extras/htmlexport/htmlexport.cxx index bf46da807fa6..161d1fc098e5 100644 --- a/sw/qa/extras/htmlexport/htmlexport.cxx +++ b/sw/qa/extras/htmlexport/htmlexport.cxx @@ -372,6 +372,10 @@ DECLARE_HTMLEXPORT_TEST(testReqIfParagraph, "reqif-p.xhtml") // This was "<font>" instead of CSS + namespace prefix was missing. CPPUNIT_ASSERT(aStream.indexOf("<reqif-xhtml:span style=\"color: #ce181e\"") != -1); + + // This was '<a name="Bookmark 1"': missing namespace prefix, wrong + // attribute name, wrong attribute value. + CPPUNIT_ASSERT(aStream.indexOf("<reqif-xhtml:a id=\"Bookmark_1\"></reqif-xhtml:a>") != -1); } DECLARE_HTMLEXPORT_ROUNDTRIP_TEST(testReqIfOleData, "reqif-ole-data.xhtml") diff --git a/sw/source/filter/html/wrthtml.cxx b/sw/source/filter/html/wrthtml.cxx index ab71a1a96b22..20b96a248045 100644 --- a/sw/source/filter/html/wrthtml.cxx +++ b/sw/source/filter/html/wrthtml.cxx @@ -1120,9 +1120,21 @@ const SwPageDesc *SwHTMLWriter::MakeHeader( sal_uInt16 &rHeaderAttrs ) void SwHTMLWriter::OutAnchor( const OUString& rName ) { OStringBuffer sOut; - sOut.append("<" OOO_STRING_SVTOOLS_HTML_anchor " " OOO_STRING_SVTOOLS_HTML_O_name "=\""); - Strm().WriteCharPtr( sOut.makeStringAndClear().getStr() ); - HTMLOutFuncs::Out_String( Strm(), rName, m_eDestEnc, &m_aNonConvertableCharacters ).WriteCharPtr( "\">" ); + sOut.append("<" + GetNamespace() + OOO_STRING_SVTOOLS_HTML_anchor " "); + if (!mbXHTML) + { + sOut.append(OOO_STRING_SVTOOLS_HTML_O_name "=\""); + Strm().WriteCharPtr( sOut.makeStringAndClear().getStr() ); + HTMLOutFuncs::Out_String( Strm(), rName, m_eDestEnc, &m_aNonConvertableCharacters ).WriteCharPtr( "\">" ); + } + else + { + // XHTML wants 'id' instead of 'name', also the value can't contain + // spaces. + sOut.append(OOO_STRING_SVTOOLS_HTML_O_id "=\""); + Strm().WriteCharPtr( sOut.makeStringAndClear().getStr() ); + HTMLOutFuncs::Out_String( Strm(), rName.replace(' ', '_'), m_eDestEnc, &m_aNonConvertableCharacters ).WriteCharPtr( "\">" ); + } HTMLOutFuncs::Out_AsciiTag( Strm(), GetNamespace() + OOO_STRING_SVTOOLS_HTML_anchor, false ); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits