Function: help-print-return-message
help-print-return-message is a byte-compiled function defined in
help.el.gz.
Signature
(help-print-return-message &optional FUNCTION)
Documentation
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.
If FUNCTION is nil, it applies message, thus displaying the message.
In addition, this function sets up help-return-method, which see, that
specifies what to do when the user exits the help buffer.
Do not call this in the scope of with-help-window.
Source Code
;; Defined in /usr/src/emacs/lisp/help.el.gz
(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.
If FUNCTION is nil, it applies `message', thus displaying the message.
In addition, this function sets up `help-return-method', which see, that
specifies what to do when the user exits the help buffer.
Do not call this in the scope of `with-help-window'."
(and (not (get-buffer-window standard-output))
(let ((first-message
(cond ((or
pop-up-frames
;; FIXME: `special-display-p' is obsolete since
;; the vars on which it depends are obsolete!
(special-display-p (buffer-name standard-output)))
(setq help-return-method (cons (selected-window) t))
;; If the help output buffer is a special display buffer,
;; don't say anything about how to get rid of it.
;; First of all, the user will do that with the window
;; manager, not with Emacs.
;; Secondly, the buffer has not been displayed yet,
;; so we don't know whether its frame will be selected.
nil)
((not (one-window-p t))
(setq help-return-method
(cons (selected-window) 'quit-window))
"Type \\[display-buffer] RET to restore the other window.")
(pop-up-windows
(setq help-return-method (cons (selected-window) t))
"Type \\[delete-other-windows] to remove help window.")
(t
(setq help-return-method
(list (selected-window) (window-buffer)
(window-start) (window-point)))
"Type \\[switch-to-buffer] RET to remove help window."))))
(funcall (or function 'message)
(concat
(if first-message
(substitute-command-keys first-message))
(if first-message " ")
;; If the help buffer will go in a separate frame,
;; it's no use mentioning a command to scroll, so don't.
(if (or pop-up-windows
(special-display-p (buffer-name standard-output)))
nil
(if (same-window-p (buffer-name standard-output))
;; Say how to scroll this window.
(substitute-command-keys
"\\[scroll-up-command] to scroll the help.")
;; Say how to scroll some other window.
(substitute-command-keys
"\\[scroll-other-window] to scroll the help."))))))))