The 15/07/09, Junio C Hamano wrote: > I think you did not understand the point of the three liner I sent you. > > sed -e '/^$/q' -e '/^[ ]/d' "$1" | I'll change it to sed -e '/^$/q' -e '/^[[:blank:]]/d' "$1" | to conform to reality (and the paragraph 3.4.2 of the RFC 822). > The point of this is not to use the silly "we only look at the first > three lines" rule. Instead, it ignores these l1/l2/l3, but grabs all > the header lines, but discards second and subsequent physical lines if > a logical line was folded. Which means that the effect of this is to > pipe the whole header (again, without worrying about the indented > remainder of folded lines) to downsream, which is the grep -v below > > grep -v -E -e '^[A-Za-z]+(-[A-Za-z]+)*:' >/dev/null || > > This checks if there is a line that does _NOT_ match the usual > e-mail header pattern. If there is such a line, it means that the > file is not an e-mail message. If there is no such line, we say... I don't see the reason to have the option -v. It's only related to what's printed to output and doesn't change the exit status which tell us if an expression has matched. This gives: grep -E -e '^[A-Za-z]+(-[A-Za-z]+)*:' >/dev/null && patch_format=mbox > One caveat is that the above logic alone won't catch a random file that > does not have _any_ e-mail headers in it. So you might need to do > something like: > > LF=' > ' > case "$l1$LF$l2$LF$l3" in > *"$LF$LF"*) > # has a completely empty line in there? > # that means the message has only two headers at most; > # that cannot be an email. > ;; I think we can strip this part. The purpose is to accept what _may_ be a patch. Any wrong patch or random file will be rejected later. -- Nicolas Sebrecht -- 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