Hi Eike, I started converting the new Calc functions IFS and SWITCH to jump functions. So far, the general part has been done.
I experience a problem where the functions IFS and SWITCH differ from the other jump functions (IF, CHOOSE, IFERROR, IFNA). The other jump functions do 1 evaluation (of the first argument) and then jump to an argument that is to be the output. The new jump functions need to evaluate at least 2 arguments. And that is where I get stuck. The first argument is on the stack, i.e. GetStackType() returns a type and ScInterpreter::sp is 1. When I jump to the next argument to be evaluated, with aCode.Jump( pJump[ nIdx ], pJump[ pJump[ 0 ] ] ), ScInterpreter::sp is 0 afterwards. How do I get the argument I jumped to (that part works) on the stack to be evaluated? I hope you can shed some light on this jump mechanism. Winfried
_______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice