summaryrefslogtreecommitdiff
path: root/lisp/help.el
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2022-06-10 11:39:51 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2022-06-10 11:39:51 +0200
commit15a5c5ce40143edbdd436eeaa4cbb55f025f1771 (patch)
tree9003c7119931a522b02abad71fa8c021edc6a4e4 /lisp/help.el
parent071722e41120f8894b5482d9eccc663a28f81058 (diff)
downloademacs-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.el27
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)