index f17c7888e382d3c05dd8db5cb39ea18665d3da05..104ea8f2c593a88247a47cdbd0d047b9a399fb32 100644 (file)
/****************************************************************************
- * RRDtool 1.2.12 Copyright by Tobi Oetiker, 1997-2005
+ * RRDtool 1.2.13 Copyright by Tobi Oetiker, 1997-2006
****************************************************************************
* rrd_rpncalc.c RPN calculator functions
****************************************************************************/
rpnp = rpn_parse((void*) rrd, def, &lookup_DS);
if (rpnp == NULL) {
- rrd_set_error("failed to parse computed data source %s", def);
+ rrd_set_error("failed to parse computed data source");
return;
}
/* Check for OP nodes not permitted in COMPUTE DS.
@@ -274,9 +274,9 @@ rpn_parse(void *key_hash,const char *const expr_const,long (*lookup)(void *,char
}
#define match_op(VV,VVV) \
- else if (strncmp(expr, #VVV, strlen(#VVV))==0){ \
- rpnp[steps].op = VV; \
- expr+=strlen(#VVV); \
+ else if (strncmp(expr, #VVV, strlen(#VVV))==0 && ( expr[strlen(#VVV)] == ',' || expr[strlen(#VVV)] == '\0' )){ \
+ rpnp[steps].op = VV; \
+ expr+=strlen(#VVV); \
}