make open remember original file.

This commit is contained in:
Vitor Santos Costa 2010-02-26 11:23:15 +00:00
parent 038b74493c
commit 69b6f47b73
4 changed files with 16 additions and 16 deletions

View File

@ -2365,12 +2365,12 @@ p_open (void)
if (open_mode == AtomCsult)
{
if (!find_csult_file (Yap_FileNameBuf, Yap_FileNameBuf2, st, io_mode))
return (PlIOError (EXISTENCE_ERROR_SOURCE_SINK, ARG1, "open/3"));
return (PlIOError (EXISTENCE_ERROR_SOURCE_SINK, ARG6, "open/3"));
strncpy (Yap_FileNameBuf, Yap_FileNameBuf2, YAP_FILENAME_MAX);
}
else {
if (errno == ENOENT)
return (PlIOError(EXISTENCE_ERROR_SOURCE_SINK,ARG1,"open/3"));
return (PlIOError(EXISTENCE_ERROR_SOURCE_SINK,ARG6,"open/3"));
else
return (PlIOError(PERMISSION_ERROR_OPEN_SOURCE_SINK,file_name,"open/3"));
}
@ -6291,7 +6291,7 @@ Yap_InitIOPreds(void)
Yap_InitCPred ("$get_byte", 2, p_get_byte, SafePredFlag|SyncPredFlag|HiddenPredFlag);
Yap_InitCPred ("$access", 1, p_access, SafePredFlag|SyncPredFlag|HiddenPredFlag);
Yap_InitCPred ("exists_directory", 1, p_exists_directory, SafePredFlag|SyncPredFlag);
Yap_InitCPred ("$open", 5, p_open, SafePredFlag|SyncPredFlag|HiddenPredFlag);
Yap_InitCPred ("$open", 6, p_open, SafePredFlag|SyncPredFlag|HiddenPredFlag);
Yap_InitCPred ("$file_expansion", 2, p_file_expansion, SafePredFlag|SyncPredFlag|HiddenPredFlag);
Yap_InitCPred ("$open_null_stream", 1, p_open_null_stream, SafePredFlag|SyncPredFlag|HiddenPredFlag);
Yap_InitCPred ("$open_pipe_stream", 2, p_open_pipe_stream, SafePredFlag|SyncPredFlag|HiddenPredFlag);

View File

@ -1001,7 +1001,7 @@ break :-
nb_setval('$lf_verbose', OldSilent).
bootstrap(F) :-
'$open'(F,'$csult',Stream,0,0),
'$open'(F, '$csult', Stream, 0, 0, F),
'$current_stream'(File,_,Stream),
'$start_consult'(consult, File, LC),
file_directory_name(File, Dir),
@ -1084,7 +1084,7 @@ access_file(F,Mode) :-
set_value(fileerrors,0),
system:true_file_name(F, F1),
(
'$open'(F1,Mode,S,0,1)
'$open'(F1, Mode, S, 0, 1, F)
->
'$close'(S),
set_value(fileerrors,V)

View File

@ -129,7 +129,7 @@ load_files(Files,Opts) :-
'$do_lf'(Mod, user_input, InfLevel, CompilationMode,Imports,SkipUnixComments,CompMode,Reconsult,UseModule).
'$lf'(X, Mod, Call, InfLevel,_,Changed,CompilationMode,Imports,_,Enc,SkipUnixComments,CompMode,Reconsult,UseModule) :-
'$find_in_path'(X, Y, Call),
'$open'(Y, '$csult', Stream, 0, Enc), !,
'$open'(Y, '$csult', Stream, 0, Enc, X), !,
'$set_changed_lfmode'(Changed),
'$start_lf'(X, Mod, Stream, InfLevel, CompilationMode, Imports, Changed,SkipUnixComments,CompMode,Reconsult,UseModule),
'$close'(Stream).
@ -396,7 +396,7 @@ use_module(M,F,Is) :-
'$current_module'(Mod),
H0 is heapused, '$cputime'(T0,_),
'$default_encoding'(Encoding),
( '$open'(Y,'$csult',Stream,0,Encoding), !,
( '$open'(Y, '$csult', Stream, 0, Encoding, X), !,
print_message(Verbosity, loading(including, Y)),
'$loop'(Stream,Status), '$close'(Stream)
;

View File

@ -27,7 +27,7 @@ open(File0,Mode,Stream) :-
'$default_encoding'(Encoding),
'$default_expand'(Expansion),
'$expand_filename'(Expansion, File0, File),
'$open'(File,Mode,Stream,16,Encoding).
'$open'(File, Mode, Stream, 16, Encoding, File0).
/* meaning of flags for '$write' is
1 quote illegal atoms
@ -63,7 +63,7 @@ open(F,T,S,Opts) :-
'$check_io_opts'(Opts,open(F,T,S,Opts)),
'$process_open_opts'(Opts, 0, N, Aliases, E, BOM, Expand),
'$expand_filename'(Expand, F, NF),
'$open2'(NF, T, S, N, E),
'$open2'(NF, T, S, N, E, F),
'$process_bom'(S, BOM),
'$process_open_aliases'(Aliases,S).
@ -71,14 +71,14 @@ open(F,T,S,Opts) :-
'$expand_filename'(true, F, NF) :-
system:true_file_name(F, NF).
'$open2'(Source,M,T,N,_) :- var(Source), !,
'$open2'(Source,M,T,N,_,_) :- var(Source), !,
'$do_error'(instantiation_error,open(Source,M,T,N)).
'$open2'(Source,M,T,N,_) :- var(M), !,
'$open2'(Source,M,T,N,_,_) :- var(M), !,
'$do_error'(instantiation_error,open(Source,M,T,N)).
'$open2'(Source,M,T,N,_) :- nonvar(T), !,
'$open2'(Source,M,T,N,_,_) :- nonvar(T), !,
'$do_error'(type_error(variable,T),open(Source,M,T,N)).
'$open2'(File,Mode,Stream,N,Encoding) :-
'$open'(File,Mode,Stream,N,Encoding).
'$open2'(File, Mode, Stream, N, Encoding, F0) :-
'$open'(File, Mode, Stream, N, Encoding, F0).
'$process_bom'(S, BOM) :-
var(BOM), !, ( '$has_bom'(S) -> BOM = true ; BOM = false ).
@ -151,8 +151,8 @@ open(F,T,S,Opts) :-
'$valid_reperrorhandler'(prolog, 512).
'$valid_reperrorhandler'(xml, 1024).
'$valid_expand'(true, true),
'$valid_expand'(false, false),
'$valid_expand'(true, true).
'$valid_expand'(false, false).
/* check whether a list of options is valid */
'$check_io_opts'(V,G) :- var(V), !,