summaryrefslogtreecommitdiff
path: root/lisp/startup.el
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2009-02-20 14:24:55 +0000
committerAndreas Schwab <schwab@suse.de>2009-02-20 14:24:55 +0000
commit7b704afe99c01110ff3fa7d5d534ea61fc112f3c (patch)
treeb5e2247f163b947be886497248008ec81b52d3cd /lisp/startup.el
parent867d4bb3718f1fee9191e2c17cd810ef620d4b54 (diff)
downloademacs-7b704afe99c01110ff3fa7d5d534ea61fc112f3c.tar.gz
(command-line): Don't match an empty argument as an
option. (command-line-1): Likewise.
Diffstat (limited to 'lisp/startup.el')
-rw-r--r--lisp/startup.el29
1 files changed, 14 insertions, 15 deletions
diff --git a/lisp/startup.el b/lisp/startup.el
index 22a9fa02103..7a1f9dc392d 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -828,10 +828,10 @@ opening the first frame (e.g. open a connection to an X server).")
(orig-argi argi)
argval)
;; Handle --OPTION=VALUE format.
- (when (string-match "^\\(--[^=]*\\)=" argi)
+ (when (string-match "\\`\\(--[^=]*\\)=" argi)
(setq argval (substring argi (match-end 0))
argi (match-string 1 argi)))
- (unless (equal argi "--")
+ (when (string-match "\\`--." orig-argi)
(let ((completion (try-completion argi longopts)))
(if (eq completion t)
(setq argi (substring argi 1))
@@ -2125,21 +2125,20 @@ A fancy display is used on graphic displays, normal otherwise."
(setq argi "")
;; Convert long options to ordinary options
;; and separate out an attached option argument into argval.
- (when (string-match "^\\(--[^=]*\\)=" argi)
+ (when (string-match "\\`\\(--[^=]*\\)=" argi)
(setq argval (substring argi (match-end 0))
argi (match-string 1 argi)))
- (if (equal argi "--")
- (setq completion nil)
- (setq 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
- argi orig-argi))))
+ (when (string-match "\\`--." orig-argi)
+ (setq 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
+ argi orig-argi)))))
;; Execute the option.
(cond ((setq tem (assoc argi command-switch-alist))