Subject: bug#17927: 24.3.92; Warnings for init file are not visible after loading the desktop

From: Juri Linkov <[email-masked]>
Date: Fri, 04 Jul 2014 02:22:19 +0300

When an error occurs while loading the init file, the
*Warnings* buffer is displayed but hidden immediately
when the desktop restores the previous window configuration
by running `desktop-read' from `after-init-hook'.

A possible solution is to postpone displaying the
*Warnings* buffer to the end of `after-init-hook':

=== modified file 'lisp/startup.el'
--- lisp/startup.el	2014-06-08 23:41:43 +0000
+++ lisp/startup.el	2014-07-03 23:15:54 +0000
@@ -1182,6 +1182,9 @@ (defun command-line ()
 		(funcall inner)
 		(setq init-file-had-error nil))
 	    (error
+	     (add-hook
+	      'after-init-hook
+	      (lambda ()
 	     (display-warning
 	      'initialization
 	      (format "An error occurred while loading `%s':\n\n%s%s%s\n\n\
@@ -1193,7 +1196,8 @@ (defun command-line ()
 		      (if (cdr error) ": " "")
 		      (mapconcat (lambda (s) (prin1-to-string s t))
                                  (cdr error) ", "))
-	      :warning)
+		 :warning))
+	      t)
 	     (setq init-file-had-error t))))
 
       (if (and deactivate-mark transient-mark-mode)