From 167217bec15c9c7aa70ba2a3dc9c689b3cd91872 Mon Sep 17 00:00:00 2001 From: Guillaume Cottenceau Date: Mon, 14 May 2001 14:19:32 +0000 Subject: import new version of dietlibc --- mdk-stage1/dietlibc/lib/strtoul.c | 37 +++++++++++++++---------------------- 1 file changed, 15 insertions(+), 22 deletions(-) (limited to 'mdk-stage1/dietlibc/lib/strtoul.c') diff --git a/mdk-stage1/dietlibc/lib/strtoul.c b/mdk-stage1/dietlibc/lib/strtoul.c index bee849685..3f93962a9 100644 --- a/mdk-stage1/dietlibc/lib/strtoul.c +++ b/mdk-stage1/dietlibc/lib/strtoul.c @@ -1,38 +1,31 @@ #include -static char *num="0123456789abcdefghijklmnopqrstuvwxyz"; +/* static char *num="0123456789abcdefghijklmnopqrstuvwxyz"; */ unsigned long int strtoul(const char *nptr, char **endptr, int base) { long int v=0; - int a=1,i; - while(isspace(*nptr)) nptr++; + while(isspace(*nptr)) ++nptr; - if (*nptr == '+') { nptr++; } - if (!base) - { - if (*nptr=='0') - { + if (*nptr == '+') ++nptr; + if (!base) { + if (*nptr=='0') { base=8; - if ((*(nptr+1)=='x')||(*(nptr+1)=='X')) base=16; + if ((*(nptr+1)=='x')||(*(nptr+1)=='X')) { + nptr+=2; + base=16; + } } else base=10; } - while((a)&&(*nptr)) - { - a=0; - for (i=0;(!a)&&(i='a'?c-'a'+10:c>='A'?c-'A'+10:c-'0'); + if (c>=base) break; + v=v*base+c; + ++nptr; } if (endptr) *endptr=(char *)nptr; return v; -- cgit v1.2.1