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

Re: [PATCH] send-email: extract email-parsing code into a subroutine

From
Matthieu Moy <matthieu.moy@univ-lyon1.fr>
Date
Dec 14, 2017, 14:05 UTC
Message-ID
<285414621.1144481.1513260333115.JavaMail.zimbra@inria.fr>
In-Reply-To
<ce70816f94c24754bea9bc8175de4bc4@BPMBX2013-01.univ-lyon1.fr>
"PAYRE NATHAN p1508475" <nathan.payre@etu.univ-lyon1.fr> wrote:
> -		print $c2 $_;
>  	}
> +
>  	close $c;
Nit: this added newline does not seem necessary to me. Nothing
serious, but this kind of thing tend to distract the reader when
reviewing the patch.
> +	foreach my $key (keys %parsed_email) {
> +		next if $key == 'body';
> +		print $c2 "$key: $parsed_email{$key}";
> +	}
I'd add a comment like
	# Preserve unknown headers
at the top of the loop to make it clear what we're doing.

On a side note: there's no comment in the code you're adding. This is not necessarily a bad thing (beautifully written code does not need comments to be readable), but you may re-read your code with the question "did I explain everything well-enough?" in mind. The loop above is a case where IMHO a short and sweet comment helps the reader.

Two potential issues not mentionned in your message but that we discussed offlist is that 1) this doesn't preserve the order, and 2) this strips duplicate headers. I believe this is not a problem here, and trying to solve these points would make the code overkill, but this would really deserve being mentionned in the commit message. First, so that people reviewing your patch now can confirm (or not) that you are taking the right decision by doing this, and also for people in the future examining your patch (e.g. after a bisect).

> +sub parse_header_line {
> +	my $lines = shift;
> +	my $parsed_line = shift;
> +	my $pattern = join "|", qw(To Cc Bcc);
Nit: you may want to rename it to something more explicit, like
$addr_headers_pat.

None of my nit should block the patch inclusion, but I think the commit message should be expanded to include a mention of the "duplicate headers"/"header order" potential issue.

-- 
Matthieu Moy
https://matthieu-moy.fr/
Previous: Nathan PayreNext: Nathan Payre
Message 23 of 25 in “send-email: extract email-parsing code into a subroutine”
  1. send-email: extract email-parsing code into a subroutinePayre Nathan, Dec 2, 2017
  2. Nathan PAYREDec 2, 2017
  3. Ævar Arnfjörð BjarmasonDec 3, 2017
  4. Nathan PAYREDec 3, 2017
  5. Junio C HamanoDec 4, 2017
  6. send-email: extract email-parsing code into a subroutineNathan Payre, Dec 6, 2017
  7. Junio C HamanoDec 6, 2017
  8. Nathan PAYREDec 6, 2017
  9. send-email: extract email-parsing code into a subroutineNathan Payre, Dec 6, 2017
  10. Ævar Arnfjörð BjarmasonDec 6, 2017
  11. send-email: extract email-parsing code into a subroutineNathan Payre, Dec 7, 2017
  12. Junio C HamanoDec 6, 2017
  13. Eric SunshineDec 7, 2017
  14. send-email: extract email-parsing code into a subroutineNathan Payre, Dec 9, 2017
  15. send-email: extract email-parsing code into a subroutineNathan Payre, Dec 6, 2017
  16. Matthieu MoyDec 3, 2017
  17. Matthieu MoyDec 7, 2017
  18. Matthieu MoyDec 7, 2017
  19. Ævar Arnfjörð BjarmasonDec 7, 2017
  20. Matthieu MoyDec 11, 2017
  21. Nathan PAYREDec 14, 2017
  22. send-email: extract email-parsing code into a subroutineNathan Payre, Dec 14, 2017
  23. Matthieu MoyDec 14, 2017
  24. send-email: extract email-parsing code into a subroutineNathan Payre, Dec 15, 2017
  25. Matthieu MoyDec 15, 2017

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.