# HG changeset patch # User Richard M. Stallman # Date 1082494271 0 # Node ID 10f2535aa14e3b1097a50811f1c94130d75d63cd # Parent f5cafaedbab06ee0998c349e6e9f3021dbd5cb8b (describe-function-1): If many non-control non-meta keys run the command, don't list all of them. diff -r f5cafaedbab0 -r 10f2535aa14e lisp/help-fns.el --- a/lisp/help-fns.el Tue Apr 20 20:40:41 2004 +0000 +++ b/lisp/help-fns.el Tue Apr 20 20:51:11 2004 +0000 @@ -355,16 +355,31 @@ (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))