From: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
To: David Kastrup <dak@gnu.org>
Cc: git@vger.kernel.org
Subject: Re: git rebase -i error message interprets \t in commit message
Date: Tue, 06 Aug 2013 19:19:09 +0200 [thread overview]
Message-ID: <vpqd2pqka9e.fsf@anie.imag.fr> (raw)
In-Reply-To: <87fvum694z.fsf@fencepost.gnu.org> (David Kastrup's message of "Tue, 06 Aug 2013 19:07:08 +0200")
David Kastrup <dak@gnu.org> writes:
>> diff --git a/git-sh-setup.sh b/git-sh-setup.sh
>> index 7a964ad..97258d5 100644
>> --- a/git-sh-setup.sh
>> +++ b/git-sh-setup.sh
>> @@ -53,7 +53,7 @@ die () {
>> die_with_status () {
>> status=$1
>> shift
>> - echo >&2 "$*"
>> + printf >&2 "%s\n" "$*"
>> exit "$status"
>> }
>>
>> It does not sound crazy as the shell function "say" right below uses the
>> same printf "%s\n" "$*",
>
> Sounds reasonable, though I don't know off-hand (not having the source
> here) whether using "say" inside of die_with_status
The definition of say is:
say () {
if test -z "$GIT_QUIET"
then
printf '%s\n' "$*"
fi
}
I don't think we want to disable die's output even when the caller
requested to be quiet. Currently, my patch is:
>From 7962ac8d8f2cbc556f669fd97487f9d70edc4ea1 Mon Sep 17 00:00:00 2001
From: Matthieu Moy <Matthieu.Moy@imag.fr>
Date: Tue, 6 Aug 2013 19:13:03 +0200
Subject: [PATCH] die_with_status: use "printf '%s\n'", not "echo"
At least GNU echo interprets backslashes in its arguments.
This triggered at least one bug: the error message of "rebase -i" was
turning \t in commit messages into actual tabulations. There may be
others.
Using "printf '%s\n'" instead avoids this bad behavior, and is the form
used by the "say" function.
Noticed-by: David Kastrup <dak@gnu.org>
Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
---
git-sh-setup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index 7a964ad..e15be51 100644
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -53,7 +53,7 @@ die () {
die_with_status () {
status=$1
shift
- echo >&2 "$*"
+ printf >&2 '%s\n' "$*"
exit "$status"
}
--
1.8.3.3.797.gb72c616
I'll resend properly for inclusion if no one objects.
--
Matthieu Moy
http://www-verimag.imag.fr/~moy/
next prev parent reply other threads:[~2013-08-06 17:19 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-06 15:44 git rebase -i error message interprets \t in commit message David Kastrup
2013-08-06 16:01 ` Ramkumar Ramachandra
2013-08-06 17:47 ` Junio C Hamano
2013-08-06 16:05 ` Matthieu Moy
2013-08-06 17:07 ` David Kastrup
2013-08-06 17:19 ` Matthieu Moy [this message]
2013-08-06 19:23 ` David Kastrup
2013-08-06 19:35 ` Junio C Hamano
2013-08-06 17:52 ` Junio C Hamano
2013-08-06 18:26 ` [PATCH] die_with_status: use "printf '%s\n'", not "echo" Matthieu Moy
2013-08-07 8:58 ` Thomas Rast
2013-08-07 9:23 ` Matthieu Moy
2013-08-07 9:26 ` [PATCH v2] " Matthieu Moy
2013-08-07 9:48 ` [PATCH] " Thomas Rast
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=vpqd2pqka9e.fsf@anie.imag.fr \
--to=matthieu.moy@grenoble-inp.fr \
--cc=dak@gnu.org \
--cc=git@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.