From: Roan Kattouw
Date: Fri, 12 Aug 2011 13:32:06 +0000 (+0000)
Subject: (bug 30236) Links like [[//example.com Link text]] were parsed as an internal link...
X-Git-Tag: 1.31.0-rc.0~28323
X-Git-Url: http://git.cyclocoop.org/%22%20.%20%20%20%24self2%20.%20%20%20%22&var_mode_affiche=boucle?a=commitdiff_plain;h=7e13964a0285c0e5e8e313a6dd1cd723de1752d8;p=lhc%2Fweb%2Fwiklou.git
(bug 30236) Links like [[//example.com Link text]] were parsed as an internal link rather than an external link surrounded by brackets, like [[example.com Link text]]. Was caused by another pointless \b directly preceding wfUrlProtocols() in a regex. Also add a parser test for the [[http://example.com Link text]] case (the existing test only covered [[http://example.com]]) and add protocol-relative counterparts for both tests.
---
diff --git a/includes/parser/Parser.php b/includes/parser/Parser.php
index 9e85556915..63891702ca 100644
--- a/includes/parser/Parser.php
+++ b/includes/parser/Parser.php
@@ -1896,7 +1896,7 @@ class Parser {
# Don't allow internal links to pages containing
# PROTO: where PROTO is a valid URL protocol; these
# should be external links.
- if ( preg_match( '/^\b(?:' . wfUrlProtocols() . ')/', $m[1] ) ) {
+ if ( preg_match( '/^(?:' . wfUrlProtocols() . ')/', $m[1] ) ) {
$s .= $prefix . '[[' . $line ;
wfProfileOut( __METHOD__."-misc" );
continue;
diff --git a/tests/parser/parserTests.txt b/tests/parser/parserTests.txt
index 2c465d0c32..6903877eea 100644
--- a/tests/parser/parserTests.txt
+++ b/tests/parser/parserTests.txt
@@ -2197,6 +2197,34 @@ Plain link to URL
!! end
+!! test
+Plain link to URL with link text
+!! input
+[[http://www.example.com Link text]]
+!! result
+[Link text]
+
+!! end
+
+!! test
+Plain link to protocol-relative URL
+!! input
+[[//www.example.com]]
+!! result
+[[1]]
+
+!! end
+
+!! test
+Plain link to protocol-relative URL with link text
+!! input
+[[//www.example.com Link text]]
+!! result
+[Link text]
+
+!! end
+
+
# I'm fairly sure the expected result here is wrong.
# We want these to be URL links, not pseudo-pages with URLs for titles....
# However the current output is also pretty screwy.