diff --git a/src/rrd_rpncalc.c b/src/rrd_rpncalc.c
index a5ab61f9a2da7c526b14ebd770e0c541a0f19c16..972f486b023ed054a6bd2915543c71eb877015f9 100644 (file)
--- a/src/rrd_rpncalc.c
+++ b/src/rrd_rpncalc.c
add_op(OP_RAD2DEG,RAD2DEG)
add_op(OP_DEG2RAD,DEG2RAD)
add_op(OP_AVG,AVG)
+ add_op(OP_ABS,ABS)
#undef add_op
}
(*str)[offset] = '\0';
@@ -340,6 +341,7 @@ rpn_parse(void *key_hash,const char *const expr_const,long (*lookup)(void *,char
match_op(OP_RAD2DEG,RAD2DEG)
match_op(OP_DEG2RAD,DEG2RAD)
match_op(OP_AVG,AVG)
+ match_op(OP_ABS,ABS)
#undef match_op
}
}
break;
+ case OP_ABS:
+ stackunderflow(0);
+ rpnstack -> s[stptr] = fabs(rpnstack -> s[stptr]);
+ break;
case OP_END:
break;
}