From c056071159932b3b9c8454314887b6f45de2ae0f Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Fri, 1 Jul 2016 06:11:13 +0000 Subject: address: filter out domain from address-as-name idents It seems common for address entries to end up as: "foo@example" Avoid needlessly displaying the domain name in that case. --- lib/PublicInbox/Address.pm | 4 +++- t/address.t | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/PublicInbox/Address.pm b/lib/PublicInbox/Address.pm index cd5fbfbe..e17d0b57 100644 --- a/lib/PublicInbox/Address.pm +++ b/lib/PublicInbox/Address.pm @@ -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]); } diff --git a/t/address.t b/t/address.t index c488a8ed..3191fed0 100644 --- a/t/address.t +++ b/t/address.t @@ -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" '); +is_deeply(['user'], \@names, 'address-as-name extraction works as expected'); done_testing; -- cgit v1.2.3-24-ge0c7