Index: Objects/floatobject.c =================================================================== --- Objects/floatobject.c (revision 65961) +++ Objects/floatobject.c (working copy) @@ -1126,7 +1126,6 @@ static int hex_from_char(char c) { int x; - assert(isxdigit(c)); switch(c) { case '0': x = 0; @@ -1355,12 +1354,12 @@ /* coefficient: [. ] */ coeff_start = s; - while (isxdigit(*s)) + while (hex_from_char(*s) >= 0) s++; s_store = s; if (*s == '.') { s++; - while (isxdigit(*s)) + while (hex_from_char(*s) >= 0) s++; coeff_end = s-1; } @@ -1382,10 +1381,10 @@ exp_start = s; if (*s == '-' || *s == '+') s++; - if (!isdigit(*s)) + if (!('0' <= *s && *s <= '9')) goto parse_error; s++; - while (isdigit(*s)) + while ('0' <= *s && *s <= '9') s++; exp = strtol(exp_start, NULL, 10); }