Subject: Re: bug#60359: 29.0.60; completion-auto-select set to t skips first argument when completing files

From: Gregory Heytings <[email-masked]>
Date: Thu, 29 Dec 2022 18:37:54 +0000

>> Thanks for your bug report.  If I set completion-auto-select in emacs 
>> -Q, C-x C-f C TAB (or TAB TAB, depending on the value of 
>> completion-auto-select) in the Emacs repository behaves as expected. 
>> However, C-x C-f src/ TAB does not.  Is the latter case what you have 
>> in mind, or do I misunderstand what you mean?  If not, the attached 
>> patch should fix that bug.
>
> Please omit the message only in case when the completions buffer is 
> shown, then the user will see there are more completions.  But after 
> typing e.g. `M-x man TAB` that otherwise does nothing the user should 
> see the message. IOW, in case of `completion-auto-help` please use the 
> same condition `(and (eq this-command last-command) 
> completion-auto-help)` as used to pop up the completions.
>

You mean this, right?

diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 6e42296e7ba..7a720cf2c0a 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -1474,7 +1474,10 @@ completion--do-completion
                (if (and (eq this-command last-command) 
completion-auto-help)
                    (minibuffer-completion-help beg end))
                (completion--done completion 'exact
-                                (unless expect-exact
+                                (unless (or expect-exact
+                                            (and completion-auto-select
+                                                 (eq this-command last-command)
+                                                 completion-auto-help))
                                    "Complete, but not unique"))))

              (minibuffer--bitset completed t exact))))))))