From: Johannes Schindelin <Johannes.Schindelin@gmx.de>
To: Robert Abel <rabel@robertabel.eu>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] git-prompt: fix reading files with windows line endings
Date: Thu, 30 Nov 2017 01:21:37 +0100 (CET) [thread overview]
Message-ID: <alpine.DEB.2.21.1.1711300100320.6482@virtualbox> (raw)
In-Reply-To: <d57e4cb9-b0b4-314e-370a-e0db58a2a7da@robertabel.eu>
Hi Robert,
On Wed, 29 Nov 2017, Robert Abel wrote:
> On 29 Nov 2017 15:27, Johannes Schindelin wrote:
>
> > Or maybe keep with the Bash construct, but guarded behind a test that we
> > area actually running in Bash? Something like
> >
> > test -z "$BASH" || IFS=$' \t\r\n'
>
> Actually, this got me thinking and reading the POSIX.1-2008, specifically
> http://pubs.opengroup.org/onlinepubs/9699919799/utilities/read.html.
>
> It seems POSIX states that IFS should be supported by read.
Yes, that's what I meant: you could use IFS.
> This means that it should be okay to just do
>
> > test -r "$f" && IFS=" \t\r\n" read "$@" < "$f"
I am afraid that this won't work: when I call
printf '123\r\n' |
while IFS=" \t\r\n" read line
do
printf '%s' "$line" |
hexdump -C
done
it prints
00000000 31 32 33 0d |123.|
00000004
If I replace the double-quoted IFS by the dollar-single-quoted one, it
works again. I think the reason is that \t, \r and \n are used literally
when double-quoted, not as <HT>, <CR> and <LF>.
Ciao,
Johannes
next prev parent reply other threads:[~2017-11-30 0:21 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-28 20:18 git-prompt: fix reading files with windows line endings Robert Abel
2017-11-28 20:18 ` [PATCH] " Robert Abel
2017-11-29 14:27 ` Johannes Schindelin
2017-11-29 22:09 ` Robert Abel
2017-11-30 0:21 ` Johannes Schindelin [this message]
2017-11-30 6:22 ` Robert Abel
2017-11-30 15:21 ` Johannes Schindelin
2017-11-30 18:01 ` Robert Abel
2017-12-01 10:45 ` Johannes Schindelin
2017-12-01 23:31 ` [PATCH v2 1/2] git-prompt: make __git_eread intended use explicit Robert Abel
2017-12-01 23:31 ` [PATCH v2 2/2] git-prompt: fix reading files with windows line endings Robert Abel
2017-12-04 14:18 ` Johannes Schindelin
2017-12-04 17:58 ` [PATCH v2 1/2] git-prompt: make __git_eread intended use explicit Junio C Hamano
2017-12-04 22:57 ` Robert Abel
2017-12-05 0:27 ` Junio C Hamano
2017-12-05 7:01 ` Robert Abel
2017-12-05 13:06 ` Junio C Hamano
2017-12-05 23:37 ` Robert Abel
2017-12-05 23:39 ` [PATCH v4 " Robert Abel
2017-12-05 23:39 ` [PATCH v4 2/2] git-prompt: fix reading files with windows line endings Robert Abel
2017-12-04 23:49 ` [PATCH v3 1/2] git-prompt: make __git_eread intended use explicit Robert Abel
2017-12-04 23:49 ` [PATCH v3 2/2] git-prompt: fix reading files with windows line endings Robert Abel
2017-11-30 1:08 ` [PATCH] " SZEDER Gábor
2017-11-30 1:51 ` Johannes Schindelin
2017-11-30 23:45 ` SZEDER Gábor
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=alpine.DEB.2.21.1.1711300100320.6482@virtualbox \
--to=johannes.schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=rabel@robertabel.eu \
/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).