summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Heytings <gregory@heytings.org>2022-09-03 22:43:26 +0000
committerGregory Heytings <gregory@heytings.org>2022-09-04 00:45:04 +0200
commit1d1158397bce41466078e384eed2d1e214e206de (patch)
treec50451505f6c0dfa293783a830ceaaf21448cbde
parent22bee93d92567a1b01ebf7354089e6695e134611 (diff)
downloademacs-1d1158397bce41466078e384eed2d1e214e206de.tar.gz
Look up keybindings in correct buffer in describe-function.
* lisp/help-fns.el (help-fns--key-bindings): New parameter. Use it when looking up keybindings. (describe-function-1): Add the buffer in which the command was invoked as argument to 'help-fns--key-bindings'. Fixes bug#57568.
-rw-r--r--lisp/help-fns.el10
1 files changed, 6 insertions, 4 deletions
diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index bb5b3bb71ff..3f3a5747dc2 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -510,13 +510,15 @@ the C sources, too."
(src-file (locate-library file-name t nil 'readable)))
(and src-file (file-readable-p src-file) src-file))))))
-(defun help-fns--key-bindings (function)
+(defun help-fns--key-bindings (function orig-buffer)
(when (commandp function)
(let ((pt2 (with-current-buffer standard-output (point)))
(remapped (command-remapping function)))
(unless (memq remapped '(ignore undefined))
- (let* ((all-keys (where-is-internal
- (or remapped function) overriding-local-map nil nil))
+ (let* ((all-keys
+ (with-current-buffer orig-buffer
+ (where-is-internal
+ (or remapped function) overriding-local-map nil nil)))
(seps (seq-group-by
(lambda (key)
(and (vectorp key)
@@ -1129,7 +1131,7 @@ Returns a list of the form (REAL-FUNCTION DEF ALIASED REAL-DEF)."
(string-match "\\([^\\]=\\|[^=]\\|\\`\\)\\\\[[{<]" doc-raw)
(autoload-do-load real-def))
- (help-fns--key-bindings function)
+ (help-fns--key-bindings function describe-function-orig-buffer)
(with-current-buffer standard-output
(let ((doc (condition-case nil
;; FIXME: Maybe `help-fns--signature' should return `doc'