[Libreoffice-commits] core.git: sw/qa writerfilter/source
László Németh (via logerrit)
logerrit at kemper.freedesktop.org
Mon Apr 19 20:25:27 UTC 2021
sw/qa/extras/ooxmlexport/data/tdf141548.docx |binary
sw/qa/extras/ooxmlexport/ooxmlexport14.cxx | 10 ++++++++++
writerfilter/source/dmapper/DomainMapper.cxx | 4 +++-
3 files changed, 13 insertions(+), 1 deletion(-)
New commits:
commit 6fd2bb9b8967c4945550b0f7b7541aaace8020c1
Author: László Németh <nemeth at numbertext.org>
AuthorDate: Mon Apr 19 17:52:17 2021 +0200
Commit: László Németh <nemeth at numbertext.org>
CommitDate: Mon Apr 19 22:24:44 2021 +0200
tdf#141548 DOCX import: fix lost text after endnoteRef
First run of the endnote (footnote) can contain not
only the footnoteRef/endnoteRef, but endnote (footnote)
text, too. This text was lost as a regression from
commit 7dd8f8aace536a8e60e87e61ee1d90d61fba15eb
"tdf#120351 DOCX import: fix slow endnote import",
and in the case of the footnotes, from
commit 9b39ce0e66acfe812e1d50e530dc2ccdef3e1357
"tdf#76260 DOCX import: fix slow footnote import".
Change-Id: I9964ee47f456a7632a21ab3b0588d3cb70388011
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114300
Tested-by: Jenkins
Reviewed-by: László Németh <nemeth at numbertext.org>
diff --git a/sw/qa/extras/ooxmlexport/data/tdf141548.docx b/sw/qa/extras/ooxmlexport/data/tdf141548.docx
new file mode 100644
index 000000000000..65c4e8b90756
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/tdf141548.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx
index 7709c46afb66..06c5a16e578a 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport14.cxx
@@ -1178,6 +1178,16 @@ DECLARE_OOXMLEXPORT_EXPORTONLY_TEST(testTdf141172, "tdf141172.docx")
assertXPath(pXml, "/w:endnotes/w:endnote/w:tbl", 2);
}
+DECLARE_OOXMLEXPORT_EXPORTONLY_TEST(testTdf141548, "tdf141548.docx")
+{
+ xmlDocUniquePtr pXml = parseExport("word/endnotes.xml");
+ CPPUNIT_ASSERT(pXml);
+ // This was 0 (lost text content of the run with endnoteRef)
+ assertXPath(pXml, "/w:endnotes/w:endnote[4]/w:p/w:r[2]/w:t", 2);
+ assertXPathContent(pXml, "/w:endnotes/w:endnote[4]/w:p/w:r[2]/w:t[1]", "another endnote");
+ assertXPathContent(pXml, "/w:endnotes/w:endnote[4]/w:p/w:r[2]/w:t[2]", "new line");
+}
+
DECLARE_OOXMLEXPORT_TEST(testContSectBreakHeaderFooter, "cont-sect-break-header-footer.docx")
{
// Load a document with a continuous section break on page 2.
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx
index 9d163f2e671e..fddbea557c6c 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -3645,7 +3645,9 @@ void DomainMapper::lcl_utext(const sal_uInt8 * data_, size_t len)
if (pContext && pContext->GetFootnote().is())
{
pContext->GetFootnote()->setLabel( sText );
- //otherwise ignore sText
+ // tdf#141548 don't lose footnote/endnote text of the run with uFtnEdnRef
+ // (i.e. when footnoteRef/endnoteRef is followed by some text in the same run)
+ m_pImpl->appendTextPortion( sText, pContext );
}
else if (m_pImpl->IsOpenFieldCommand() && !m_pImpl->IsForceGenericFields())
{
More information about the Libreoffice-commits
mailing list