rendered paste bodyunsigned int scan_ulong(const char *str, unsigned long *ul)
{
register unsigned long res;
register unsigned int pos;
register char ch;
pos = 0;
res = 0;
for (;;) {
ch = str[pos];
switch (ch) {
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
ch -= '0'; res = (res * 10) + ch; ++pos;
break;
default:
goto END;
break;
}
}
END:
if (ul) *ul = res;
return pos;
}
unsigned int scan_ushort(const char *s, unsigned short *up)
{
unsigned long ul;
unsigned short us;
unsigned int len;
len = scan_ulong(s, &ul); us = (unsigned short) ul; *up = ul;
return len;
}
unsigned int scan_uchar(const char *s, unsigned char *up)
{
unsigned long ul;
unsigned char uc;
unsigned int len;
len = scan_ulong(s, &ul); uc = (unsigned char) ul; *up = ul;
return len;
}
unsigned int scan_uint(const char *s, unsigned int *up)
{
unsigned long ul;
unsigned int ui;
unsigned int len;
len = scan_ulong(s, &ul); ui = (unsigned int) ul; *up = ul;
return len;
}