From: Joey Hess Date: Wed, 23 Jun 2010 17:40:10 +0000 (-0400) Subject: avoid needing full email regexp X-Git-Tag: 3.20100623~3 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=19dcd50c8497eca4981f9a90cc3e014789a50f76;p=ikiwiki.git avoid needing full email regexp Fully validating the email address is not necessary, all that matters is not matching an url like http://foo@bar/ as an email address. --- diff --git a/IkiWiki/Plugin/link.pm b/IkiWiki/Plugin/link.pm index d41965bd3..7d4692ef0 100644 --- a/IkiWiki/Plugin/link.pm +++ b/IkiWiki/Plugin/link.pm @@ -7,7 +7,7 @@ use IkiWiki 3.00; my $link_regexp; -my $email_regexp = qr/^(?:[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/i; +my $email_regexp = qr/^.+@.+$/; my $url_regexp = qr/^(?:[^:]+:\/\/|mailto:).*/i; sub import { @@ -82,7 +82,7 @@ sub externallink ($;@) { my $pagetitle = shift; # build pagetitle - if (!($pagetitle)) { + if (! $pagetitle) { $pagetitle = $url; # use only the email address as title for mailto: urls if ($pagetitle =~ /^mailto:.*/) { @@ -90,8 +90,8 @@ sub externallink ($;@) { } } - # handle email-addresses (without mailto:): - if ($url =~ /$email_regexp/) { + if ($url !~ /$url_regexp/) { + # handle email addresses (without mailto:) $url = "mailto:" . $url; }