2000-11-20 10:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
authorShengHuo ZHU <zsh@cs.rochester.edu>
Mon, 20 Nov 2000 14:12:47 +0000 (14:12 +0000)
committerShengHuo ZHU <zsh@cs.rochester.edu>
Mon, 20 Nov 2000 14:12:47 +0000 (14:12 +0000)
* gnus-art.el (gnus-article-describe-key): New function.

lisp/ChangeLog
lisp/gnus-art.el

index 97047cf..a441bbf 100644 (file)
@@ -1,3 +1,7 @@
+2000-11-20 10:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
+
+       * gnus-art.el (gnus-article-describe-key): New function.
+
 2000-11-19 23:00:00  ShengHuo ZHU  <zsh@cs.rochester.edu>
 
        * mm-decode.el (mm-decrypt-option): Doc typo.
index 170939e..d6affa5 100644 (file)
@@ -2720,6 +2720,7 @@ If variable `gnus-use-long-file-name' is non-nil, it is
   ">" end-of-buffer
   "\C-c\C-i" gnus-info-find-node
   "\C-c\C-b" gnus-bug
+  "\C-hk" gnus-article-describe-key
 
   "\C-d" gnus-article-read-summary-keys
   "\M-*" gnus-article-read-summary-keys
@@ -4042,6 +4043,30 @@ Argument LINES specifies lines to be scrolled down."
          (switch-to-buffer gnus-article-buffer)
           (ding))))))
 
+(defun gnus-article-describe-key (key)
+  "Display documentation of the function invoked by KEY.  KEY is a string."
+  (interactive "kDescribe key: ")
+  (gnus-article-check-buffer)
+  (if (eq (key-binding key) 'gnus-article-read-summary-keys)
+      (save-excursion
+       (set-buffer gnus-article-current-summary)
+       (let (gnus-pick-mode)
+         (push (elt key 0) unread-command-events)
+         (setq key (if (featurep 'xemacs)
+                       (events-to-keys (read-key-sequence nil))
+                     (read-key-sequence nil))))
+       (let ((defn (key-binding key)))
+         (if (or (null defn) (integerp defn))
+             (message "%s is undefined" (key-description key))
+           (with-output-to-temp-buffer "*Help*"
+             (princ (key-description key))
+             (princ " runs the command ")
+             (prin1 defn)
+             (princ " in the article buffer.\n   which is ")
+             (describe-function-1 defn nil (interactive-p))
+             (print-help-return-message)))))
+    (describe-key key)))
+
 (defun gnus-article-hide (&optional arg force)
   "Hide all the gruft in the current article.
 This means that PGP stuff, signatures, cited text and (some)