tdf#107969: use proper serializer for VML in footnotes/endnotes
Change-Id: Ie0e062fab0ae1a63094655cc0f6bee958b4c1087 Reviewed-on: https://gerrit.libreoffice.org/55978 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
This commit is contained in:
BIN
sw/qa/extras/ooxmlexport/data/tdf107969.docx
Normal file
BIN
sw/qa/extras/ooxmlexport/data/tdf107969.docx
Normal file
Binary file not shown.
@@ -388,6 +388,13 @@ DECLARE_OOXMLEXPORT_TEST(testTdf116801, "tdf116801.docx")
|
||||
CPPUNIT_ASSERT_EQUAL(OUString("D1"), xCell->getString());
|
||||
}
|
||||
|
||||
DECLARE_OOXMLEXPORT_TEST(testTdf107969, "tdf107969.docx")
|
||||
{
|
||||
// A VML object in a footnote's tracked changes caused write past end of document.xml at export to docx.
|
||||
// After that, importing after export failed with
|
||||
// SAXParseException: '[word/document.xml line 2]: Extra content at the end of the document', Stream 'word/document.xml'.
|
||||
}
|
||||
|
||||
CPPUNIT_PLUGIN_IMPLEMENT();
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||
|
@@ -681,11 +681,14 @@ void DocxExport::WriteFootnotesEndnotes()
|
||||
m_pAttrOutput->SetSerializer( pFootnotesFS );
|
||||
// tdf#99227
|
||||
m_pSdrExport->setSerializer( pFootnotesFS );
|
||||
// tdf#107969
|
||||
m_pVMLExport->SetFS(pFootnotesFS);
|
||||
|
||||
// do the work
|
||||
m_pAttrOutput->FootnotesEndnotes( true );
|
||||
|
||||
// switch the serializer back
|
||||
m_pVMLExport->SetFS(m_pDocumentFS);
|
||||
m_pSdrExport->setSerializer( m_pDocumentFS );
|
||||
m_pAttrOutput->SetSerializer( m_pDocumentFS );
|
||||
}
|
||||
@@ -705,11 +708,14 @@ void DocxExport::WriteFootnotesEndnotes()
|
||||
m_pAttrOutput->SetSerializer( pEndnotesFS );
|
||||
// tdf#99227
|
||||
m_pSdrExport->setSerializer( pEndnotesFS );
|
||||
// tdf#107969
|
||||
m_pVMLExport->SetFS(pEndnotesFS);
|
||||
|
||||
// do the work
|
||||
m_pAttrOutput->FootnotesEndnotes( false );
|
||||
|
||||
// switch the serializer back
|
||||
m_pVMLExport->SetFS(m_pDocumentFS);
|
||||
m_pSdrExport->setSerializer( m_pDocumentFS );
|
||||
m_pAttrOutput->SetSerializer( m_pDocumentFS );
|
||||
}
|
||||
|
Reference in New Issue
Block a user