fix error messages.
This commit is contained in:
parent
991d85edf0
commit
67ddf94afa
@ -245,22 +245,15 @@ print_message(Severity, Msg) :-
|
||||
'$notrace'(user:portray_message(Severity, Msg)), !.
|
||||
% This predicate has more hooks than a pirate ship!
|
||||
print_message(Severity, Term) :-
|
||||
(
|
||||
(
|
||||
'$oncenotrace'(user:generate_message_hook(Term, [], Lines)) ->
|
||||
true
|
||||
;
|
||||
'$oncenotrace'(prolog:message(Term, Lines, [])) ->
|
||||
true
|
||||
;
|
||||
'$messages':generate_message(Term, Lines, [])
|
||||
)
|
||||
-> ( nonvar(Term),
|
||||
'$oncenotrace'(user:message_hook(Term, Severity, Lines))
|
||||
-> !
|
||||
; !, '$print_system_message'(Term, Severity, Lines)
|
||||
)
|
||||
).
|
||||
% first step at hook processing
|
||||
'$message_to_lines'(Term, Lines),
|
||||
( nonvar(Term),
|
||||
'$oncenotrace'(user:message_hook(Term, Severity, Lines))
|
||||
->
|
||||
true
|
||||
;
|
||||
'$print_system_message'(Term, Severity, Lines)
|
||||
), !.
|
||||
print_message(silent, _) :- !.
|
||||
print_message(_, error(syntax_error(syntax_error(_,between(_,L,_),_,_,_,_,StreamName)),_)) :- !,
|
||||
format(user_error,'SYNTAX ERROR at ~a, close to ~d~n',[StreamName,L]).
|
||||
@ -271,6 +264,14 @@ print_message(_, loaded(A, F, _, Time, Space)) :- !,
|
||||
print_message(_, Term) :-
|
||||
format(user_error,'~q~n',[Term]).
|
||||
|
||||
'$message_to_lines'(Term, Lines) :-
|
||||
'$oncenotrace'(user:generate_message_hook(Term, [], Lines)), !.
|
||||
'$message_to_lines'(Term, Lines) :-
|
||||
'$oncenotrace'(prolog:message(Term, Lines, [])), !.
|
||||
'$message_to_lines'(Term, Lines) :-
|
||||
'$messages':generate_message(Term, Lines, []), !.
|
||||
|
||||
|
||||
% print_system_message(+Term, +Level, +Lines)
|
||||
%
|
||||
% Print the message if the user did not intecept the message.
|
||||
|
@ -69,6 +69,10 @@ generate_message(debug) --> !,
|
||||
[ debug ].
|
||||
generate_message(trace) --> !,
|
||||
[ trace ].
|
||||
generate_message(error(Error,Context)) -->
|
||||
{ Error = existence_error(procedure,_) }, !,
|
||||
system_message(error(Error,Context)),
|
||||
stack_dump(error(Error,Context)).
|
||||
generate_message(error(Error,context(Cause,Extra))) -->
|
||||
system_message(error(Error,Cause)),
|
||||
stack_dump(error(Error,context(Cause,Extra))).
|
||||
@ -130,8 +134,6 @@ system_message(no_match(P)) -->
|
||||
[ 'No matching predicate for ~w.' - [P] ].
|
||||
system_message(leash([A|B])) -->
|
||||
[ 'Leashing set to ~w.' - [[A|B]] ].
|
||||
system_message(existence_error(prolog_flag,F)) -->
|
||||
[ 'Prolog Flag ~w: new Prolog flags must be created using create_prolog_flag/3.' - [F] ].
|
||||
system_message(singletons([SV],P)) -->
|
||||
[ 'Singleton variable ~s in ~q.' - [SV,P] ].
|
||||
system_message(singletons(SVs,P)) -->
|
||||
@ -159,14 +161,18 @@ system_message(error(context_error(Goal,Who),Where)) -->
|
||||
system_message(error(domain_error(DomainType,Opt), Where)) -->
|
||||
[ 'DOMAIN ERROR- ~w: ' - Where],
|
||||
domain_error(DomainType, Opt).
|
||||
system_message(error(existence_error(directory,Key), Where)) -->
|
||||
[ 'EXISTENCE ERROR- ~w: ~w not an existing directory' - [Where,Key] ].
|
||||
system_message(error(existence_error(key,Key), Where)) -->
|
||||
[ 'EXISTENCE ERROR- ~w: ~w not an existing key' - [Where,Key] ].
|
||||
system_message(existence_error(prolog_flag,F)) -->
|
||||
[ 'Prolog Flag ~w: new Prolog flags must be created using create_prolog_flag/3.' - [F] ].
|
||||
system_message(error(existence_error(prolog_flag,P), Where)) --> !,
|
||||
[ 'EXISTENCE ERROR- ~w: prolog flag ~w is undefined' - [Where,P] ].
|
||||
system_message(error(existence_error(procedure,P), context(Call,Parent))) --> !,
|
||||
[ 'EXISTENCE ERROR- procedure ~w is undefined, called from context ~w~n Goal was ~w' - [P,Parent,Call] ].
|
||||
system_message(error(existence_error(stream,Stream), Where)) -->
|
||||
[ 'EXISTENCE ERROR- ~w: ~w not an open stream' - [Where,Stream] ].
|
||||
system_message(error(existence_error(key,Key), Where)) -->
|
||||
[ 'EXISTENCE ERROR- ~w: ~w not an existing key' - [Where,Key] ].
|
||||
system_message(error(existence_error(thread,Thread), Where)) -->
|
||||
[ 'EXISTENCE ERROR- ~w: ~w not a running thread' - [Where,Thread] ].
|
||||
system_message(error(existence_error(variable,Var), Where)) -->
|
||||
|
Reference in New Issue
Block a user