From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8976 invoked from network); 31 May 1999 14:35:58 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 31 May 1999 14:35:58 -0000 Received: (qmail 5868 invoked by alias); 31 May 1999 14:35:52 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 6388 Received: (qmail 5861 invoked from network); 31 May 1999 14:35:51 -0000 Date: Mon, 31 May 1999 16:35:49 +0200 (MET DST) Message-Id: <199905311435.QAA19005@beta.informatik.hu-berlin.de> From: Sven Wischnowsky To: zsh-workers@sunsite.auc.dk In-reply-to: "Andrej Borsenkow"'s message of Mon, 31 May 1999 17:39:05 +0400 Subject: Re: pws-19 + patches: parameter completion before pipeline 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 | grep glob > ^ move cursor here > B-e-e-p The problem is that the lexer just gives us `${(k)opt | 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@informatik.hu-berlin.de