mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-04 14:48:47 +00:00
Fix partial parsing of "infinity" in parse_f64_prefix
It was previously reporting an invalid number of characters parsed for any string other than "inf", "+inf", or "-inf".
This commit is contained in:
@@ -878,13 +878,10 @@ parse_f64_prefix :: proc(str: string) -> (value: f64, nr: int, ok: bool) {
|
|||||||
s = s[1:]
|
s = s[1:]
|
||||||
fallthrough
|
fallthrough
|
||||||
case 'i', 'I':
|
case 'i', 'I':
|
||||||
n = common_prefix_len_ignore_case(s, "infinity")
|
m := common_prefix_len_ignore_case(s, "infinity")
|
||||||
if 3 < n && n < 8 { // "inf" or "infinity"
|
if m == 3 || m == 8 { // "inf" or "infinity"
|
||||||
n = 3
|
|
||||||
}
|
|
||||||
if n == 3 || n == 8 {
|
|
||||||
f = 0h7ff00000_00000000 if sign == 1 else 0hfff00000_00000000
|
f = 0h7ff00000_00000000 if sign == 1 else 0hfff00000_00000000
|
||||||
n = nsign + 3
|
n = nsign + m
|
||||||
ok = true
|
ok = true
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user