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) => {