+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.
}
static int file_name_completion_stat ();
+Lisp_Object Qdefault_directory;
Lisp_Object
file_name_completion (file, dirname, all_flag, ver_flag, predicate)
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)
/* 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))
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);
staticpro (&Qfile_name_all_completions);
staticpro (&Qfile_attributes);
staticpro (&Qfile_attributes_lessp);
+ staticpro (&Qdefault_directory);
defsubr (&Sdirectory_files);
defsubr (&Sdirectory_files_and_attributes);