Handle sign when converting integer strings to numbers.

This commit is contained in:
Tor Andersson
2023-05-08 12:36:05 +02:00
parent db212180bf
commit ddd770933b

View File

@@ -205,8 +205,15 @@ double js_stringtofloat(const char *s, char **ep)
} }
if (isflt) if (isflt)
n = js_strtod(s, &end); n = js_strtod(s, &end);
else else {
n = js_strtol(s, &end, 10); /* js_strtol doesn't parse the sign */
if (*s == '-')
n = -js_strtol(s+1, &end, 10);
else if (*s == '+')
n = js_strtol(s+1, &end, 10);
else
n = js_strtol(s, &end, 10);
}
if (end == e) { if (end == e) {
*ep = (char*)e; *ep = (char*)e;
return n; return n;