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

Re: ZSH 3.0.8 and modifiers

On Jan 24,  9:53pm, The Doctor What wrote:
} Subject: ZSH 3.0.8 and modifiers
}  path=( ${$path}(/N) )

I presume you mean ${^path}, as ${$path} gives "bad substitution" in
4.0.x and expands to the PID (i.e., ${$}, i.e., $$) in 3.0.x.

} But under 3.0.8 (on my Darwin/OS X iBook) it produces an array
} with the string (/N) appended to each item.  Is there something I'm
} missing?

In 3.0.8, a trailing parenthesized string is not interpreted as glob
qualifiers unless there is at least one other globbing special char
in the rest of the string.  Brace expansions, including RC_EXPAND_PARAM,
are NOT considered to be globbing characters.

In 4.0.x, using brace expansion or RC_EXPAND_PARAM is sufficient to
cause the trailing the parens to be interpreted as qualifiers.  I have
forgotten when or why this change was made.

The usual workaround is to insert an empty alternation pattern into
the string, like so:

    path=( ${^path}(|)(/N) )

Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com

Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net   

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