X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_graph.c;h=afcbc0147072fd6faf981b307f130c14b0e9e101;hb=0873fc86cb3d4286e2bde9c0a458e7d2f8624e8d;hp=2d08b10f18fd957ed819aa74ed00dc85c7d1bb3e;hpb=38a4b58a9749f17e19303b05b8919b5c1b73b59f;p=rrdtool.git diff --git a/src/rrd_graph.c b/src/rrd_graph.c index 2d08b10..afcbc01 100644 --- a/src/rrd_graph.c +++ b/src/rrd_graph.c @@ -33,7 +33,8 @@ char rrd_win_default_font[80]; #ifndef RRD_DEFAULT_FONT #ifndef WIN32 -#define RRD_DEFAULT_FONT "/usr/share/fonts/truetype/openoffice/ariosor.ttf" +#define RRD_DEFAULT_FONT "VeraMono.ttf" +/* #define RRD_DEFAULT_FONT "/usr/share/fonts/truetype/openoffice/ariosor.ttf" */ /* #define RRD_DEFAULT_FONT "/usr/share/fonts/truetype/Arial.ttf" */ #endif #endif @@ -1071,6 +1072,11 @@ data_proc( image_desc_t *im ){ else im->maxval = maxval; } + /* make sure min is smaller than max */ + if (im->minval > im->maxval) { + im->minval = 0.99 * im->maxval; + } + /* make sure min and max are not equal */ if (im->minval == im->maxval) { im->maxval *= 1.01; @@ -1402,7 +1408,7 @@ leg_place(image_desc_t *im) im->text_prop[TEXT_PROP_LEGEND].font, im->text_prop[TEXT_PROP_LEGEND].size, im->tabwidth, - im->gdes[i].legend); + im->gdes[i].legend, 0); leg_c++; } else { legspace[i]=0; @@ -1450,7 +1456,7 @@ leg_place(image_desc_t *im) im->text_prop[TEXT_PROP_LEGEND].font, im->text_prop[TEXT_PROP_LEGEND].size, im->tabwidth, - im->gdes[ii].legend) + im->gdes[ii].legend, 0) + legspace[ii] + glue; if (im->gdes[ii].gf != GF_GPRINT && @@ -1888,13 +1894,14 @@ grid_paint(image_desc_t *im) } /* yaxis description */ - if (im->canvas->imgformat != IF_PNG) { +/* if (im->canvas->imgformat != IF_PNG) {*/ + if (1) { gfx_new_text( im->canvas, 7, (im->yorigin - im->ysize/2), im->graph_col[GRC_FONT], im->text_prop[TEXT_PROP_AXIS].font, im->text_prop[TEXT_PROP_AXIS].size, im->tabwidth, 270.0, - GFX_H_CENTER, GFX_V_CENTER, + GFX_H_LEFT, GFX_V_CENTER, im->ylegend); } else { /* horrible hack until we can actually print vertically */ @@ -1905,7 +1912,7 @@ grid_paint(image_desc_t *im) for (n=0;nylegend);n++) { s[0]=im->ylegend[n]; s[1]='\0'; - gfx_new_text(im->canvas,7,im->text_prop[TEXT_PROP_AXIS].size*(l-n), + gfx_new_text(im->canvas,7,im->text_prop[TEXT_PROP_AXIS].size*(n+1), im->graph_col[GRC_FONT], im->text_prop[TEXT_PROP_AXIS].font, im->text_prop[TEXT_PROP_AXIS].size, im->tabwidth, 270.0, @@ -1941,7 +1948,7 @@ grid_paint(image_desc_t *im) boxH = gfx_get_text_width(im->canvas, 0, im->text_prop[TEXT_PROP_AXIS].font, im->text_prop[TEXT_PROP_AXIS].size, - im->tabwidth,"M") * 1.25; + im->tabwidth,"M", 0) * 1.25; boxV = boxH; node = gfx_new_area(im->canvas, @@ -2093,7 +2100,7 @@ graph_size_location(image_desc_t *im, int elements, int piechart ) im->text_prop[TEXT_PROP_TITLE].font, im->text_prop[TEXT_PROP_TITLE].size, im->tabwidth, - im->title) + 2*Xspacing; + im->title, 0) + 2*Xspacing; Ytitle = im->text_prop[TEXT_PROP_TITLE].size*2; } @@ -2475,11 +2482,11 @@ graph_paint(image_desc_t *im, char ***calcpr) if (strcmp(im->graphfile,"-")==0) { + fo = im->graphhandle ? im->graphhandle : stdout; #ifdef WIN32 /* Change translation mode for stdout to BINARY */ - _setmode( _fileno( stdout ), O_BINARY ); + _setmode( _fileno( fo ), O_BINARY ); #endif - fo = stdout; } else { if ((fo = fopen(im->graphfile,"wb")) == NULL) { rrd_set_error("Opening '%s' for write: %s",im->graphfile, @@ -2567,12 +2574,13 @@ scan_for_col(char *input, int len, char *output) ** - script parsing now in rrd_graph_script() */ int -rrd_graph(int argc, char **argv, char ***prdata, int *xsize, int *ysize) +rrd_graph(int argc, char **argv, char ***prdata, int *xsize, int *ysize, FILE *stream) { image_desc_t im; rrd_graph_init(&im); - + im.graphhandle = stream; + rrd_graph_options(argc,argv,&im); if (rrd_test_error()) { im_free(&im); @@ -2702,7 +2710,7 @@ rrd_graph_options(int argc, char *argv[],image_desc_t *im) char scan_gtm[12],scan_mtm[12],scan_ltm[12],col_nam[12]; time_t start_tmp=0,end_tmp=0; long long_tmp; - struct time_value start_tv, end_tv; + struct rrd_time_value start_tv, end_tv; gfx_color_t color; parsetime("end-24h", &start_tv);