From: Mark Thom Date: Thu, 13 Jan 2022 05:10:59 +0000 (-0700) Subject: delimit partial strings around \x0\ X-Git-Tag: v0.9.0^2~71 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=d9e190096c21d69d02dd102f77ef2847b8fb6795;p=scryer-prolog.git delimit partial strings around \x0\ --- diff --git a/src/machine/partial_string.rs b/src/machine/partial_string.rs index 87256d04..4430b9e3 100644 --- a/src/machine/partial_string.rs +++ b/src/machine/partial_string.rs @@ -44,10 +44,10 @@ impl PartialString { #[inline] pub(super) fn new<'a>(src: &'a str, atom_tbl: &mut AtomTable) -> Option<(Self, &'a str)> { let terminator_idx = scan_for_terminator(src.chars()); - let pstr = PartialString(atom_tbl.build_with(src)); + let pstr = PartialString(atom_tbl.build_with(&src[.. terminator_idx])); - Some(if terminator_idx != src.as_bytes().len() { - (pstr, &src[terminator_idx..]) + Some(if terminator_idx < src.as_bytes().len() { + (pstr, &src[terminator_idx + 1..]) } else { (pstr, "") })