diff --git a/src/machine/system_calls.rs b/src/machine/system_calls.rs index 5eb9a6d2..01f2b2ec 100644 --- a/src/machine/system_calls.rs +++ b/src/machine/system_calls.rs @@ -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) } }