[Libreoffice-commits] core.git: 2 commits - sc/source

Markus Mohrhard markus.mohrhard at collabora.co.uk
Sun Dec 21 21:24:45 PST 2014


 sc/source/filter/excel/xelink.cxx |   34 +++++++++++++++++++++-------------
 1 file changed, 21 insertions(+), 13 deletions(-)

New commits:
commit b241910325456b32c2d3614c2e200305e85a357c
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Mon Dec 22 06:22:45 2014 +0100

    fix another validation error for OOXML, related fdo#40746
    
    e.g. exporting fdo40746-2.ods as OOXML
    
    Change-Id: I8a19ec2caecbc3687229d820ac2ec11fc01facd1

diff --git a/sc/source/filter/excel/xelink.cxx b/sc/source/filter/excel/xelink.cxx
index 8ecef76..7cbf9a5 100644
--- a/sc/source/filter/excel/xelink.cxx
+++ b/sc/source/filter/excel/xelink.cxx
@@ -241,7 +241,7 @@ protected:
     /** Writes the list of externalName elements. */
     void                WriteExtNameBufferXml( XclExpXmlStream& rStrm );
 
-private:
+protected:
     typedef boost::shared_ptr< XclExpExtNameBuffer >   XclExpExtNameBfrRef;
     XclExpExtNameBfrRef mxExtNameBfr;   /// List of EXTERNNAME records.
 };
@@ -1680,14 +1680,18 @@ void XclExpSupbook::SaveXml( XclExpXmlStream& rStrm )
 
     }
 
-    pExternalLink->startElement( XML_sheetDataSet, FSEND);
+    if (!maXctList.IsEmpty() || mxExtNameBfr)
+    {
+        pExternalLink->startElement( XML_sheetDataSet, FSEND);
 
-    // sheetData elements
-    maXctList.SaveXml( rStrm );
-    // externalName elements
-    WriteExtNameBufferXml( rStrm );
+        // sheetData elements
+        maXctList.SaveXml( rStrm );
+        // externalName elements
+        WriteExtNameBufferXml( rStrm );
 
-    pExternalLink->endElement( XML_sheetDataSet);
+        pExternalLink->endElement( XML_sheetDataSet);
+
+    }
     pExternalLink->endElement( XML_externalBook);
     pExternalLink->endElement( XML_externalLink);
 }
commit 3e551da43da5661396fbc2530a203d4774e29f78
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Mon Dec 22 06:18:07 2014 +0100

    fix OOXML validation error, related fdo#40746
    
    e.g. fdo40746-2.ods exported to OOXML
    
    Change-Id: I48bc7a7d21ddc00eceaeb09970a2b1a60330fbf0

diff --git a/sc/source/filter/excel/xelink.cxx b/sc/source/filter/excel/xelink.cxx
index a347dce..8ecef76 100644
--- a/sc/source/filter/excel/xelink.cxx
+++ b/sc/source/filter/excel/xelink.cxx
@@ -1667,14 +1667,18 @@ void XclExpSupbook::SaveXml( XclExpXmlStream& rStrm )
             FSNS(XML_r, XML_id),    XclXmlUtils::ToOString( sId ).getStr(),
             FSEND);
 
-    pExternalLink->startElement( XML_sheetNames, FSEND);
-    for (size_t nPos = 0, nSize = maXctList.GetSize(); nPos < nSize; ++nPos)
+    if (!maXctList.IsEmpty())
     {
-        pExternalLink->singleElement( XML_sheetName,
-                XML_val,    XclXmlUtils::ToOString( maXctList.GetRecord( nPos )->GetTabName()).getStr(),
-                FSEND);
+        pExternalLink->startElement( XML_sheetNames, FSEND);
+        for (size_t nPos = 0, nSize = maXctList.GetSize(); nPos < nSize; ++nPos)
+        {
+            pExternalLink->singleElement( XML_sheetName,
+                    XML_val,    XclXmlUtils::ToOString( maXctList.GetRecord( nPos )->GetTabName()).getStr(),
+                    FSEND);
+        }
+        pExternalLink->endElement( XML_sheetNames);
+
     }
-    pExternalLink->endElement( XML_sheetNames);
 
     pExternalLink->startElement( XML_sheetDataSet, FSEND);
 


More information about the Libreoffice-commits mailing list