From: Ian Jackson Date: Thu, 8 Oct 2020 00:35:32 +0000 (+0100) Subject: reject trailing zero limbs X-Git-Tag: otter-0.2.0~726 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=ed2425d2d2eb8123a56bdc96d5ee5724f9db2eb8;p=otter.git reject trailing zero limbs Signed-off-by: Ian Jackson --- diff --git a/src/bigfloat.rs b/src/bigfloat.rs index 78067103..f3588b8e 100644 --- a/src/bigfloat.rs +++ b/src/bigfloat.rs @@ -206,6 +206,7 @@ impl Bigfloat { }) { None? } match lt[DIGITS_PER_LIMB..] { [] | [b'_'] => (), _ => None? }; } + if &s[s.len() - DIGITS_PER_LIMB.. ] == b"0000000000" { None? } Bigfloat::alloc_copy(s).ok()? } @@ -351,6 +352,8 @@ mod test { fn bad(s: &str) { assert_eq!(None, Bigfloat::from_str(s)); } bad(""); bad("0"); + bad("0000000000"); + bad("0000000000_0000000000"); bad("aaaaaaaa0_aaaaaaaa00"); bad("aaaaaaaa0_aaaaaaaa00"); bad("aaaaaaaa00_aaaaaaaa0");