diff --git a/CHANGELOG b/CHANGELOG index 511cb92e8..cab99352a 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 49a378166..02d5856cc 100644 --- a/program/lib/Roundcube/rcube_string_replacer.php +++ b/program/lib/Roundcube/rcube_string_replacer.php @@ -89,7 +89,7 @@ class rcube_string_replacer if ($url) { $suffix = $this->parse_url_brackets($url); - $i = $this->add($prefix . html::a(array( + $i = $this->add(html::a(array( 'href' => $url_prefix . $url, 'target' => '_blank' ), rcube::Q($url)) . $suffix); @@ -97,7 +97,7 @@ class rcube_string_replacer // 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 e630ebac0..ee9efac4e 100644 --- a/tests/Framework/StringReplacer.php +++ b/tests/Framework/StringReplacer.php @@ -37,6 +37,8 @@ class Framework_StringReplacer extends PHPUnit_Framework_TestCase array('http://link.com?(link)', 'http://link.com?(link)'), array('http://', 'http://'), array('http://', 'http://'), + array('1@1.com www.domain.tld', '1@1.com www.domain.tld'), + array(' www.domain.tld ', ' www.domain.tld '), ); }