]> git.eshelyaron.com Git - emacs.git/commitdiff
(where-is): New function.
authorRichard M. Stallman <rms@gnu.org>
Wed, 23 Mar 1994 04:54:20 +0000 (04:54 +0000)
committerRichard M. Stallman <rms@gnu.org>
Wed, 23 Mar 1994 04:54:20 +0000 (04:54 +0000)
lisp/help.el

index 325ac7b478712f656f40e9dca6509921401997df..acecb29bc07119098a96582b6ecc6d3057aaee17 100644 (file)
@@ -421,6 +421,26 @@ Returns the documentation as a string, also."
     ;; 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