All pastes #375861 Raw Edit

Stuff

public text v1 · immutable
#375861 ·published 2007-02-28 17:55 UTC
rendered paste body
unsigned 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;
}