From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20147 invoked from network); 1 Jun 1999 09:30:18 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 1 Jun 1999 09:30:18 -0000 Received: (qmail 13094 invoked by alias); 1 Jun 1999 09:30:07 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 6414 Received: (qmail 13085 invoked from network); 1 Jun 1999 09:30:06 -0000 Date: Tue, 1 Jun 1999 11:30:04 +0200 (MET DST) Message-Id: <199906010930.LAA24609@beta.informatik.hu-berlin.de> From: Sven Wischnowsky To: zsh-workers@sunsite.auc.dk In-reply-to: "Bart Schaefer"'s message of Tue, 1 Jun 1999 00:00:06 +0000 Subject: Re: pws-20 parameter completion can't handle new syntax Bart Schaefer wrote: > Not surprisingly, this doesn't work (with new-style completion stuff loaded): > > zagzig% echo ${"comp > Hm, yes. The patch below makes this work, but it also makes `${ comp' work, because check_param() gets the string in a form where the quote is replaced by a space. A better solution may follow once we come to the other completion-in-quotes problems. > Here's another, probably unrelated, unexpected behavior: > > zagzig% echo ${comp > ^place cursor on "c" and press TAB > zagzig% echo ${comp} > ^cursor is now here, but there is no parameter > named "comp". Ahem, there was such a parameter because _parameters also tried to complete local parameters as a fall-back. That was simply wrong. Bye Sven diff -u os/Zle/zle_tricky.c Src/Zle/zle_tricky.c --- os/Zle/zle_tricky.c Tue Jun 1 11:28:34 1999 +++ Src/Zle/zle_tricky.c Tue Jun 1 11:22:35 1999 @@ -710,7 +710,7 @@ *b != '=' && *b != Equals && *b != '~' && *b != Tilde) break; - if (*b == '#' || *b == Pound || *b == '+') + if (*b == '#' || *b == Pound || *b == '+' || *b == ' ') b++; e = b; diff -u oc/Core/_parameters Completion/Core/_parameters --- oc/Core/_parameters Tue Jun 1 11:28:18 1999 +++ Completion/Core/_parameters Tue Jun 1 11:21:21 1999 @@ -4,5 +4,4 @@ # extra options of compadd. It first tries to complete only non-local # parameters. All arguments are given to compadd. -compadd "$@" - "${(@)${(@)${(@)${(@f)$(typeset)}:#*local *\=*}%%\=*}##* }" || - compadd "$@" - "${(@)${(@)${(@f)$(typeset)}%%\=*}##* }" +compadd "$@" - "${(@)${(@)${(@)${(@f)$(typeset)}:#*local *\=*}%%\=*}##* }" -- Sven Wischnowsky wischnow@informatik.hu-berlin.de