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

Re: [PATCH 2/2] format-patch: escape "From " lines recognized by mailsplit

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Jul 24, 2016, 07:37 UTC
Message-ID
<alpine.DEB.2.20.1607240926500.14111@virtualbox>
In-Reply-To
<20160724031543.GC32480@starla>
Hi Eric,
On Sun, 24 Jul 2016, Eric Wong wrote:
Show 19 quoted lines
> @@ -1745,9 +1746,18 @@ void pp_remainder(struct pretty_print_context *pp,
>  			strbuf_add_tabexpand(sb, pp->expand_tabs_in_log,
>  					     line, linelen);
>  		else {
> -			if (pp->fmt == CMIT_FMT_MBOXRD &&
> -					is_mboxrd_from(line, linelen))
> -				strbuf_addch(sb, '>');
> +			switch (pp->fmt) {
> +			case CMIT_FMT_EMAIL:
> +				if (is_from_line(line, linelen))
> +					strbuf_addch(sb, '>');
> +				break;
> +			case CMIT_FMT_MBOXRD:
> +				if (is_mboxrd_from(line, linelen))
> +					strbuf_addch(sb, '>');
> +				break;
> +			default:
> +				break;
> +			}

Sorry to be nitpicking once again; I think this would be conciser (and easier to read at least for me) as:

-			if (pp->fmt == CMIT_FMT_MBOXRD &&
-					is_mboxrd_from(line, linelen))
+			if ((pp->fmt == CMIT_FMT_MBOXRD &&
+			     is_mboxrd_from(line, linelen)) ||
+			    (pp->fmt == CMIT_FMT_EMAIL &&
+			     is_from_line(line, linelen)))
 				strbuf_addch(sb, '>');
Show 16 quoted lines
> diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh
> index 1206c48..8fa3982 100755
> --- a/t/t4014-format-patch.sh
> +++ b/t/t4014-format-patch.sh
> @@ -1606,4 +1606,18 @@ test_expect_success 'format-patch --pretty=mboxrd' '
>  	test_cmp expect actual
>  '
>  
> +test_expect_success 'format-patch From escaping' '
> +	cat >msg <<-INPUT_END &&
> +	somebody pasted format-patch output into a body
> +
> +	From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
> +	INPUT_END
> +
> +	C=$(git commit-tree HEAD^^{tree} -p HEAD <msg) &&
The double caret makes this a bit hard to read. Maybe this instead?
+	C=$(git commit-tree HEAD: -p HEAD^ <msg) &&
> +	git format-patch --stdout -1 $C~1..$C >patch &&
Either "-1 $C" or "$C~1..$C", not both...
Show 8 quoted lines
> +	git grep -h --no-index \
> +		">From 0000000000000000000000000000000000000000 " \
> +		patch
> +'
> +
>  test_done
> -- 
> EW
Heh, that's a nice Git version ;-)

Ciao, Dscho

Previous: Eric WongNext: Jeff King
Message 10 of 17 in “format-patch: escape "From " lines recognized by mailsplit”
  1. format-patch: escape "From " lines recognized by mailsplitEric Wong, Jul 22, 2016
  2. Johannes SchindelinJul 23, 2016
  3. Eric WongJul 24, 2016
  4. 1/2 mailinfo: extract is_from_line from mailsplitEric Wong, Jul 24, 2016
  5. Andreas SchwabJul 24, 2016
  6. Johannes SchindelinJul 24, 2016
  7. Andreas SchwabJul 24, 2016
  8. Junio C HamanoJul 25, 2016
  9. 2/2 format-patch: escape "From " lines recognized by mailsplitEric Wong, Jul 24, 2016
  10. Johannes SchindelinJul 24, 2016
  11. Jeff KingJul 24, 2016
  12. Junio C HamanoJul 24, 2016
  13. Eric WongJul 24, 2016
  14. Junio C HamanoJul 24, 2016
  15. Eric WongJul 25, 2016
  16. Junio C HamanoJul 25, 2016
  17. Eric WongJul 25, 2016

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.