change prompt
[calc.git] / fdprintf.c
index 76722fc508851be20d29be71f906a06b6f3e276b..46f27acb8f6b7a05032a4bd5d1038f90011b6061 100644 (file)
@@ -112,6 +112,9 @@ int fdprintf (int fd, const char *fmt, ...)
 
             /* process format char */
             switch (*fmt++) {
+            case '%': /* percent */
+                *str++ = '%';
+                break;
             case 'c': /* char */
                 c = (char) va_arg (ap, int);
                 *str++ = c;
@@ -137,13 +140,14 @@ int fdprintf (int fd, const char *fmt, ...)
                     *str++ = '-';
                     f = -f;
                 }
-                t = getexponant (&f, -6);
+                if (sz == 0) sz = 6;
+                t = getexponant (&f, -sz);
                 u = (int)f;
                 str = itoa (str, u, 0);
-                d = (int)((f - u) * tenpower (6));
+                d = (int)((f - u) * tenpower (sz));
                 if (d > 0) {
                     *str++ = '.';
-                    str = itoa (str, d, 6);
+                    str = itoa (str, d, sz);
                 }
                 while (*(str - 1) == '0') {
                     str--;