diff options
author | Gregory Heytings <gregory@heytings.org> | 2022-09-03 22:43:26 +0000 |
---|---|---|
committer | Gregory Heytings <gregory@heytings.org> | 2022-09-04 00:45:04 +0200 |
commit | 1d1158397bce41466078e384eed2d1e214e206de (patch) | |
tree | c50451505f6c0dfa293783a830ceaaf21448cbde | |
parent | 22bee93d92567a1b01ebf7354089e6695e134611 (diff) | |
download | emacs-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.el | 10 |
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' |