Allows gcc to check format strings instead of just warning about them

Signed-off-by: Alan Coopersmith <[email protected]>
---
 src/util/fontxlfd.c |   16 +++++-----------
 1 files changed, 5 insertions(+), 11 deletions(-)

diff --git a/src/util/fontxlfd.c b/src/util/fontxlfd.c
index 18046e9..974128e 100644
--- a/src/util/fontxlfd.c
+++ b/src/util/fontxlfd.c
@@ -116,7 +116,6 @@ readreal(char *ptr, double *result)
 static char *
 xlfd_double_to_text(double value, char *buffer, int space_required)
 {
-    char formatbuf[40];
     register char *p1;
     int ndigits, exponent;
 
@@ -132,14 +131,12 @@ xlfd_double_to_text(double value, char *buffer, int 
space_required)
            minus = locale->negative_sign;
     }
 #endif
-    /* Compute a format to use to render the number */
-    sprintf(formatbuf, "%%.%dle", XLFD_NDIGITS);
 
     if (space_required)
        *buffer++ = ' ';
 
     /* Render the number using printf's idea of formatting */
-    sprintf(buffer, formatbuf, value);
+    sprintf(buffer, "%.*le", XLFD_NDIGITS, value);
 
     /* Find and read the exponent value */
     for (p1 = buffer + strlen(buffer);
@@ -156,16 +153,14 @@ xlfd_double_to_text(double value, char *buffer, int 
space_required)
     if (exponent >= XLFD_NDIGITS || ndigits - exponent > XLFD_NDIGITS + 1)
     {
        /* Scientific */
-       sprintf(formatbuf, "%%.%dle", ndigits - 1);
-       sprintf(buffer, formatbuf, value);
+       sprintf(buffer, "%.*le", ndigits - 1, value);
     }
     else
     {
        /* Fixed */
        ndigits -= exponent + 1;
        if (ndigits < 0) ndigits = 0;
-       sprintf(formatbuf, "%%.%dlf", ndigits);
-       sprintf(buffer, formatbuf, value);
+       sprintf(buffer, "%.*lf", ndigits, value);
        if (exponent < 0)
        {
            p1 = buffer;
@@ -265,10 +260,9 @@ xlfd_round_double(double x)
         * If not IEEE 754:  Let printf() do it for you.
         */
 
-       char formatbuf[40], buffer[40];
+       char buffer[40];
 
-       sprintf(formatbuf, "%%.%dlg", XLFD_NDIGITS);
-       sprintf(buffer, formatbuf, x);
+       sprintf(buffer, "%.*lg", XLFD_NDIGITS, x);
        return atof(buffer);
     }
 }
-- 
1.7.3.2

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to