Subject: 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 11:04:28 +0200

>>>>> On Thu, 15 Sep 2022 11:00:09 +0200, Andreas Schwab <[email-masked]> said:

    Andreas> On Sep 15 2022, Robert Pluim wrote:
    >>>>>>> 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)

    Andreas> aka (and keymap (list keymap))

Indeed. Either too much C or not enough coffee this morning.

Robert
--