]> git.eshelyaron.com Git - emacs.git/commitdiff
Allow keymap to override advertised-binding in docstrings
authorRobert Pluim <rpluim@gmail.com>
Mon, 19 Sep 2022 13:53:52 +0000 (15:53 +0200)
committerRobert Pluim <rpluim@gmail.com>
Tue, 20 Sep 2022 15:44:05 +0000 (17:44 +0200)
Previously

(substitute-command-keys "\\<undo-repeat-map>\\[undo]")

would use the global advertised-binding for `undo', even though
there's a binding in `undo-repeat-map', which is highly
counter-intuitive.  Now the binding is looked up in the specified
keymap first.

* lisp/help.el (substitute-command-keys): Restrict the initial key
lookup to the specified keymap (if there is one).  (Bug#51384)

lisp/help.el

index 92b87cf7999a28177208cd8e15c946e1591e296f..0ec5b9c85b80467e07d0ef5df065db30397f158e 100644 (file)
@@ -1204,7 +1204,10 @@ Otherwise, return a new string."
                 (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
+                                                 (and keymap
+                                                      (list keymap))
+                                                 t))))
                   (if (not key)
                       ;; Function is not on any key.
                       (let ((op (point)))