Re: [PATCH] send-email: extract email-parsing code into a subroutine
- From
- Nathan PAYRE <second.payre@gmail.com>
- Date
- Dec 14, 2017, 10:06 UTC
- Message-ID
- <CAGb4CBVcUv111dUy9waScAL2WATkk0LVqJQ55g3-XbH1H228YQ@mail.gmail.com>
- In-Reply-To
- <1718292310.23922425.1513026746802.JavaMail.zimbra@inria.fr>
2017-12-11 22:12 GMT+01:00 Matthieu Moy <matthieu.moy@univ-lyon1.fr>:
Show 18 quoted lines
> "PAYRE NATHAN p1508475" <nathan.payre@etu.univ-lyon1.fr> wrote:
>> + my %parsed_email;
>> + $parsed_email{'body'} = '';
>> + while (my $line = <$c>) {
>> + next if $line =~ m/^GIT:/;
>> + parse_header_line($line, \%parsed_email);
>> + if ($line =~ /^$/) {
>> + $parsed_email{'body'} = filter_body($c);
>> }
>> - print $c2 $_;
>
> I didn't notice this at first, but you're modifying the behavior here:
> the old code used to print to $c2 anything that didn't match any of
> the if/else if branches.
>
> To keep this behavior, you need to keep all these extra headers in
> $parsed_email (you do, in this version) and print them after taking
> care of all the known headers (AFAICT, you don't).This case is not that easy to correct because: - It's could weigh the code. - The refactoring may not be legitimate anymore.
I've found two way to resolve this: .1) After every if($parsed_email{'key'}) remove the corresponding key and just before closing $c2 create a new loop which add all the remaining parts.
.2) Making a mix between the old and new code. Some parts of my patch can improve the old code (like the removing of $need_8bit_cte) then it will be kept and the while loop will be similar the old code
I think that the first version will look like better than the second one, easy to read, but it will change the order of the email header.