From f0860625e29c18d2eca647a6cedd0ce679d5a80d Mon Sep 17 00:00:00 2001 From: Sourav Date: Thu, 24 Apr 2014 18:18:16 +0530 Subject: fdo#77719 File containing CusGeom gets corrupted on RT. RT file gets corrupted because in presetgeometry tag shapetype is coming as blank. A check is introduced to handle that. Reviewed on: https://gerrit.libreoffice.org/9147 Change-Id: Ie79db0f5dcadfa3cd5d3f54d4a676393b3a882c5 --- sw/qa/extras/ooxmlexport/data/fdo77719.docx | Bin 0 -> 16680 bytes sw/qa/extras/ooxmlexport/ooxmlsdrexport.cxx | 8 ++++++++ sw/source/filter/ww8/docxsdrexport.cxx | 3 +++ 3 files changed, 11 insertions(+) create mode 100644 sw/qa/extras/ooxmlexport/data/fdo77719.docx (limited to 'sw') diff --git a/sw/qa/extras/ooxmlexport/data/fdo77719.docx b/sw/qa/extras/ooxmlexport/data/fdo77719.docx new file mode 100644 index 000000000000..e671b33f4e76 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/fdo77719.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlsdrexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlsdrexport.cxx index cc04809835e2..06182df566d5 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlsdrexport.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlsdrexport.cxx @@ -1105,6 +1105,14 @@ DECLARE_OOXMLEXPORT_TEST(testShapeEffectPreservation, "shape-effect-preservation "val", "50000"); } +DECLARE_OOXMLEXPORT_TEST(fdo77719, "fdo77719.docx") +{ + xmlDocPtr pXmlDoc = parseExport("word/document.xml"); + if (!pXmlDoc) + return; + assertXPath(pXmlDoc, "/w:document[1]/w:body[1]/w:p[1]/w:r[2]/mc:AlternateContent[1]/mc:Choice[1]/w:drawing[1]/wp:anchor[1]/a:graphic[1]/a:graphicData[1]/wps:wsp[1]/wps:spPr[1]/a:prstGeom[1]", "prst", "rect"); +} + #endif CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sw/source/filter/ww8/docxsdrexport.cxx b/sw/source/filter/ww8/docxsdrexport.cxx index 5c5d5a233dcb..563e124a9b23 100644 --- a/sw/source/filter/ww8/docxsdrexport.cxx +++ b/sw/source/filter/ww8/docxsdrexport.cxx @@ -1164,6 +1164,9 @@ void DocxSdrExport::writeDMLTextFrame(sw::Frame* pParentFrame, int nAnchorId) } } } + //Empty shapeType will lead to corruption so to avoid that shapeType is set to default i.e. "rect" + if (shapeType.isEmpty()) + shapeType = "rect"; pFS->singleElementNS(XML_a, XML_prstGeom, XML_prst, OUStringToOString(shapeType, RTL_TEXTENCODING_UTF8).getStr(), -- cgit