Mercurial > emacs
changeset 94888:77013c501e34
(Qdefault_directory): New var.
(file_name_completion): Use it instead of Fexpand_file_name.
(syms_of_dired): Initialize it.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Tue, 13 May 2008 04:39:32 +0000 |
parents | 2021b2b9d63c |
children | e80a3956601b |
files | src/ChangeLog src/dired.c |
diffstat | 2 files changed, 13 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Mon May 12 21:43:04 2008 +0000 +++ b/src/ChangeLog Tue May 13 04:39:32 2008 +0000 @@ -1,3 +1,9 @@ +2008-05-13 Stefan Monnier <monnier@iro.umontreal.ca> + + * dired.c (Qdefault_directory): New var. + (file_name_completion): Use it instead of Fexpand_file_name. + (syms_of_dired): Initialize it. + 2008-05-12 Stefan Monnier <monnier@iro.umontreal.ca> * fileio.c (double_dollars): Remove dead code.
--- a/src/dired.c Mon May 12 21:43:04 2008 +0000 +++ b/src/dired.c Tue May 13 04:39:32 2008 +0000 @@ -457,6 +457,7 @@ } static int file_name_completion_stat (); +Lisp_Object Qdefault_directory; Lisp_Object file_name_completion (file, dirname, all_flag, ver_flag, predicate) @@ -505,6 +506,7 @@ encoded_file = encoded_dir = Qnil; GCPRO5 (file, dirname, bestmatch, encoded_file, encoded_dir); dirname = Fexpand_file_name (dirname, Qnil); + specbind (Qdefault_directory, dirname); /* Do completion on the encoded file name because the other names in the directory are (we presume) @@ -667,22 +669,17 @@ /* This is a possible completion */ if (directoryp) - { - /* This completion is a directory; make it end with '/' */ - name = Ffile_name_as_directory (name); - } + /* This completion is a directory; make it end with '/'. */ + name = Ffile_name_as_directory (name); /* Test the predicate, if any. */ - if (!NILP (predicate)) { - Lisp_Object decoded; Lisp_Object val; struct gcpro gcpro1; GCPRO1 (name); - decoded = Fexpand_file_name (name, dirname); - val = call1 (predicate, decoded); + val = call1 (predicate, name); UNGCPRO; if (NILP (val)) @@ -1113,6 +1110,7 @@ Qfile_name_all_completions = intern ("file-name-all-completions"); Qfile_attributes = intern ("file-attributes"); Qfile_attributes_lessp = intern ("file-attributes-lessp"); + Qdefault_directory = intern ("default-directory"); staticpro (&Qdirectory_files); staticpro (&Qdirectory_files_and_attributes); @@ -1120,6 +1118,7 @@ staticpro (&Qfile_name_all_completions); staticpro (&Qfile_attributes); staticpro (&Qfile_attributes_lessp); + staticpro (&Qdefault_directory); defsubr (&Sdirectory_files); defsubr (&Sdirectory_files_and_attributes);