diff lisp/startup.el @ 83542:2d56e13fd23d

Merged from emacs@sv.gnu.org Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-413 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-414 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-415 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-416 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-417 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-418 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-419 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-420 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-421 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-422 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-423 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-424 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-425 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-426 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-427 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-428 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-429 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-430 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-431 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-432 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-433 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-434 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-435 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-436 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-437 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-438 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-439 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-440 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-441 lisp/url/url-methods.el: Fix format error when http_proxy is empty string * emacs@sv.gnu.org/emacs--devo--0--patch-442 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-443 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-444 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-445 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-446 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-447 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-448 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-449 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-450 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-451 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-452 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-453 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-454 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-455 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-456 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-457 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-458 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-459 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-460 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-461 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-462 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-463 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-464 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-465 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-466 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-467 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-468 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-469 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-470 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-471 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-472 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-473 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-128 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-129 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-130 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-131 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-132 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-133 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-134 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-135 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-136 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-137 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-138 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-139 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-140 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-141 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-142 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-143 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-144 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-145 Merge from emacs--devo--0 * emacs@sv.gnu.org/gnus--rel--5.10--patch-146 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-147 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-148 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-149 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-582
author Karoly Lorentey <lorentey@elte.hu>
date Sat, 14 Oct 2006 17:36:28 +0000
parents 694bbb62a75d 5cb689e83be2
children c71725faff1a
line wrap: on
line diff
--- a/lisp/startup.el	Sat Oct 14 16:56:21 2006 +0000
+++ b/lisp/startup.el	Sat Oct 14 17:36:28 2006 +0000
@@ -784,6 +784,7 @@
   (custom-reevaluate-setting 'mouse-wheel-up-event)
   (custom-reevaluate-setting 'file-name-shadow-mode)
   (custom-reevaluate-setting 'send-mail-function)
+  (custom-reevaluate-setting 'focus-follows-mouse)
 
   (normal-erase-is-backspace-setup-frame)
 
@@ -1097,10 +1098,7 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
 (defvar fancy-splash-text
-  '((:face variable-pitch
-	   "You can do basic editing with the menu bar and scroll bar \
-using the mouse.\n\n"
-	   :face (variable-pitch :weight bold)
+  '((:face (variable-pitch :weight bold)
 	   "Important Help menu items:\n"
 	   :face variable-pitch
            (lambda ()
@@ -1124,8 +1122,8 @@
                 "\n")))
            :face variable-pitch "\
 Emacs FAQ\tFrequently asked questions and answers
-Read the Emacs Manual\tView the Emacs manual using Info
-\(Non)Warranty\tGNU Emacs comes with "
+View Emacs Manual\tView the Emacs manual using Info
+Absence of Warranty\tGNU Emacs comes with "
 	   :face (variable-pitch :slant oblique)
 	   "ABSOLUTELY NO WARRANTY\n"
 	   :face variable-pitch
@@ -1133,18 +1131,16 @@
 Copying Conditions\tConditions for redistributing and changing Emacs
 Getting New Versions\tHow to obtain the latest version of Emacs
 More Manuals / Ordering Manuals       Buying printed manuals from the FSF\n")
-  (:face variable-pitch
-	   "You can do basic editing with the menu bar and scroll bar \
-using the mouse.\n\n"
-	   :face (variable-pitch :weight bold)
-	   "Useful File menu items:\n"
-	   :face variable-pitch "\
-Exit Emacs\t(Or type Control-x followed by Control-c)
+  (:face (variable-pitch :weight bold)
+	 "Useful File menu items:\n"
+	 :face variable-pitch "\
+Exit Emacs\t\t(Or type Control-x followed by Control-c)
 Recover Crashed Session\tRecover files you were editing before a crash
 
 
 
 
+
 "
 	   ))
   "A list of texts to show in the middle part of splash screens.
@@ -1249,6 +1245,10 @@
        "GNU Emacs is one component of the GNU/Linux operating system."
      "GNU Emacs is one component of the GNU operating system."))
   (insert "\n")
+  (fancy-splash-insert
+   :face 'variable-pitch
+   "You can do basic editing with the menu bar and scroll bar \
+using the mouse.\n\n")
   (if fancy-splash-outer-buffer
       (fancy-splash-insert
        :face 'variable-pitch
@@ -1285,7 +1285,7 @@
 	  t)
 	 (fancy-splash-insert :face '(variable-pitch :foreground "red")
 			      "\n\nIf an Emacs session crashed recently, "
-			      "type M-x recover-session RET\nto recover"
+			      "type Meta-x recover-session RET\nto recover"
 			      " the files you were editing."))))
 
 (defun fancy-splash-screens-1 (buffer)
@@ -1340,7 +1340,6 @@
 
 (defun fancy-splash-screens (&optional hide-on-input)
   "Display fancy splash screens when Emacs starts."
-  (setq fancy-splash-help-echo (startup-echo-area-message))
   (if hide-on-input
       (let ((old-hourglass display-hourglass)
 	    (fancy-splash-outer-buffer (current-buffer))
@@ -1352,11 +1351,11 @@
 	(save-selected-window
 	  (select-frame frame)
 	  (switch-to-buffer "GNU Emacs")
-	  (setq tab-width 20)
 	  (setq splash-buffer (current-buffer))
 	  (catch 'stop-splashing
 	    (unwind-protect
 		(let* ((map (make-sparse-keymap))
+		       (cursor-type nil)
 		       (overriding-local-map map)
 		       ;; Catch if our frame is deleted; the delete-frame
 		       ;; event is unreliable and is handled by
@@ -1367,8 +1366,7 @@
 		  (define-key map [mouse-movement] 'ignore)
 		  (define-key map [mode-line t] 'ignore)
 		  (define-key map [select-window] 'ignore)
-		  (setq cursor-type nil
-			display-hourglass nil
+		  (setq display-hourglass nil
 			minor-mode-map-alist nil
 			emulation-mode-map-alists nil
 			buffer-undo-list t
@@ -1379,6 +1377,7 @@
 			timer (run-with-timer 0 fancy-splash-delay
 					      #'fancy-splash-screens-1
 					      splash-buffer))
+		  (message "%s" (startup-echo-area-message))
 		  (recursive-edit))
 	      (cancel-timer timer)
 	      (setq display-hourglass old-hourglass
@@ -1388,11 +1387,12 @@
 	      (when (frame-live-p frame)
 		(select-frame frame)
 		(switch-to-buffer fancy-splash-outer-buffer))))))
-    ;; If hide-on-input is non-nil, don't hide the buffer on input.
+    ;; If hide-on-input is nil, don't hide the buffer on input.
     (if (or (window-minibuffer-p)
 	    (window-dedicated-p (selected-window)))
 	(pop-to-buffer (current-buffer))
-      (switch-to-buffer "GNU Emacs"))
+      (switch-to-buffer "*About GNU Emacs*"))
+    (setq buffer-read-only nil)
     (erase-buffer)
     (if pure-space-overflow
 	(insert "\
@@ -1401,9 +1401,16 @@
     (let (fancy-splash-outer-buffer)
       (fancy-splash-head)
       (dolist (text fancy-splash-text)
-	(apply #'fancy-splash-insert text))
+	(apply #'fancy-splash-insert text)
+	(insert "\n"))
+      (skip-chars-backward "\n")
+      (delete-region (point) (point-max))
+      (insert "\n")
       (fancy-splash-tail)
       (set-buffer-modified-p nil)
+      (setq buffer-read-only t)
+      (if (and view-read-only (not view-mode))
+	  (view-mode-enter nil 'kill-buffer))
       (goto-char (point-min)))))
 
 
@@ -1441,6 +1448,7 @@
   (let ((prev-buffer (current-buffer)))
     (unwind-protect
 	(with-current-buffer (get-buffer-create "GNU Emacs")
+	  (setq buffer-read-only nil)
 	  (erase-buffer)
 	  (set (make-local-variable 'tab-width) 8)
 	  (if hide-on-input
@@ -1575,26 +1583,32 @@
 				       auto-save-list-file-prefix)))
 		t)
 	       (insert "\n\nIf an Emacs session crashed recently, "
-		       "type M-x recover-session RET\nto recover"
+		       "type Meta-x recover-session RET\nto recover"
 		       " the files you were editing."))
 
           ;; Display the input that we set up in the buffer.
           (set-buffer-modified-p nil)
+	  (setq buffer-read-only t)
+	  (if (and view-read-only (not view-mode))
+	      (view-mode-enter nil 'kill-buffer))
           (goto-char (point-min))
-	  (if (or (window-minibuffer-p)
-		  (window-dedicated-p (selected-window)))
-	      ;; If hide-on-input is nil, creating a new frame will
-	      ;; generate enough events that the subsequent `sit-for'
-	      ;; will immediately return anyway.
-	      (pop-to-buffer (current-buffer))
-	    (if hide-on-input
+	  (if hide-on-input
+	      (if (or (window-minibuffer-p)
+		      (window-dedicated-p (selected-window)))
+		  ;; If hide-on-input is nil, creating a new frame will
+		  ;; generate enough events that the subsequent `sit-for'
+		  ;; will immediately return anyway.
+		  nil ;; (pop-to-buffer (current-buffer))
 		(save-window-excursion
 		  (switch-to-buffer (current-buffer))
 		  (sit-for 120))
-	      (switch-to-buffer (current-buffer)))))
+		(condition-case nil
+		    (switch-to-buffer (current-buffer))))))
       ;; Unwind ... ensure splash buffer is killed
       (if hide-on-input
-	  (kill-buffer "GNU Emacs")))))
+	  (kill-buffer "GNU Emacs")
+	(switch-to-buffer "GNU Emacs")
+	(rename-buffer "*About GNU Emacs*" t)))))
 
 
 (defun startup-echo-area-message ()
@@ -1651,8 +1665,9 @@
 (defun display-splash-screen (&optional hide-on-input)
   "Display splash screen according to display.
 Fancy splash screens are used on graphic displays,
-normal otherwise."
-  (interactive)
+normal otherwise.
+With a prefix argument, any user input hides the splash screen."
+  (interactive "P")
   ;; Prevent recursive calls from server-process-filter.
   (if (not (get-buffer "GNU Emacs"))
       (if (use-fancy-splash-screens-p)