Re: [PATCH] Cleanup git-send-email.perl:extract_valid_email
From: Horst von Brand <hidden>
Date: 2016-06-15 22:42:28
Eric Wong [off-list ref] wrote:
"Horst H. von Brand" [off-list ref] wrote:quoted
- Fix the regular expressions for local addresses - Fix the fallback regexp for non-local addresses, simplify the logic Signed-off-by: Horst H. von Brand <redacted> --- git-send-email.perl | 9 +++------ 1 files changed, 3 insertions(+), 6 deletions(-)diff --git a/git-send-email.perl b/git-send-email.perl index ed1d89b..a7a7797 100755 --- a/git-send-email.perl +++ b/git-send-email.perl@@ -314,18 +314,15 @@ sub extract_valid_address { my $address = shift; # check for a local address: - return $address if ($address =~ /^([\w\-]+)$/); + return $address if ($address =~ /^([\w\-.]+)$/);I keep forgetting this, '+' is a valid (and useful) setup, too.
Oops...
quoted
if ($have_email_valid) { return Email::Valid->address($address); } else { # less robust/correct than the monster regexp in Email::Valid, # but still does a 99% job, and one less dependency - my $cleaned_address; - if ($address =~ /([^\"<>\s]+@[^<>\s]+)/) { - $cleaned_address = $1; - } - return $cleaned_address; + $address =~ /([\w\-.]+@[\w\-.]+)/; + return $1;Actually, I'm retracting my earlier ack on this. This is way too restrictive. I'd rather allow an occasional invalid email address than to reject valid ones. I generally trust git users to know what they're doing when entering email addresses[1]. *, $, ^, +, = are all valid characters in the username portion (not sure about local accounts, though), and I'm sure there are more that I don't know about.
As a general principle, I prefer to check what is legal instead of trying to filter out what isn't. -- Dr. Horst H. von Brand User #22616 counter.li.org Departamento de Informatica Fono: +56 32 654431 Universidad Tecnica Federico Santa Maria +56 32 654239 Casilla 110-V, Valparaiso, Chile Fax: +56 32 797513