(file_name_completion): Ignore files "." and ".." in first pass.
(Ffile_name_completion): Perform the completion even if the name part is empty.
This commit is contained in:
parent
5d2ca7aec6
commit
ad456ad421
1 changed files with 11 additions and 8 deletions
19
src/dired.c
19
src/dired.c
|
@ -233,13 +233,6 @@ Returns nil if DIR contains no name starting with FILE.")
|
|||
Lisp_Object file, dirname;
|
||||
{
|
||||
Lisp_Object handler;
|
||||
/* Don't waste time trying to complete a null string.
|
||||
Besides, this case happens when user is being asked for
|
||||
a directory name and has supplied one ending in a /.
|
||||
We would not want to add anything in that case
|
||||
even if there are some unique characters in that directory. */
|
||||
if (STRINGP (file) && XSTRING (file)->size == 0)
|
||||
return file;
|
||||
|
||||
/* If the file name has special constructs in it,
|
||||
call the corresponding file handler. */
|
||||
|
@ -351,7 +344,17 @@ file_name_completion (file, dirname, all_flag, ver_flag)
|
|||
|
||||
directoryp = ((st.st_mode & S_IFMT) == S_IFDIR);
|
||||
tem = Qnil;
|
||||
if (!directoryp)
|
||||
if (directoryp)
|
||||
{
|
||||
#ifndef TRIVIAL_DIRECTORY_ENTRY
|
||||
#define TRIVIAL_DIRECTORY_ENTRY(n) (!strcmp (n, ".") || !strcmp (n, ".."))
|
||||
#endif
|
||||
/* "." and ".." are never interesting as completions, but are
|
||||
actually in the way in a directory contains only one file. */
|
||||
if (!passcount && TRIVIAL_DIRECTORY_ENTRY (dp->d_name))
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Compare extensions-to-be-ignored against end of this file name */
|
||||
/* if name is not an exact match against specified string */
|
||||
|
|
Loading…
Add table
Reference in a new issue