]> git.eshelyaron.com Git - emacs.git/commitdiff
Make describe-prefix-bindings say when there are no matches
authorLars Ingebrigtsen <larsi@gnus.org>
Fri, 10 Jun 2022 09:39:51 +0000 (11:39 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Fri, 10 Jun 2022 09:39:51 +0000 (11:39 +0200)
* 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.

lisp/help.el

index 4e0d807cb2c9052b145b41c1aff28d146363f44e..abdce46edf372d25849bed7ff3d2e0a65996d390 100644 (file)
@@ -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)