Merge r21-4-13-chise-0_21-pre1.
[chise/xemacs-chise.git] / lisp / startup.el
index 6085ac1..5c036fa 100644 (file)
@@ -421,10 +421,15 @@ Type ^H^H^H (Control-h Control-h Control-h) to get more help options.\n")
                           debug-paths)
       (startup-setup-paths-warning))
 
-    (if (and (not inhibit-autoloads)
-            lisp-directory)
-       (load (expand-file-name (file-name-sans-extension autoload-file-name)
-                               lisp-directory) nil t))
+    (when (and (not inhibit-autoloads)
+              lisp-directory)
+      (load (expand-file-name (file-name-sans-extension autoload-file-name)
+                             lisp-directory) nil t)
+      (if (featurep 'utf-2000)
+         (load (expand-file-name
+                (file-name-sans-extension autoload-file-name)
+                (expand-file-name "utf-2000" lisp-directory))
+               nil t)))
 
     (if (not inhibit-autoloads)
        (progn
@@ -433,8 +438,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,7 +467,11 @@ 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))
@@ -551,6 +563,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)))
@@ -785,6 +798,8 @@ directory which will load the relocated initialization code.")
            (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))
@@ -819,12 +834,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))
@@ -1117,7 +1135,9 @@ 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-2001 Ben Wing\n"))
+Copyright (C) 1995-2001 Ben Wing
+Copyright (C) 1996-2002 MORIOKA Tomohiko
+"))
 
     ((face (blue bold underline) "\nInformation, on-line help:\n\n")
      "XEmacs comes with plenty of documentation...\n\n"
@@ -1139,7 +1159,7 @@ Copyright (C) 1995-2001 Ben Wing\n"))
      ((key about-xemacs) ": see who's developing XEmacs\n"))
 
     ((face (blue bold underline) "\nUseful stuff:\n\n")
-     "Things that you should know rather quickly...\n\n"
+     "Things that you should learn rather quickly...\n\n"
      ((key find-file) ": visit a file\n")
      ((key save-buffer) ": save changes\n")
      ((key advertised-undo) ": undo changes\n")
@@ -1276,6 +1296,17 @@ It's idempotent, so call this as often as you like!"
                   'external-debugging-output)))
     (setq mule-lisp-directory '()))
 
+  (if (featurep 'utf-2000)
+      (progn
+       (setq utf-2000-lisp-directory
+             (paths-find-utf-2000-lisp-directory roots
+                                                 lisp-directory))
+       (if debug-paths
+           (princ (format "utf-2000-lisp-directory:\n%S\n"
+                          utf-2000-lisp-directory)
+                  'external-debugging-output)))
+    (setq utf-2000-lisp-directory '()))
+
   (setq site-directory (and (null inhibit-site-lisp)
                            (paths-find-site-lisp-directory roots)))
 
@@ -1289,7 +1320,8 @@ It's idempotent, so call this as often as you like!"
                                             last-package-load-path
                                             lisp-directory
                                             site-directory
-                                            mule-lisp-directory))
+                                            mule-lisp-directory
+                                            utf-2000-lisp-directory))
 
   (setq Info-directory-list
        (paths-construct-info-path roots
@@ -1359,6 +1391,9 @@ It's idempotent, so call this as often as you like!"
        (if (and (featurep 'mule)
                 (null mule-lisp-directory))
            (push "mule-lisp-directory" warnings))
+       (if (and (featurep 'utf-2000)
+                (null utf-2000-lisp-directory))
+           (push "utf-2000-lisp-directory" warnings))
        (if (null exec-directory) (push "exec-directory" warnings))
        (if (null data-directory) (push "data-directory" warnings))
        (if (null doc-directory)  (push "doc-directory"  warnings))