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

Eike Rathke erack at redhat.com
Wed Aug 14 16:07:45 PDT 2013


 sc/source/filter/excel/xetable.cxx |   66 ++++++++++++++++++-------------------
 1 file changed, 33 insertions(+), 33 deletions(-)

New commits:
commit 25763e59625ce83de4b82927359108f9e7878744
Author: Eike Rathke <erack at redhat.com>
Date:   Thu Aug 15 01:03:00 2013 +0200

    resolved fdo#67571 write flags and formula token array again
    
    Regression introduced with 337066eb1fa395990b78d1032c399a4688d2a6f9,
    flags and formula token array weren't written if the formula result was
    an error value.
    
    Change-Id: I8ccd55a7b43d5ceb79002e01f0b3d33d36d85538

diff --git a/sc/source/filter/excel/xetable.cxx b/sc/source/filter/excel/xetable.cxx
index 8e0d763..b63aa96 100644
--- a/sc/source/filter/excel/xetable.cxx
+++ b/sc/source/filter/excel/xetable.cxx
@@ -940,45 +940,45 @@ void XclExpFormulaCell::WriteContents( XclExpStream& rStrm )
             << XclTools::GetXclErrorCode( nScErrCode )
             << sal_uInt8( 0 ) << sal_uInt16( 0 )
             << sal_uInt16( 0xFFFF );
-
-        return;
     }
-
-    // result of the formula
-    switch( mrScFmlaCell.GetFormatType() )
+    else
     {
-        case NUMBERFORMAT_NUMBER:
+        // result of the formula
+        switch( mrScFmlaCell.GetFormatType() )
         {
-            // either value or error code
-            rStrm << mrScFmlaCell.GetValue();
-        }
-        break;
+            case NUMBERFORMAT_NUMBER:
+                {
+                    // either value or error code
+                    rStrm << mrScFmlaCell.GetValue();
+                }
+                break;
 
-        case NUMBERFORMAT_TEXT:
-        {
-            OUString aResult = mrScFmlaCell.GetString();
-            if( !aResult.isEmpty() || (rStrm.GetRoot().GetBiff() <= EXC_BIFF5) )
-            {
-                rStrm << EXC_FORMULA_RES_STRING;
-                mxStringRec.reset( new XclExpStringRec( rStrm.GetRoot(), aResult ) );
-            }
-            else
-                rStrm << EXC_FORMULA_RES_EMPTY;     // BIFF8 only
-            rStrm << sal_uInt8( 0 ) << sal_uInt32( 0 ) << sal_uInt16( 0xFFFF );
-        }
-        break;
+            case NUMBERFORMAT_TEXT:
+                {
+                    OUString aResult = mrScFmlaCell.GetString();
+                    if( !aResult.isEmpty() || (rStrm.GetRoot().GetBiff() <= EXC_BIFF5) )
+                    {
+                        rStrm << EXC_FORMULA_RES_STRING;
+                        mxStringRec.reset( new XclExpStringRec( rStrm.GetRoot(), aResult ) );
+                    }
+                    else
+                        rStrm << EXC_FORMULA_RES_EMPTY;     // BIFF8 only
+                    rStrm << sal_uInt8( 0 ) << sal_uInt32( 0 ) << sal_uInt16( 0xFFFF );
+                }
+                break;
 
-        case NUMBERFORMAT_LOGICAL:
-        {
-            sal_uInt8 nXclValue = (mrScFmlaCell.GetValue() == 0.0) ? 0 : 1;
-            rStrm << EXC_FORMULA_RES_BOOL << sal_uInt8( 0 )
-                  << nXclValue << sal_uInt8( 0 ) << sal_uInt16( 0 )
-                  << sal_uInt16( 0xFFFF );
-        }
-        break;
+            case NUMBERFORMAT_LOGICAL:
+                {
+                    sal_uInt8 nXclValue = (mrScFmlaCell.GetValue() == 0.0) ? 0 : 1;
+                    rStrm << EXC_FORMULA_RES_BOOL << sal_uInt8( 0 )
+                        << nXclValue << sal_uInt8( 0 ) << sal_uInt16( 0 )
+                        << sal_uInt16( 0xFFFF );
+                }
+                break;
 
-        default:
-            rStrm << mrScFmlaCell.GetValue();
+            default:
+                rStrm << mrScFmlaCell.GetValue();
+        }
     }
 
     // flags and formula token array


More information about the Libreoffice-commits mailing list