avoid needing full email regexp
authorJoey Hess <joey@kitenet.net>
Wed, 23 Jun 2010 17:40:10 +0000 (13:40 -0400)
committerJoey Hess <joey@kitenet.net>
Wed, 23 Jun 2010 17:40:10 +0000 (13:40 -0400)
Fully validating the email address is not necessary,
all that matters is not matching an url like http://foo@bar/
as an email address.

IkiWiki/Plugin/link.pm

index d41965bd38b2ce12c4f59f300af3cf80fce9ac12..7d4692ef0d4e28449dd575b5dffdb23cd19aa81e 100644 (file)
@@ -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;
        }