diff options
Diffstat (limited to 'mdk-stage1/dietlibc/lib/strtoul.c')
-rw-r--r-- | mdk-stage1/dietlibc/lib/strtoul.c | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/mdk-stage1/dietlibc/lib/strtoul.c b/mdk-stage1/dietlibc/lib/strtoul.c deleted file mode 100644 index e9c09fb59..000000000 --- a/mdk-stage1/dietlibc/lib/strtoul.c +++ /dev/null @@ -1,44 +0,0 @@ -#include <ctype.h> -#include "dietfeatures.h" -#include <errno.h> -#include <limits.h> -#include <stdlib.h> - -unsigned long int strtoul(const char *nptr, char **endptr, int base) -{ - int neg = 0; - unsigned long int v=0; - - while(isspace(*nptr)) ++nptr; - if (*nptr == '-') { neg=1; nptr++; } - if (*nptr == '+') ++nptr; - if (base==16 && nptr[0]=='0') goto skip0x; - if (!base) { - if (*nptr=='0') { - base=8; -skip0x: - if (nptr[1]=='x'||nptr[1]=='X') { - nptr+=2; - base=16; - } - } else - base=10; - } - while(*nptr) { - register unsigned char c=*nptr; - c=(c>='a'?c-'a'+10:c>='A'?c-'A'+10:c<='9'?c-'0':0xff); - if (c>=base) break; - { - register unsigned long int w=v*base; - if (w<v) { - errno=ERANGE; - return ULONG_MAX; - } - v=w+c; - } - ++nptr; - } - if (endptr) *endptr=(char *)nptr; - errno=0; /* in case v==ULONG_MAX, ugh! */ - return (neg?-v:v); -} |