projects
/
musl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
minor perror behavior fix
[musl]
/
src
/
stdio
/
vfprintf.c
diff --git
a/src/stdio/vfprintf.c
b/src/stdio/vfprintf.c
index
d593b33
..
a3bf18d
100644
(file)
--- a/
src/stdio/vfprintf.c
+++ b/
src/stdio/vfprintf.c
@@
-296,7
+296,7
@@
static int fmt_fp(FILE *f, long double y, int w, int p, int fl, int t)
e2-=sh;
}
while (e2<0) {
e2-=sh;
}
while (e2<0) {
- uint32_t carry=0, *
z2
;
+ uint32_t carry=0, *
b
;
int sh=MIN(9,-e2);
for (d=a; d<z; d++) {
uint32_t rm = *d & (1<<sh)-1;
int sh=MIN(9,-e2);
for (d=a; d<z; d++) {
uint32_t rm = *d & (1<<sh)-1;
@@
-306,8
+306,8
@@
static int fmt_fp(FILE *f, long double y, int w, int p, int fl, int t)
if (!*a) a++;
if (carry) *z++ = carry;
/* Avoid (slow!) computation past requested precision */
if (!*a) a++;
if (carry) *z++ = carry;
/* Avoid (slow!) computation past requested precision */
-
z2 = ((t|32)=='f' ? r : a) + 2 + p/9
;
-
z = MIN(z, z2)
;
+
b = (t|32)=='f' ? r : a
;
+
if (z-b > 2+p/9) z = b+2+p/9
;
e2+=sh;
}
e2+=sh;
}
@@
-599,12
+599,12
@@
static int printf_core(FILE *f, const char *fmt, va_list *ap, union arg *nl_arg,
p = -1;
case 'S':
ws = arg.p;
p = -1;
case 'S':
ws = arg.p;
- for (i=l=0; i<p && *ws && (l=wctomb(mb, *ws++))>=0 && l<=0U+p-i; i+=l);
+ for (i=l=0; i<
0U+
p && *ws && (l=wctomb(mb, *ws++))>=0 && l<=0U+p-i; i+=l);
if (l<0) return -1;
p = i;
pad(f, ' ', w, p, fl);
ws = arg.p;
if (l<0) return -1;
p = i;
pad(f, ' ', w, p, fl);
ws = arg.p;
- for (i=0; i<p && *ws && i+(l=wctomb(mb, *ws++))<=p; i+=l)
+ for (i=0; i<
0U+
p && *ws && i+(l=wctomb(mb, *ws++))<=p; i+=l)
out(f, mb, l);
pad(f, ' ', w, p, fl^LEFT_ADJ);
l = w>p ? w : p;
out(f, mb, l);
pad(f, ' ', w, p, fl^LEFT_ADJ);
l = w>p ? w : p;