X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_graph.c;h=7d1a0760c1265a712c7a34e1fd62b32ed8078e0e;hb=9e6db622e8756105c1322481b34650ecbe15da1a;hp=e8a07b644e39dd7dd4714dbfdb0f184f29281b5d;hpb=b6076fdcf6de8361144c0d49c0b61623b5b26342;p=rrdtool.git diff --git a/src/rrd_graph.c b/src/rrd_graph.c index e8a07b6..7d1a076 100644 --- a/src/rrd_graph.c +++ b/src/rrd_graph.c @@ -1,5 +1,5 @@ /**************************************************************************** - * RRDtool 1.2.13 Copyright by Tobi Oetiker, 1997-2006 + * RRDtool 1.2.14 Copyright by Tobi Oetiker, 1997-2006 **************************************************************************** * rrd__graph.c produce graphs from data in rrdfiles ****************************************************************************/ @@ -48,13 +48,14 @@ xlab_t xlab[] = { {10, 0, TMT_MINUTE,5, TMT_MINUTE,20, TMT_MINUTE,20, 0,"%H:%M"}, {30, 0, TMT_MINUTE,10, TMT_HOUR,1, TMT_HOUR,1, 0,"%H:%M"}, {60, 0, TMT_MINUTE,30, TMT_HOUR,2, TMT_HOUR,2, 0,"%H:%M"}, + {60, 24*3600, TMT_MINUTE,30, TMT_HOUR,2, TMT_HOUR,4, 0,"%a %H:%M"}, {180, 0, TMT_HOUR,1, TMT_HOUR,6, TMT_HOUR,6, 0,"%H:%M"}, - {180, 1*24*3600, TMT_HOUR,1, TMT_HOUR,6, TMT_HOUR,6, 0,"%a %H:%M"}, + {180, 24*3600, TMT_HOUR,1, TMT_HOUR,6, TMT_HOUR,12, 0,"%a %H:%M"}, /*{300, 0, TMT_HOUR,3, TMT_HOUR,12, TMT_HOUR,12, 12*3600,"%a %p"}, this looks silly*/ {600, 0, TMT_HOUR,6, TMT_DAY,1, TMT_DAY,1, 24*3600,"%a"}, - {600, 1*24*3600, TMT_HOUR,6, TMT_DAY,1, TMT_DAY,1, 24*3600,"%a %d"}, - {1800, 0, TMT_HOUR,12, TMT_DAY,1, TMT_DAY,2, 24*3600,"%a"}, - {1800, 1*24*3600, TMT_HOUR,12, TMT_DAY,1, TMT_DAY,2, 24*3600,"%a %d"}, + {1200, 0, TMT_HOUR,6, TMT_DAY,1, TMT_DAY,1, 24*3600,"%d"}, + {1800, 0, TMT_HOUR,12, TMT_DAY,1, TMT_DAY,2, 24*3600,"%a %d"}, + {2400, 0, TMT_HOUR,12, TMT_DAY,1, TMT_DAY,2, 24*3600,"%a"}, {3600, 0, TMT_DAY,1, TMT_WEEK,1, TMT_WEEK,1, 7*24*3600,"Week %V"}, {3*3600, 0, TMT_WEEK,1, TMT_MONTH,1, TMT_WEEK,2, 7*24*3600,"Week %V"}, {6*3600, 0, TMT_MONTH,1, TMT_MONTH,1, TMT_MONTH,1, 30*24*3600,"%b"}, @@ -713,7 +714,7 @@ data_fetch(image_desc_t *im ) break; } if (! skip) { - unsigned long ft_step = im->gdes[i].step ; + unsigned long ft_step = im->gdes[i].step ; /* ft_step will record what we got from fetch */ if((rrd_fetch_fn(im->gdes[i].rrd, im->gdes[i].cf, @@ -726,7 +727,6 @@ data_fetch(image_desc_t *im ) return -1; } im->gdes[i].data_first = 1; - im->gdes[i].step = im->step; if (ft_step < im->gdes[i].step) { reduce_data(im->gdes[i].cf_reduce, @@ -1358,8 +1358,18 @@ print_calc(image_desc_t *im, char ***prdata) case GF_LINE: case GF_AREA: case GF_TICK: + graphelement = 1; + break; case GF_HRULE: + if(isnan(im->gdes[i].yrule)) { /* we must set this here or the legend printer can not decide to print the legend */ + im->gdes[i].yrule=im->gdes[im->gdes[i].vidx].vf.val; + }; + graphelement = 1; + break; case GF_VRULE: + if(im->gdes[i].xrule == 0) { /* again ... the legend printer needs it*/ + im->gdes[i].xrule = im->gdes[im->gdes[i].vidx].vf.when; + }; graphelement = 1; break; case GF_COMMENT: @@ -2858,9 +2868,6 @@ graph_paint(image_desc_t *im, char ***calcpr) switch(im->gdes[i].gf){ case GF_HRULE: - if(isnan(im->gdes[i].yrule)) { /* fetch variable */ - im->gdes[i].yrule = im->gdes[im->gdes[i].vidx].vf.val; - }; if(im->gdes[i].yrule >= im->minval && im->gdes[i].yrule <= im->maxval) gfx_new_line(im->canvas, @@ -2869,9 +2876,6 @@ graph_paint(image_desc_t *im, char ***calcpr) 1.0,im->gdes[i].col); break; case GF_VRULE: - if(im->gdes[i].xrule == 0) { /* fetch variable */ - im->gdes[i].xrule = im->gdes[im->gdes[i].vidx].vf.when; - }; if(im->gdes[i].xrule >= im->start && im->gdes[i].xrule <= im->end) gfx_new_line(im->canvas, @@ -3800,7 +3804,7 @@ printf("DEBUG: %3li:%10.2f %c\n",step,array[step],step==field?'*':' '); if (cnt) { if (dst->vf.op == VDEF_TOTAL) { dst->vf.val = sum*src->step; - dst->vf.when = cnt*src->step; /* not really "when" */ + dst->vf.when = 0; /* no time component */ } else { dst->vf.val = sum/cnt; dst->vf.when = 0; /* no time component */ @@ -3888,21 +3892,21 @@ printf("DEBUG: %3li:%10.2f %c\n",step,array[step],step==field?'*':' '); if (cnt) { if (dst->vf.op == VDEF_LSLSLOPE) { dst->vf.val = slope; - dst->vf.when = cnt*src->step; + dst->vf.when = 0; } else if (dst->vf.op == VDEF_LSLINT) { dst->vf.val = y_intercept; - dst->vf.when = cnt*src->step; + dst->vf.when = 0; } else if (dst->vf.op == VDEF_LSLCORREL) { dst->vf.val = correl; - dst->vf.when = cnt*src->step; + dst->vf.when = 0; }; } else { dst->vf.val = DNAN; dst->vf.when = 0; } - } - break; + } + break; } return 0; }