Kaydet (Commit) 7ea1bbe7 authored tarafından Dinesh Patil's avatar Dinesh Patil Kaydeden (comit) Miklos Vajna

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
üst 67f64c26
......@@ -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;
}
......
......@@ -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();
......
......@@ -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())
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment