zsh-workers
 help / color / mirror / code / Atom feed
From: Peter Stephenson <pws@csr.com>
To: zsh-workers@sunsite.dk
Subject: Re: treatment of empty strings - why is this not a bug?
Date: Fri, 16 Jan 2009 10:02:05 +0000	[thread overview]
Message-ID: <20090116100205.4d348582@news01> (raw)
In-Reply-To: <200901152029.n0FKTTHD016851@pws-pc.ntlworld.com>

On Thu, 15 Jan 2009 20:29:29 +0000
Peter Stephenson <p.w.stephenson@ntlworld.com> wrote:
> Greg Klanderman wrote:
> > I still do not understand why I get exactly two empty strings no
> > matter how many colons I have in the input string: I would expect
> > none based on the description you cited.
> > 
> > phl% x=::::: && for v in "${(s-:-)x}" ; do echo "v= =>$v<=" ; done
> > v= =><=
> > v= =><=
> > phl% x=: && for v in "${(s-:-)x}" ; do echo "v= =>$v<=" ; done 
> > v= =><=
> > v= =><=
> 
> It's to do with the code that joins parameters with what's next to them,
> which is why the RC_EXPAND_PARAM option is different.

Actually, I think I can do better than that.  It's because quoted NULLs
never disappear---the only things that disappear are the empty fields
resulting from the splitting.  You can therefore think of the key
expression in the foregoing as

  ""${(s-:-)}""

(two double-quoted NULLs bookending an expression split into an
array---this isn't how it works internally, but the effect is very similar.)
Now you can see the distinction from having no quotes in the expression
at all.  So in the case where RC_EXPAND_PARAM is unset what remains are the
NULLs at each end; with it set, those get combined with all the fields in
the middle.  It does have its own twisted logic.

-- 
Peter Stephenson <pws@csr.com>                  Software Engineer
CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
Cambridge, CB4 0WZ, UK                          Tel: +44 (0)1223 692070


  reply	other threads:[~2009-01-16 10:02 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-13  7:32 Greg Klanderman
2009-01-13 19:24 ` Peter Stephenson
2009-01-13 22:08   ` Peter Stephenson
2009-01-15 20:11     ` Greg Klanderman
2009-01-15 20:29       ` Peter Stephenson
2009-01-16 10:02         ` Peter Stephenson [this message]
2009-01-15 20:28     ` Greg Klanderman
2009-01-15 20:34       ` Peter Stephenson
2009-01-16  4:19 ` Bart Schaefer
2009-01-16 17:35   ` Greg Klanderman
2009-01-16 17:55     ` Peter Stephenson
2009-01-16 19:40       ` Greg Klanderman
2009-01-16 23:26         ` Richard Hartmann
2009-01-17  3:45         ` Bart Schaefer
2009-01-17  3:35     ` Bart Schaefer
2009-01-17  5:31       ` Greg Klanderman
2009-01-17 17:53         ` Peter Stephenson
2009-05-17  4:55 PATCH: make PROMPT_SP end-of-line marker configurable Greg Klanderman
2009-05-17 17:27 ` Peter Stephenson
2009-05-17 18:04   ` Greg Klanderman
2009-05-17 19:23     ` Peter Stephenson
2009-05-18  1:00       ` Greg Klanderman
2009-05-18 18:27       ` Greg Klanderman
     [not found] <gak@klanderman.net>
2009-06-26 20:40 ` bug in ztrftime(): '%e' and '%f' specifiers swapped Greg Klanderman
2009-06-26 21:23   ` Peter Stephenson
2009-06-26 21:57     ` Greg Klanderman
2010-02-05 17:01 have '&' automatically disown? Greg Klanderman
2010-02-05 17:33 ` Peter Stephenson
2010-02-05 17:36   ` Peter Stephenson
2010-02-06  3:26     ` Greg Klanderman
2010-02-07 18:20       ` Peter Stephenson
2010-02-07 21:06         ` Greg Klanderman
2010-02-07 21:34           ` Peter Stephenson
2010-02-07 22:36             ` Bart Schaefer
2010-09-02 14:57               ` Greg Klanderman
2010-09-05 19:11                 ` Bart Schaefer
2010-09-06  1:50                   ` Greg Klanderman
2010-02-07 21:59           ` Mikael Magnusson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090116100205.4d348582@news01 \
    --to=pws@csr.com \
    --cc=zsh-workers@sunsite.dk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).