Soft'N'Design Software
/
projects
/
calc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix percent printing
[calc.git]
/
fdprintf.c
diff --git
a/fdprintf.c
b/fdprintf.c
index 76722fc508851be20d29be71f906a06b6f3e276b..46f27acb8f6b7a05032a4bd5d1038f90011b6061 100644
(file)
--- a/
fdprintf.c
+++ b/
fdprintf.c
@@
-112,6
+112,9
@@
int fdprintf (int fd, const char *fmt, ...)
/* process format char */
switch (*fmt++) {
/* process format char */
switch (*fmt++) {
+ case '%': /* percent */
+ *str++ = '%';
+ break;
case 'c': /* char */
c = (char) va_arg (ap, int);
*str++ = c;
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;
}
*str++ = '-';
f = -f;
}
- t = getexponant (&f, -6);
+ if (sz == 0) sz = 6;
+ t = getexponant (&f, -sz);
u = (int)f;
str = itoa (str, u, 0);
u = (int)f;
str = itoa (str, u, 0);
- d = (int)((f - u) * tenpower (
6
));
+ d = (int)((f - u) * tenpower (
sz
));
if (d > 0) {
*str++ = '.';
if (d > 0) {
*str++ = '.';
- str = itoa (str, d,
6
);
+ str = itoa (str, d,
sz
);
}
while (*(str - 1) == '0') {
str--;
}
while (*(str - 1) == '0') {
str--;