Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Is this a bug? Why not?



On 2010-04-01 at 07:36 -0700, Bart Schaefer wrote:
> On Apr 1,  1:26am, Phil Pennock wrote:
> } Subject: Re: Is this a bug? Why not?
> }
> } On 2010-03-31 at 08:11 -0700, Bart Schaefer wrote:
> } > Incidentally, this came up because of a discussion on the POSIX standards
> } > mailing list (austin-group) in which David Korn just asserted that he'd
> } > like to add the syntax ${"var"} which means to expand the value of var
> } > as if it's quoted (what zsh's normal mode does all the time).
> } > 
> } > I was hoping to be able to say "Oh, zsh already has syntax XYZ for that"
> } > but in fact we don't -- zsh either always, or never, does it, depending
> } > on the globsubst option; there's no way to flip globsubst on the fly.
> } 
> } No *neat* syntax.
> } 
> } % ls
> } lib         viewvc.conf
> } % print -l ${~~foo-${(~):-*}}
> 
> That isn't really what you mean, is it?  The (~) flag only applies to
> the (j::) et al. strings.

Oh, interesting, I missed that glob_subst wasn't affecting the default
at all.

> However, it's not even necessary to do the ${:-*} thing, ${~~foo-*} is
> sufficient.

Okay, *phew*, I did understand the problem statement.

> For austin-group purposes, however, I was hoping for something that did
> not rely on parameter expansion flags.  E.g., why doesn't the following
> cause $foo to be quoted?
> 
> schaefer[516] ARGV0=sh Src/zsh
> $ foo="???"
> $ print ${foo+"$foo"}
> Doc Etc Src
> $ 
> 
> It works in bash.

Defining "works" as seeing ??? emitted: it works in zsh with glob_subst
disabled.  It works in FreeBSD /bin/sh ...

Is this use-case important enough to warrant yet another option?

-Phil



Messages sorted by: Reverse Date, Date, Thread, Author