git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Jeff King <peff@peff.net>
Date
Jun 11, 2009, 10:55 UTC
Message-ID
<20090611105538.GA4409@coredump.intra.peff.net>
In-Reply-To
<1244714434-20794-1-git-send-email-bonzini@gnu.org>
On Thu, Jun 11, 2009 at 12:00:34PM +0200, Paolo Bonzini wrote:
Show 7 quoted lines
> 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).

Show 7 quoted lines
> +++ 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
Previous: Paolo BonziniNext: Paolo Bonzini
Message 2 of 4 in “git-format-patch, git-send-email: generate/handle escaped >From”
  1. git-format-patch, git-send-email: generate/handle escaped >FromPaolo Bonzini, Jun 11, 2009
  2. Jeff KingJun 11, 2009
  3. Paolo BonziniJun 11, 2009
  4. Paolo BonziniJun 28, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.