From: Jeff King <peff@peff.net>
To: Paolo Giarrusso <p.giarrusso@gmail.com>
Cc: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>,
Tay Ray Chuan <rctay89@gmail.com>,
Git Mailing List <git@vger.kernel.org>
Subject: Re: Fwd: [PATCH] git-subtree: Avoid using echo -n even indirectly
Date: Wed, 9 Oct 2013 15:48:20 -0400 [thread overview]
Message-ID: <20131009194820.GB3767@sigill.intra.peff.net> (raw)
In-Reply-To: <CAAcnjCQCJYbYUkTK+ZM6xFe=u1mj9iHetaG--yg3Qzn0_Ty0hg@mail.gmail.com>
On Wed, Oct 09, 2013 at 02:03:24PM +0200, Paolo Giarrusso wrote:
> On Wed, Oct 9, 2013 at 1:26 PM, Matthieu Moy
> <Matthieu.Moy@grenoble-inp.fr> wrote:
> > Paolo Giarrusso <p.giarrusso@gmail.com> writes:
> >
> >> Otherwise, one could
> >> change say to use printf, but that's more invasive.
> >
> > "invasive" in the sense that it impacts indirectly more callers, but are
> > there really cases where "echo" is needed when calling "say"? Aren't
> > there other potential bugs when arbitrary strings are passed to "say",
> > that would be fixed by using printf once and for all?
>
> (1) Changing the implementation of say to use printf "%s\n" would be
> trivial, and I think would address your concerns.
Yeah, I think we should do that. I had the same thought as Matthieu when
I read your initial patch; there are real portability bugs caused by
using "echo" that would be fixed.
However, that is somewhat orthogonal to the bug you are fixing. For
handling this one site, I think it would be fine to just convert it to
use printf, as your patch did. As you noted, the alternatives:
> (2) add an explicit \n to all callers (invasive & error prone), or
> (3) make `say` parse the `-n` option and conditionally add "\n" to the
> format string or to a final argument, if -n is not specified; this
> would affect no current caller, but complicate the implementation of
> say. Doing that for just one call site has too much potential for
> breakage, so I'm not sure I'd do it. (I'm not even sure on what should
> `say` do when `-n` is not the first argument).
...are either annoying or complicated (and in particular, parsing "-n"
means that callers need to be aware that 'say "$foo"' might accidentally
trigger "-n" if $foo comes from the user). So the sanest interface is
probably "say_nonl" or something similar. But since there would only be
one caller, I don't see much point in factoring it out.
> Options (1), (2) and (3) are mutually alternative; my favorite is (1).
Me too. :)
-Peff
next prev parent reply other threads:[~2013-10-09 19:48 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-09 3:57 [PATCH] git-subtree: Avoid using echo -n even indirectly Paolo G. Giarrusso
2013-10-09 10:20 ` Tay Ray Chuan
[not found] ` <CAAcnjCT1bdR+9kDW=q_326OhiSMm3_j-yOh0-ayTkObK3bZ3bQ@mail.gmail.com>
2013-10-09 10:32 ` Fwd: " Paolo Giarrusso
2013-10-09 10:46 ` Johannes Sixt
2013-10-09 11:26 ` Matthieu Moy
2013-10-09 12:03 ` Paolo Giarrusso
2013-10-09 19:48 ` Jeff King [this message]
2013-10-09 21:11 ` Jonathan Nieder
2013-10-11 9:32 ` Paolo Giarrusso
-- strict thread matches above, loose matches on Subject: below --
2013-10-28 14:04 Paolo Giarrusso
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20131009194820.GB3767@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=Matthieu.Moy@grenoble-inp.fr \
--cc=git@vger.kernel.org \
--cc=p.giarrusso@gmail.com \
--cc=rctay89@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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).