From 56f677242225e766aef0e925f3d57fac2b4369b6 Mon Sep 17 00:00:00 2001 From: Mark Date: Tue, 18 Jul 2023 12:15:20 -0600 Subject: [PATCH] call write_read_term_options if read_term_from_chars/3 succeeds by unifying Term to end_of_file (#1892) --- src/machine/machine_state.rs | 2 +- src/machine/system_calls.rs | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) 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 { -- 2.54.0