]> git.eshelyaron.com Git - emacs.git/commitdiff
(describe-function-1): If many non-control non-meta
authorRichard M. Stallman <rms@gnu.org>
Tue, 20 Apr 2004 20:51:11 +0000 (20:51 +0000)
committerRichard M. Stallman <rms@gnu.org>
Tue, 20 Apr 2004 20:51:11 +0000 (20:51 +0000)
keys run the command, don't list all of them.

lisp/help-fns.el

index 000b8cb5e1645d7d07f9d74d7a0f066c543c0065..6a71a544638d5a8a7f8b5be511894086fe4f957a 100644 (file)
@@ -355,16 +355,31 @@ KIND should be `var' for a variable or `subr' for a subroutine."
     (when (commandp function)
       (let* ((remapped (command-remapping function))
             (keys (where-is-internal
-                   (or remapped function) overriding-local-map nil nil)))
+                   (or remapped function) overriding-local-map nil nil))
+            non-modified-keys)
+       ;; Which non-control non-meta keys run this command?
+       (dolist (key keys)
+         (if (member (event-modifiers (aref key 0)) '(nil (shift)))
+             (push key non-modified-keys)))
        (when remapped
          (princ "It is remapped to `")
          (princ (symbol-name remapped))
          (princ "'"))
+
        (when keys
          (princ (if remapped " which is bound to " "It is bound to "))
          ;; FIXME: This list can be very long (f.ex. for self-insert-command).
-         (princ (mapconcat 'key-description keys ", ")))
-       (when (or remapped keys)
+         ;; If there are many, remove them from KEYS.
+         (if (< (length non-modified-keys) 10)
+             (princ (mapconcat 'key-description keys ", "))          
+           (dolist (key non-modified-keys)
+             (setq keys (delq key keys)))
+           (if keys
+               (progn
+                 (princ (mapconcat 'key-description keys ", "))
+                 (princ ", and many ordinary text characters"))
+             (princ "many ordinary text characters"))))
+       (when (or remapped keys non-modified-keys)
          (princ ".")
          (terpri))))
     (let* ((arglist (help-function-arglist def))