diff options
Diffstat (limited to 'src/stdlib/strtoumax.c')
-rw-r--r-- | src/stdlib/strtoumax.c | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/src/stdlib/strtoumax.c b/src/stdlib/strtoumax.c deleted file mode 100644 index a299dc04..00000000 --- a/src/stdlib/strtoumax.c +++ /dev/null @@ -1,34 +0,0 @@ -#include <inttypes.h> -#include <stdlib.h> -#include <errno.h> -#include <ctype.h> -#include "intparse.h" - -uintmax_t strtoumax(const char *s1, char **p, int base) -{ - const unsigned char *s = (void *)s1; - struct intparse ip = {0}; - - if (p) *p = (char *)s1; - - if (base && base-2U > 34) { - errno = EINVAL; - return 0; - } - - for (; isspace(*s); s++); - - ip.base = base; - __intparse(&ip, s, SIZE_MAX); - - if (p && ip.err != EINVAL) - *p = (char *)s + ip.cnt; - - if (ip.err) { - errno = ip.err; - if (ip.err == EINVAL) return 0; - return UINTMAX_MAX; - } - - return ip.neg ? -ip.val : ip.val; -} |