]> Repositorios git - scryer-prolog.git/commitdiff
reset ReadlineStream from read_query_line (#1317, #1285)
authorMark Thom <[email protected]>
Sat, 5 Mar 2022 17:38:16 +0000 (10:38 -0700)
committerMark Thom <[email protected]>
Sun, 6 Mar 2022 00:39:13 +0000 (17:39 -0700)
src/machine/streams.rs
src/read.rs

index 1b512e5146b6026bf3895302ac24ca13e13eef0b..9d76c898c9917d8ddcf626287072c4a74b7d71f6 100644 (file)
@@ -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;
                 }
                 _ => {
index def66b10630560fff214733fd13bf3be3d586b7f..72dc9900f6df8e8f15a2cef0d000a7a6069d332f 100644 (file)
@@ -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<usize> {
         match self.rl.readline(get_prompt()) {
             Ok(text) => {