aboutsummaryrefslogtreecommitdiff
path: root/parse.c
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2024-10-09 04:17:34 -0400
committerBruce Hill <bruce@bruce-hill.com>2024-10-09 04:17:34 -0400
commit47fca946065508cff4151a32b3008c161983fd9d (patch)
treed25d325cdb2411a87f9c6cc50d3337b4d8ae1fd1 /parse.c
parenta25699282df608a5f794ef8851d85c44752f5b85 (diff)
Bugfix for `1e-2-3`
Diffstat (limited to 'parse.c')
-rw-r--r--parse.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/parse.c b/parse.c
index b02e649f..f07f3ba8 100644
--- a/parse.c
+++ b/parse.c
@@ -712,8 +712,12 @@ PARSER(parse_num) {
len += 1 + strspn(pos + len + 1, "0123456789");
else if (pos[len] != 'e' && pos[len] != 'f' && pos[len] != '%')
return NULL;
- if (pos[len] == 'e')
- len += 1 + strspn(pos + len + 1, "-0123456789_");
+ if (pos[len] == 'e') {
+ len += 1;
+ if (pos[len] == '-')
+ len += 1;
+ len += strspn(pos + len, "0123456789_");
+ }
char *buf = GC_MALLOC_ATOMIC(len+1);
memset(buf, 0, len+1);
for (char *src = (char*)pos, *dest = buf; src < pos+len; ++src) {