From: Robert Pluim Date: Mon, 19 Sep 2022 13:53:52 +0000 (+0200) Subject: Allow keymap to override advertised-binding in docstrings X-Git-Tag: emacs-29.0.90~1856^2~350^2~1 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=120ade62cd26dd502f1ae3784079e4cd88607a0b;p=emacs.git Allow keymap to override advertised-binding in docstrings Previously (substitute-command-keys "\\\\[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) --- diff --git a/lisp/help.el b/lisp/help.el index 92b87cf7999..0ec5b9c85b8 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -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)))