Subject: bug#65058: closed (Re: bug#65058: 30.0.50; `find-function' can find wrong function due to implicit completion while exiting minibuffer)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 13 Aug 2023 06:36:03 +0000

Your bug report

#65058: 30.0.50; `find-function' can find wrong function due to implicit completion while exiting minibuffer

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
65058: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=65058
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#65058: 30.0.50; `find-function' can find wrong function due to implicit completion while exiting minibuffer
From: Eli Zaretskii <[email-masked]>
To: Stefan Monnier <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Sun, 13 Aug 2023 09:35:33 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: Stefan Monnier <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Sat, 12 Aug 2023 14:10:01 -0400
> 
> > Ping!  Stefan, any comments?
> 
> The patch looks OK to me.

Thanks.  Installed on master, and closing the bug.

Subject: 30.0.50; `find-function' can find wrong function due to implicit completion while exiting minibuffer
From: Jens Schmidt <[email-masked]>
To: [email-masked]
Date: Fri, 4 Aug 2023 21:46:12 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Start from emacs -Q

M-x find-function RET shell-mode RET

Pops you to sh-mode.  Or

M-x find-function RET vc-create-repo RET

Pops to vc-git-create-repo.

Which can be confusing.

Maybe completion in `find-function-read' should be done like this:

diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el
index bf890fc35a9..d393ccc759a 100644
--- a/lisp/emacs-lisp/find-func.el
+++ b/lisp/emacs-lisp/find-func.el
@@ -591,7 +591,7 @@ find-function-read
      (list (intern (completing-read
                     (format-prompt "Find %s" symb prompt-type)
                     obarray predicate
-                   t nil nil (and symb (symbol-name symb)))))))
+                   'lambda nil nil (and symb (symbol-name symb)))))))

  (defun find-function-do-it (symbol type switch-fn)
    "Find Emacs Lisp SYMBOL in a buffer and display it.

Ripped the symbol `lambda' from the completion of `load-file', not sure
whether there is any better symbol.

Present in Emacs 29 as well.