changeset 102152:c526d585a715

(command-line): Don't match an empty argument as an option. (command-line-1): Likewise.
author Andreas Schwab <schwab@suse.de>
date Fri, 20 Feb 2009 14:24:55 +0000
parents 328f4b370b74
children 603bb57bb542
files lisp/ChangeLog lisp/startup.el
diffstat 2 files changed, 20 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Fri Feb 20 12:36:50 2009 +0000
+++ b/lisp/ChangeLog	Fri Feb 20 14:24:55 2009 +0000
@@ -1,3 +1,9 @@
+2009-02-20  Andreas Schwab  <schwab@suse.de>
+
+	* startup.el (command-line): Don't match an empty argument as an
+	option.
+	(command-line-1): Likewise.
+
 2009-02-20  Daniel Jensen  <daniel@bigwalter.net>  (tiny change)
 
 	* apropos.el (apropos-library): Check for null filename in load-history.
--- a/lisp/startup.el	Fri Feb 20 12:36:50 2009 +0000
+++ b/lisp/startup.el	Fri Feb 20 14:24:55 2009 +0000
@@ -828,10 +828,10 @@
              (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 @@
 		(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))