X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_graph.c;h=db7d5353e610e6432d1a530001a2fa9e3f13e5c3;hb=04ddf3a097198c83d74a60bc2f260b33db5ba92e;hp=ea5d8c3b2be2715c9baa77a07f019c696d04103c;hpb=a12627275ff8487174cbb907a066f62a00b6ae44;p=rrdtool.git diff --git a/src/rrd_graph.c b/src/rrd_graph.c index ea5d8c3..db7d535 100644 --- a/src/rrd_graph.c +++ b/src/rrd_graph.c @@ -938,7 +938,7 @@ long find_var( return -1; } -/* find the largest common denominator for all the numbers +/* find the greatest common divisor for all the numbers in the 0 terminated num array */ long lcd( long *num) @@ -1656,11 +1656,11 @@ int leg_place( int border = im->text_prop[TEXT_PROP_LEGEND].size * 2.0; int fill = 0, fill_last; int leg_c = 0; - int leg_x = border; + double leg_x = border; int leg_y = im->yimg; int leg_y_prev = im->yimg; int leg_cc; - int glue = 0; + double glue = 0; int i, ii, mark = 0; char prt_fctn; /*special printfunctions */ char default_txtalign = TXA_JUSTIFIED; /*default line orientation */ @@ -1792,12 +1792,12 @@ int leg_place( if (prt_fctn != '\0') { leg_x = border; if (leg_c >= 2 && prt_fctn == 'j') { - glue = (im->ximg - fill - 2 * border) / (leg_c - 1); + glue = (double)(im->ximg - fill - 2 * border) / (double)(leg_c - 1); } else { glue = 0; } if (prt_fctn == 'c') - leg_x = (im->ximg - fill) / 2.0; + leg_x = (double)(im->ximg - fill) / 2.0; if (prt_fctn == 'r') leg_x = im->ximg - fill - border; for (ii = mark; ii <= i; ii++) { @@ -1806,13 +1806,13 @@ int leg_place( im->gdes[ii].leg_x = leg_x; im->gdes[ii].leg_y = leg_y; leg_x += - gfx_get_text_width(im, leg_x, + (double)gfx_get_text_width(im, leg_x, im-> text_prop [TEXT_PROP_LEGEND]. font_desc, im->tabwidth, im->gdes[ii].legend) - + legspace[ii] + +(double)legspace[ii] + glue; } leg_y_prev = leg_y; @@ -4523,21 +4523,16 @@ 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; - end = - src->end_orig % (long) src->step == - 0 ? src->end_orig : (src->end_orig + (long) src->step - - src->end_orig % (long) src->step); - steps = (end - src->start) / src->step; + steps = (src->end - src->start) / src->step; #if 0 printf ("DEBUG: start == %lu, end == %lu, %lu steps\n", - src->start, src->end_orig, steps); + src->start, src->end, steps); #endif switch (dst->vf.op) { case VDEF_PERCENT:{