summaryrefslogtreecommitdiff
path: root/src/stdlib
diff options
context:
space:
mode:
Diffstat (limited to 'src/stdlib')
-rw-r--r--src/stdlib/strtod.c6
-rw-r--r--src/stdlib/strtol.c9
2 files changed, 3 insertions, 12 deletions
diff --git a/src/stdlib/strtod.c b/src/stdlib/strtod.c
index a898b1d4..a5d0118a 100644
--- a/src/stdlib/strtod.c
+++ b/src/stdlib/strtod.c
@@ -5,10 +5,8 @@
static long double strtox(const char *s, char **p, int prec)
{
- FILE f = {
- .buf = (void *)s, .rpos = (void *)s,
- .rend = (void *)-1, .lock = -1
- };
+ FILE f;
+ sh_fromstring(&f, s);
shlim(&f, 0);
long double y = __floatscan(&f, prec, 1);
off_t cnt = shcnt(&f);
diff --git a/src/stdlib/strtol.c b/src/stdlib/strtol.c
index d82ecf7f..bfefea69 100644
--- a/src/stdlib/strtol.c
+++ b/src/stdlib/strtol.c
@@ -7,15 +7,8 @@
static unsigned long long strtox(const char *s, char **p, int base, unsigned long long lim)
{
- /* FIXME: use a helper function or macro to setup the FILE */
FILE f;
- f.flags = 0;
- f.buf = f.rpos = (void *)s;
- if ((size_t)s > (size_t)-1/2)
- f.rend = (void *)-1;
- else
- f.rend = (unsigned char *)s+(size_t)-1/2;
- f.lock = -1;
+ sh_fromstring(&f, s);
shlim(&f, 0);
unsigned long long y = __intscan(&f, base, 1, lim);
if (p) {