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

Markus Mohrhard markus.mohrhard at collabora.co.uk
Tue Feb 18 02:26:25 CET 2014


 oox/source/export/chartexport.cxx   |   63 +++++++++++++++++++++---------------
 sc/source/filter/excel/xestream.cxx |    2 -
 2 files changed, 38 insertions(+), 27 deletions(-)

New commits:
commit b57bad8422c0efee8a42660806765f36746bb2fe
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Tue Feb 18 02:23:59 2014 +0100

    the string is UTF8 and not Ascii
    
    Change-Id: Ibf9a837ca5689ceae91eff2a081da3b7fe0b9244

diff --git a/sc/source/filter/excel/xestream.cxx b/sc/source/filter/excel/xestream.cxx
index 77c6295..30d774f 100644
--- a/sc/source/filter/excel/xestream.cxx
+++ b/sc/source/filter/excel/xestream.cxx
@@ -1016,7 +1016,7 @@ sax_fastparser::FSHelperPtr& XclExpXmlStream::WriteAttributesInternal( sal_Int32
             rStream->write( " " )
                 ->writeId( nAttribute )
                 ->write( "=\"" )
-                ->writeEscaped( pValue )
+                ->writeEscaped( OUString(pValue, std::strlen(pValue), RTL_TEXTENCODING_UTF8) )
                 ->write( "\"" );
         }
 
commit 53146f93ad0697a7af8b312bfbe424c1066207a1
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Tue Feb 18 02:22:07 2014 +0100

    prevent invalid OOXML files with trendlines, related #i88825#
    
    Change-Id: I503b24233060400cf4bbb40701bec0a3e101512a

diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx
index b427868..7fea8e3 100644
--- a/oox/source/export/chartexport.cxx
+++ b/oox/source/export/chartexport.cxx
@@ -2801,6 +2801,21 @@ void ChartExport::exportTrendlines( Reference< chart2::XDataSeries > xSeries )
 
             Reference< XPropertySet > xProperties( xRegCurve , uno::UNO_QUERY );
 
+            OUString aService;
+            Reference< lang::XServiceName > xServiceName( xProperties, UNO_QUERY );
+            if( !xServiceName.is() )
+                continue;
+
+            aService = xServiceName->getServiceName();
+
+            if(aService != "com.sun.star.chart2.LinearRegressionCurve" &&
+                    aService != "com.sun.star.chart2.ExponentialRegressionCurve" &&
+                    aService != "com.sun.star.chart2.LogarithmicRegressionCurve" &&
+                    aService != "com.sun.star.chart2.PotentialRegressionCurve" &&
+                    aService != "com.sun.star.chart2.PolynomialRegressionCurve" &&
+                    aService != "com.sun.star.chart2.MovingAverageRegressionCurve")
+                continue;
+
             pFS->startElement( FSNS( XML_c, XML_trendline ), FSEND );
 
             OUString aName;
@@ -2814,12 +2829,6 @@ void ChartExport::exportTrendlines( Reference< chart2::XDataSeries > xSeries )
 
             exportShapeProps( xProperties );
 
-            OUString aService;
-            Reference< lang::XServiceName > xServiceName( xProperties, UNO_QUERY );
-            if( !xServiceName.is() )
-                continue;
-            aService = xServiceName->getServiceName();
-
             if( aService == "com.sun.star.chart2.LinearRegressionCurve" )
             {
                 pFS->singleElement( FSNS( XML_c, XML_trendlineType ),
@@ -2871,7 +2880,9 @@ void ChartExport::exportTrendlines( Reference< chart2::XDataSeries > xSeries )
             }
             else
             {
-                continue;
+                // should never happen
+                // This would produce invalid OOXML files so we check earlier for the type
+                assert(false);
             }
 
             double aExtrapolateForward = 0.0;
commit dd0c9e64835b825771d961b7a8f21f4d6c077fc7
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date:   Mon Feb 17 23:19:49 2014 +0100

    fix indentation
    
    Change-Id: I36be2de793d3d32433530bf71632cb73a676bb9a

diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx
index 337d510..b427868 100644
--- a/oox/source/export/chartexport.cxx
+++ b/oox/source/export/chartexport.cxx
@@ -1851,36 +1851,36 @@ void ChartExport::exportCandleStickSeries(
                 {
                     Reference< chart2::data::XDataSequence > xLabelSeq( xLabeledSeq->getLabel());
                     Reference< chart2::data::XDataSequence > xValueSeq( xLabeledSeq->getValues());
-                        {
-                            FSHelperPtr pFS = GetFS();
-                            pFS->startElement( FSNS( XML_c, XML_ser ),
+                    {
+                        FSHelperPtr pFS = GetFS();
+                        pFS->startElement( FSNS( XML_c, XML_ser ),
                                 FSEND );
 
-                            // TODO: idx and order
-                            // idx attribute should start from 1 and not from 0.
-                            pFS->singleElement( FSNS( XML_c, XML_idx ),
+                        // TODO: idx and order
+                        // idx attribute should start from 1 and not from 0.
+                        pFS->singleElement( FSNS( XML_c, XML_idx ),
                                 XML_val, I32S(idx+1),
                                 FSEND );
-                            pFS->singleElement( FSNS( XML_c, XML_order ),
+                        pFS->singleElement( FSNS( XML_c, XML_order ),
                                 XML_val, I32S(idx+1),
                                 FSEND );
 
-                            // export label
-                            if( xLabelSeq.is() )
-                                exportSeriesText( xLabelSeq );
+                        // export label
+                        if( xLabelSeq.is() )
+                            exportSeriesText( xLabelSeq );
 
-                            // TODO:export shape properties
+                        // TODO:export shape properties
 
-                            // export categories
-                            if( mxCategoriesValues.is() )
-                                exportSeriesCategory( mxCategoriesValues );
+                        // export categories
+                        if( mxCategoriesValues.is() )
+                            exportSeriesCategory( mxCategoriesValues );
 
-                            // export values
-                            if( xValueSeq.is() )
-                                exportSeriesValues( xValueSeq );
+                        // export values
+                        if( xValueSeq.is() )
+                            exportSeriesValues( xValueSeq );
 
-                            pFS->endElement( FSNS( XML_c, XML_ser ) );
-                        }
+                        pFS->endElement( FSNS( XML_c, XML_ser ) );
+                    }
                 }
             }
         }


More information about the Libreoffice-commits mailing list