diff options
author | Karoly Lorentey <lorentey@elte.hu> | 2006-02-12 00:15:44 +0000 |
---|---|---|
committer | Karoly Lorentey <lorentey@elte.hu> | 2006-02-12 00:15:44 +0000 |
commit | 1913a2b35da45eeeb71ef851975be7d57c11de78 (patch) | |
tree | 6cd59883fb931999da5b62c03b321ade6f77e66e /lisp/help.el | |
parent | a5805c9d0240fab504f2a3e32db6449392005fb6 (diff) | |
parent | a528b71e55b2b244a5dd35318713ccb20398cbbf (diff) | |
download | emacs-1913a2b35da45eeeb71ef851975be7d57c11de78.tar.gz |
Merged from emacs@sv.gnu.org
Patches applied:
* emacs@sv.gnu.org/emacs--devo--0--patch-49
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-50
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-51
Make constrain-to-field notice overlays
* emacs@sv.gnu.org/emacs--devo--0--patch-52
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-53
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-54
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-55
Merge from erc--emacs--0
* emacs@sv.gnu.org/emacs--devo--0--patch-56
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-57
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-58
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-59
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-60
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-61
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-62
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-63
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-64
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-65
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-66
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-67
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-68
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-69
rcirc: Add flexible response formatting; Add nick abbrevs
* emacs@sv.gnu.org/emacs--devo--0--patch-70
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-71
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-72
Update from CVS: man/dired.texi (Tumme): More tumme documentation.
* emacs@sv.gnu.org/gnus--rel--5.10--patch-18
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-19
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-20
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-21
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-22
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-23
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-24
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-25
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-26
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-27
Update from CVS: lisp/gnus.el: Remove bogus comment.
* emacs@sv.gnu.org/gnus--rel--5.10--patch-28
Merge from emacs--devo--0
* emacs@sv.gnu.org/gnus--rel--5.10--patch-29
Add sendmail.el and smptmail.el from Emacs tree to contrib/
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-508
Diffstat (limited to 'lisp/help.el')
-rw-r--r-- | lisp/help.el | 68 |
1 files changed, 63 insertions, 5 deletions
diff --git a/lisp/help.el b/lisp/help.el index 3b78194b6a3..bea404f5112 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -1,7 +1,7 @@ ;;; help.el --- help commands for Emacs ;; Copyright (C) 1985, 1986, 1993, 1994, 1998, 1999, 2000, 2001, 2002, -;; 2003, 2004, 2005 Free Software Foundation, Inc. +;; 2003, 2004, 2005, 2006 Free Software Foundation, Inc. ;; Maintainer: FSF ;; Keywords: help, internal @@ -556,7 +556,34 @@ or `keymap' property, return the binding of KEY in the string's keymap." string (format "%s (translated from %s)" string otherstring)))))) -(defun describe-key-briefly (key &optional insert untranslated) +(defun describe-key-briefly (&optional key insert untranslated) + "Print the name of the function KEY invokes. KEY is a string. +If INSERT (the prefix arg) is non-nil, insert the message in the buffer. +If non-nil, UNTRANSLATED is a vector of the untranslated events. +It can also be a number in which case the untranslated events from +the last key hit are used. + +If KEY is a menu item or a tool-bar button that is disabled, this command +temporarily enables it to allow getting help on disabled items and buttons." + (interactive) + (let ((enable-disabled-menus-and-buttons t) + (save-yank-menu)) + (if key + ;; Non-interactive invocation + (describe-key-briefly-internal key insert untranslated) + ;; If yank-menu is empty, populate it temporarily, so that + ;; "Select and Paste" menu can generate a complete event + (if (null (cdr yank-menu)) + (unwind-protect + (progn + (setq save-yank-menu (copy-sequence yank-menu)) + (menu-bar-update-yank-menu "(any string)" nil) + (call-interactively 'describe-key-briefly-internal)) + (progn (setq yank-menu (copy-sequence save-yank-menu)) + (fset 'yank-menu (cons 'keymap yank-menu)))) + (call-interactively 'describe-key-briefly-internal))))) + +(defun describe-key-briefly-internal (key &optional insert untranslated) "Print the name of the function KEY invokes. KEY is a string. If INSERT (the prefix arg) is non-nil, insert the message in the buffer. If non-nil UNTRANSLATED is a vector of the untranslated events. @@ -601,7 +628,38 @@ the last key hit are used." key-desc (if (symbolp defn) defn (prin1-to-string defn))))))))) -(defun describe-key (key &optional untranslated up-event) +(defun describe-key (&optional key untranslated up-event) + "Display documentation of the function invoked by KEY. +KEY can be any kind of a key sequence; it can include keyboard events, +mouse events, and/or menu events. When calling from a program, +pass KEY as a string or a vector. + +If non-nil, UNTRANSLATED is a vector of the corresponding untranslated events. +It can also be a number, in which case the untranslated events from +the last key sequence entered are used. +UP-EVENT is the up-event that was discarded by reading KEY, or nil. + +If KEY is a menu item or a tool-bar button that is disabled, this command +temporarily enables it to allow getting help on disabled items and buttons." + (interactive) + (let ((enable-disabled-menus-and-buttons t) + (save-yank-menu)) + (if key + ;; Non-interactive invocation + (describe-key-internal key untranslated up-event) + ;; If yank-menu is empty, populate it temporarily, so that + ;; "Select and Paste" menu can generate a complete event + (if (null (cdr yank-menu)) + (unwind-protect + (progn + (setq save-yank-menu (copy-sequence yank-menu)) + (menu-bar-update-yank-menu "(any string)" nil) + (call-interactively 'describe-key-internal)) + (progn (setq yank-menu (copy-sequence save-yank-menu)) + (fset 'yank-menu (cons 'keymap yank-menu)))) + (call-interactively 'describe-key-internal))))) + +(defun describe-key-internal (key &optional untranslated up-event) "Display documentation of the function invoked by KEY. KEY can be any kind of a key sequence; it can include keyboard events, mouse events, and/or menu events. When calling from a program, @@ -609,8 +667,8 @@ pass KEY as a string or a vector. If non-nil, UNTRANSLATED is a vector of the corresponding untranslated events. It can also be a number, in which case the untranslated events from -the last key sequence entered are used." - ;; UP-EVENT is the up-event that was discarded by reading KEY, or nil. +the last key sequence entered are used. +UP-EVENT is the up-event that was discarded by reading KEY, or nil." (interactive "kDescribe key (or click or menu item): \np\nU") (if (numberp untranslated) (setq untranslated (this-single-command-raw-keys))) |