X-Git-Url: https://secure.softndesign.org/git/?a=blobdiff_plain;f=fdprintf.c;h=46f27acb8f6b7a05032a4bd5d1038f90011b6061;hb=5fe6254a8974dbe1fa199b5e3cc010af9bee87b3;hp=76722fc508851be20d29be71f906a06b6f3e276b;hpb=8148aaf1151292a1c3285b94151fbce38cf3335e;p=calc.git diff --git a/fdprintf.c b/fdprintf.c index 76722fc..46f27ac 100644 --- a/fdprintf.c +++ b/fdprintf.c @@ -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--;