summaryrefslogtreecommitdiff
path: root/loader.pl
diff options
context:
space:
mode:
Diffstat (limited to 'loader.pl')
-rw-r--r--loader.pl10
1 files changed, 7 insertions, 3 deletions
diff --git a/loader.pl b/loader.pl
index a0af62c..e459738 100644
--- a/loader.pl
+++ b/loader.pl
@@ -55,17 +55,21 @@ print_initialization_goal_error(Module, Goal, Exception) :-
read_and_handle_terms(Stream, Module0, Module) :-
- ( read_one_term(Stream, Term, Singles)
+ ( read_one_term(Stream, Term, Module0, Singles)
-> handle_term(Term, Singles, Module0, Module1),
read_and_handle_terms(Stream, Module1, Module)
; Module = Module0
).
-read_one_term(Stream, Term, Singles) :-
+read_one_term(Stream, Term, Module0, Singles) :-
consume_whitespace(Stream),
peek_char(Stream, NextCh),
NextCh \= end_of_file,
- read_term(Stream, Term, [singletons(Singletons)]),
+ ( Module0 == system
+ -> read_term(Stream, Term, [singletons(Singletons)])
+ ; Module0:read_term(Stream, Term, [singletons(Singletons)])
+ % For all other modules than system use Mod:read_term, to use the correct operators
+ ),
singleton_names(Singletons, Singles).
whitespace(' ').