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
Jeff King <peff@peff.net>
Date
Jul 24, 2016, 15:30 UTC
Message-ID
<20160724153035.GA32304@sigill.intra.peff.net>
In-Reply-To
<alpine.DEB.2.20.1607240926500.14111@virtualbox>
On Sun, Jul 24, 2016 at 09:37:57AM +0200, Johannes Schindelin wrote:
Show 32 quoted lines
> On Sun, 24 Jul 2016, Eric Wong wrote:
> 
> > @@ -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, '>');
Since we are nitpicking, I think:
  static int needs_from_quoting(enum cmit_fmt fmt,
                                const char *line, size_t len)
  {
	if (fmt == CMIT_FMT_MBOXRD && is_mboxrd_from(line, linelen))
		return 1;
	if (fmt == CMIT_FMT_EMAIL && is_from_line(line, linelen))
		return 1;
	return 0;
  }
  ...
  if (needs_from_quoting(pp->fmt, line, linelen))
	strbuf_addch(sb, '>');

is even nicer. There are lots of alternatives to write the helper function, and I do not care much which one is chosen. But splitting it out into a concise "do we need to do this?" query function makes the flow in pp_remainder much easier to follow.

-Peff
Previous: Johannes SchindelinNext: Junio C Hamano
Message 11 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.