[U-Boot-Users] [PATCH] Fix strtoul() parsing of uppercase hex digits

Hi!
Make simple_strtoul work with upper-case hex numbers. This was taken from current Linux simple_strtoul()
Signed-off-by: Harald Welte laforge@openmoko.org
Index: u-boot/lib_generic/vsprintf.c =================================================================== --- u-boot.orig/lib_generic/vsprintf.c +++ u-boot/lib_generic/vsprintf.c @@ -25,21 +25,22 @@ unsigned long simple_strtoul(const char { unsigned long result = 0,value;
- if (*cp == '0') { - cp++; - if ((*cp == 'x') && isxdigit(cp[1])) { - base = 16; - cp++; - } - if (!base) { - base = 8; - } - } if (!base) { base = 10; + if (*cp == '0') { + base = 8; + cp++; + if ((toupper(*cp) == 'X') && isxdigit(cp[1])) { + cp++; + base = 16; + } + } + } else if (base == 16) { + if (cp[0] == '0' && toupper(cp[1]) == 'X') + cp += 2; } - while (isxdigit(*cp) && (value = isdigit(*cp) ? *cp-'0' : (islower(*cp) - ? toupper(*cp) : *cp)-'A'+10) < base) { + while (isxdigit(*cp) && + (value = isdigit(*cp) ? *cp-'0' : toupper(*cp)-'A'+10) < base) { result = result*base + value; cp++; }

On 2/16/07, Harald Welte laforge@openmoko.org wrote:
Hi!
Make simple_strtoul work with upper-case hex numbers. This was taken from current Linux simple_strtoul()
Signed-off-by: Harald Welte laforge@openmoko.org
Acked-by: Grant Likely grant.likely@secretlab.ca
participants (2)
-
Grant Likely
-
Harald Welte