X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_graph_helper.c;h=8855dcd1a5069de18f1c6dc7156699cd10ee0ca6;hb=0043267aa80eec6dbb4e406b52585c974f176a2f;hp=aca3eea82e8a84001db219eda3cbf6352c3aacd5;hpb=e5e436c69a2dcf3d5fa3b87cf5716d52dab99bc3;p=rrdtool.git diff --git a/src/rrd_graph_helper.c b/src/rrd_graph_helper.c index aca3eea..8855dcd 100644 --- a/src/rrd_graph_helper.c +++ b/src/rrd_graph_helper.c @@ -776,6 +776,9 @@ rrd_parse_cdef(const char *const line, unsigned int *const eaten, graph_desc_t * void rrd_graph_script(int argc, char *argv[], image_desc_t *const im, int optno) { int i; + /* save state for STACK backward compat function */ + enum gf_en last_gf=GF_PRINT; + float last_linewidth=0.0; for (i=optind+optno;igf) { case GF_SHIFT: /* vname:value */ if (rrd_parse_shift(argv[i],&eaten,gdp,im)) return; @@ -804,7 +807,6 @@ rrd_graph_script(int argc, char *argv[], image_desc_t *const im, int optno) { case GF_COMMENT: /* text */ if (rrd_parse_legend(argv[i],&eaten,gdp)) return; break; - case GF_STACK: /* vname-or-value[#color[:legend]] */ #ifdef WITH_PIECHART case GF_PART: /* value[#color[:legend]] */ #endif @@ -813,7 +815,20 @@ rrd_graph_script(int argc, char *argv[], image_desc_t *const im, int optno) { case GF_LINE: /* vname-or-value[#color[:legend]][:STACK] */ case GF_AREA: /* vname-or-value[#color[:legend]][:STACK] */ case GF_TICK: /* vname#color[:num[:legend]] */ - if (rrd_parse_PVHLAST(argv[i],&eaten,gdp,im)) return; + if (rrd_parse_PVHLAST(argv[i],&eaten,gdp,im))return; + last_gf = gdp->gf; + last_linewidth = gdp->linewidth; + break; + case GF_STACK: /* vname-or-value[#color[:legend]] */ + if (rrd_parse_PVHLAST(argv[i],&eaten,gdp,im))return; + if (last_gf == GF_LINE || last_gf == GF_AREA){ + gdp->gf = last_gf; + gdp->linewidth = last_linewidth; + } else { + rrd_set_error("STACK must follow LINE or AREA! command:\n%s", + &argv[i][eaten],argv[i]); + return; + } break; /* data acquisition */ case GF_DEF: /* vname=x:DS:CF:[:step=#][:start=#][:end=#] */