;;; help.el --- help commands for Emacs
;; Copyright (C) 1985, 1986, 1993, 1994, 1998, 1999, 2000, 2001, 2002,
-;; 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+;; 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: help, internal
;; invoking `with-output-to-temp-buffer'. If and only if `help-window'
;; is eq to t, `help-mode-finish' (called by `temp-buffer-setup-hook')
;; sets `help-window' to the window selected by `display-buffer'.
-;; Exiting `with-help-window' and calling `print-help-return-message'
+;; Exiting `with-help-window' and calling `help-print-return-message'
;; reset `help-window' to nil.
(defvar help-window nil
"Window chosen for displaying help.")
(WINDOW . quit-window) do quit-window, then select WINDOW.
(WINDOW BUF START POINT) display BUF at START, POINT, then select WINDOW.")
-(defun print-help-return-message (&optional function)
+(define-obsolete-function-alias 'print-help-return-message 'help-print-return-message "23.2")
+(defun help-print-return-message (&optional function)
"Display or return message saying how to restore windows after help command.
This function assumes that `standard-output' is the help buffer.
It computes a message, and applies the optional argument FUNCTION to it.
I METHOD Describe a specific input method, or RET for current.
k KEYS Display the full documentation for the key sequence.
K KEYS Show the on-line manual's section for the command bound to KEYS.
-l Show last 100 characters you typed (lossage).
+l Show last 300 input keystrokes (lossage).
L LANG-ENV Describes a specific language environment, or RET for current.
m Display documentation of current minor modes and current major mode,
including their special commands.
(defun view-help-file (file &optional dir)
(view-file (expand-file-name file (or dir data-directory)))
- (goto-address)
+ (goto-address-mode 1)
(goto-char (point-min)))
(defun describe-distribution ()
(view-help-file "MORE.STUFF"))
(defun view-lossage ()
- "Display last 100 input keystrokes.
+ "Display last 300 input keystrokes.
To record all your input on a file, use `open-dribble-file'."
(interactive)
(help-window-display-message
(if reuse
;; Offer `display-buffer' for consistency with
- ;; `print-help-return-message'. This is hardly TRT when
+ ;; `help-print-return-message'. This is hardly TRT when
;; the other window and the selected window display the
;; same buffer but has been handled this way ever since.
"Type \\[display-buffer] RET to restore the other window"
;; (4) A marker (`help-window-point-marker') to move point in the help
;; window to an arbitrary buffer position.
-;; Note: It's usually always wrong to use `print-help-return-message' in
+;; Note: It's usually always wrong to use `help-print-return-message' in
;; the body of `with-help-window'.
(defmacro with-help-window (buffer-name &rest body)
"Display buffer BUFFER-NAME in a help window evaluating BODY.
Select help window if the actual value of the user option
-`help-window-select' says so."
+`help-window-select' says so. Return last value in BODY."
(declare (indent 1) (debug t))
;; Bind list-of-frames to `frame-list' and list-of-window-tuples to a
;; list of one <window window-buffer window-start window-point> tuple
list))
'no-mini t)
list)))
- ;; We set `help-window' to t in order to trigger `help-mode-finish'
- ;; to set `help-window' to the actual help window.
+ ;; Make `help-window' t to trigger `help-mode-finish' to set
+ ;; `help-window' to the actual help window.
(setq help-window t)
;; Make `help-window-point-marker' point nowhere (the only place
;; where this should be set to a buffer position is within BODY).
(set-marker help-window-point-marker nil)
-
- (with-output-to-temp-buffer ,buffer-name
- (progn ,@body))
-
- (when (windowp help-window)
- ;; Set up help window.
- (help-window-setup list-of-frames list-of-window-tuples))
-
- ;; Reset `help-window' to nil to avoid confusing future calls of
- ;; `help-mode-finish' by "plain" `with-output-to-temp-buffer'.
- (setq help-window nil)))
+ (prog1
+ ;; Return value returned by `with-output-to-temp-buffer'.
+ (with-output-to-temp-buffer ,buffer-name
+ (progn ,@body))
+ (when (windowp help-window)
+ ;; Set up help window.
+ (help-window-setup list-of-frames list-of-window-tuples))
+ ;; Reset `help-window' to nil to avoid confusing future calls of
+ ;; `help-mode-finish' with plain `with-output-to-temp-buffer'.
+ (setq help-window nil))))
\f
(provide 'help)