[Libreoffice-commits] core.git: sw/qa sw/source
Rohit Deshmukh
rohit.deshmukh at synerzip.com
Fri Aug 29 01:08:21 PDT 2014
sw/qa/extras/ooxmlexport/data/fdo83044.docx |binary
sw/qa/extras/ooxmlexport/ooxmlexport.cxx | 9 +++++++++
sw/source/filter/ww8/docxattributeoutput.cxx | 14 ++++++++------
3 files changed, 17 insertions(+), 6 deletions(-)
New commits:
commit 96dc17221c286dd02772f1dd54b4ffc3c3091b9a
Author: Rohit Deshmukh <rohit.deshmukh at synerzip.com>
Date: Wed Aug 27 12:43:29 2014 +0530
fdo#83044:Fix for corruption of file with SDT content.
Issue:
w:text has a wrong child w:docPartGallery and w:docPartUnique.
Change-Id: If1dd6ff15cbba2868c93795051a5328a074721d0
Reviewed-on: https://gerrit.libreoffice.org/11146
Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
Tested-by: Miklos Vajna <vmiklos at collabora.co.uk>
diff --git a/sw/qa/extras/ooxmlexport/data/fdo83044.docx b/sw/qa/extras/ooxmlexport/data/fdo83044.docx
new file mode 100644
index 0000000..01d32bf
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/fdo83044.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
index f843c24..3cda4ce 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
@@ -201,6 +201,15 @@ DECLARE_OOXMLEXPORT_TEST(testFirstHeaderFooter, "first-header-footer.docx")
CPPUNIT_ASSERT_EQUAL(OUString("Even page footer 2"), parseDump("/root/page[6]/footer/txt/text()"));
}
+DECLARE_OOXMLEXPORT_TEST(testFDO83044, "fdo83044.docx")
+{
+ xmlDocPtr pXmlDoc = parseExport("word/document.xml");
+
+ if (!pXmlDoc)
+ return;
+
+ assertXPath(pXmlDoc, "/w:document/w:body/w:sdt/w:sdtPr/w:text", 1);
+}
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index 3e78a1a..b4587e8 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -632,12 +632,14 @@ void DocxAttributeOutput::WriteSdtBlock( sal_Int32& nSdtPrToken,
pSdtPrTokenAttributes = 0;
}
- uno::Sequence<xml::FastAttribute> aChildren = pSdtPrTokenChildren->getFastAttributes();
- for( sal_Int32 i=0; i < aChildren.getLength(); ++i )
- m_pSerializer->singleElement( aChildren[i].Token,
- FSNS(XML_w, XML_val),
- rtl::OUStringToOString( aChildren[i].Value, RTL_TEXTENCODING_UTF8 ).getStr(),
- FSEND );
+ if (nSdtPrToken == FSNS( XML_w, XML_date ) || nSdtPrToken == FSNS( XML_w, XML_docPartObj ) || nSdtPrToken == FSNS( XML_w, XML_docPartList ) || nSdtPrToken == FSNS( XML_w14, XML_checkbox )) {
+ uno::Sequence<xml::FastAttribute> aChildren = pSdtPrTokenChildren->getFastAttributes();
+ for( sal_Int32 i=0; i < aChildren.getLength(); ++i )
+ m_pSerializer->singleElement( aChildren[i].Token,
+ FSNS(XML_w, XML_val),
+ rtl::OUStringToOString( aChildren[i].Value, RTL_TEXTENCODING_UTF8 ).getStr(),
+ FSEND );
+ }
m_pSerializer->endElement( nSdtPrToken );
}
More information about the Libreoffice-commits
mailing list