diff options
Diffstat (limited to 'lisp/loadup.el')
-rw-r--r-- | lisp/loadup.el | 56 |
1 files changed, 28 insertions, 28 deletions
diff --git a/lisp/loadup.el b/lisp/loadup.el index 8d009ed5165..b911e9f1768 100644 --- a/lisp/loadup.el +++ b/lisp/loadup.el @@ -1,7 +1,7 @@ ;;; loadup.el --- load up standardly loaded Lisp files for Emacs -;; Copyright (C) 1985-1986, 1992, 1994, 2001-2014 Free Software -;; Foundation, Inc. +;; Copyright (C) 1985-1986, 1992, 1994, 2001-2014 +;; Free Software Foundation, Inc. ;; Maintainer: emacs-devel@gnu.org ;; Keywords: internal @@ -46,8 +46,7 @@ ;; Add subdirectories to the load-path for files that might get ;; autoloaded when bootstrapping. ;; This is because PATH_DUMPLOADSEARCH is just "../lisp". -(if (or (equal (nth 3 command-line-args) "bootstrap") - (equal (nth 4 command-line-args) "bootstrap") +(if (or (equal (member "bootstrap" command-line-args) '("bootstrap")) ;; FIXME this is irritatingly fragile. (equal (nth 4 command-line-args) "unidata-gen.el") (equal (nth 7 command-line-args) "unidata-gen-files") @@ -70,11 +69,15 @@ (message "Using load-path %s" load-path) -(if (or (member (nth 3 command-line-args) '("dump" "bootstrap")) - (member (nth 4 command-line-args) '("dump" "bootstrap"))) - ;; To reduce the size of dumped Emacs, we avoid making huge - ;; char-tables. - (setq inhibit-load-charset-map t)) +;; This is a poor man's `last', since we haven't loaded subr.el yet. +(if (or (equal (member "bootstrap" command-line-args) '("bootstrap")) + (equal (member "dump" command-line-args) '("dump"))) + (progn + ;; To reduce the size of dumped Emacs, we avoid making huge char-tables. + (setq inhibit-load-charset-map t) + ;; --eval gets handled too late. + (defvar load--prefer-newer load-prefer-newer) + (setq load-prefer-newer t))) ;; We don't want to have any undo records in the dumped Emacs. (set-buffer "*scratch*") @@ -198,12 +201,10 @@ (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 "mouse") +(if (boundp 'x-toolkit-scroll-bars) + (load "scroll-bar")) +(load "select") (load "emacs-lisp/timer") (load "isearch") (load "rfn-eshadow") @@ -308,17 +309,13 @@ lost after dumping"))) ;; file primitive. So the only workable solution to support building ;; in non-ASCII directories is to manipulate unibyte strings in the ;; current locale's encoding. -(if (and (or (equal (nth 3 command-line-args) "dump") - (equal (nth 4 command-line-args) "dump") - (equal (nth 3 command-line-args) "bootstrap") - (equal (nth 4 command-line-args) "bootstrap")) +(if (and (member (car (last command-line-args)) '("dump" "bootstrap")) (multibyte-string-p default-directory)) (error "default-directory must be unibyte when dumping Emacs!")) ;; Determine which last version number to use ;; based on the executables that now exist. -(if (and (or (equal (nth 3 command-line-args) "dump") - (equal (nth 4 command-line-args) "dump")) +(if (and (equal (last command-line-args) '("dump")) (not (eq system-type 'ms-dos))) (let* ((base (concat "emacs-" emacs-version ".")) (exelen (if (eq system-type 'windows-nt) -4)) @@ -337,8 +334,7 @@ lost after dumping"))) (message "Finding pointers to doc strings...") -(if (or (equal (nth 3 command-line-args) "dump") - (equal (nth 4 command-line-args) "dump")) +(if (equal (last command-line-args) '("dump")) (Snarf-documentation "DOC") (condition-case nil (Snarf-documentation "DOC") @@ -365,6 +361,12 @@ lost after dumping"))) (remove-hook 'after-load-functions (lambda (f) (garbage-collect))) +(if (boundp 'load--prefer-newer) + (progn + (setq load-prefer-newer load--prefer-newer) + (put 'load-prefer-newer 'standard-value load--prefer-newer) + (makunbound 'load--prefer-newer))) + (setq inhibit-load-charset-map nil) (clear-charset-maps) (garbage-collect) @@ -396,8 +398,7 @@ lost after dumping"))) (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 (member (car (last command-line-args)) '("dump" "bootstrap")) (progn (message "Dumping under the name emacs") (condition-case () @@ -413,8 +414,7 @@ lost after dumping"))) (if (not (or (eq system-type 'ms-dos) ;; Don't bother adding another name if we're just ;; building bootstrap-emacs. - (equal (nth 3 command-line-args) "bootstrap") - (equal (nth 4 command-line-args) "bootstrap"))) + (equal (last command-line-args) '("bootstrap")))) (let ((name (concat "emacs-" emacs-version)) (exe (if (eq system-type 'windows-nt) ".exe" ""))) (while (string-match "[^-+_.a-zA-Z0-9]+" name) @@ -435,7 +435,7 @@ lost after dumping"))) ;; this file must be loaded each time Emacs is run. ;; So run the startup code now. First, remove `-l loadup' from args. -(if (and (equal (nth 1 command-line-args) "-l") +(if (and (member (nth 1 command-line-args) '("-l" "--load")) (equal (nth 2 command-line-args) "loadup")) (setcdr command-line-args (nthcdr 3 command-line-args))) |