summaryrefslogtreecommitdiff
path: root/lisp/help.el
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1994-07-16 17:58:12 +0000
committerRichard M. Stallman <rms@gnu.org>1994-07-16 17:58:12 +0000
commitd536293f4b67398d8e9df1e3f6480588ff3d36fd (patch)
tree76e4bc01d3cca9872ed9d1e0a14fc2de21b18f56 /lisp/help.el
parent7f410bb7ec7304e27626f43520406788da780e4f (diff)
downloademacs-d536293f4b67398d8e9df1e3f6480588ff3d36fd.tar.gz
(print-help-return-message): If help buffer is a
special display buffer, say nothing about how to switch back.
Diffstat (limited to 'lisp/help.el')
-rw-r--r--lisp/help.el44
1 files changed, 34 insertions, 10 deletions
diff --git a/lisp/help.el b/lisp/help.el
index e861bc8e42e..c6585f0e41b 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -136,16 +136,40 @@
Computes a message and applies the optional argument FUNCTION to it.
If FUNCTION is nil, applies `message' to it, thus printing it."
(and (not (get-buffer-window standard-output))
- (funcall (or function 'message)
- (concat
- (substitute-command-keys
- (if (one-window-p t)
- (if pop-up-windows
- "Type \\[delete-other-windows] to remove help window."
- "Type \\[switch-to-buffer] RET to remove help window.")
- "Type \\[switch-to-buffer-other-window] RET to restore the other window."))
- (substitute-command-keys
- " \\[scroll-other-window] to scroll the help.")))))
+ (let ((first-message
+ (cond ((or (member (buffer-name standard-output)
+ special-display-buffer-names)
+ (let (found
+ (tail special-display-regexps)
+ (name (buffer-name standard-output)))
+ (while (and tail (not found))
+ (if (string-match (car tail) name)
+ (setq found t))
+ (setq tail (cdr tail)))
+ found))
+ ;; 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.
+ ;; Even the message about scrolling the help
+ ;; might be wrong, but it seems worth showing it anyway.
+ nil)
+ ((not (one-window-p t))
+ "Type \\[switch-to-buffer-other-window] RET to restore the other window.")
+ (pop-up-windows
+ "Type \\[delete-other-windows] to remove help window.")
+ (t
+ "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 " " "")
+ (substitute-command-keys
+ "\\[scroll-other-window] to scroll the help."))))))
(defun describe-key (key)
"Display documentation of the function invoked by KEY. KEY is a string."