Subject: Re: bug#51384: 28.0.60; substitute-command-keys finds global binding for undo instead of in specified keymap

From: Robert Pluim <[email-masked]>
Date: Thu, 15 Sep 2022 10:55:24 +0200

>>>>> On Thu, 15 Sep 2022 09:39:43 +0200, Robert Pluim <[email-masked]> said:

    Robert> The patch has shrunk in the meantime, somebody simplified the code ;-)

Although, apart from the patch missing a paren, it doesnʼt work,
because Iʼve forgotten how Lisp lists work :-)

diff --git a/lisp/help.el b/lisp/help.el
index 15ab3192ad..90476e4a4f 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -1204,7 +1204,11 @@ substitute-command-keys
                 (delete-char 2)
                 (let* ((fun (intern (buffer-substring (point) (1- end-point))))
                        (key (with-current-buffer orig-buf
-                              (where-is-internal fun keymap t))))
+                              (where-is-internal fun
+                                                 (if keymap
+                                                     (list keymap)
+                                                   keymap)
+                                                 t))))
                   (if (not key)
                       ;; Function is not on any key.
                       (let ((op (point)))