- if(fractionals < 0) /* small amplitude. */
- sprintf(im->ygrid_scale.labfmt, "%%%d.%df", decimals - fractionals + 1, -fractionals + 1);
- else
- sprintf(im->ygrid_scale.labfmt, "%%%d.1f", decimals + 1);
+ if(fractionals < 0) { /* small amplitude. */
+ int len = decimals - fractionals + 1;
+ if (im->unitslength < len) im->unitslength = len;
+ sprintf(im->ygrid_scale.labfmt, "%%%d.%df", len, -fractionals + 1);
+ } else {
+ int len = decimals + 1;
+ if (im->unitslength < len) im->unitslength = len;
+ sprintf(im->ygrid_scale.labfmt, "%%%d.1f", len);
+ }