diff options
author | Winfried Donkers <winfrieddonkers@libreoffice.org> | 2014-11-11 17:33:48 +0100 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2015-04-29 23:39:09 +0000 |
commit | 010b2d2d9be846fb6b10848204e29e1bc00ef1ea (patch) | |
tree | 7ac115c5bd37be8b9e4cf295a84385d63f212d8e /formula | |
parent | 3a6866c2953c17a55536fa434b9fceda670d0685 (diff) |
fdo#69552 [part 1] make calc functions CEILING comply with ODF1.2
Also, add support for CEILING.MATH and fix small
deficiencies with CEILING functions, as most are interwoven.
Change-Id: I0d9a46fb17e982ccf1e9d9e403b58926172c1a7a
Reviewed-on: https://gerrit.libreoffice.org/7088
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
Diffstat (limited to 'formula')
-rw-r--r-- | formula/source/core/api/token.cxx | 13 | ||||
-rw-r--r-- | formula/source/core/resource/core_resource.src | 22 |
2 files changed, 30 insertions, 5 deletions
diff --git a/formula/source/core/api/token.cxx b/formula/source/core/api/token.cxx index 50964217a901..a33ce70d4e25 100644 --- a/formula/source/core/api/token.cxx +++ b/formula/source/core/api/token.cxx @@ -1053,6 +1053,8 @@ inline bool MissingConventionOOXML::isRewriteNeeded( OpCode eOp ) const case ocIndex: + case ocCeil: + case ocGammaDist: case ocFDist_LT: case ocPoissonDist: @@ -1411,7 +1413,16 @@ FormulaTokenArray * FormulaTokenArray::RewriteMissing( const MissingConvention & break; } if (bAdd) - pNewArr->AddToken( *pCur ); + { + if ( pCur->GetOpCode() == ocCeil && + rConv.getConvention() == MissingConvention::FORMULA_MISSING_CONVENTION_OOXML ) + { + FormulaToken *pToken = new FormulaToken( svByte, ocCeil_Math ); + pNewArr->AddToken( *pToken ); + } + else + pNewArr->AddToken( *pCur ); + } } if (pOcas != &aOpCodeAddressStack[0]) diff --git a/formula/source/core/resource/core_resource.src b/formula/source/core/resource/core_resource.src index 31d5d9446add..4462ee9b2b91 100644 --- a/formula/source/core/resource/core_resource.src +++ b/formula/source/core/resource/core_resource.src @@ -149,8 +149,10 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_ODFF String SC_OPCODE_ERROR_TYPE_ODF { Text = "ERROR.TYPE" ; }; String SC_OPCODE_FORMULA { Text = "FORMULA"; }; String SC_OPCODE_ARC_TAN_2 { Text = "ATAN2" ; }; + String SC_OPCODE_CEIL_MATH { Text = "COM.MICROSOFT.CEILING.MATH" ; }; String SC_OPCODE_CEIL { Text = "CEILING" ; }; - String SC_OPCODE_CEIL_MS { Text = "COM.MICROSOFT.CEILING.PRECISE" ; }; + String SC_OPCODE_CEIL_MS { Text = "COM.MICROSOFT.CEILING" ; }; + String SC_OPCODE_CEIL_PRECISE { Text = "COM.MICROSOFT.CEILING.PRECISE" ; }; String SC_OPCODE_CEIL_ISO { Text = "COM.MICROSOFT.ISO.CEILING" ; }; String SC_OPCODE_FLOOR_MS { Text = "COM.MICROSOFT.FLOOR.PRECISE" ; }; String SC_OPCODE_FLOOR { Text = "FLOOR" ; }; @@ -565,8 +567,10 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_OOXML String SC_OPCODE_ERROR_TYPE_ODF { Text = "ERROR.TYPE" ; }; String SC_OPCODE_FORMULA { Text = "_xlfn.FORMULATEXT"; }; String SC_OPCODE_ARC_TAN_2 { Text = "ATAN2" ; }; - String SC_OPCODE_CEIL { Text = "CEILING" ; }; - String SC_OPCODE_CEIL_MS { Text = "_xlfn.CEILING.PRECISE" ; }; + String SC_OPCODE_CEIL_MATH { Text = "_xlfn.CEILING.MATH" ; }; + String SC_OPCODE_CEIL { Text = "_xlfn.CEILING.MATH" ; }; + String SC_OPCODE_CEIL_MS { Text = "CEILING" ; }; + String SC_OPCODE_CEIL_PRECISE { Text = "_xlfn.CEILING.PRECISE" ; }; String SC_OPCODE_CEIL_ISO { Text = "ISO.CEILING" ; }; String SC_OPCODE_FLOOR_MS { Text = "_xlfn.FLOOR.PRECISE" ; }; String SC_OPCODE_FLOOR { Text = "FLOOR" ; }; @@ -983,8 +987,10 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH String SC_OPCODE_ERROR_TYPE_ODF { Text = "ERROR.TYPE" ; }; String SC_OPCODE_FORMULA { Text = "FORMULA"; }; String SC_OPCODE_ARC_TAN_2 { Text = "ATAN2" ; }; + String SC_OPCODE_CEIL_MATH { Text = "CEILING.MATH" ; }; String SC_OPCODE_CEIL { Text = "CEILING" ; }; - String SC_OPCODE_CEIL_MS { Text = "CEILING.PRECISE" ; }; + String SC_OPCODE_CEIL_MS { Text = "CEILING.XCL" ; }; + String SC_OPCODE_CEIL_PRECISE { Text = "CEILING.PRECISE" ; }; String SC_OPCODE_CEIL_ISO { Text = "ISO.CEILING" ; }; String SC_OPCODE_FLOOR_MS { Text = "FLOOR.PRECISE" ; }; String SC_OPCODE_FLOOR { Text = "FLOOR" ; }; @@ -1718,12 +1724,20 @@ Resource RID_STRLIST_FUNCTION_NAMES { Text [ en-US ] = "ATAN2" ; }; + String SC_OPCODE_CEIL_MATH + { + Text [ en-US ] = "CEILING.MATH" ; + }; String SC_OPCODE_CEIL { Text [ en-US ] = "CEILING" ; }; String SC_OPCODE_CEIL_MS { + Text [ en-US ] = "CEILING.XCL" ; + }; + String SC_OPCODE_CEIL_PRECISE + { Text [ en-US ] = "CEILING.PRECISE" ; }; String SC_OPCODE_CEIL_ISO |