projects
/
musl
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix sigsetjmp on arm (needs asm)
[musl]
/
src
/
stdio
/
vfprintf.c
diff --git
a/src/stdio/vfprintf.c
b/src/stdio/vfprintf.c
index
91c6b93
..
116e1ce
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;
}
@@
-319,7
+319,7
@@
static int fmt_fp(FILE *f, long double y, int w, int p, int fl, int t)
if (j < 9*(z-r-1)) {
uint32_t x;
/* We avoid C's broken division of negative numbers */
if (j < 9*(z-r-1)) {
uint32_t x;
/* We avoid C's broken division of negative numbers */
- d = r + 1 + (
j+9*LDBL_MAX_EXP)/9 - LDBL_MAX_EXP
;
+ d = r + 1 + (
(j+9*LDBL_MAX_EXP)/9 - LDBL_MAX_EXP)
;
j += 9*LDBL_MAX_EXP;
j %= 9;
for (i=10, j++; j<9; i*=10, j++);
j += 9*LDBL_MAX_EXP;
j %= 9;
for (i=10, j++; j<9; i*=10, j++);
@@
-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=
0;
*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; *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;