(diary-face, holiday-face): Add dark-background variants.
[bpt/emacs.git] / lisp / loadup.el
index 79b812c..237ed92 100644 (file)
 
 ;;; Code:
 
+;; add subdirectories to the load-path for files that might
+;; get autoloaded when bootstrapping
+(if (or (equal (nth 3 command-line-args) "bootstrap")
+       (equal (nth 4 command-line-args) "bootstrap")
+       ;; in case CANNOT_DUMP
+       (equal (nth 0 command-line-args) "../src/bootstrap-emacs"))
+    (let ((path (car load-path)))
+      (setq load-path (list path
+                           (expand-file-name "emacs-lisp" path)
+                           (expand-file-name "international" path)))))
+
 (message "Using load-path %s" load-path)
 
 ;;; We don't want to have any undo records in the dumped Emacs.
 ;; We specify .el in case someone compiled version.el by mistake.
 (load "version.el")
 
-(load "map-ynp")
 (load "widget")
 (load "custom")
+(autoload '\` "emacs-lisp/backquote" nil nil 'macro)
+(load "map-ynp")
+(load "env")
 (load "cus-start")
 (load "international/mule")
 (load "international/mule-conf.el") ;Don't get confused if someone compiled this by mistake.
 (load "bindings")
 (setq load-source-file-function 'load-with-code-conversion)
 (load "simple")
-(load "help")
 (load "files")
-;; Any Emacs Lisp source file (*.el) loaded here after can contain
-;; multilingual text.
-(load "international/mule-cmds")
-(load "case-table")
-(load "international/characters")
 
 (message "Lists of integers (garbage collection statistics) are normal output")
 (message "while building Emacs; they do not indicate a problem.")
 (load "loaddefs.el")  ;Don't get confused if someone compiled this by mistake.
 (message "%s" (garbage-collect))
 
+(load "help")
+;; Any Emacs Lisp source file (*.el) loaded here after can contain
+;; multilingual text.
+(load "international/mule-cmds")
+(load "case-table")
+(load "international/characters")
+
 (let ((set-case-syntax-set-multibyte t))
   (load "international/latin-1")
   (load "international/latin-2")
   (load "international/latin-3")
   (load "international/latin-4")
-  (load "international/latin-5"))
+  (load "international/latin-5")
+  (load "international/latin-8")
+  (load "international/latin-9"))
 ;; Load language-specific files.
 (load "language/chinese")
 (load "language/cyrillic")
 (update-coding-systems-internal)
 
 (load "indent")
-(load "isearch")
 (load "window")
 (load "frame")
+(load "term/tty-colors")
 (load "faces")
 (if (fboundp 'frame-face-alist)
     (progn
 (if (fboundp 'track-mouse)
     (progn
       (load "mouse")
-      (load "scroll-bar")
+      (and (boundp 'x-toolkit-scroll-bars-p)
+          (load "scroll-bar"))
       (load "select")))
+(load "isearch")
 
 (message "%s" (garbage-collect))
 (load "menu-bar")
       (load "dos-w32")
       (load "dos-fns")
       (load "dos-vars")
+      (load "international/ccl") ; for cpNNN coding systems in codepage.el
+      (load "international/codepage")  ; internal.el uses cpNNN coding systems
       (load "disp-table"))) ; needed to setup ibm-pc char set, see internal.el
 (if (fboundp 'atan)    ; preload some constants and 
     (progn             ; floating pt. functions if we have float support.
            (delete-file name))
        (copy-file (expand-file-name "../etc/DOC") name t))
       (Snarf-documentation (file-name-nondirectory name)))
-    (Snarf-documentation "DOC"))
+    (condition-case nil
+       (Snarf-documentation "DOC")
+      (error nil)))
 (message "Finding pointers to doc strings...done")
 
 ;;;Note: You can cause additional libraries to be preloaded
 (load "site-init" t)
 (setq current-load-list nil)
 
-;; Write the value of load-history into etc/LOADHIST.el,
-;; the clear out load-history.
-(let ((buffer-undo-list t))
-  (princ "(setq load-history\n" (current-buffer))
-  (princ "      (nconc load-history\n" (current-buffer))
-  (princ "             '(" (current-buffer))
-  (let ((tem load-history))
-    (while tem
-      (prin1 (car tem) (current-buffer))
-      (terpri (current-buffer))
-      (if (cdr tem)
-         (princ "               " (current-buffer)))
-      (setq tem (cdr tem))))
-  (princ ")))" (current-buffer))
-  (write-region (point-min) (point-max)
-               (expand-file-name (format "fns-%s.el" emacs-version)
-                                 data-directory))
-  (erase-buffer))
-(setq load-history nil)
+;; Write the value of load-history into fns-VERSION.el,
+;; then clear out load-history.
+(if (or (equal (nth 3 command-line-args) "dump")
+       (equal (nth 4 command-line-args) "dump"))
+    (let ((buffer-undo-list t))
+      (princ "(setq load-history\n" (current-buffer))
+      (princ "      (nconc load-history\n" (current-buffer))
+      (princ "             '(" (current-buffer))
+      (let ((tem load-history))
+       (while tem
+         (prin1 (car tem) (current-buffer))
+         (terpri (current-buffer))
+         (if (cdr tem)
+             (princ "               " (current-buffer)))
+         (setq tem (cdr tem))))
+      (princ ")))\n" (current-buffer))
+      (write-region (point-min) (point-max)
+                   (expand-file-name
+                    (cond 
+                     ((eq system-type 'ms-dos)
+                      "../lib-src/fns.el")
+                     ((eq system-type 'windows-nt)
+                      (format "../../../lib-src/fns-%s.el" emacs-version))
+                     (t
+                      (format "../lib-src/fns-%s.el" emacs-version)))
+                    invocation-directory))
+      (erase-buffer)
+      (setq load-history nil))
+  (setq symbol-file-load-history-loaded t))
+(set-buffer-modified-p nil)
+
+;; reset the load-path.  See lread.c:init_lread why.
+(if (or (equal (nth 3 command-line-args) "bootstrap")
+       (equal (nth 4 command-line-args) "bootstrap"))
+    (setcdr load-path nil))
 
 (garbage-collect)
 
 ;;; At this point, we're ready to resume undo recording for scratch.
 (buffer-enable-undo "*scratch*")
 
-(if (or (equal (nth 3 command-line-args) "dump")
-       (equal (nth 4 command-line-args) "dump"))
+(if (or (member (nth 3 command-line-args) '("dump" "bootstrap"))
+       (member (nth 4 command-line-args) '("dump" "bootstrap")))
     (if (eq system-type 'vax-vms)
        (progn 
          (message "Dumping data as file temacs.dump")