changeset 99564:e3d49b38c157

(describe-function-1): Do char-range check for self-insert-command.
author Chong Yidong <cyd@stupidchicken.com>
date Sat, 15 Nov 2008 06:19:12 +0000
parents 6f5ee88b4758
children 4036fc26fd06
files lisp/help-fns.el
diffstat 1 files changed, 35 insertions(+), 34 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/help-fns.el	Sat Nov 15 06:18:47 2008 +0000
+++ b/lisp/help-fns.el	Sat Nov 15 06:19:12 2008 +0000
@@ -413,41 +413,42 @@
 				  (point)))
       (terpri)(terpri)
       (when (commandp function)
-	(let ((pt2 (with-current-buffer (help-buffer) (point))))
-	  (if (and (eq function 'self-insert-command)
-		   (eq (key-binding "a") 'self-insert-command)
-		   (eq (key-binding "b") 'self-insert-command)
-		   (eq (key-binding "c") 'self-insert-command))
-	      (princ "It is bound to many ordinary text characters.\n")
-	    (let* ((remapped (command-remapping function))
-		   (keys (where-is-internal
-			  (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 "'"))
+	(let ((pt2 (with-current-buffer (help-buffer) (point)))
+	      (remapped (command-remapping function)))
+	  (unless (memq remapped '(ignore undefined))
+	    (let ((keys (where-is-internal
+			 (or remapped function) overriding-local-map nil nil))
+		  non-modified-keys)
+	      (if (and (eq function 'self-insert-command)
+		       (vectorp (car-safe keys))
+		       (consp (aref (car keys) 0)))
+		  (princ "It is bound to many ordinary text characters.\n")
+		;; 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 "))
-		;; If lots of ordinary text characters run this command,
-		;; don't mention them one by one.
-		(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))))
+		(when keys
+		  (princ (if remapped ", which is bound to " "It is bound to "))
+		  ;; If lots of ordinary text characters run this command,
+		  ;; don't mention them one by one.
+		  (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)))))
+
 	  (with-current-buffer (help-buffer)
 	    (fill-region-as-paragraph pt2 (point))
 	    (unless (looking-back "\n\n")