[Libreoffice-commits] core.git: oox/source sw/qa sw/source
Dinesh Patil
dinesh.patil at synerzip.com
Fri Jun 20 00:53:09 PDT 2014
oox/source/export/vmlexport.cxx | 2 +-
sw/qa/extras/ooxmlexport/data/fdo79591.docx |binary
sw/qa/extras/ooxmlexport/ooxmlsdrexport.cxx | 15 +++++++++++++++
sw/source/filter/ww8/docxsdrexport.cxx | 2 +-
4 files changed, 17 insertions(+), 2 deletions(-)
New commits:
commit 7ea1bbe712cef48a97faffdf03b45f2812a93e62
Author: Dinesh Patil <dinesh.patil at synerzip.com>
Date: Thu Jun 12 11:34:32 2014 +0530
fdo#79591 Values for docPr name and shape ID attributes were set invalid
Values set for docPr name and shape ID attributes in RT file were not valid
as per UTF-8 encoding format and hence was showing RT document as corrupt with
error message "invalid character".
Calling add() function with current parameters is causing issue and
setting invalid values so modified the second parameter which will
set valid values to the specified parameters.
Reviewed on:
https://gerrit.libreoffice.org/9746
Change-Id: I3b48e53adbe5ed844235e596bb98eb396133845a
diff --git a/oox/source/export/vmlexport.cxx b/oox/source/export/vmlexport.cxx
index 490bc7b..69242d6 100644
--- a/oox/source/export/vmlexport.cxx
+++ b/oox/source/export/vmlexport.cxx
@@ -821,7 +821,7 @@ void VMLExport::Commit( EscherPropertyContainer& rProps, const Rectangle& rRect
OUString idStr = SvxMSDffManager::MSDFFReadZString(aStream, it->nPropSize, true);
aStream.Seek(0);
if (!IsWaterMarkShape(m_pSdrObject->GetName()))
- m_pShapeAttrList->add(XML_ID, OUStringToOString(idStr, RTL_TEXTENCODING_UTF8));
+ m_pShapeAttrList->add(XML_ID, OUStringToOString(idStr, RTL_TEXTENCODING_UTF8).getStr());
bAlreadyWritten[ESCHER_Prop_wzName] = true;
}
diff --git a/sw/qa/extras/ooxmlexport/data/fdo79591.docx b/sw/qa/extras/ooxmlexport/data/fdo79591.docx
new file mode 100644
index 0000000..32a61de
Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/fdo79591.docx differ
diff --git a/sw/qa/extras/ooxmlexport/ooxmlsdrexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlsdrexport.cxx
index 25a6cf7..20ee7c3 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlsdrexport.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlsdrexport.cxx
@@ -1811,6 +1811,21 @@ DECLARE_OOXMLEXPORT_TEST(testTextboxRoundedCorners, "textbox-rounded-corners.doc
CPPUNIT_ASSERT_EQUAL(OUString("a"), xCell->getString());
}
+DECLARE_OOXMLEXPORT_TEST(testfdo79591, "fdo79591.docx")
+{
+ /* Values set for docPr name and shape ID attributes
+ * in RT file were not valid as per UTF-8 encoding format
+ * and hence was showing RT document as corrupt with error
+ * message "invalid character"
+ */
+ xmlDocPtr pXmlDoc = parseExport("word/document.xml");
+ if (!pXmlDoc)
+ return;
+
+ assertXPath(pXmlDoc, "/w:document/w:body/w:p/w:r/mc:AlternateContent/mc:Choice/w:drawing/wp:anchor/wp:docPr", "name", "");
+ assertXPath(pXmlDoc, "/w:document/w:body/w:p/w:r/mc:AlternateContent/mc:Fallback/w:pict/v:shape", "ID", "");
+}
+
#endif
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/sw/source/filter/ww8/docxsdrexport.cxx b/sw/source/filter/ww8/docxsdrexport.cxx
index 42e9f9c..d3efe2a 100644
--- a/sw/source/filter/ww8/docxsdrexport.cxx
+++ b/sw/source/filter/ww8/docxsdrexport.cxx
@@ -724,7 +724,7 @@ void DocxSdrExport::writeDMLDrawing(const SdrObject* pSdrObject, const SwFrmFmt*
sax_fastparser::FastAttributeList* pDocPrAttrList = pFS->createAttrList();
pDocPrAttrList->add(XML_id, OString::number(nAnchorId).getStr());
- pDocPrAttrList->add(XML_name, OUStringToOString(pSdrObject->GetName(), RTL_TEXTENCODING_UTF8));
+ pDocPrAttrList->add(XML_name, OUStringToOString(pSdrObject->GetName(), RTL_TEXTENCODING_UTF8).getStr());
if (!pSdrObject->GetTitle().isEmpty())
pDocPrAttrList->add(XML_title, OUStringToOString(pSdrObject->GetTitle(), RTL_TEXTENCODING_UTF8));
if (!pSdrObject->GetDescription().isEmpty())
More information about the Libreoffice-commits
mailing list