mirror of
git://git.code.sf.net/p/zsh/code
synced 2024-11-19 13:33:52 +01:00
fix for _arguments, it took non-option strings as options (11910)
This commit is contained in:
parent
a777f021a2
commit
dc102b8130
@ -1,3 +1,8 @@
|
||||
2000-06-15 Sven Wischnowsky <wischnow@zsh.org>
|
||||
|
||||
* 11910: Src/Zle/computil.c: fix for _arguments, it took
|
||||
non-option strings as options
|
||||
|
||||
2000-06-14 Peter Stephenson <pws@pwstephenson.fsnet.co.uk>
|
||||
|
||||
* 11906: Src/signals.c: yet another two bugs with saving traps:
|
||||
|
@ -1083,7 +1083,7 @@ ca_get_sopt(Cadef d, char *line, char **end, LinkList *lp)
|
||||
LinkList l = NULL;
|
||||
|
||||
*lp = NULL;
|
||||
for (p = NULL; *line; line++)
|
||||
for (p = NULL; *line; line++) {
|
||||
if ((p = d->single[STOUC(*line)]) && p->active &&
|
||||
p->args && p->name[0] == pre) {
|
||||
if (p->type == CAO_NEXT) {
|
||||
@ -1100,8 +1100,10 @@ ca_get_sopt(Cadef d, char *line, char **end, LinkList *lp)
|
||||
}
|
||||
break;
|
||||
}
|
||||
} else if (!p || (!p->active && p->name[0] != pre))
|
||||
} else if (p && !p->active)
|
||||
return NULL;
|
||||
p = NULL;
|
||||
}
|
||||
if (p && end)
|
||||
*end = line;
|
||||
return p;
|
||||
@ -1444,7 +1446,14 @@ ca_parse_line(Cadef d, int multi, int first)
|
||||
state.opt = 0;
|
||||
else
|
||||
state.curopt = NULL;
|
||||
} else if (multi && (*line == '-' || *line == '+') && cur != compcurrent)
|
||||
} else if (multi && (*line == '-' || *line == '+') && cur != compcurrent
|
||||
#if 0
|
||||
/**** Ouch. Using this will disable the mutual exclusion
|
||||
of different sets. Not using it will make the -A
|
||||
pattern be effectively ignored with multiple sets. */
|
||||
&& (!napat || !pattry(napat, line))
|
||||
#endif
|
||||
)
|
||||
return 1;
|
||||
else if (state.arg && (!napat || !pattry(napat, line))) {
|
||||
/* Otherwise it's a normal argument. */
|
||||
|
Loading…
Reference in New Issue
Block a user