fix bad global replacement

This commit is contained in:
Vítor Santos Costa 2015-09-29 23:51:09 +01:00
parent e8bf2d4349
commit f81f31a5f7
1 changed files with 29 additions and 29 deletions

View File

@ -509,23 +509,23 @@ delete_dirfiles([F|Fs], File, Ignore) :-
directory_files(File, FileList, Ignore) :- directory_files(File, FileList, Ignore) :-
list_directory(File, FileList, Error), list_directory(File, FileList, Error),
handle_SYSTEM_ERROR_INTERNAL(Error, Ignore, directory_files(File, FileList)). handle_system_internal(Error, Ignore, directory_files(File, FileList)).
handle_SYSTEM_ERROR_INTERNAL(Error, _Ignore, _G) :- var(Error), !. handle_system_internal(Error, _Ignore, _G) :- var(Error), !.
handle_SYSTEM_ERROR_INTERNAL(Error, off, G) :- atom(Error), !, handle_system_internal(Error, off, G) :- atom(Error), !,
throw(error(SYSTEM_ERROR_INTERNAL(Error),G)). throw(error(system_internal(Error),G)).
handle_SYSTEM_ERROR_INTERNAL(Error, off, G) :- handle_system_internal(Error, off, G) :-
error_message(Error, Message), error_message(Error, Message),
throw(error(SYSTEM_ERROR_INTERNAL(Message),G)). throw(error(system_internal(Message),G)).
handle_SYSTEM_ERROR_INTERNAL(Error, _Id, _Ignore, _G) :- var(Error), !. handle_system_internal(Error, _Id, _Ignore, _G) :- var(Error), !.
handle_SYSTEM_ERROR_INTERNAL(Error, _SIG, off, G) :- integer(Error), !, handle_system_internalA(Error, _SIG, off, G) :- integer(Error), !,
error_message(Error, Message), error_message(Error, Message),
throw(error(SYSTEM_ERROR_INTERNAL(Message),G)). throw(error(system_internal(Message),G)).
handle_SYSTEM_ERROR_INTERNAL(signal, SIG, off, G) :- !, handle_system_internal(signal, SIG, off, G) :- !,
throw(error(SYSTEM_ERROR_INTERNAL(child_signal(SIG)),G)). throw(error(system_internal(child_signal(SIG)),G)).
handle_SYSTEM_ERROR_INTERNAL(stopped, SIG, off, G) :- handle_system_internal(stopped, SIG, off, G) :-
throw(error(SYSTEM_ERROR_INTERNAL(child_stopped(SIG)),G)). throw(error(system_internal(child_stopped(SIG)),G)).
file_property(IFile, type(Type)) :- file_property(IFile, type(Type)) :-
true_file_name(IFile, File), true_file_name(IFile, File),
@ -546,7 +546,7 @@ file_property(IFile, linkto(LinkName)) :-
file_property(File, Type, Size, Date, Permissions, LinkName) :- file_property(File, Type, Size, Date, Permissions, LinkName) :-
file_property(File, Type, Size, Date, Permissions, LinkName, Error), file_property(File, Type, Size, Date, Permissions, LinkName, Error),
handle_SYSTEM_ERROR_INTERNAL(Error, off, file_property(File)). handle_system_internal(Error, off, file_property(File)).
file_exists(File) :- file_exists(File) :-
var(File), !, var(File), !,
@ -615,7 +615,7 @@ exec(Command, [StdIn, StdOut, StdErr], PID) :-
process_err_stream_for_exec(StdErr, Err, G, L2, L3), process_err_stream_for_exec(StdErr, Err, G, L2, L3),
( exec_command(TrueCommand, In, Out, Err, PID, Error) -> true ; true ), ( exec_command(TrueCommand, In, Out, Err, PID, Error) -> true ; true ),
close_temp_streams(L3), close_temp_streams(L3),
handle_SYSTEM_ERROR_INTERNAL(Error, off, G). handle_system_internal(Error, off, G).
process_inp_stream_for_exec(Error, _, G, L, L) :- var(Error), !, process_inp_stream_for_exec(Error, _, G, L, L) :- var(Error), !,
close_temp_streams(L), close_temp_streams(L),
@ -695,9 +695,9 @@ shell :-
G = shell, G = shell,
get_shell0(FullCommand), get_shell0(FullCommand),
exec_command(FullCommand, 0, 1, 2, PID, Error), exec_command(FullCommand, 0, 1, 2, PID, Error),
handle_SYSTEM_ERROR_INTERNAL(Error, off, G), handle_system_internal(Error, off, G),
wait(PID, _Status, Error, Id), wait(PID, _Status, Error, Id),
handle_SYSTEM_ERROR_INTERNAL(Error, Id, off, G). handle_system_internal(Error, Id, off, G).
shell(Command) :- shell(Command) :-
G = shell(Command), G = shell(Command),
@ -705,14 +705,14 @@ shell(Command) :-
get_shell(Shell,Opt), get_shell(Shell,Opt),
do_shell(Shell, Opt, Command, Status, Error), do_shell(Shell, Opt, Command, Status, Error),
Status = 0, Status = 0,
handle_SYSTEM_ERROR_INTERNAL(Error, off, G). handle_system_internal(Error, off, G).
shell(Command, Status) :- shell(Command, Status) :-
G = shell(Command, Status), G = shell(Command, Status),
check_command(Command, G), check_command(Command, G),
get_shell(Shell,Opt), get_shell(Shell,Opt),
do_shell(Shell, Opt, Command, Status, Error), do_shell(Shell, Opt, Command, Status, Error),
handle_SYSTEM_ERROR_INTERNAL(Error, off, G). handle_system_internal(Error, off, G).
protect_command([], [0'"]). % " protect_command([], [0'"]). % "
protect_command([H|L], [H|NL]) :- protect_command([H|L], [H|NL]) :-
@ -735,7 +735,7 @@ get_shell('/bin/sh','-c').
system :- system :-
default_shell(Command), default_shell(Command),
do_system(Command, _Status, Error), do_system(Command, _Status, Error),
handle_SYSTEM_ERROR_INTERNAL(Error, off, system). handle_system_internal(Error, off, system).
default_shell(Shell) :- win, !, default_shell(Shell) :- win, !,
getenv('COMSPEC', Shell). getenv('COMSPEC', Shell).
@ -747,13 +747,13 @@ system(Command, Status) :-
check_command(Command, G), check_command(Command, G),
do_system(Command, Status, Error), do_system(Command, Status, Error),
Status = 0, Status = 0,
handle_SYSTEM_ERROR_INTERNAL(Error, off, G). handle_system_internal(Error, off, G).
wait(PID,STATUS) :- var(PID), !, wait(PID,STATUS) :- var(PID), !,
throw(error(instantiation_error,wait(PID,STATUS))). throw(error(instantiation_error,wait(PID,STATUS))).
wait(PID,STATUS) :- integer(PID), !, wait(PID,STATUS) :- integer(PID), !,
plwait(PID, STATUS, Error, _Detail), plwait(PID, STATUS, Error, _Detail),
handle_SYSTEM_ERROR_INTERNAL(Error, off, wait(PID,STATUS)). handle_system_internal(Error, off, wait(PID,STATUS)).
wait(PID,STATUS) :- wait(PID,STATUS) :-
throw(error(type_error(integer,PID),wait(PID,STATUS))). throw(error(type_error(integer,PID),wait(PID,STATUS))).
@ -762,22 +762,22 @@ wait(PID,STATUS) :-
% %
host_name(X) :- host_name(X) :-
host_name(X, Error), host_name(X, Error),
handle_SYSTEM_ERROR_INTERNAL(Error, off, host_name(X)). handle_system_internal(Error, off, host_name(X)).
host_id(X) :- host_id(X) :-
host_id(X0, Error), host_id(X0, Error),
handle_SYSTEM_ERROR_INTERNAL(Error, off, host_id(X)), handle_system_internal(Error, off, host_id(X)),
number_codes(X0, S), number_codes(X0, S),
atom_codes(X, S). atom_codes(X, S).
pid(X) :- pid(X) :-
pid(X, Error), pid(X, Error),
handle_SYSTEM_ERROR_INTERNAL(Error, off, pid(X)). handle_system_internal(Error, off, pid(X)).
kill(X,Y) :- kill(X,Y) :-
integer(X), integer(Y), !, integer(X), integer(Y), !,
kill(X, Y, Error), kill(X, Y, Error),
handle_SYSTEM_ERROR_INTERNAL(Error, off, kill(X,Y)). handle_system_internal(Error, off, kill(X,Y)).
kill(X,Y) :- (var(X) ; var(Y)), !, kill(X,Y) :- (var(X) ; var(Y)), !,
throw(error(instantiation_error,kill(X,Y))). throw(error(instantiation_error,kill(X,Y))).
kill(X,Y) :- integer(X), !, kill(X,Y) :- integer(X), !,
@ -790,19 +790,19 @@ mktemp(X,Y) :- var(X), !,
mktemp(X,Y) :- mktemp(X,Y) :-
atom(X), !, atom(X), !,
mktemp(X, Y, Error), mktemp(X, Y, Error),
handle_SYSTEM_ERROR_INTERNAL(Error, off, mktemp(X,Y)). handle_system_internal(Error, off, mktemp(X,Y)).
mktemp(X,Y) :- mktemp(X,Y) :-
throw(error(type_error(atom,X),mktemp(X,Y))). throw(error(type_error(atom,X),mktemp(X,Y))).
tmpnam(X) :- tmpnam(X) :-
tmpnam(X, Error), tmpnam(X, Error),
handle_SYSTEM_ERROR_INTERNAL(Error, off, tmpnam(X)). handle_system_internal(Error, off, tmpnam(X)).
%%% Added from Theo, path_seperator is used to replace the c predicate dir_separator which is not OS aware %%% Added from Theo, path_seperator is used to replace the c predicate dir_separator which is not OS aware
tmpdir(TmpDir):- tmpdir(TmpDir):-
tmpdir(Dir, Error), tmpdir(Dir, Error),
handle_SYSTEM_ERROR_INTERNAL(Error, off, tmpdir(Dir)), handle_system_internal(Error, off, tmpdir(Dir)),
path_separator(D), path_separator(D),
(atom_concat(_, D, Dir) -> (atom_concat(_, D, Dir) ->
TmpDir = Dir TmpDir = Dir