XEmacs 21.4.7 "Economic Science".
[chise/xemacs-chise.git.1] / lisp / startup.el
index 394074c..5751967 100644 (file)
@@ -433,8 +433,11 @@ Type ^H^H^H (Control-h Control-h Control-h) to get more help options.\n")
          (packages-load-package-auto-autoloads late-package-load-path)
          (packages-load-package-auto-autoloads last-package-load-path)))
 
-    (unwind-protect
-       (command-line)
+    (let (error-data)
+      (condition-case data
+         (command-line)
+       ;; catch non-error signals, especially quit
+       (t (setq error-data data)))
       ;; Do this again, in case the init file defined more abbreviations.
       (setq default-directory (abbreviate-file-name default-directory))
       ;; Specify the file for recording all the auto save files of
@@ -459,28 +462,18 @@ Type ^H^H^H (Control-h Control-h Control-h) to get more help options.\n")
       ;;         (font-menu-add-default))
       (when window-setup-hook
        (run-hooks 'window-setup-hook))
-      (setq window-setup-hook nil))
+      (setq window-setup-hook nil)
+      (if error-data
+         ;; re-signal, and don't allow continuation as that will probably
+          ;; wipe out the user's .emacs if she hasn't migrated yet!
+         (signal-error (car error-data) (cdr error-data))))
 
     (if load-user-init-file-p
        (maybe-migrate-user-init-file))
-    ;;####FSFmacs junk
-    ;;      (or menubar-bindings-done
-    ;;   (precompute-menubar-bindings))
+    ;; FSF calls precompute-menubar-bindings.  We don't mix menubars
+    ;; and keymaps.
     ))
 
-;;####FSFmacs junk
-;;; Precompute the keyboard equivalents in the menu bar items.
-;;(defun precompute-menubar-bindings ()
-;;  (if (eq window-system 'x)
-;;      (let ((submap (lookup-key global-map [menu-bar])))
-;;     (while submap
-;;       (and (consp (car submap))
-;;            (symbolp (car (car submap)))
-;;            (stringp (car-safe (cdr (car submap))))
-;;            (keymapp (cdr (cdr (car submap))))
-;;            (x-popup-menu nil (cdr (cdr (car submap)))))
-;;       (setq submap (cdr submap))))))
-
 (defun command-line-early (args)
   ;; This processes those switches which need to be processed before
   ;; starting up the window system.
@@ -565,6 +558,7 @@ Type ^H^H^H (Control-h Control-h Control-h) to get more help options.\n")
          (push (pop args) new-args)))
        (t (push arg new-args))))
 
+    ;; obsolete, initialize for backward compatibility
     (setq init-file-user (and load-user-init-file-p ""))
 
     (nreverse new-args)))
@@ -591,6 +585,9 @@ If this is nil, no message will be displayed.")
       ;; handled here instead of down in C.
       (setq command-line-args-left (command-line-early command-line-args-left))
 
+      (when (eq system-type 'windows-nt)
+       (init-mswindows-at-startup))
+
       ;; Setup the toolbar icon directory
       (when (featurep 'toolbar)
        (init-toolbar-location))
@@ -794,11 +791,13 @@ directory which will load the relocated initialization code.")
   (if (not user-init-file)
       (setq user-init-file
            (find-user-init-file user-init-directory)))
+  (if (not custom-file)
+      (setq custom-file (make-custom-file-name user-init-file)))
+  ;; #### should test load-user-init-file-p here, not in load-init-file
+  ;; see comment there
   (if (and user-init-file
           (file-readable-p user-init-file))
       (load user-init-file t t t))
-  (if (not custom-file)
-      (setq custom-file (make-custom-file-name user-init-file)))
   (if (and custom-file
           (or (not user-init-file)
               (not (string= custom-file user-init-file)))
@@ -830,12 +829,15 @@ directory which will load the relocated initialization code.")
        (debug-on-error-initial
         (if (eq init-file-debug t) 'startup init-file-debug)))
     (let ((debug-on-error debug-on-error-initial))
+      ;; #### I believe this test is incorrect, it leads to custom-file
+      ;; (at least) being undefined
       (if (and load-user-init-file-p init-file-debug)
          (progn
            ;; Do this without a condition-case if the user wants to debug.
            (load-user-init-file))
        (condition-case error
            (progn
+             ;; #### probably incorrect, see comment above
              (if load-user-init-file-p
                  (load-user-init-file))
              (setq init-file-had-error nil))
@@ -1124,11 +1126,11 @@ XEmacs, by either running the command `xemacs-mule', or by using the X resource
       ": how to get the latest version\n")
      "\n--\n"
      (face italic "\
-Copyright (C) 1985-1999 Free Software Foundation, Inc.
+Copyright (C) 1985-2001 Free Software Foundation, Inc.
 Copyright (C) 1990-1994 Lucid, Inc.
 Copyright (C) 1993-1997 Sun Microsystems, Inc. All Rights Reserved.
 Copyright (C) 1994-1996 Board of Trustees, University of Illinois
-Copyright (C) 1995-1996 Ben Wing\n"))
+Copyright (C) 1995-2001 Ben Wing\n"))
 
     ((face (blue bold underline) "\nInformation, on-line help:\n\n")
      "XEmacs comes with plenty of documentation...\n\n"