Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: pws-19 + patches: parameter completion before pipeline
- X-seq: zsh-workers 6388
- From: Sven Wischnowsky <wischnow@xxxxxxxxxxxxxxxxxxxxxxx>
- To: zsh-workers@xxxxxxxxxxxxxx
- Subject: Re: pws-19 + patches: parameter completion before pipeline
- Date: Mon, 31 May 1999 16:35:49 +0200 (MET DST)
- In-reply-to: "Andrej Borsenkow"'s message of Mon, 31 May 1999 17:39:05 +0400
- Mailing-list: contact zsh-workers-help@xxxxxxxxxxxxxx; run by ezmlm
Andrej Borsenkow wrote:
> I just noted it. Is it intentional?
>
> bor@itsrm2:/tools/src/zsh-3.1.5-pws-19%> zsh -f
> itsrm2% fpath=($PWD/Completion/*)
> itsrm2% source ./Completion/Core/compinit
> itsrm2% zmodload parameter
> itsrm2% print -l ${(k)opt<TAB> | grep glob
> ^ move cursor here
> B-e-e-p
The problem is that the lexer just gives us `${(k)opt<TAB> | grep glob'
as the string to complete. Then the completion code parses this and
takes `opt | grep glob' as the parameter name.
A simple fix would simply remove that part of such a string that can't
be used as a parameter name. However, this would also mean that the
rest is completely ignored and does not even show up in $words.
The patch below does this, because trying to solve it in a way that
preserves the information about following words would be pretty
complicated (either temporarily inserting a closing brace when calling
the lexer, but first finding out when this has to be done, or fiddling
with the lexer, which is completely unacceptable).
Ok?
Bye
Sven
diff -u os/Zle/zle_tricky.c Src/Zle/zle_tricky.c
--- os/Zle/zle_tricky.c Wed May 26 08:42:58 1999
+++ Src/Zle/zle_tricky.c Mon May 31 16:30:05 1999
@@ -751,6 +751,7 @@
wb = cs - offs;
we = wb + e - b;
ispar = (br >= 2 ? 2 : 1);
+ b[we-wb] = '\0';
return b;
}
}
--
Sven Wischnowsky wischnow@xxxxxxxxxxxxxxxxxxxxxxx
Messages sorted by:
Reverse Date,
Date,
Thread,
Author