mirror of
https://github.com/fluencelabs/musl
synced 2025-05-06 12:32:13 +00:00
accept "nan(n-char-sequence)" in strtod/scanf functions
this will prevent gnulib from wrapping our strtod to handle this useless feature.
This commit is contained in:
parent
f1b23d41cf
commit
8489897e01
@ -414,7 +414,7 @@ static long double hexfloat(FILE *f, int bits, int emin, int sign, int pok)
|
|||||||
long double __floatscan(FILE *f, int prec, int pok)
|
long double __floatscan(FILE *f, int prec, int pok)
|
||||||
{
|
{
|
||||||
int sign = 1;
|
int sign = 1;
|
||||||
int i;
|
size_t i;
|
||||||
int bits;
|
int bits;
|
||||||
int emin;
|
int emin;
|
||||||
int c;
|
int c;
|
||||||
@ -455,6 +455,24 @@ long double __floatscan(FILE *f, int prec, int pok)
|
|||||||
if (!i) for (i=0; i<3 && (c|32)=="nan"[i]; i++)
|
if (!i) for (i=0; i<3 && (c|32)=="nan"[i]; i++)
|
||||||
if (i<2) c = shgetc(f);
|
if (i<2) c = shgetc(f);
|
||||||
if (i==3) {
|
if (i==3) {
|
||||||
|
if (shgetc(f) != '(') {
|
||||||
|
shunget(f);
|
||||||
|
return NAN;
|
||||||
|
}
|
||||||
|
for (i=1; ; i++) {
|
||||||
|
c = shgetc(f);
|
||||||
|
if (c-'0'<10U || c-'A'<26U || c-'a'<26U || c=='_')
|
||||||
|
continue;
|
||||||
|
if (c==')') return NAN;
|
||||||
|
shunget(f);
|
||||||
|
if (!pok) {
|
||||||
|
errno = EINVAL;
|
||||||
|
shlim(f, 0);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
while (i--) shunget(f);
|
||||||
|
return NAN;
|
||||||
|
}
|
||||||
return NAN;
|
return NAN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user