summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Src/Modules/zutil.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 5e6b148a9..8a8666c1d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,11 @@
2016-01-26 Barton E. Schaefer <schaefer@brasslantern.com>
+ * 37802: Doc/Zsh/mod_zutil.yo: Clarify zparseopts description.
+
+ * 37802: Src/Modules/zutil.c: zparseopts "X::" specifier should
+ also look for the optional argument in the word after "-X".
+
* 37785: Src/params.c: skip autoload parameters for "typeset -p"
2016-01-25 Barton E. Schaefer <schaefer@zsh.org>
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);