diff --git a/src/machine/machine_state.rs b/src/machine/machine_state.rs index 62663ee2..142f5a98 100644 --- a/src/machine/machine_state.rs +++ b/src/machine/machine_state.rs @@ -510,7 +510,7 @@ impl MachineState { } } - fn write_read_term_options( + pub fn write_read_term_options( &mut self, mut var_list: Vec<(VarKey, HeapCellValue, usize)>, singleton_var_list: Vec, diff --git a/src/machine/system_calls.rs b/src/machine/system_calls.rs index 259acc9e..9c76ee70 100644 --- a/src/machine/system_calls.rs +++ b/src/machine/system_calls.rs @@ -5863,6 +5863,11 @@ impl Machine { if let Some(term_write_result) = self.read_term_and_write_to_heap(atom_or_string)? { self.machine_st.read_term_body(term_write_result) } else { + if !self.machine_st.fail { + // wrote end_of_file term in this case. + self.machine_st.write_read_term_options(vec![], vec![])?; + } + Ok(()) } } else {