diff options
Diffstat (limited to 'src/stdlib/strtod.c')
-rw-r--r-- | src/stdlib/strtod.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/stdlib/strtod.c b/src/stdlib/strtod.c index 388058fe..98b992a1 100644 --- a/src/stdlib/strtod.c +++ b/src/stdlib/strtod.c @@ -1,6 +1,15 @@ #include <stdlib.h> +#include "floatscan.h" +#include "stdio_impl.h" double strtod(const char *s, char **p) { - return strtold(s, p); + FILE f = { + .buf = (void *)s, .rpos = (void *)s, + .rend = (void *)-1, .lock = -1 + }; + off_t cnt; + double y = __floatscan(&f, -1, 1, 1, &cnt); + if (p) *p = (char *)s + cnt; + return y; } |