Code

reat nan as FALSE in an IF CDEF
authoroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Sat, 15 Mar 2008 10:32:10 +0000 (10:32 +0000)
committeroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Sat, 15 Mar 2008 10:32:10 +0000 (10:32 +0000)
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk@1305 a5681a0c-68f1-0310-ab6d-d61299d08faa

program/src/rrd_rpncalc.c

index 839643b0075101429fe4171b9297f0d3867d11d0..1f86f2eb02fc50c93f284a806981bb996ca13a0a 100644 (file)
@@ -705,8 +705,8 @@ short rpn_calc(
             break;
         case OP_IF:
             stackunderflow(2);
-            rpnstack->s[stptr - 2] = rpnstack->s[stptr - 2] != 0.0 ?
-                rpnstack->s[stptr - 1] : rpnstack->s[stptr];
+            rpnstack->s[stptr - 2] = ( isnan(rpnstack->s[stptr - 2]) || rpnstack->s[stptr - 2] == 0.0 ) ?
+                rpnstack->s[stptr] : rpnstack->s[stptr - 1];
             stptr--;
             stptr--;
             break;