projects
/
rrdtool.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
make basename work
[rrdtool.git]
/
src
/
rrd_graph.c
diff --git
a/src/rrd_graph.c
b/src/rrd_graph.c
index
da3be8a
..
a24889f
100644
(file)
--- a/
src/rrd_graph.c
+++ b/
src/rrd_graph.c
@@
-6,6
+6,7
@@
#include <sys/stat.h>
#include <sys/stat.h>
+#include <libgen.h>
#ifdef WIN32
#include "strftime.h"
#ifdef WIN32
#include "strftime.h"
@@
-938,7
+939,7
@@
long find_var(
return -1;
}
return -1;
}
-/* find the
largest common denominat
or for all the numbers
+/* find the
greatest common divis
or for all the numbers
in the 0 terminated num array */
long lcd(
long *num)
in the 0 terminated num array */
long lcd(
long *num)
@@
-1656,11
+1657,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 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 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 */
int i, ii, mark = 0;
char prt_fctn; /*special printfunctions */
char default_txtalign = TXA_JUSTIFIED; /*default line orientation */
@@
-1792,12
+1793,12
@@
int leg_place(
if (prt_fctn != '\0') {
leg_x = border;
if (leg_c >= 2 && prt_fctn == 'j') {
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')
} 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++) {
if (prt_fctn == 'r')
leg_x = im->ximg - fill - border;
for (ii = mark; ii <= i; ii++) {
@@
-1806,13
+1807,13
@@
int leg_place(
im->gdes[ii].leg_x = leg_x;
im->gdes[ii].leg_y = leg_y;
leg_x +=
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)
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;
+ glue;
}
leg_y_prev = leg_y;
@@
-3682,14
+3683,11
@@
rrd_info_t *rrd_graph_v(
if (im.imginfo) {
rrd_infoval_t info;
if (im.imginfo) {
rrd_infoval_t info;
+ char *path;
char *filename;
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,
info.u_str =
sprintf_alloc(im.imginfo,
filename,
@@
-3697,6
+3695,7
@@
rrd_info_t *rrd_graph_v(
im.ximg), (long) (im.zoom * im.yimg));
grinfo_push(&im, sprintf_alloc("image_info"), RD_I_STR, info);
free(info.u_str);
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 (im.rendered_image) {
rrd_infoval_t img;
@@
-4172,7
+4171,7
@@
void rrd_graph_options(
if (size > 0) {
rrd_set_font_desc(im,propidx,NULL,size);
}
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 {
if (optarg[end] == ':') {
rrd_set_font_desc(im,propidx,optarg + end + 1,0);
} else {