Thread (21 messages) flat view 21 messages, 6 authors, 2016-06-15
DORMANTno replies

[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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help