45a46 > #include 213c214 < char *p, *ptr; --- > char *p; 220c221 < char *alpha = "abcdefghijklmnop"; --- > char alpha[] = "abcdefghijklmnop"; 224,225c225,226 < for(i = 0, ptr = alpha; i < strlen(alpha); i++) { < if(*ptr == *p) --- > for(i = 0 ; i < sizeof(alpha)/sizeof(char); i++) { > if(alpha[i] == *p) 227d227 < *ptr++; 229,230c229 < *p++; < ret = BASE_DEV_VAL + (16*i) + atoi(p); --- > ret = BASE_DEV_VAL + (16*i) + isdigit(p[1]) ? atoi(p+1) : 0; 233,235c232,234 < for (i = 0, ptr = alpha; i < strlen(alpha); i++) { < if(*ptr == *p) break; < *ptr++; --- > for(i = 0 ; i < sizeof(alpha)/sizeof(char); i++) { > if(alpha[i] == *p) > break; 237,238c236 < *p++; < ret = (majors[i/2]*256) + atoi(p); --- > ret = (majors[i/2]*256) + isdigit(p[1]) ? atoi(p) : 0; 242,244c240,242 < for(i = 0, ptr = alpha; i < strlen(alpha); i++) { < if(*ptr == *p) break; < *ptr++; --- > for(i = 0 ; i < sizeof(alpha)/sizeof(char); i++) { > if(alpha[i] == *p) > break; 246,247c244 < *p++; < ret = (202*256) + (16*i) + atoi(p); --- > ret = (202*256) + (16*i) + isdigit(p[1]) ? atoi(p) : 0; 251c248 < ret = atoi(p); --- > ret = isdigit(*p) ? atoi(p):0;