aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Clay <steve@mrclay.org>2013-05-13 22:40:46 -0400
committerSteve Clay <steve@mrclay.org>2013-05-13 22:40:46 -0400
commit8a5d4dad56dab0467415c189e8632ef151b0bcc5 (patch)
tree2dd6aadc4cf2d67789a3b484950b4bfb0e91a778
parentd6166b326ea6f25c477e2f47e9e8aef6a2af2597 (diff)
parent6fed48c68bd866149427c63782d5ce4db6ba80c4 (diff)
downloadelgg-8a5d4dad56dab0467415c189e8632ef151b0bcc5.tar.gz
elgg-8a5d4dad56dab0467415c189e8632ef151b0bcc5.tar.bz2
Merge branch 'pr5416' into 1.8
-rw-r--r--engine/lib/output.php2
-rw-r--r--engine/tests/regression/trac_bugs.php8
2 files changed, 9 insertions, 1 deletions
diff --git a/engine/lib/output.php b/engine/lib/output.php
index 6905b9b71..5adc01053 100644
--- a/engine/lib/output.php
+++ b/engine/lib/output.php
@@ -27,7 +27,7 @@ function parse_urls($text) {
// By default htmlawed rewrites tags to this format.
// if PHP supported conditional negative lookbehinds we could use this:
// $r = preg_replace_callback('/(?<!=)(?<![ ])?(?<!["\'])((ht|f)tps?:\/\/[^\s\r\n\t<>"\'\!\(\),]+)/i',
- $r = preg_replace_callback('/(?<!=)(?<!["\'])((ht|f)tps?:\/\/[^\s\r\n\t<>"\'\(\)]+)/i',
+ $r = preg_replace_callback('/(?<![=\/"\'])((ht|f)tps?:\/\/[^\s\r\n\t<>"\'\(\)]+)/i',
create_function(
'$matches',
'
diff --git a/engine/tests/regression/trac_bugs.php b/engine/tests/regression/trac_bugs.php
index 4de9c306b..7fdd51c27 100644
--- a/engine/tests/regression/trac_bugs.php
+++ b/engine/tests/regression/trac_bugs.php
@@ -283,6 +283,14 @@ class ElggCoreRegressionBugsTest extends ElggCoreUnitTest {
'ftp ftp://example.org/ test' =>
'ftp <a href="ftp://example.org/" rel="nofollow">ftp:/<wbr />/<wbr />example.org/<wbr /></a> test',
+ 'web archive anchor <a href="http://web.archive.org/web/20000229040250/http://www.google.com/">google</a>' =>
+ 'web archive anchor <a href="http://web.archive.org/web/20000229040250/http://www.google.com/">google</a>',
+
+ 'single quotes already anchor <a href=\'http://www.yahoo.com\'>yahoo</a>' =>
+ 'single quotes already anchor <a href=\'http://www.yahoo.com\'>yahoo</a>',
+
+ 'unquoted already anchor <a href=http://www.yahoo.com>yahoo</a>' =>
+ 'unquoted already anchor <a href=http://www.yahoo.com>yahoo</a>',
);
foreach ($cases as $input => $output) {
$this->assertEqual($output, parse_urls($input));