Re: [PATCH] git-format-patch, git-send-email: generate/handle escaped >From

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jun 11, 2009 at 12:00:34PM +0200, Paolo Bonzini wrote:

> I noticed that the mbox files generated by git-format-patch (especially
> with --stdout) are not proper in the sense that the lines starting with
> "From " are not escaped with a > sign.  This is unlikely to cause problems
> with mail clients such as mutt, but many scripts designed to work on
> mbox files will fumble in this case.
> 
> This patch fixes it and dually unescapes the lines in git-send-email.

Ugh. Can we please at least make this optional?  Many modern MTAs handle
the current situation just fine by being much more strict in their
"From" matching (i.e., you would need something that really looks like a
valid "From" line to get a match), and do not do ">From" de-quoting at
all (mutt is such an example).

Some even take it a step farther and use Content-Length headers, though
I do not think that is a good idea here (we encourage people to munge
the contents while stored as an mbox).

> +++ b/pretty.c
> @@ -868,6 +868,8 @@ void pp_remainder(enum cmit_fmt fmt,
>  			memset(sb->buf + sb->len, ' ', indent);
>  			strbuf_setlen(sb, sb->len + indent);
>  		}
> +		if (fmt == CMIT_FMT_EMAIL && !prefixcmp(line, "From "))
> +			strbuf_addch(sb, '>');

This is the lossy "mboxo" conversion. A quoted From is now
indistinguishable from an original ">From". To be reversible, you need
to quote "s/^>*From />&/".

But of course, which conversion you want depends entirely on what you
are going to feed it to, and which mbox they are expecting. Which is why
it really should be configurable.

Your use case looks to be feeding it to send-email; I suspect you would
be better served by improving the 'From ' detection in send-email,
probably to something like:

  /^From \S+ \w{3} \w{3} \d+ \d\d:\d\d:\d\d \d+/

though that may be too strict. It would probably make sense to steal one
from one of the many mbox-reading CPAN modules.

-Peff
--
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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]