* PATCH: _arguments -W fix
@ 2018-04-02 21:23 Oliver Kiddle
0 siblings, 0 replies; only message in thread
From: Oliver Kiddle @ 2018-04-02 21:23 UTC (permalink / raw)
To: Zsh workers
This fixes a bug introduced in 41824 that could cause options to be completed
in the argument to another option position.
The condition had originally been (lstate->doff && lstate->def). Much
of the 41824 changes relate to doff which is essentially the number of
characters moved to $IPREFIX. The original purpose of that condition
appears to only apply with _arguments' unusual -W option. That option
isn't covered in the tests.
Oliver
diff --git a/Src/Zle/computil.c b/Src/Zle/computil.c
index 4ce8eeee5..2e86e5740 100644
--- a/Src/Zle/computil.c
+++ b/Src/Zle/computil.c
@@ -2675,7 +2675,7 @@ bin_comparguments(char *nam, char **args, UNUSED(Options ops), UNUSED(int func))
for (; lstate; lstate = lstate->snext) {
if (lstate->actopts &&
- (lstate->opt || lstate->def ||
+ (lstate->opt || (ca_doff && lstate->def) ||
(lstate->def && lstate->def->opt &&
(lstate->def->type == CAA_OPT ||
(lstate->def->type >= CAA_RARGS &&
diff --git a/Test/Y03arguments.ztst b/Test/Y03arguments.ztst
index 761b4b1d2..fa4589374 100644
--- a/Test/Y03arguments.ztst
+++ b/Test/Y03arguments.ztst
@@ -184,6 +184,12 @@
0:sticky option argument
>line: {tst -x }{}
+ tst_arguments '-x:arg' -y -z
+ comptest $'tst -x -\t'
+0:option argument with prefix that passes option prefix-needed test
+>line: {tst -x -}{}
+>DESCRIPTION:{arg}
+
tst_arguments '-x[desc]'
comptest $'tst -x\t'
0:end of option sequence
@@ -721,6 +727,15 @@ F:shouldn't offer -t in the first case (with stacked options)
>line: {tst --prefix=one }{}
>line: {tst --prefix=one --prop=}{}
+ tst_arguments -s -W -a+:arg -b
+ comptest $'tst -a\t'
+0:with -W options mixed with arguments
+>line: {tst -a}{}
+>DESCRIPTION:{arg}
+>DESCRIPTION:{option}
+>NO:{-b}
+
+
%clean
zmodload -ui zsh/zpty
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2018-04-02 21:23 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-02 21:23 PATCH: _arguments -W fix Oliver Kiddle
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).