Nicolas Sebrecht wrote: > The 06/08/09, Brandon Casey wrote: > >> diff --git a/git-am.sh b/git-am.sh >> index d64d997..49f2be4 100755 >> --- a/git-am.sh >> +++ b/git-am.sh > > <...> > >> + { >> + echo "$l1" >> + echo "$l2" >> + echo "$l3" >> + cat > > UUOC, I guess. I needed to use google to figure out that UUOC means Useless Use Of Cat, but I think you are mistaken. Rather than trying to explain it, try this with and without 'cat' commented out: #!/bin/sh { { echo "line one" echo "line two" cat } | sed -e 's/$/Q/' } <<-EOF This is a line of text Here is another line of text. And another EOF Hopefully you'll see the parallels to the sequence in git-am.sh and understand that cat was used to send the rest of the email through sed along with the first three lines that were read explicitly. git-am.sh looks more like this: { read l1 ... { echo "$l1" ... cat } | sed ... } << "$1" At least, I thought that is how it looked until I read your other email where you pointed out that "$1" is an argument to sed. >> + } | sed -n -e '/^$/q' -e '/^[ ]/d' -e p "$1" | > ^^ > > Is it still needed? Yes. The '/^[ ]/d' portion of the sed statement deletes any lines with leading space or tab. This avoids passing continuation fields to the grep statement which is not designed for them, and so would fail (or match, depending on how you look at it. We used -v with grep). -brandon -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html