rem: int v = strtol((char *)f, endf, 10);
add: v = strtol((char *)f, endf, 10);
context: strtonumber(const char *f, char **endf){  // in case strtol() doesn't return 0 on strange input  if (*f == '.')    return strtod((char *)f, endf);    int v = strtol((char *)f, endf, 10);  if (**endf == '.' && v < 0)    return v - strtod(*endf, endf);  else if (**endf == '.')    return v + strtod(*endf, endf);  else if (**endf == 'E' || **endf == 'e')    return strtod((char *)f, endf);  else    return v;}