#define NOARGC  /* no arg count passing */
#define FIXARGC /* don't expect arg counts passed in */
#include <stdio.h>
/*
   xtoi -- convert hex string to integer nbr
           returns field size, else ERR on error
*/

/* what should this be?? -- jrd */
#define ERR -1

xtoi(hexstr, nbr) 
char *hexstr; 
int *nbr; 
{
  int d, b;  char *cp;
  d = *nbr = 0; cp = hexstr;
  while(*cp == '0') ++cp;
  while(1) 
    {
    switch(*cp) 
      {
      case '0': case '1': case '2':
      case '3': case '4': case '5':
      case '6': case '7': case '8':
      case '9':                     b=48; break;
      case 'A': case 'B': case 'C':
      case 'D': case 'E': case 'F': b=55; break;
      case 'a': case 'b': case 'c':
      case 'd': case 'e': case 'f': b=87; break;
       default: return (cp - hexstr);
      }
    if(d < 4) ++d; else return (ERR);
    *nbr = (*nbr << 4) + (*cp++ - b);
    }
}
