]> code.delx.au - gnu-emacs/blobdiff - lisp/loadup.el
Change indian-1-column charset to indian-glyph charset.
[gnu-emacs] / lisp / loadup.el
index 254b6ad2c24ceade617502b0e88e731100b7c2f3..db5bcb9ea52216a17858b04a612090159fc5b82f 100644 (file)
@@ -1,6 +1,6 @@
-;;; loadup.el --- load up standardly loaded Lisp files for Emacs.
+;;; loadup.el --- load up standardly loaded Lisp files for Emacs
 
-;; Copyright (C) 1985, 1986, 1992, 1994 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1992, 1994, 2001 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
 ;; Keywords: internal
 
 ;;; 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")
+(load "emacs-lisp/backquote")
+(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")
+
+(load "faces")  ; after here, `defface' may be used.
 
 (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")
+(load "international/utf-8")
+
 (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 "faces")
+(load "term/tty-colors")
+
 (if (fboundp 'frame-face-alist)
     (progn
       (load "facemenu")))
 (if (fboundp 'track-mouse)
     (progn
       (load "mouse")
-      (load "scroll-bar")
+      (and (boundp 'x-toolkit-scroll-bars)
+          (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")       ; codepage.el uses CCL en/decoder
+      (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 
+(if (eq system-type 'macos)
+    (progn
+      (load "ls-lisp")))
+(if (fboundp 'atan)    ; preload some constants and
     (progn             ; floating pt. functions if we have float support.
       (load "float-sup")))
 (message "%s" (garbage-collect))
            (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
 
 ;; Write the value of load-history into fns-VERSION.el,
 ;; then 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 ")))\n" (current-buffer))
-  (write-region (point-min) (point-max)
-               (expand-file-name
-                (if (eq system-type 'ms-dos)
-                    "../lisp/fns.el"
-                  (format "../lisp/fns-%s.el" emacs-version))
-                invocation-directory))
-  (erase-buffer))
-(setq load-history nil)
+(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 
+       (progn
          (message "Dumping data as file temacs.dump")
          (dump-emacs "temacs.dump" "temacs")
          (kill-emacs))