[PATCH v2] Re: mailinfo: allow individual e-mail files as input
From: Nicolas Sebrecht <hidden>
Date: 2016-06-15 22:47:12
The 06/08/09, Brandon Casey wrote:
The "former", or Junio's original patch, effectively has this form:
{
sed "$1"
} < "$1"
Without reading closely enough, I thought it looked like this:
{
sed
} < "$1"
Since I didn't study the sed statement closely enough, I assumed that it was
operating on the remaining portion of the patch email that was redirected to
the block on stdin. I missed the fact that the file name was supplied to
it. My comment was that I found it strange (and maybe unintuitive, or maybe
it's just me) that "$1" was piped on stdin and it was supplied as an
argument to sed.
Thinking to this a bit more, I tend to think that your intention to get
rid of the "$1" argument of sed is the right thing to do.
It really seems like the argument has precedence to the redirection
_but_
I couldn't find any reference to this case in POSIX and I guess that the
behaviour may differ between implementations of sed. I don't know.
Perhaps somebody could tell us if our hesitation is justified (or not)?
Finally and to prevent strange behaviours, I would write
{
real l1
real l2
real l3
{
echo "$l1"
echo "$l2"
echo "$l3"
cat
} | sed
} < "$1"
instead of
{
real l1
real l2
real l3
sed "$1"
} < "$1"
because the latter may contain either the content of the whole file
(coming from the argument) or the content of the file _whithout_ the
first three lines (coming from the redirection '<' amputated by the
'read' statements).
Junio?
--
Nicolas Sebrecht