X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_rpncalc.c;h=9bb35d22d9233883f5b4a7cee1af38d5831705fc;hb=298b318acaf1147474ab9e97cac37c3608660efd;hp=3c7ccb81ac6f2f518c748c33396ef3e065b3badc;hpb=a834877016ceaec229616e4a529d811fb5e028ac;p=rrdtool.git diff --git a/src/rrd_rpncalc.c b/src/rrd_rpncalc.c index 3c7ccb8..9bb35d2 100644 --- a/src/rrd_rpncalc.c +++ b/src/rrd_rpncalc.c @@ -6,6 +6,7 @@ #include "rrd_tool.h" #include "rrd_rpncalc.h" +#include "rrd_graph.h" #include short addop2str(enum op_en op, enum op_en op_type, char *op_str, @@ -221,7 +222,7 @@ void parseCDEF_DS(char *def,rrd_t *rrd, int ds_idx) */ long lookup_DS(void *rrd_vptr,char *ds_name) { - int i; + unsigned int i; rrd_t *rrd; rrd = (rrd_t *) rrd_vptr; @@ -271,7 +272,7 @@ rpn_parse(void *key_hash,char *expr,long (*lookup)(void *,char*)){ #define match_op_param(VV,VVV) \ - else if (sscanf(expr, #VVV "(%[a-z0-9]s)",vname) == 1) { \ + else if (sscanf(expr, #VVV "(" DEF_NAM_FMT ")",vname) == 1) { \ int length = 0; \ if ((length = strlen(#VVV)+strlen(vname)+2, \ expr[length] == ',' || expr[length] == '\0') ) { \ @@ -323,7 +324,7 @@ rpn_parse(void *key_hash,char *expr,long (*lookup)(void *,char*)){ #undef match_op - else if ((sscanf(expr,"%29[_A-Za-z0-9]%n", + else if ((sscanf(expr, DEF_NAM_FMT "%n", vname,&pos) == 1) && ((rpnp[steps].ptr = (*lookup)(key_hash,vname)) != -1)){ rpnp[steps].op = OP_VARIABLE; @@ -669,20 +670,20 @@ int tzoffset( time_t now ){ int gm_sec, gm_min, gm_hour, gm_yday, gm_year, l_sec, l_min, l_hour, l_yday, l_year; - struct tm *t; + struct tm t; int off; - t = gmtime(&now); - gm_sec = t->tm_sec; - gm_min = t->tm_min; - gm_hour = t->tm_hour; - gm_yday = t->tm_yday; - gm_year = t->tm_year; - t = localtime(&now); - l_sec = t->tm_sec; - l_min = t->tm_min; - l_hour = t->tm_hour; - l_yday = t->tm_yday; - l_year = t->tm_year; + gmtime_r(&now, &t); + gm_sec = t.tm_sec; + gm_min = t.tm_min; + gm_hour = t.tm_hour; + gm_yday = t.tm_yday; + gm_year = t.tm_year; + localtime_r(&now, &t); + l_sec = t.tm_sec; + l_min = t.tm_min; + l_hour = t.tm_hour; + l_yday = t.tm_yday; + l_year = t.tm_year; off = (l_sec-gm_sec)+(l_min-gm_min)*60+(l_hour-gm_hour)*3600; if ( l_yday > gm_yday || l_year > gm_year){ off += 24*3600;