From: Harald van Dijk <harald@gigawatt.nl>
To: Stephane Chazelas <stephane.chazelas@gmail.com>
Cc: Gioele Barabucci <gioele@svario.it>, dash@vger.kernel.org
Subject: Re: dash: read does not ignore trailing spaces
Date: Thu, 3 Dec 2015 23:26:46 +0100 [thread overview]
Message-ID: <5660C1A6.1010902@gigawatt.nl> (raw)
In-Reply-To: <20151203211748.GC9581@chaz.gmail.com>
On 03/12/2015 22:17, Stephane Chazelas wrote:
> 2015-12-03 22:02:14 +0100, Harald van Dijk:
> [....]
>> $ for shell in bash mksh posh zsh; do printf %s: "$shell"; $shell
>> -c 'IFS=,; echo a, | { read v; echo "<$v>"; }'; done
>> bash:<a>
>> mksh:<a>
>> posh:<a,>
>> zsh:<a,>
>>
>> As far as I can tell, the posh/zsh behaviour is the correct
>> behaviour, but I'm not convinced yet my interpretation is correct.
> [...]
>
> No, that would be the same as for:
>
> v=a:b:
> IFS=:
> set -f
>
> set -- $v
>
> It's meant to split into "a" and "b", not "a", "b" and "". As
> ":" is meant to be treated as a *delimiter* or *terminator*.
>
> That has been discussed a few times on the austin group mailing
> list.
>
> zsh and pdksh (and other descendants of the Forsyth shell) treat it as
> separator (and are not compliant), mksh (derived from pdksh)
> changed it recently. posh (also based on pdksh) still hasn't changed it.
zsh indeed expands this into "a", "b" and "". The same version of posh
that gives <a,> for my test gives just "a" and "b" for yours though.
I do see your point. Thanks for the clear example, I think I agree with
you, the description of field splitting mentions that delimiters are
used as terminators:
"The shell shall treat each character of the IFS as a delimiter and
use the delimiters as field terminators to [...]"
It should not be much of a problem to extend the patch I posted to cover
the rules as you describe them, I will make an attempt at this later.
Cheers,
Harald van Dijk
next prev parent reply other threads:[~2015-12-03 22:26 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-02 22:37 dash: read does not ignore trailing spaces Gioele Barabucci
2015-12-02 23:25 ` Jilles Tjoelker
2015-12-03 21:02 ` Harald van Dijk
2015-12-03 21:17 ` Stephane Chazelas
2015-12-03 21:43 ` Martijn Dekker
2015-12-03 23:04 ` Stephane Chazelas
2015-12-03 23:17 ` Stephane Chazelas
2015-12-04 0:00 ` Stephane Chazelas
2015-12-03 22:26 ` Harald van Dijk [this message]
2015-12-04 19:51 ` Harald van Dijk
2016-01-29 12:57 ` Martijn Dekker
2016-06-06 8:48 ` [PATCH v2] builtin: Fix handling of trailing IFS white spaces Herbert Xu
2016-06-06 20:43 ` Harald van Dijk
2016-06-07 9:25 ` [PATCH v3] " Herbert Xu
2016-06-12 10:35 ` Harald van Dijk
2016-06-12 11:06 ` Herbert Xu
2016-06-12 11:12 ` Harald van Dijk
2016-06-12 12:17 ` [PATCH v4] " Herbert Xu
2016-06-19 22:01 ` Harald van Dijk
2016-06-20 1:28 ` Herbert Xu
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=5660C1A6.1010902@gigawatt.nl \
--to=harald@gigawatt.nl \
--cc=dash@vger.kernel.org \
--cc=gioele@svario.it \
--cc=stephane.chazelas@gmail.com \
/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.
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).