Patch for rrd_context system by sebastian harl, making it simpler and less error...
[rrdtool.git] / src / rrd_graph.c
index 0cc78d4..db9a8c7 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * RRDtool 1.3rc5  Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc7  Copyright by Tobi Oetiker, 1997-2008
  ****************************************************************************
  * rrd__graph.c  produce graphs from data in rrdfiles
  ****************************************************************************/
@@ -4510,15 +4510,18 @@ int vdef_calc(
     graph_desc_t *src, *dst;
     rrd_value_t *data;
     long      step, steps;
+    unsigned long end;
 
     dst = &im->gdes[gdi];
     src = &im->gdes[dst->vidx];
     data = src->data + src->ds;
-    steps = (src->end - src->start) / src->step;
+    end = src->end_orig % src->step == 0 ? src->end_orig : (src->end_orig + src->step - src->end_orig % src->step);
+
+    steps = (end - src->start) / src->step;
 #if 0
     printf
         ("DEBUG: start == %lu, end == %lu, %lu steps\n",
-         src->start, src->end, steps);
+         src->start, src->end_orig, steps);
 #endif
     switch (dst->vf.op) {
     case VDEF_PERCENT:{