zsh-users
 help / color / mirror / code / Atom feed
* Behavior change in ${...//...}
@ 2003-09-03 20:29 Danek Duvall
  2003-09-04  9:28 ` Peter Stephenson
  0 siblings, 1 reply; 3+ messages in thread
From: Danek Duvall @ 2003-09-03 20:29 UTC (permalink / raw)
  To: zsh-users

Between 4.0.x and 4.1.1, the requirements to quote a "/" in the
replacement part of a ${name//pattern/repl} expression changed from two
backslashes to one.  The new syntax doesn't work in the old versions and
vice versa.

When did this change, and why?  Is the best way to work around this to
put the replacement string in a variable?

Thanks,
Danek


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Behavior change in ${...//...}
  2003-09-03 20:29 Behavior change in ${...//...} Danek Duvall
@ 2003-09-04  9:28 ` Peter Stephenson
  2003-09-04 20:08   ` Danek Duvall
  0 siblings, 1 reply; 3+ messages in thread
From: Peter Stephenson @ 2003-09-04  9:28 UTC (permalink / raw)
  To: zsh-users

Danek Duvall wrote:
> Between 4.0.x and 4.1.1, the requirements to quote a "/" in the
> replacement part of a ${name//pattern/repl} expression changed from two
> backslashes to one.  The new syntax doesn't work in the old versions and
> vice versa.

See the README file for 4.0.7.


A change between 4.0.6 and 4.0.7 affects substitutions of the form
${foo/src/rep} and ${foo//src/rep}.  In 4.0.6, a literal `/' was quoted in
the `src' text with two backslashes.  This was documented, but inconsistent
with normal quoting conventions and poorly implemented.  The `/' now
requires only one backslash to quote it whether or not the expresion occurs
in double quotes.  For example:
  % foo=word/bird
  % print ${foo/\//-} "${foo/\//+}"
  word-bird word+bird
Note also the following workaround which is valid in all versions of the
shell that support this syntax:
  % slash=/
  % foo=word/bird
  % print ${foo/$slash/-} "${foo/$slash/+}"

-- 
Peter Stephenson <pws@csr.com>                  Software Engineer
CSR Ltd., Science Park, Milton Road,
Cambridge, CB4 0WH, UK                          Tel: +44 (0)1223 692070


**********************************************************************
The information transmitted is intended only for the person or
entity to which it is addressed and may contain confidential 
and/or privileged material. 
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by 
persons or entities other than the intended recipient is 
prohibited.  
If you received this in error, please contact the sender and 
delete the material from any computer.
**********************************************************************


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Behavior change in ${...//...}
  2003-09-04  9:28 ` Peter Stephenson
@ 2003-09-04 20:08   ` Danek Duvall
  0 siblings, 0 replies; 3+ messages in thread
From: Danek Duvall @ 2003-09-04 20:08 UTC (permalink / raw)
  To: zsh-users

On Thu, Sep 04, 2003 at 10:28:12AM +0100, Peter Stephenson wrote:

> See the README file for 4.0.7.

Ah, thanks.  I saw the change in the man page, but was only looking at
the 4.1.1 sources, and didn't see any reference to the change.

> Note also the following workaround which is valid in all versions of the
> shell that support this syntax:
>   % slash=/
>   % foo=word/bird
>   % print ${foo/$slash/-} "${foo/$slash/+}"

As it turned out (not too long after I sent my query), this was easier
for me to do than I had expected, and so I no longer needed some test
for which behavior to use.

Thanks,
Danek


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2003-09-04 20:08 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-09-03 20:29 Behavior change in ${...//...} Danek Duvall
2003-09-04  9:28 ` Peter Stephenson
2003-09-04 20:08   ` Danek Duvall

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).