changeset 6476:2e28b96d5b64

(where-is): New function.
author Richard M. Stallman <rms@gnu.org>
date Wed, 23 Mar 1994 04:54:20 +0000
parents e7db7f9c1fb4
children 95a4c1f81d0c
files lisp/help.el
diffstat 1 files changed, 20 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/help.el	Wed Mar 23 04:51:55 1994 +0000
+++ b/lisp/help.el	Wed Mar 23 04:54:20 1994 +0000
@@ -421,6 +421,26 @@
     ;; Return the text we displayed.
     (save-excursion (set-buffer standard-output) (buffer-string))))
 
+(defun where-is (definition)
+  "Print message listing key sequences that invoke specified command.
+Argument is a command definition, usually a symbol with a function definition."
+  (interactive
+   (let ((fn (function-called-at-point))
+	 (enable-recursive-minibuffers t)	     
+	 val)
+     (setq val (completing-read (if fn
+				    (format "Where is command (default %s): " fn)
+				  "Where is command: ")
+				obarray 'fboundp t))
+     (list (if (equal val "")
+	       fn (intern val)))))
+  (let* ((keys (where-is-internal definition overriding-local-map nil nil))
+	 (keys1 (mapconcat 'key-description keys ", ")))
+    (if (> (length keys1) 0)
+	(message "%s is on %s" definition keys1)
+      (message "%s is not on any key" definition)))
+  nil)
+
 (defun command-apropos (string)
   "Like apropos but lists only symbols that are names of commands
 \(interactively callable functions).  Argument REGEXP is a regular expression