version 1.269, 2021/06/21 21:10:01 |
version 1.270, 2021/07/29 06:35:20 |
Line 376 TryParseNumber(const char *str, double * |
|
Line 376 TryParseNumber(const char *str, double * |
|
unsigned long ul_val; |
unsigned long ul_val; |
double dbl_val; |
double dbl_val; |
|
|
errno = 0; |
|
if (str[0] == '\0') { /* XXX: why is an empty string a number? */ |
if (str[0] == '\0') { /* XXX: why is an empty string a number? */ |
*out_value = 0.0; |
*out_value = 0.0; |
return true; |
return true; |
} |
} |
|
|
|
errno = 0; |
ul_val = strtoul(str, &end, str[1] == 'x' ? 16 : 10); |
ul_val = strtoul(str, &end, str[1] == 'x' ? 16 : 10); |
if (*end == '\0' && errno != ERANGE) { |
if (*end == '\0' && errno != ERANGE) { |
*out_value = str[0] == '-' ? -(double)-ul_val : (double)ul_val; |
*out_value = str[0] == '-' ? -(double)-ul_val : (double)ul_val; |