1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-09-03 10:21:46 +02:00

fix for exclusion of normal arguments (14630)

This commit is contained in:
Sven Wischnowsky 2001-06-01 08:53:50 +00:00
parent d101cd7411
commit 0ce4b800a3
2 changed files with 16 additions and 5 deletions

View file

@ -1,3 +1,8 @@
2001-06-01 Sven Wischnowsky <wischnow@zsh.org>
* 14630: Src/Zle/computil.c: fix for exclusion of normal
arguments
2001-06-01 Andrej Borsenkow <bor@zsh.org>
* unposted: Etc/MACHINES: Cygwin belongs now to Red Hat. Mention

View file

@ -1130,9 +1130,11 @@ ca_get_arg(Cadef d, int n)
if (d->argsactive) {
Caarg a = d->args;
while (a && (n < a->min || n > a->num))
while (a && (!a->active || n < a->min || n > a->num)) {
if (!a->active)
n++;
a = a->next;
}
if (a && a->min <= n && a->num >= n && a->active)
return a;
@ -1154,7 +1156,7 @@ ca_inactive(Cadef d, char **xor, int cur, int opts, char *optname)
int sl = (d->set ? strlen(d->set) : -1), set = 0;
for (; (x = (opts ? "-" : *xor)); xor++) {
if (optname && strcmp(optname, x))
if (optname && optname[0] == x[0] && strcmp(optname, x))
continue;
if (ca_xor)
addlinknode(ca_xor, x);
@ -1403,7 +1405,8 @@ ca_parse_line(Cadef d, int multi, int first)
if (!state.oargs[state.curopt->num])
state.oargs[state.curopt->num] = znewlinklist();
if (ca_inactive(d, state.curopt->xor, cur, 0, state.curopt->name))
if (ca_inactive(d, state.curopt->xor, cur, 0,
(cur == compcurrent ? state.curopt->name : NULL)))
return 1;
/* Collect the argument strings. Maybe. */
@ -1456,7 +1459,8 @@ ca_parse_line(Cadef d, int multi, int first)
if (!state.oargs[tmpopt->num])
state.oargs[tmpopt->num] = znewlinklist();
if (ca_inactive(d, tmpopt->xor, cur, 0, tmpopt->name))
if (ca_inactive(d, tmpopt->xor, cur, 0,
(cur == compcurrent ? tmpopt->name : NULL)))
return 1;
}
}
@ -1523,6 +1527,8 @@ ca_parse_line(Cadef d, int multi, int first)
break;
}
zaddlinknode(state.args, ztrdup(line));
if (adef)
state.oopt = adef->num - state.nth;
if (state.def)
argxor = state.def->xor;