]> Repositorios git - scryer-prolog.git/commitdiff
call write_read_term_options if read_term_from_chars/3 succeeds by unifying Term...
authorMark <[email protected]>
Tue, 18 Jul 2023 18:15:20 +0000 (12:15 -0600)
committerMark <[email protected]>
Tue, 18 Jul 2023 18:15:20 +0000 (12:15 -0600)
src/machine/machine_state.rs
src/machine/system_calls.rs

index 62663ee29d0b8fec6e95fbae70d99ef25e6010be..142f5a985604e22e9423e9fd51159541edfe2880 100644 (file)
@@ -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<HeapCellValue>,
index 259acc9ebba708dbd9716017594c7d05df9fc551..9c76ee70c30e1ca3bf4126f69d02ab2e2dc8f5a2 100644 (file)
@@ -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 {