From 83496c47fe6443cc4c3d08869dc12e751a47bec8 Mon Sep 17 00:00:00 2001 From: oetiker Date: Mon, 13 Jun 2005 05:43:44 +0000 Subject: [PATCH] allow for VNAMES starting with a number and add documentation -- Alex git-svn-id: svn://svn.oetiker.ch/rrdtool/branches/1.2/program@636 a5681a0c-68f1-0310-ab6d-d61299d08faa --- doc/rrdgraph_data.pod | 2 +- src/rrd_graph_helper.c | 18 +++++++++++++++--- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/doc/rrdgraph_data.pod b/doc/rrdgraph_data.pod index dba53f3..c3891d4 100644 --- a/doc/rrdgraph_data.pod +++ b/doc/rrdgraph_data.pod @@ -20,7 +20,7 @@ instructions use a language called B which is described in its own manual page. Variable names (I) must be made up strings of the following characters -C, starting with a letter and a maximum length of 255 characters. +C and a maximum length of 255 characters. =head1 DEF diff --git a/src/rrd_graph_helper.c b/src/rrd_graph_helper.c index 2e80741..6babc57 100644 --- a/src/rrd_graph_helper.c +++ b/src/rrd_graph_helper.c @@ -330,16 +330,28 @@ rrd_parse_PVHLAST(char *line, unsigned int *eaten, graph_desc_t *gdp, image_desc tmpstr[j]='\0'; } + /* Number or vname ? + * It is a number only if "k" equals either "j" or "i", + * depending on which is appropriate + */ dprintf("- examining value '%s'\n",tmpstr); k=0; if (gdp->gf == GF_VRULE) { sscanf(tmpstr,"%li%n",&gdp->xrule,&k); - if (k) dprintf("- found time: %li\n",gdp->xrule); + if (((j!=0)&&(k==j))||((j==0)&&(k==i))) { + dprintf("- found time: %li\n",gdp->xrule); + } else { + gdp->xrule=0; /* reset the value to "none" */ + } } else { sscanf(tmpstr,"%lf%n",&gdp->yrule,&k); - if (k) dprintf("- found number: %f\n",gdp->yrule); + if (((j!=0)&&(k==j))||((j==0)&&(k==i))) { + dprintf("- found number: %f\n",gdp->yrule); + } else { + gdp->yrule=DNAN; /* reset the value to "none" */ + } } - if (!k) { + if (((j!=0)&&(k!=j))||((j==0)&&(k!=i))) { if ((gdp->vidx=find_var(im,tmpstr))<0) { rrd_set_error("Not a valid vname: %s in line %s",tmpstr,line); return 1; -- 2.30.2