X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_rpncalc.c;h=972f486b023ed054a6bd2915543c71eb877015f9;hb=93825921ef600413f35eeaf53203415bec85cd7a;hp=a5ab61f9a2da7c526b14ebd770e0c541a0f19c16;hpb=6a9e3eacd35299d6c8a60b45325ce49648f3a611;p=rrdtool.git diff --git a/src/rrd_rpncalc.c b/src/rrd_rpncalc.c index a5ab61f..972f486 100644 --- a/src/rrd_rpncalc.c +++ b/src/rrd_rpncalc.c @@ -162,6 +162,7 @@ void rpn_compact2str(rpn_cdefds_t *rpnc,ds_def_t *ds_def,char **str) 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 @@ -779,6 +781,10 @@ rpn_calc(rpnp_t *rpnp, rpnstack_t *rpnstack, long data_idx, } } break; + case OP_ABS: + stackunderflow(0); + rpnstack -> s[stptr] = fabs(rpnstack -> s[stptr]); + break; case OP_END: break; }