X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Frrd_graph_helper.c;h=e7ec902292ac95ebc30aa1e7f5211caccb0cf464;hb=d9822df7ed5e8122cf3a62e4e99678e94007f504;hp=456ab95b022fb05f54f09c0e0f5b2f1dd8f8eadd;hpb=2d7eb66e602a5c53dc2fafd70aa6ec4d7b447be9;p=pkg-rrdtool.git diff --git a/src/rrd_graph_helper.c b/src/rrd_graph_helper.c index 456ab95..e7ec902 100644 --- a/src/rrd_graph_helper.c +++ b/src/rrd_graph_helper.c @@ -1,5 +1,5 @@ /**************************************************************************** - * RRDtool 1.3.2 Copyright by Tobi Oetiker, 1997-2008 + * RRDtool 1.4.8 Copyright by Tobi Oetiker, 1997-2013 **************************************************************************** * rrd_graph_helper.c commandline parser functions * this code initially written by Alex van den Bogaerdt @@ -758,6 +758,24 @@ int rrd_parse_PVHLAST( dprintf("- not STACKing\n"); } + dprintf("- parsing '%s', looking for skipscale\n", &line[*eaten]); + j = scan_for_col(&line[*eaten], 9, tmpstr); + if (!strcmp("skipscale", tmpstr)) { + dprintf("- found skipscale\n"); + gdp->skipscale = 1; + (*eaten) += j; + if (line[*eaten] == ':') { + (*eaten) += 1; + } else if (line[*eaten] == '\0') { + dprintf("- done parsing line\n"); + return 0; + } else { + dprintf("- found %s instead of just skipscale\n", &line[*eaten]); + rrd_set_error("skipscale expected but %s found", &line[*eaten]); + return 1; + } + } + dprintf("- still more, should be dashes[=...]\n"); dprintf("- parsing '%s'\n", &line[*eaten]); if (line[*eaten] != '\0') { @@ -1076,7 +1094,7 @@ void rrd_graph_script( graph_desc_t *gdp; unsigned int eaten = 0; - if (gdes_alloc(im)) + if (gdes_alloc(im)) /* gdes_c ++ */ return; /* the error string is already set */ gdp = &im->gdes[im->gdes_c - 1]; #ifdef DEBUG @@ -1157,5 +1175,13 @@ void rrd_graph_script( &argv[i][eaten], argv[i]); return; } + char *key = gdes_fetch_key((*gdp)); + if (gdp->gf == GF_DEF && !g_hash_table_lookup_extended(im->rrd_map,key,NULL,NULL)){ + g_hash_table_insert(im->gdef_map,g_strdup(key),GINT_TO_POINTER(im->gdes_c-1)); + } + free(key); + if (gdp->gf == GF_DEF || gdp->gf == GF_VDEF || gdp->gf == GF_CDEF){ + g_hash_table_insert(im->gdef_map,g_strdup(gdp->vname),GINT_TO_POINTER(im->gdes_c-1)); + } } }