/* FACILE : Various user facilities

                                            SYSTEM
                                            Lawrence
                                            Updated: 14 Decemober 82 RDE
*/

  :- op(300,fx,[dir, ty, edit, redo]).


                         % Directory listing of file index

files :- emas(files).

(dir) :- emas(dir).

dir(File) :- emas(dir,File).


                         % Type out a file

(ty) :- $file_remembered(File), emas(list,File).


ty(File) :- emas(list,File).


                         % Gripe about the system

gripe :- emas(gripe).


                         % Jump to the User guide (User Manual = UM)

um :- emas(um).


                         % Edit a file

(edit) :-
         $file_remembered(File),
         $edit(File).


edit(File) :-
         $file_remember(File),
         $edit(File).


                        % Redo a file by editing it and reconsulting it

(redo) :-
         $file_remembered(File),
         $edit(File),
         reconsult(File).


redo(File) :-
         $file_remember(File),
         $edit(File),
         reconsult(File).



                         % How to actually edit a file

$edit(File) :-
         exists(File),
         !,
         $doedit(File).

$edit(File) :-
         tell(File), told,       % Make sure it exists
         $doedit(File).


                         % Remembering files

$file_remember(V) :-
         var(V),
         !,
         nl, write('** Variable given as file name (filename must be atom)'),
         nl,
         fail.

$file_remember(File) :-
         recorded($edit_file,_,ID),
         erase(ID),
         fail.

$file_remember(File) :-
         recorda($edit_file,File,_).



$file_remembered(File) :-
         recorded($edit_file,File,_),
         !,
         write('Using file: '), write(File), nl.

$file_remembered(File) :-
         write('Sorry - no previous file to edit'), nl,
         fail.
