On Sun, Apr 28, 2013 at 2:18 PM, Junio C Hamano <gits...@pobox.com> wrote:
> Felipe Contreras <felipe.contre...@gmail.com> writes:
>> We don't need to quote the filename to pass to the command, we can use
>> an array of all the arguments to pass to the command, which is safer,
>> and more extensible.
>> Commit a47eab0 (send-email: use the three-arg form of open in
>> recipients_cmd) stated we couldn't pass $file directly, but in fact, we
>> can, the multi-word string is passed as is, and we can pass an array
>> too.
> I think the comment is not about passing $file directly, but is
> about passing $cmd that could be multi-word string directly.  The
> caller expects it be split into command and its earlier part of
> command line parameters, so that you can say
>     $cmd = "cccmd --frotz --nitfol"

I see.

> but the non-string form of open would not give you that, unless you
> rewrite it to
>         open $fh, "-|", qw(sh -c), $cmd, @args

That doesn't seem to work for me.

It would have to be:

  open $fh, "-|", qw(sh -c), "$cmd \Q$args\E"

So we end up in the same place.

Felipe Contreras
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to