Change in core[master]: fdo#56124 add calc functions IFERROR and IFNA as in ODFF1.2

Eike Rathke erack at
Fri Dec 14 09:40:34 PST 2012

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 the
> compiler 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:


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!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <>

More information about the LibreOffice mailing list