diff options
author | Lars Ingebrigtsen <larsi@gnus.org> | 2022-06-10 11:39:51 +0200 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2022-06-10 11:39:51 +0200 |
commit | 15a5c5ce40143edbdd436eeaa4cbb55f025f1771 (patch) | |
tree | 9003c7119931a522b02abad71fa8c021edc6a4e4 /lisp/help.el | |
parent | 071722e41120f8894b5482d9eccc663a28f81058 (diff) | |
download | emacs-15a5c5ce40143edbdd436eeaa4cbb55f025f1771.tar.gz |
Make describe-prefix-bindings say when there are no matches
* lisp/help.el (describe-prefix-bindings): Say when there are no
bindings under a prefix (bug#55875), for instance in `C-c C-h' in
a buffer with no `C-c' commands.
Diffstat (limited to 'lisp/help.el')
-rw-r--r-- | lisp/help.el | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/lisp/help.el b/lisp/help.el index 4e0d807cb2c..abdce46edf3 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -392,16 +392,23 @@ If that doesn't give a function, return nil." The prefix described consists of all but the last event of the key sequence that ran this command." (interactive) - (let ((key (this-command-keys))) - (describe-bindings - (if (stringp key) - (substring key 0 (1- (length key))) - (let ((prefix (make-vector (1- (length key)) nil)) - (i 0)) - (while (< i (length prefix)) - (aset prefix i (aref key i)) - (setq i (1+ i))) - prefix))))) + (let* ((key (this-command-keys)) + (prefix + (if (stringp key) + (substring key 0 (1- (length key))) + (let ((prefix (make-vector (1- (length key)) nil)) + (i 0)) + (while (< i (length prefix)) + (aset prefix i (aref key i)) + (setq i (1+ i))) + prefix)))) + (describe-bindings prefix) + (with-current-buffer (help-buffer) + (when (< (buffer-size) 10) + (let ((inhibit-read-only t)) + (insert (format "No commands with a binding that start with %s." + (help--key-description-fontified prefix)))))))) + ;; Make C-h after a prefix, when not specifically bound, ;; run describe-prefix-bindings. (setq prefix-help-command 'describe-prefix-bindings) |