[PATCH v2] Re: mailinfo: allow individual e-mail files as input
- From
- Nicolas Sebrecht <nicolas.s.dev@gmx.fr>
- Date
- Aug 7, 2009, 04:39 UTC
- Message-ID
- <20090807043929.GJ12924@vidovic>
- In-Reply-To
- <7GvFnE4br-8WnXmtoea9V1LPY-qshCw6arPr6H40SRG59-b7YcpTsw@cipher.nrlssc.navy.mil>
The 06/08/09, Brandon Casey wrote:
Show 18 quoted lines
> 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