]> Sergey Matveev's repositories - public-inbox.git/commitdiff
address: filter out domain from address-as-name idents
authorEric Wong <e@80x24.org>
Fri, 1 Jul 2016 06:11:13 +0000 (06:11 +0000)
committerEric Wong <e@80x24.org>
Fri, 1 Jul 2016 06:11:13 +0000 (06:11 +0000)
It seems common for address entries to end up as:
"foo@example" <foo@example>

Avoid needlessly displaying the domain name in that case.

lib/PublicInbox/Address.pm
t/address.t

index cd5fbfbe3c4289e3028dc0b823a54c3121dfb672..e17d0b574ec9337cc57f735ee3def5cedff10495 100644 (file)
@@ -16,7 +16,9 @@ sub names {
                my $e = $1;
                s/\A['"\s]*//;
                s/['"\s]*\z//;
-               $_ =~ /\S/ ? $_ : $e;
+               $e = $_ =~ /\S/ ? $_ : $e;
+               $e =~ s/\@\S+\z//;
+               $e;
        } split(/\@+[\w\.\-]+>?\s*(?:,\s*|\z)/, $_[0]);
 }
 
index c488a8ed6f726ef032fe11884fd557da1df304d6..3191fed01013d030eae2a3e2761cc6cff9201f64 100644 (file)
@@ -17,5 +17,7 @@ my @names = PublicInbox::Address::names(
 is_deeply(['User', 'e', 'John A. Doe', 'x'], \@names,
        'name extraction works as expected');
 
+@names = PublicInbox::Address::names('"user@example.com" <user@example.com>');
+is_deeply(['user'], \@names, 'address-as-name extraction works as expected');
 
 done_testing;