diff options
author | Eike Rathke <erack@redhat.com> | 2013-08-15 01:03:00 +0200 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@suse.de> | 2013-08-16 15:22:18 +0000 |
commit | 17b9d3d0f951989495e9c15bf251a497ee713db4 (patch) | |
tree | feff6d78d1bdbdc5421dd50b8208c37f3b9759a7 | |
parent | 5aa736fa2590cc9dd8501f0f403924681ca09495 (diff) |
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
(cherry picked from commit 25763e59625ce83de4b82927359108f9e7878744)
Reviewed-on: https://gerrit.libreoffice.org/5430
Reviewed-by: Fridrich Strba <fridrich@documentfoundation.org>
Reviewed-by: Petr Mladek <pmladek@suse.cz>
Tested-by: Petr Mladek <pmladek@suse.cz>
Reviewed-by: Kohei Yoshida <kohei.yoshida@suse.de>
Tested-by: Kohei Yoshida <kohei.yoshida@suse.de>
-rw-r--r-- | sc/source/filter/excel/xetable.cxx | 66 |
1 files changed, 33 insertions, 33 deletions
diff --git a/sc/source/filter/excel/xetable.cxx b/sc/source/filter/excel/xetable.cxx index 8694a495b499..079231877723 100644 --- a/sc/source/filter/excel/xetable.cxx +++ b/sc/source/filter/excel/xetable.cxx @@ -936,45 +936,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 |