From: Mark Thom Date: Sat, 5 Mar 2022 17:38:16 +0000 (-0700) Subject: reset ReadlineStream from read_query_line (#1317, #1285) X-Git-Tag: v0.9.0^2~2 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=66c209f9e4b617c8ff52b5a6c4b9b86fdc34c2a1;p=scryer-prolog.git reset ReadlineStream from read_query_line (#1317, #1285) --- diff --git a/src/machine/streams.rs b/src/machine/streams.rs index 1b512e51..9d76c898 100644 --- a/src/machine/streams.rs +++ b/src/machine/streams.rs @@ -1053,7 +1053,8 @@ impl Stream { file_stream.stream.get_mut().file.seek(SeekFrom::Start(0)).unwrap(); return true; } - Stream::Readline(_) => { + Stream::Readline(ref mut readline_stream) => { + readline_stream.reset(); return true; } _ => { diff --git a/src/read.rs b/src/read.rs index def66b10..72dc9900 100644 --- a/src/read.rs +++ b/src/read.rs @@ -111,6 +111,12 @@ impl ReadlineStream { } } + #[inline] + pub fn reset(&mut self) { + self.pending_input.get_mut().clear(); + self.pending_input.set_position(0); + } + fn call_readline(&mut self) -> std::io::Result { match self.rl.readline(get_prompt()) { Ok(text) => {