diff options
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/ChangeLog | 4 | ||||
| -rw-r--r-- | lisp/startup.el | 23 |
2 files changed, 20 insertions, 7 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 4f1b2142a69..522181b3e4f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,7 @@ +2013-11-04 Glenn Morris <rgm@gnu.org> + + * startup.el (command-line-1): Allow `-L :...' to append to load-path. + 2013-11-03 Stefan Monnier <monnier@iro.umontreal.ca> * progmodes/ruby-mode.el (ruby-smie--rule-parent-skip-assign): Remove. diff --git a/lisp/startup.el b/lisp/startup.el index 391d65a3520..e93c3fa5826 100644 --- a/lisp/startup.el +++ b/lisp/startup.el @@ -2171,13 +2171,22 @@ A fancy display is used on graphic displays, normal otherwise." (eval (read (or argval (pop command-line-args-left))))) ((member argi '("-L" "-directory")) - (setq tem (expand-file-name - (command-line-normalize-file-name - (or argval (pop command-line-args-left))))) - (cond (splice (setcdr splice (cons tem (cdr splice))) - (setq splice (cdr splice))) - (t (setq load-path (cons tem load-path) - splice load-path)))) + ;; -L :/foo adds /foo to the _end_ of load-path. + (let (append) + (if (string-match-p + "\\`:" + (setq tem (or argval (pop command-line-args-left)))) + (setq tem (substring tem 1) + append t)) + (setq tem (expand-file-name + (command-line-normalize-file-name tem))) + (cond (append (setq load-path + (append load-path (list tem))) + (if splice (setq splice load-path))) + (splice (setcdr splice (cons tem (cdr splice))) + (setq splice (cdr splice))) + (t (setq load-path (cons tem load-path) + splice load-path))))) ((member argi '("-l" "-load")) (let* ((file (command-line-normalize-file-name |
