From ad456ad4215a2633e9d9985b795f95381e3c767f Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Sat, 8 Oct 1994 09:52:08 +0000 Subject: [PATCH] (file_name_completion): Ignore files "." and ".." in first pass. (Ffile_name_completion): Perform the completion even if the name part is empty. --- src/dired.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/dired.c b/src/dired.c index cfe70d9b54..1bad7a4267 100644 --- a/src/dired.c +++ b/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 */ -- 2.20.1