From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20419 invoked from network); 1 Jun 1999 10:24:09 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 1 Jun 1999 10:24:09 -0000 Received: (qmail 16635 invoked by alias); 1 Jun 1999 10:23:53 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 6416 Received: (qmail 16628 invoked from network); 1 Jun 1999 10:23:50 -0000 Message-Id: <9906010956.AA18502@ibmth.df.unipi.it> To: zsh-workers@sunsite.auc.dk (Zsh hackers list) Subject: PATCH: pws-19: document minor syntactic innovation In-Reply-To: ""Bart Schaefer""'s message of "Mon, 31 May 1999 22:41:00 DFT." <990531224100.ZM8919@candle.brasslantern.com> Date: Tue, 01 Jun 1999 11:56:14 +0200 From: Peter Stephenson "Bart Schaefer" wrote: > On May 23, 5:15pm, Peter Stephenson wrote: > } ${${${${(f)"$(typeset)"}:#*local *\=*}%%\=*}##* } I should note that things like ${"foo"} only work by accident: you'll find, for example, that ${"foo"%bar} doesn't work. That would require swallowing nulled out quotes at another point in paramsubst(), which I hinted at before. I didn't do this because I didn't see a use for it, but maybe it's more consistent that way? > What's the right way to document this change, including odd stuff like > the above? Here's a possible chunk for 3.1.5-pws-20. > Should the FAQ recommend using this form in some circumstances because > of the (@) change in 3.1.5? Well, the new nested substitution section (3.22) is really about getting a parameter evaluated as a parameter name and I'm not sure it's a good idea to put in a lot of stuff about other flags and their uses, which could get quite involved. Maybe it needs a separate question, but I'm not sure I can even remember the full effect of the changes. --- Doc/Zsh/expn.yo.qt Mon May 10 10:18:42 1999 +++ Doc/Zsh/expn.yo Tue Jun 1 11:41:35 1999 @@ -502,6 +502,15 @@ deleted. The form with tt($LPAR())...tt(RPAR()) is often useful in combination with the flags described next; see the examples below. +Note that double quotes may appear around nested quotations, in which case +only the part inside is treated as quoted; for example, tt(${(f)"$(foo)"}) +quotes the result of tt($(foo)), but the flag `tt((f))' (see below) is +applied using the rules for unquoted substitutions. Note further that +quotes are themselves nested in this context; for example, in +tt("${(@f)"$(foo)"}"), there are two sets of quotes, one surrounding the +whole expression, the other (redundant) surrounding the tt($(foo)) as +before. + subsect(Parameter Expansion Flags) cindex(parameter expansion flags) cindex(flags, parameter expansion) -- Peter Stephenson Tel: +39 050 844536 WWW: http://www.ifh.de/~pws/ Dipartimento di Fisica, Via Buonarroti 2, 56127 Pisa, Italy