diff options
Diffstat (limited to 'src/fileio.c')
-rw-r--r-- | src/fileio.c | 47 |
1 files changed, 36 insertions, 11 deletions
diff --git a/src/fileio.c b/src/fileio.c index 144ebe00ef..fcf1a6772f 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -101,6 +101,8 @@ int vms_stmlf_recfm; Lisp_Object Qfile_error, Qfile_already_exists; +Lisp_Object Qfile_name_history; + report_file_error (string, data) char *string; Lisp_Object data; @@ -2941,7 +2943,7 @@ DIR defaults to current buffer's directory default.") (prompt, dir, defalt, mustmatch, initial) Lisp_Object prompt, dir, defalt, mustmatch, initial; { - Lisp_Object val, insdef, tem, backup_n; + Lisp_Object val, insdef, tem; struct gcpro gcpro1, gcpro2; register char *homedir; int count; @@ -2968,21 +2970,17 @@ DIR defaults to current buffer's directory default.") insdef = dir; if (!NILP (initial)) { - Lisp_Object args[2]; + Lisp_Object args[2], pos; args[0] = insdef; args[1] = initial; insdef = Fconcat (2, args); - backup_n = make_number (- (XSTRING (initial)->size)); + pos = make_number (XSTRING (dir)->size); + insdef = Fcons (insdef, pos); } - else - backup_n = Qnil; } else - { - insdef = build_string (""); - backup_n = Qnil; - } + insdef = build_string (""); #ifdef VMS count = specpdl_ptr - specpdl; @@ -2992,7 +2990,8 @@ DIR defaults to current buffer's directory default.") GCPRO2 (insdef, defalt); val = Fcompleting_read (prompt, intern ("read-file-name-internal"), dir, mustmatch, - insert_default_directory ? insdef : Qnil, backup_n); + insert_default_directory ? insdef : Qnil, + Qfile_name_history); #ifdef VMS unbind_to (count, Qnil); @@ -3057,7 +3056,8 @@ DIR defaults to current buffer's directory default.") GCPRO2 (insdef, defalt); val = Fcompleting_read (prompt, intern ("read-file-name-internal"), dir, mustmatch, - insert_default_directory ? insdef : Qnil, Qnil); + insert_default_directory ? insdef : Qnil, + Qfile_name_history); #ifdef VMS unbind_to (count, Qnil); @@ -3096,6 +3096,31 @@ syms_of_fileio () Qwrite_region = intern ("write-region"); Qverify_visited_file_modtime = intern ("verify-visited-file-modtime"); + Qfile_name_history = intern ("file-name-history"); + Fset (Qfile_name_history, Qnil); + + staticpro (&Qcopy_file); + staticpro (&Qmake_directory); + staticpro (&Qdelete_directory); + staticpro (&Qdelete_file); + staticpro (&Qrename_file); + staticpro (&Qadd_name_to_file); + staticpro (&Qmake_symbolic_link); + staticpro (&Qfile_exists_p); + staticpro (&Qfile_executable_p); + staticpro (&Qfile_readable_p); + staticpro (&Qfile_symlink_p); + staticpro (&Qfile_writable_p); + staticpro (&Qfile_directory_p); + staticpro (&Qfile_accessible_directory_p); + staticpro (&Qfile_modes); + staticpro (&Qset_file_modes); + staticpro (&Qfile_newer_than_file_p); + staticpro (&Qinsert_file_contents); + staticpro (&Qwrite_region); + staticpro (&Qverify_visited_file_modtime); + staticpro (&Qfile_name_history); + Qfile_error = intern ("file-error"); staticpro (&Qfile_error); Qfile_already_exists = intern("file-already-exists"); |