Commit 6423ce26 authored by Glenn Morris's avatar Glenn Morris
Browse files

* lisp/loadup.el: Treat `command-line-args' more flexibly.

This makes it easier to add --eval ... etc to the command-line without
messing things up due to changed argument numbers.
parent 9155e80d
2014-05-30 Glenn Morris <rgm@gnu.org>
* loadup.el: Treat `command-line-args' more flexibly.
2014-05-30 Alan Mackenzie <acm@muc.de> 2014-05-30 Alan Mackenzie <acm@muc.de>
   
Guard (looking-at "\\s!") from XEmacs. Guard (looking-at "\\s!") from XEmacs.
......
;;; 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, 2001-2014 Free Software ;; Copyright (C) 1985-1986, 1992, 1994, 2001-2014
;; Foundation, Inc. ;; Free Software Foundation, Inc.
;; Maintainer: emacs-devel@gnu.org ;; Maintainer: emacs-devel@gnu.org
;; Keywords: internal ;; Keywords: internal
...@@ -46,8 +46,7 @@ ...@@ -46,8 +46,7 @@
;; Add subdirectories to the load-path for files that might get ;; Add subdirectories to the load-path for files that might get
;; autoloaded when bootstrapping. ;; autoloaded when bootstrapping.
;; This is because PATH_DUMPLOADSEARCH is just "../lisp". ;; This is because PATH_DUMPLOADSEARCH is just "../lisp".
(if (or (equal (nth 3 command-line-args) "bootstrap") (if (or (equal (member "bootstrap" command-line-args) '("bootstrap"))
(equal (nth 4 command-line-args) "bootstrap")
;; FIXME this is irritatingly fragile. ;; FIXME this is irritatingly fragile.
(equal (nth 4 command-line-args) "unidata-gen.el") (equal (nth 4 command-line-args) "unidata-gen.el")
(equal (nth 7 command-line-args) "unidata-gen-files") (equal (nth 7 command-line-args) "unidata-gen-files")
...@@ -70,8 +69,9 @@ ...@@ -70,8 +69,9 @@
(message "Using load-path %s" load-path) (message "Using load-path %s" load-path)
(if (or (member (nth 3 command-line-args) '("dump" "bootstrap")) ;; This is a poor man's `last', since we haven't loaded subr.el yet.
(member (nth 4 command-line-args) '("dump" "bootstrap"))) (if (or (equal (member "bootstrap" command-line-args) '("bootstrap"))
(equal (member "dump" command-line-args) '("dump")))
;; To reduce the size of dumped Emacs, we avoid making huge ;; To reduce the size of dumped Emacs, we avoid making huge
;; char-tables. ;; char-tables.
(setq inhibit-load-charset-map t)) (setq inhibit-load-charset-map t))
...@@ -306,17 +306,13 @@ lost after dumping"))) ...@@ -306,17 +306,13 @@ lost after dumping")))
;; file primitive. So the only workable solution to support building ;; file primitive. So the only workable solution to support building
;; in non-ASCII directories is to manipulate unibyte strings in the ;; in non-ASCII directories is to manipulate unibyte strings in the
;; current locale's encoding. ;; current locale's encoding.
(if (and (or (equal (nth 3 command-line-args) "dump") (if (and (member (car (last command-line-args)) '("dump" "bootstrap"))
(equal (nth 4 command-line-args) "dump")
(equal (nth 3 command-line-args) "bootstrap")
(equal (nth 4 command-line-args) "bootstrap"))
(multibyte-string-p default-directory)) (multibyte-string-p default-directory))
(error "default-directory must be unibyte when dumping Emacs!")) (error "default-directory must be unibyte when dumping Emacs!"))
;; Determine which last version number to use ;; Determine which last version number to use
;; based on the executables that now exist. ;; based on the executables that now exist.
(if (and (or (equal (nth 3 command-line-args) "dump") (if (and (equal (last command-line-args) '("dump"))
(equal (nth 4 command-line-args) "dump"))
(not (eq system-type 'ms-dos))) (not (eq system-type 'ms-dos)))
(let* ((base (concat "emacs-" emacs-version ".")) (let* ((base (concat "emacs-" emacs-version "."))
(exelen (if (eq system-type 'windows-nt) -4)) (exelen (if (eq system-type 'windows-nt) -4))
...@@ -335,8 +331,7 @@ lost after dumping"))) ...@@ -335,8 +331,7 @@ lost after dumping")))
(message "Finding pointers to doc strings...") (message "Finding pointers to doc strings...")
(if (or (equal (nth 3 command-line-args) "dump") (if (equal (last command-line-args) '("dump"))
(equal (nth 4 command-line-args) "dump"))
(Snarf-documentation "DOC") (Snarf-documentation "DOC")
(condition-case nil (condition-case nil
(Snarf-documentation "DOC") (Snarf-documentation "DOC")
...@@ -394,8 +389,7 @@ lost after dumping"))) ...@@ -394,8 +389,7 @@ lost after dumping")))
(if (null (garbage-collect)) (if (null (garbage-collect))
(setq pure-space-overflow t)) (setq pure-space-overflow t))
(if (or (member (nth 3 command-line-args) '("dump" "bootstrap")) (if (member (car (last command-line-args)) '("dump" "bootstrap"))
(member (nth 4 command-line-args) '("dump" "bootstrap")))
(progn (progn
(message "Dumping under the name emacs") (message "Dumping under the name emacs")
(condition-case () (condition-case ()
...@@ -411,8 +405,7 @@ lost after dumping"))) ...@@ -411,8 +405,7 @@ lost after dumping")))
(if (not (or (eq system-type 'ms-dos) (if (not (or (eq system-type 'ms-dos)
;; Don't bother adding another name if we're just ;; Don't bother adding another name if we're just
;; building bootstrap-emacs. ;; building bootstrap-emacs.
(equal (nth 3 command-line-args) "bootstrap") (equal (last command-line-args) '("bootstrap"))))
(equal (nth 4 command-line-args) "bootstrap")))
(let ((name (concat "emacs-" emacs-version)) (let ((name (concat "emacs-" emacs-version))
(exe (if (eq system-type 'windows-nt) ".exe" ""))) (exe (if (eq system-type 'windows-nt) ".exe" "")))
(while (string-match "[^-+_.a-zA-Z0-9]+" name) (while (string-match "[^-+_.a-zA-Z0-9]+" name)
...@@ -433,7 +426,7 @@ lost after dumping"))) ...@@ -433,7 +426,7 @@ lost after dumping")))
;; this file must be loaded each time Emacs is run. ;; this file must be loaded each time Emacs is run.
;; So run the startup code now. First, remove `-l loadup' from args. ;; 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")) (equal (nth 2 command-line-args) "loadup"))
(setcdr command-line-args (nthcdr 3 command-line-args))) (setcdr command-line-args (nthcdr 3 command-line-args)))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment