From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16012 invoked from network); 12 Apr 1999 07:35:27 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 12 Apr 1999 07:35:27 -0000 Received: (qmail 3622 invoked by alias); 12 Apr 1999 07:35:19 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 6007 Received: (qmail 3587 invoked from network); 12 Apr 1999 07:35:15 -0000 To: zsh-workers@sunsite.auc.dk Path: mason From: mason@primenet.com.au (Geoff Wing) Newsgroups: lists.zsh.workers Subject: Re: zsh-3.1.5-pws-14: parameter expansion not working properly Date: 12 Apr 1999 07:35:08 GMT Organization: PrimeNet Computer Consultants Distribution: local Message-ID: References: <003001be84b0$d9790490$21c9ca95@mowp.siemens.ru> Reply-To: mason@primenet.com.au NNTP-Posting-Host: coral.primenet.com.au X-Trace: coral.primenet.com.au 923902508 15927 203.43.15.2 (12 Apr 1999 07:35:08 GMT) X-Complaints-To: usenet@coral.primenet.com.au NNTP-Posting-Date: 12 Apr 1999 07:35:08 GMT User-Agent: slrn/0.9.5.4 (UNIX) Andrej Borsenkow typed: :Yes, as I understand, it was changed in pws-14. It includes full description :of subst rules in Parameters expansion section of manual. :Basically, in quotes, the value of inner substitution is always forced to be :scalar for outer substitution unless some flags or modifiers (notably, =, :(@), (s)) prevent it. :> % zsh-3.1.5-pws-14 :> % a=("${(f@)$(echo foo; echo bar)}"); print -l $a :> foo :> bar :So, it is not a bug, it is by desing. There was a long thread here, where I :tried to understand what ZSH substitution rules actually are. I admit (now ::-) that current state is more or less consistent. The problem is, it is :near to impossible to explain difference between pws-14 and earlier versions :because it is the first time these rules are explicitly stated. OK, thanks, so in Misc/compctl-examples, we now have something like the following and I can happily (yeah!) complete in cvs again: cvsentries () { setopt localoptions nullglob unset if [[ -f ${pref}CVS/Entries ]] then reply=("${pref}${(@)^${(@)${(@)${(f)$(<${pref}CVS/Entries)}:#D*}#/}%%/*}") fi } -- Geoff Wing Mobile : (Australia) 0412 162 441 Work URL: http://www.primenet.com.au/ Ego URL: http://pobox.com/~gcw/