changeset 8259:604d89082229

(print-help-return-message): If help buffer is a special display buffer, say nothing about how to switch back.
author Richard M. Stallman <rms@gnu.org>
date Sat, 16 Jul 1994 17:58:12 +0000
parents 44773d8bee3e
children 1ad35b4d9128
files lisp/help.el
diffstat 1 files changed, 34 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/help.el	Sat Jul 16 16:23:52 1994 +0000
+++ b/lisp/help.el	Sat Jul 16 17:58:12 1994 +0000
@@ -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."