X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/6e67219eff9ea599e9efa8a846a4c78c76c5b008..dc8c9ea777e72a89ca646820a85e6a5ce4cfae48:/IkiWiki/Plugin/link.pm

diff --git a/IkiWiki/Plugin/link.pm b/IkiWiki/Plugin/link.pm
index 87e06ca89..1ba28eafd 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/^.+@.+$/;
+my $email_regexp = qr/^.+@.+\..+$/;
 my $url_regexp = qr/^(?:[^:]+:\/\/|mailto:).*/i;
 
 sub import {
@@ -73,13 +73,7 @@ sub is_externallink ($$;$) {
 		$url.="#".$anchor;
 	}
 
-	if ($url =~ /$email_regexp/) {
-		# url looks like an email address, so we assume it
-		# is supposed to be an external link if there is no
-		# page with that name.
-		return (! (bestlink($page, linkpage($url))))
-	}
-	return ($url =~ /$url_regexp/)
+	return ($url =~ /$url_regexp|$email_regexp/)
 }
 
 sub externallink ($$;$) {
@@ -150,9 +144,9 @@ sub renamepage (@) {
 	my $old=$params{oldpage};
 	my $new=$params{newpage};
 
-	$params{content} =~ s{(?<!\\)$link_regexp}{
-		if (! is_externallink($page, $2, $3)) {
-			my $linktext=$2;
+	$params{content} =~ s{(?<!\\)($link_regexp)}{
+		if (! is_externallink($page, $3, $4)) {
+			my $linktext=$3;
 			my $link=$linktext;
 			if (bestlink($page, linkpage($linktext)) eq $old) {
 				$link=pagetitle($new, 1);
@@ -167,9 +161,12 @@ sub renamepage (@) {
 					$link="/$link";
 				}
 			}
-			defined $1
-				? ( "[[$1|$link".($3 ? "#$3" : "")."]]" )
-				: ( "[[$link".   ($3 ? "#$3" : "")."]]" )
+			defined $2
+				? ( "[[$2|$link".($4 ? "#$4" : "")."]]" )
+				: ( "[[$link".   ($4 ? "#$4" : "")."]]" )
+		}
+		else {
+			$1
 		}
 	}eg;