[Libreoffice-commits] core.git: sw/qa sw/source
Miklos Vajna
vmiklos at collabora.co.uk
Tue Jul 10 16:27:49 UTC 2018
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 967eb080ac91e3b59fb244dc6d6106a264d0fbf1
Author: Miklos Vajna <vmiklos at 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 <vmiklos at collabora.co.uk>
Tested-by: Jenkins
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 229c553502cd..499d8c3dc0c8 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 02a1eec40068..c0347613752e 100644
--- a/sw/source/filter/html/wrthtml.cxx
+++ b/sw/source/filter/html/wrthtml.cxx
@@ -1110,9 +1110,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 );
}
More information about the Libreoffice-commits
mailing list