(if (or (equal (nth 3 command-line-args) "bootstrap")
(equal (nth 4 command-line-args) "bootstrap")
(equal (nth 0 command-line-args) "../src/bootstrap-emacs"))
(let ((dir (car load-path)))
(setq purify-flag nil)
(setq load-path (list dir
(expand-file-name "emacs-lisp" dir)
(expand-file-name "language" dir)
(expand-file-name "international" dir)
(expand-file-name "textmodes" dir)))))
(message "Using load-path %s" load-path)
(set-buffer "*scratch*")
(setq buffer-undo-list t)
(load "emacs-lisp/byte-run")
(load "emacs-lisp/backquote")
(load "subr")
(load "version.el")
(load "widget")
(load "custom")
(load "emacs-lisp/map-ynp")
(load "env")
(load "cus-start")
(load "international/mule")
(load "international/mule-conf.el") (load "format")
(load "bindings")
(setq load-source-file-function 'load-with-code-conversion)
(load "files")
(load "cus-face")
(load "faces")
(message "Lists of integers (garbage collection statistics) are normal output")
(message "while building Emacs; they do not indicate a problem.")
(message "%s" (garbage-collect))
(load "loaddefs.el") (message "%s" (garbage-collect))
(load "simple")
(load "help")
(load "jka-cmpr-hook")
(load "international/mule-cmds")
(load "case-table")
(load "international/utf-8")
(load "international/utf-16")
(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-8")
(load "international/latin-9"))
(load "language/chinese")
(load "language/cyrillic")
(load "language/indian")
(load "language/devanagari") (load "language/malayalam") (load "language/tamil") (load "language/kannada") (load "language/english")
(load "language/ethiopic")
(load "language/european")
(load "language/czech")
(load "language/slovak")
(load "language/romanian")
(load "language/greek")
(load "language/hebrew")
(load "language/japanese")
(load "language/korean")
(load "language/lao")
(load "language/thai")
(load "language/tibetan")
(load "language/vietnamese")
(load "language/misc-lang")
(load "language/utf-8-lang")
(load "language/georgian")
(load "international/ucs-tables")
(update-coding-systems-internal)
(load "indent")
(load "window")
(load "frame")
(load "term/tty-colors")
(load "font-core")
(load "facemenu")
(load "emacs-lisp/syntax")
(load "font-lock")
(load "jit-lock")
(if (fboundp 'track-mouse)
(progn
(load "mouse")
(and (boundp 'x-toolkit-scroll-bars)
(load "scroll-bar"))
(load "select")))
(load "emacs-lisp/timer")
(load "isearch")
(load "rfn-eshadow")
(message "%s" (garbage-collect))
(load "menu-bar")
(load "paths.el") (load "startup")
(load "emacs-lisp/lisp")
(load "textmodes/page")
(load "register")
(load "textmodes/paragraphs")
(load "emacs-lisp/lisp-mode")
(load "textmodes/text-mode")
(load "textmodes/fill")
(message "%s" (garbage-collect))
(load "replace")
(if (eq system-type 'vax-vms)
(progn
(load "vmsproc")))
(load "abbrev")
(load "buff-menu")
(if (fboundp 'x-create-frame)
(progn
(load "fringe")
(load "image")
(load "international/fontset")
(load "dnd")
(load "mwheel")
(load "tool-bar")))
(if (featurep 'x)
(load "x-dnd"))
(message "%s" (garbage-collect))
(if (eq system-type 'vax-vms)
(progn
(load "vms-patch")))
(if (eq system-type 'windows-nt)
(progn
(load "ls-lisp")
(load "disp-table") (load "dos-w32")
(load "w32-vars")
(load "w32-fns")))
(if (eq system-type 'ms-dos)
(progn
(load "ls-lisp")
(load "dos-w32")
(load "dos-fns")
(load "dos-vars")
(load "international/ccl") (load "international/codepage") (load "disp-table"))) (if (eq system-type 'macos)
(progn
(load "ls-lisp")))
(if (fboundp 'atan) (progn (load "emacs-lisp/float-sup")))
(message "%s" (garbage-collect))
(load "vc-hooks")
(load "ediff-hook")
(if (fboundp 'x-show-tip) (load "tooltip"))
(message "%s" (garbage-collect))
(if (load "site-load" t)
(garbage-collect))
(if (fboundp 'x-popup-menu)
(precompute-menubar-bindings))
(setq define-key-rebound-commands nil)
(if (and (or (equal (nth 3 command-line-args) "dump")
(equal (nth 4 command-line-args) "dump"))
(not (eq system-type 'ms-dos)))
(let* ((base (concat "emacs-" emacs-version "."))
(files (file-name-all-completions base default-directory))
(versions (mapcar (function (lambda (name)
(string-to-int (substring name (length base)))))
files)))
(defconst emacs-version
(format "%s.%d"
emacs-version (if versions (1+ (apply 'max versions)) 1)))))
(message "Finding pointers to doc strings...")
(if (or (equal (nth 3 command-line-args) "dump")
(equal (nth 4 command-line-args) "dump"))
(let ((name emacs-version))
(while (string-match "[^-+_.a-zA-Z0-9]+" name)
(setq name (concat (downcase (substring name 0 (match-beginning 0)))
"-"
(substring name (match-end 0)))))
(if (memq system-type '(ms-dos windows-nt))
(setq name (expand-file-name
(if (fboundp 'x-create-frame) "DOC-X" "DOC") "../etc"))
(setq name (concat (expand-file-name "../etc/DOC-") name))
(if (file-exists-p name)
(delete-file name))
(copy-file (expand-file-name "../etc/DOC") name t))
(Snarf-documentation (file-name-nondirectory name)))
(condition-case nil
(Snarf-documentation "DOC")
(error nil)))
(message "Finding pointers to doc strings...done")
(load "site-init" t)
(setq current-load-list nil)
(setq load-history (mapcar 'purecopy load-history))
(setq symbol-file-load-history-loaded t)
(set-buffer-modified-p nil)
(if (or (equal (nth 3 command-line-args) "bootstrap")
(equal (nth 4 command-line-args) "bootstrap"))
(setcdr load-path nil))
(garbage-collect)
(buffer-enable-undo "*scratch*")
(if (null (garbage-collect))
(setq pure-space-overflow t))
(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")
(dump-emacs "temacs.dump" "temacs")
(kill-emacs))
(let ((name (concat "emacs-" emacs-version)))
(while (string-match "[^-+_.a-zA-Z0-9]+" name)
(setq name (concat (downcase (substring name 0 (match-beginning 0)))
"-"
(substring name (match-end 0)))))
(if (memq system-type '(ms-dos windows-nt cygwin))
(message "Dumping under the name emacs")
(message "Dumping under names emacs and %s" name)))
(condition-case ()
(delete-file "emacs")
(file-error nil))
(dump-emacs "emacs" "temacs")
(message "%d pure bytes used" pure-bytes-used)
(if (not (memq system-type '(ms-dos windows-nt cygwin)))
(let ((name (concat "emacs-" emacs-version)))
(while (string-match "[^-+_.a-zA-Z0-9]+" name)
(setq name (concat (downcase (substring name 0 (match-beginning 0)))
"-"
(substring name (match-end 0)))))
(add-name-to-file "emacs" name t)))
(kill-emacs)))
(setq purify-flag nil)
(if (and (equal (nth 1 command-line-args) "-l")
(equal (nth 2 command-line-args) "loadup"))
(setcdr command-line-args (nthcdr 3 command-line-args)))
(eval top-level)