Hi Winfried, On Sunday, 2012-12-09 15:07:46 +0100, Winfried Donkers wrote:
Could it be that you didn't implement the special handling in thecompiler and tokens? ... I did an opengrok search for ocIf and changed all files, including sxfunc.src (to give iferror 3 parameters). The only differences that I know of between IF() and IFERROR() are the function names and the group to which the functions belong. When in the switch statement in ScIfError()/ScIfJump() (in /core/sc/source/core/tool/interpr1.cxx) default: { if ( GetBool() ) <<-- here { // TRUE if( nJumpCount >= 2 ) I replace GetBool() with getDouble() and look at its value, it is 3 in case of IFERROR() and 0 in case of IF(). (in calc I entered IFERROR(0;2;3), result 2 and IF(0;2;3), result 3).
I did not quite get what you are actually doing there.. if the functions are otherwise treated identically then IFERROR should return 3 as well. Could you please upload the patch to gerrit, mark it as work in progress by preceding the commit summary with WIP: Thanks Eike -- LibreOffice Calc developer. Number formatter stricken i18n transpositionizer. GnuPG key 0x293C05FD : 997A 4C60 CE41 0149 0DB3 9E96 2F1A D073 293C 05FD Support the FSFE, care about Free Software! https://fsfe.org/support/?erack
Attachment:
pgpv45Og6DUBE.pgp
Description: PGP signature