file_select

This commit is contained in:
Vítor Santos Costa 2015-03-20 12:50:06 +00:00
parent 2b2e21ae64
commit 5150dcae3d

View File

@ -353,14 +353,21 @@ file_filter_with_initialization(Inp, Out, Command, FormatString, Parameters) :-
the output stream is accessible through `filter_output`. the output stream is accessible through `filter_output`.
*/ */
file_select(Inp, Command) :- file_select(Inp, Command) :-
open(Inp, read, StreamInp, [alias(filter_input)]), ( retract(alias(F)) -> true ; F = '' ),
atom_concat(filter_input, F, Alias),
open(Inp, read, StreamInp, [Alias]),
atom_concat('_', F, NF),
assert( alias(NF) ),
repeat, repeat,
read_line_to_codes(StreamInp, Line), read_line_to_codes(StreamInp, Line),
( (
Line == end_of_file Line == end_of_file
-> ->
close(StreamInp), close(StreamInp),
retract(alias(NF)),
assert(alias(F)),
!, !,
atom_concat(filter_input, F, Alias),
fail fail
; ;
call(Command, Line) call(Command, Line)