about summary refs log tree commit diff
path: root/Src/Modules
diff options
context:
space:
mode:
authorBarton E. Schaefer <schaefer@zsh.org>2016-01-26 22:44:14 -0800
committerBarton E. Schaefer <schaefer@zsh.org>2016-01-27 22:10:38 -0800
commit8ddcdad0c1559612b72b733e907d10806415d4fb (patch)
tree89133ad1d00a8fc5f90d99802402c74704dc58e3 /Src/Modules
parent25ca90e5abadd83f13e23a9866ec52c98d0b04a7 (diff)
downloadzsh-8ddcdad0c1559612b72b733e907d10806415d4fb.tar.gz
zsh-8ddcdad0c1559612b72b733e907d10806415d4fb.tar.xz
zsh-8ddcdad0c1559612b72b733e907d10806415d4fb.zip
37802: Clarify zparseopts documention. zparseopts "X::" specifier should also look for the optional argument in the word after "-X".
Diffstat (limited to 'Src/Modules')
-rw-r--r--Src/Modules/zutil.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/Src/Modules/zutil.c b/Src/Modules/zutil.c
index 376cd8402..d98028a84 100644
--- a/Src/Modules/zutil.c
+++ b/Src/Modules/zutil.c
@@ -1833,7 +1833,8 @@ bin_zparseopts(char *nam, char **args, UNUSED(Options ops), UNUSED(int func))
 		    if (o[1]) {
 			add_opt_val(d, o + 1);
 			break;
-		    } else if (!(d->flags & ZOF_OPT)) {
+		    } else if (!(d->flags & ZOF_OPT) ||
+			       (pp[1] && pp[1][0] != '-')) {
 			if (!pp[1]) {
 			    zwarnnam(nam, "missing argument for option: %s",
 				    d->name);
@@ -1859,7 +1860,8 @@ bin_zparseopts(char *nam, char **args, UNUSED(Options ops), UNUSED(int func))
 
 		if (*e)
 		    add_opt_val(d, e);
-		else if (!(d->flags & ZOF_OPT)) {
+		else if (!(d->flags & ZOF_OPT) ||
+			 (pp[1] && pp[1][0] != '-')) {
 		    if (!pp[1]) {
 			zwarnnam(nam, "missing argument for option: %s",
 				d->name);