]> Repositorios git - scryer-prolog.git/commitdiff
use -1 as eof_code for binary streams (#555)
authorMark Thom <[email protected]>
Fri, 22 May 2020 21:58:07 +0000 (15:58 -0600)
committerMark Thom <[email protected]>
Fri, 22 May 2020 21:58:07 +0000 (15:58 -0600)
src/prolog/machine/streams.rs

index 9e6ea491639ccd41d840172aa6590ad54d2ff0f5..6308017db44bfffbfaab351636c5fd5a692e98f4 100644 (file)
@@ -688,9 +688,14 @@ impl MachineState {
                 return Err(self.open_past_eos_error(stream.clone(), caller, arity));
             }
             EOFAction::EOFCode => {
-                let end_of_stream = self.heap.to_unifiable(
-                    HeapCellValue::Atom(clause_name!("end_of_file"), None)
-                );
+                let end_of_stream =
+                    if stream.options.stream_type == StreamType::Binary {
+                        Addr::Fixnum(-1)
+                    } else {
+                        self.heap.to_unifiable(
+                            HeapCellValue::Atom(clause_name!("end_of_file"), None)
+                        )
+                    };
 
                 stream.set_past_end_of_stream();
                 Ok(self.unify(result, end_of_stream))