openwrt-packages/utils/rrdtool1/patches/040-no-e-notation-on-log-di...

28 lines
1000 B
Diff

--- a/src/rrd_graph.c
+++ b/src/rrd_graph.c
@@ -2049,7 +2049,7 @@ horizontal_log_grid(gdImagePtr gif, imag
char graph_label[100];
gdPoint polyPoints[4];
int styleMinor[2],styleMajor[2];
- double value, pixperstep, minstep;
+ double value, pixperstep, minstep, yval;
/* find grid spaceing */
pixpex= (double)im->ysize / (log10(im->maxval) - log10(im->minval));
@@ -2118,7 +2118,14 @@ horizontal_log_grid(gdImagePtr gif, imag
gdImageLine(gif, polyPoints[0].x,polyPoints[0].y,
polyPoints[1].x,polyPoints[0].y,gdStyled);
- sprintf(graph_label,"%3.0e",value * yloglab[majoridx][i]);
+ yval = value * yloglab[majoridx][i];
+ if (yval >= 100000) {
+ sprintf(graph_label,"%3.0e", yval);
+ } else {
+ if (yval == 1) /* prints as 1e+00 */
+ yval = 0;
+ sprintf(graph_label,"%5.0f", yval);
+ }
gdImageString(gif, SmallFont,
(polyPoints[0].x - (strlen(graph_label) *
SmallFont->w)-7),