diff options
Diffstat (limited to 'lib/strtox.c')
-rw-r--r-- | lib/strtox.c | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/lib/strtox.c b/lib/strtox.c deleted file mode 100644 index 5f786f1..0000000 --- a/lib/strtox.c +++ /dev/null @@ -1,53 +0,0 @@ -#include <stdlib.h> -#include <ctype.h> - -#define STRTOX(name, type) \ - type name(const char *restrict s, char **restrict endptr, int radix) \ - { \ - const char *s_start = s; \ - for (; isspace(*s); s++) \ - ; \ - \ - int sign = 0; \ - switch (*s) { \ - case '-': \ - sign = 1; /* fallthrough */ \ - case '+': \ - s++; \ - break; \ - } \ - \ - if ((radix == 0 || radix == 16) && \ - (s[0] == '0' && (s[1] == 'x' || s[1] == 'X'))) { \ - radix = 16; \ - s += 2; \ - } else if (radix == 0) { \ - if (*s == '0') { \ - radix = 8; \ - s++; \ - } else { \ - radix = 10; \ - } \ - } \ - \ - type num = 0; \ - int has_digit = 0; \ - \ - while (1) { \ - int n = ctoi(*s++); \ - if (n < 0 || n >= radix) \ - break; \ - has_digit = 1; \ - num = num * radix + n; \ - } \ - \ - if (endptr != NULL) { \ - *endptr = has_digit ? (char *)(s - 1) : (char *)s_start; \ - } \ - \ - return sign ? -num : num; \ - } - -STRTOX(strtoi, int) -STRTOX(strtol, long int) -STRTOX(strtoll, long long int) |