diff options
author | Rich Felker <dalias@aerifal.cx> | 2012-04-19 12:47:34 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2012-04-19 12:47:34 -0400 |
commit | cb81b6947c0277a6a27ddc699d716e9cf2b524aa (patch) | |
tree | 50c78b49bb6d81a726b1d58026757e7d1185a9ac /src/stdlib | |
parent | 769d3d349824fb45218972a1cf0e912cfee62d51 (diff) | |
download | musl-cb81b6947c0277a6a27ddc699d716e9cf2b524aa.tar.gz musl-cb81b6947c0277a6a27ddc699d716e9cf2b524aa.tar.xz musl-cb81b6947c0277a6a27ddc699d716e9cf2b524aa.zip |
fix really bad breakage in strtol, etc.: failure to accept leading spaces
Diffstat (limited to 'src/stdlib')
-rw-r--r-- | src/stdlib/strtod.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/stdlib/strtod.c b/src/stdlib/strtod.c index ecfabdf1..1886efa5 100644 --- a/src/stdlib/strtod.c +++ b/src/stdlib/strtod.c @@ -5,16 +5,14 @@ static long double strtox(const char *s, char **p, int prec) { - char *t = (char *)s; - while (isspace(*t)) t++; FILE f = { - .buf = (void *)t, .rpos = (void *)t, + .buf = (void *)s, .rpos = (void *)s, .rend = (void *)-1, .lock = -1 }; shlim(&f, 0); - long double y = __floatscan(&f, -1, prec, 1); + long double y = __floatscan(&f, prec, 1); off_t cnt = shcnt(&f); - if (p) *p = cnt ? t + cnt : (char *)s; + if (p) *p = cnt ? (char *)s + cnt : (char *)s; return y; } |