Re: Failure to extra stable@vger.kernel.org addresses
- From
- Krzysztof Mazur <krzysiek@podlesie.net>
- Date
- Nov 20, 2012, 07:31 UTC
- Message-ID
- <20121120073100.GB7206@shrek.podlesie.net>
- In-Reply-To
- <7vlidxuowf.fsf@alter.siamese.dyndns.org>
On Mon, Nov 19, 2012 at 03:57:36PM -0800, Junio C Hamano wrote:
Show 20 quoted lines
> Felipe Contreras <felipe.contreras@gmail.com> writes:
>
> > On Mon, Nov 19, 2012 at 11:58 PM, Krzysztof Mazur <krzysiek@podlesie.net> wrote:
> >
> >> --- a/git-send-email.perl
> >> +++ b/git-send-email.perl
> >> @@ -924,6 +924,10 @@ sub quote_subject {
> >> # use the simplest quoting being able to handle the recipient
> >> sub sanitize_address {
> >> my ($recipient) = @_;
> >> +
> >> + # remove garbage after email address
> >> + $recipient =~ s/(.*>).*$/$1/;
> >> +
> >
> > Looks fine, but I would do s/(.*?>)(.*)$/$1/, so that 'test
> > <foo@bar.com> <#comment>' gets the second comment removed.
>
> Yeah, but do you need to capture the second group? IOW, like
> "s/(.*?>).*$/$1/" perhaps?I also thought about removing everything after first ">", but I will not work for addresses like:
Cc: "foo >" <stable@vger.kernel.org> #v3.4 v3.5 v3.6
What about:
$recipient =~ s/(.*<[^@]*@[^]]*>).*$/$1/;
or even
diff --git a/git-send-email.perl b/git-send-email.perl index 9840d0a..b988c57 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -925,8 +925,11 @@ sub quote_subject { sub sanitize_address { my ($recipient) = @_; + my $local_part_regexp = qr/[^<>"\s@]+/; + my $domain_regexp = qr/[^.<>"\s@]+(?:\.[^.<>"\s@]+)+/; + # remove garbage after email address - $recipient =~ s/(.*>).*$/$1/; + $recipient =~ s/(.*<$local_part_regexp\@$domain_regexp>).*$/$1/; my ($recipient_name, $recipient_addr) = ($recipient =~ /^(.*?)\s*(<.*)/); which uses regex used by 99% accurate version of extract_valid_address(). Krzysiek