]> Repositorios git - scryer-prolog.git/commitdiff
do not reset user input `Stream` of kind different from `Readline(_)`, `Byte(_)`
authorThierry Marianne <[email protected]>
Sun, 14 Sep 2025 14:42:12 +0000 (16:42 +0200)
committerThierry Marianne <[email protected]>
Sun, 14 Sep 2025 17:19:21 +0000 (19:19 +0200)
Signed-off-by: Thierry Marianne <[email protected]>
src/machine/system_calls.rs

index 5eb9a6d2622a70af0fd52f148608fec1c8e964cc..01f2b2eceed66e93936292e6c2cabff8e537e1fd 100644 (file)
@@ -6739,7 +6739,10 @@ impl Machine {
 
     #[inline(always)]
     pub(crate) fn read_query_term(&mut self) -> CallResult {
-        self.user_input.reset();
+        match self.user_input {
+            Stream::Byte(_) | Stream::Readline(_) => self.user_input.reset(),
+            _ => true,
+        };
 
         set_prompt(true);
         // let result = self.machine_st.read_term(self.user_input, &mut self.indices);
@@ -6751,7 +6754,10 @@ impl Machine {
         match result {
             Ok(()) => Ok(()),
             Err(e) => {
-                self.user_input.reset();
+                match self.user_input {
+                    Stream::Byte(_) | Stream::Readline(_) => self.user_input.reset(),
+                    _ => true
+                };
                 Err(e)
             }
         }