keep on trying to get this right
This commit is contained in:
parent
a21547d9d4
commit
12664254e9
@ -94,7 +94,7 @@ Translates a message-term into a string object. Primarily intended for SWI-Prolo
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
prolog:message_to_string(Event, Message) :-
|
prolog:message_to_string(Event, Message) :-
|
||||||
translate_message(Event, Message, []).
|
translate_message(Event, warning, Message, []).
|
||||||
|
|
||||||
|
|
||||||
%% @pred compose_message(+Term, +Level, +Lines, -Lines0) is det
|
%% @pred compose_message(+Term, +Level, +Lines, -Lines0) is det
|
||||||
@ -103,7 +103,9 @@ prolog:message_to_string(Event, Message) :-
|
|||||||
% The first is used for errors and warnings that can be related
|
% The first is used for errors and warnings that can be related
|
||||||
% to source-location. Note that syntax errors have their own
|
% to source-location. Note that syntax errors have their own
|
||||||
% source-location and should therefore not be handled this way.
|
% source-location and should therefore not be handled this way.
|
||||||
compose_message( Term, _Level ) -->
|
compose_message( Term, Level ) -->
|
||||||
|
[' ~w:'- [Level]
|
||||||
|
],
|
||||||
prolog:message(Term), !.
|
prolog:message(Term), !.
|
||||||
compose_message( query(_QueryResult,_), _Level) -->
|
compose_message( query(_QueryResult,_), _Level) -->
|
||||||
[].
|
[].
|
||||||
@ -893,6 +895,10 @@ prolog:print_message(Severity, Msg) :-
|
|||||||
->
|
->
|
||||||
!,
|
!,
|
||||||
format(user_error, 'uninstantiated message~n', [])
|
format(user_error, 'uninstantiated message~n', [])
|
||||||
|
;
|
||||||
|
Severity == silent
|
||||||
|
->
|
||||||
|
true
|
||||||
;
|
;
|
||||||
'$pred_exists'(portray_message(_,_),user),
|
'$pred_exists'(portray_message(_,_),user),
|
||||||
user:portray_message(Severity, Msg)
|
user:portray_message(Severity, Msg)
|
||||||
@ -909,12 +915,24 @@ prolog:print_message(Level, _Msg) :-
|
|||||||
Level \= warning,
|
Level \= warning,
|
||||||
!.
|
!.
|
||||||
prolog:print_message(_, _Msg) :-
|
prolog:print_message(_, _Msg) :-
|
||||||
% first step at hook processi --ng
|
% first step at hook processing
|
||||||
'$nb_getval'('$if_skip_mode',skip,fail),
|
'$nb_getval'('$if_skip_mode',skip,fail),
|
||||||
!.
|
!.
|
||||||
prolog:print_message(force(_Severity), Msg) :- !,
|
prolog:print_message(force(_Severity), Msg) :- !,
|
||||||
print(user_error,Msg).
|
print(user_error,Msg).
|
||||||
% This predicate has more hooks than a pirate ship!
|
% This predicate has more hooks than a pirate ship!
|
||||||
|
prolog:print_message(Severity, Term) :-
|
||||||
|
prolog:message( Term,Lines0, [ end(Id)]),
|
||||||
|
Lines = [begin(Severity, Id)| Lines0],
|
||||||
|
(
|
||||||
|
user:message_hook(Term, Severity, Lines)
|
||||||
|
->
|
||||||
|
true
|
||||||
|
;
|
||||||
|
prefix( Severity, Prefix ),
|
||||||
|
prolog:print_message_lines(user_error, Prefix, Lines)
|
||||||
|
),
|
||||||
|
!.
|
||||||
prolog:print_message(Severity, Term) :-
|
prolog:print_message(Severity, Term) :-
|
||||||
translate_message( Term, Severity, Lines0, [ end(Id)]),
|
translate_message( Term, Severity, Lines0, [ end(Id)]),
|
||||||
Lines = [begin(Severity, Id)| Lines0],
|
Lines = [begin(Severity, Id)| Lines0],
|
||||||
@ -931,40 +949,6 @@ prolog:print_message(Severity, _Term) :-
|
|||||||
format('No handler for ~a message ~q,~n',[Severity, _Term]).
|
format('No handler for ~a message ~q,~n',[Severity, _Term]).
|
||||||
|
|
||||||
|
|
||||||
% cases where we cannot afford to ever fail.
|
|
||||||
'$undefp'([ImportingMod|G], _) :-
|
|
||||||
recorded('$import','$import'(ExportingModI,ImportingMod,G,G0I,_,_),_), !,
|
|
||||||
% writeln('$execute'(G0I, ExportingModI)),
|
|
||||||
'$execute0'(G0I, ExportingModI).
|
|
||||||
% undef handler
|
|
||||||
'$undefp'([M0|G0], Action) :-
|
|
||||||
% make sure we do not loop on undefined predicates
|
|
||||||
'$stop_creeping'(Current),
|
|
||||||
yap_flag( unknown, Action, fail),
|
|
||||||
Action\=fail,
|
|
||||||
% yap_flag( debug, Debug, false),
|
|
||||||
(
|
|
||||||
'$undefp_search'(M0:G0, NM:NG),
|
|
||||||
( M0 \== NM -> true ; G0 \== NG ),
|
|
||||||
NG \= fail
|
|
||||||
->
|
|
||||||
yap_flag( unknown, _, Action),
|
|
||||||
% yap_flag( debug, _, Debug),
|
|
||||||
(
|
|
||||||
Current == true
|
|
||||||
->
|
|
||||||
% carry on signal processing
|
|
||||||
'$start_creep'([NM|NG], creep)
|
|
||||||
;
|
|
||||||
'$execute0'(NG, NM)
|
|
||||||
)
|
|
||||||
;
|
|
||||||
yap_flag( unknown, _, Action),
|
|
||||||
'$handle_error'(Action,G0,M0)
|
|
||||||
).
|
|
||||||
|
|
||||||
:- '$undef_handler'('$undefp'(_,_), prolog).
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@}
|
@}
|
||||||
*/
|
*/
|
||||||
|
Reference in New Issue
Block a user