diff --git a/src/rrd_graph.c b/src/rrd_graph.c
index ea5d8c3b2be2715c9baa77a07f019c696d04103c..8aa71560b8c60ef554c00c50cc28d0bad2ca5ff8 100644 (file)
--- a/src/rrd_graph.c
+++ b/src/rrd_graph.c
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)
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 */
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++) {
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;
if (im.imginfo) {
rrd_infoval_t info;
+ char *path;
char *filename;
- filename = im.graphfile + strlen(im.graphfile);
- while (filename > im.graphfile) {
- if (*(filename - 1) == '/' || *(filename - 1) == '\\')
- break;
- filename--;
- }
+ path = strdup(im.graphfile);
+ filename = basename(path);
info.u_str =
sprintf_alloc(im.imginfo,
filename,
im.ximg), (long) (im.zoom * im.yimg));
grinfo_push(&im, sprintf_alloc("image_info"), RD_I_STR, info);
free(info.u_str);
+ free(path);
}
if (im.rendered_image) {
rrd_infoval_t img;
if (size > 0) {
rrd_set_font_desc(im,propidx,NULL,size);
}
- if ((int) strlen(optarg) > end) {
+ if ((int) strlen(optarg) > end+2) {
if (optarg[end] == ':') {
rrd_set_font_desc(im,propidx,optarg + end + 1,0);
} else {
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:{