X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fstdlib%2Fwcstod.c;h=0deb7010b1afa1f216b738b3ad128fbc3914ec1a;hb=dec8f0a4fa7aa533c843e6eaec862be674ff3a1a;hp=5ec45dd7abc345365350fec96c30eae6d96f04b8;hpb=1bf725eda7a06713825b0609c9b39c55cf5ab76a;p=musl diff --git a/src/stdlib/wcstod.c b/src/stdlib/wcstod.c index 5ec45dd7..0deb7010 100644 --- a/src/stdlib/wcstod.c +++ b/src/stdlib/wcstod.c @@ -1,6 +1,8 @@ #include "shgetc.h" #include "floatscan.h" #include "stdio_impl.h" +#include +#include /* This read function heavily cheats. It knows: * (1) len will always be 1 @@ -31,8 +33,7 @@ static long double wcstox(const wchar_t *s, wchar_t **p, int prec) unsigned char buf[64]; FILE f = {0}; f.flags = 0; - f.rpos = f.rend = 0; - f.buf = buf + 4; + f.rpos = f.rend = f.buf = buf + 4; f.buf_size = sizeof buf - 4; f.lock = -1; f.read = do_read; @@ -47,17 +48,17 @@ static long double wcstox(const wchar_t *s, wchar_t **p, int prec) return y; } -float wcstof(const wchar_t *s, wchar_t **p) +float wcstof(const wchar_t *restrict s, wchar_t **restrict p) { return wcstox(s, p, 0); } -double wcstod(const wchar_t *s, wchar_t **p) +double wcstod(const wchar_t *restrict s, wchar_t **restrict p) { return wcstox(s, p, 1); } -long double wcstold(const wchar_t *s, wchar_t **p) +long double wcstold(const wchar_t *restrict s, wchar_t **restrict p) { return wcstox(s, p, 2); }