# HG changeset patch # User Richard M. Stallman # Date 841787468 0 # Node ID 43957811082958bcde87006b25ca3e4a6d36b65d # Parent d76a0697d12e460b54e5458254012ab69fdc45aa (command-line, command-line-1): Stop processing options if we encounter "--". diff -r d76a0697d12e -r 439578110829 lisp/startup.el --- a/lisp/startup.el Tue Sep 03 21:48:13 1996 +0000 +++ b/lisp/startup.el Tue Sep 03 21:51:08 1996 +0000 @@ -483,15 +483,16 @@ (string-match "=" argi)) (setq argval (substring argi (match-end 0)) argi (substring argi 0 (match-beginning 0)))) - (let ((completion (try-completion argi longopts))) - (if (eq completion t) - (setq argi (substring argi 1)) - (if (stringp completion) - (let ((elt (assoc completion longopts))) - (or elt - (error "Option `%s' is ambiguous" argi)) - (setq argi (substring (car elt) 1))) - (setq argval nil)))) + (or (equal argi "--") + (let ((completion (try-completion argi longopts))) + (if (eq completion t) + (setq argi (substring argi 1)) + (if (stringp completion) + (let ((elt (assoc completion longopts))) + (or elt + (error "Option `%s' is ambiguous" argi)) + (setq argi (substring (car elt) 1))) + (setq argval nil))))) (cond ((or (string-equal argi "-q") (string-equal argi "-no-init-file")) @@ -787,8 +788,9 @@ (let ((dir command-line-default-directory) (file-count 0) first-file-buffer + done (line 0)) - (while command-line-args-left + (while (and command-line-args-left (not done)) (let* ((argi (car command-line-args-left)) (orig-argi argi) ;; This includes our standard options' long versions @@ -818,7 +820,9 @@ (if (string-match "^--[^=]*=" argi) (setq argval (substring argi (match-end 0)) argi (substring argi 0 (1- (match-end 0))))) - (setq completion (try-completion argi longopts)) + (if (equal argi "--") + (setq completion nil) + (setq completion (try-completion argi longopts))) (if (eq completion t) (setq argi (substring argi 1)) (if (stringp completion) @@ -891,6 +895,8 @@ ;; Ignore X-windows options and their args if not using X. (setq command-line-args-left (nthcdr (nth 1 tem) command-line-args-left))) + ((equal argi "--") + (setq done t)) (t ;; We have almost exhausted our options. See if the ;; user has made any other command-line options available