changeset 30996:c5430a16cb23

(command-line): If user's init file had an error, add explanatory text to *Messages*.
author Gerd Moellmann <gerd@gnu.org>
date Mon, 21 Aug 2000 09:56:32 +0000
parents 75f3cd16a9ab
children 92be2cf59eca
files lisp/startup.el
diffstat 1 files changed, 22 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/startup.el	Mon Aug 21 01:39:45 2000 +0000
+++ b/lisp/startup.el	Mon Aug 21 09:56:32 2000 +0000
@@ -731,12 +731,28 @@
 	    (progn
 	      (funcall inner)
 	      (setq init-file-had-error nil))
-	  (error (message "Error in init file: %s%s%s"
-			  (get (car error) 'error-message)
-			  (if (cdr error) ": " "")
-			  (mapconcat 'prin1-to-string (cdr error) ", "))
-		 (pop-to-buffer "*Messages*")
-		 (setq init-file-had-error t))))
+	  (error
+	   (let ((message-log-max nil))
+	     (save-excursion
+	       (set-buffer (get-buffer-create "*Messages*"))
+	       (insert "\n\n"
+		       (format "An error has occurred while loading `%s':\n\n"
+			       user-init-file)
+		       (format "%s%s%s"
+			       (get (car error) 'error-message)
+			       (if (cdr error) ": " "")
+			       (mapconcat 'prin1-to-string (cdr error) ", "))
+		       "\n\n"
+		       "To ensure normal operation, you should investigate the cause\n"
+		       "of the error in your initialization file and remove it.  Start\n"
+		       "Emacs with the `--debug-init' option to view a complete error\n"
+		       "backtrace\n"))
+	     (message "Error in init file: %s%s%s"
+		      (get (car error) 'error-message)
+		      (if (cdr error) ": " "")
+		      (mapconcat 'prin1-to-string (cdr error) ", "))
+	     (pop-to-buffer "*Messages*")
+	     (setq init-file-had-error t)))))
       ;; If we can tell that the init file altered debug-on-error,
       ;; arrange to preserve the value that it set up.
       (or (eq debug-on-error debug-on-error-initial)