From 70229cbbfc2d6e1a8c013aebd00ad9a593fcc350 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Mon, 22 Apr 2013 08:09:54 -0400 Subject: [PATCH] Fix incorrect handling of some specific links (#1489060) --- CHANGELOG | 1 + tests/Framework/StringReplacer.php | 2 ++ program/lib/Roundcube/rcube_string_replacer.php | 4 ++-- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 7743032..347c731 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@ CHANGELOG Roundcube Webmail =========================== +- Fix incorrect handling of some specific links (#1489060) - Fix incorrect handling of leading spaces in text wrapping - Fix unintentional messages list jumps on click in Internet Explorer (#1489056) - Fix list of required configuration options (#1489055) diff --git a/program/lib/Roundcube/rcube_string_replacer.php b/program/lib/Roundcube/rcube_string_replacer.php index b8768bc..0fc90a5 100644 --- a/program/lib/Roundcube/rcube_string_replacer.php +++ b/program/lib/Roundcube/rcube_string_replacer.php @@ -95,12 +95,12 @@ $attrib = (array)$this->options['link_attribs']; $attrib['href'] = $url_prefix . $url; - $i = $this->add($prefix . html::a($attrib, rcube::Q($url)) . $suffix); + $i = $this->add(html::a($attrib, rcube::Q($url)) . $suffix); } // Return valid link for recognized schemes, otherwise // return the unmodified string for unrecognized schemes. - return $i >= 0 ? $this->get_replacement($i) : $matches[0]; + return $i >= 0 ? $prefix . $this->get_replacement($i) : $matches[0]; } /** diff --git a/tests/Framework/StringReplacer.php b/tests/Framework/StringReplacer.php index 95c5922..dc76387 100644 --- a/tests/Framework/StringReplacer.php +++ b/tests/Framework/StringReplacer.php @@ -37,6 +37,8 @@ array('http://link.com?(link)', '<a href="http://link.com?(link)">http://link.com?(link)</a>'), array('http://<test>', 'http://<test>'), array('http://', 'http://'), + array('1@1.com www.domain.tld', '<a href="mailto:1@1.com">1@1.com</a> <a href="http://www.domain.tld">www.domain.tld</a>'), + array(' www.domain.tld ', ' <a href="http://www.domain.tld">www.domain.tld</a> '), ); } -- Gitblit v1.9.1