summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2010-10-12 08:44:25 +0000
committeralecpl <alec@alec.pl>2010-10-12 08:44:25 +0000
commit937e26a541e3144f6df812d7e8eb6de3d35f596d (patch)
treeef95363c309b76228e317e2bfa1c27817612d8c4
parentbb269962fa31aee44e32992a122be6b9a9e894d8 (diff)
- Fix links handling
-rw-r--r--program/include/rcube_string_replacer.php7
1 files changed, 4 insertions, 3 deletions
diff --git a/program/include/rcube_string_replacer.php b/program/include/rcube_string_replacer.php
index 0471dd0dc..326bb7f51 100644
--- a/program/include/rcube_string_replacer.php
+++ b/program/include/rcube_string_replacer.php
@@ -36,13 +36,14 @@ class rcube_string_replacer
function __construct()
{
// Simplified domain expression for UTF8 characters handling
- $utf_domain = '[^&@"\'\\/\s\r\t\n]+\\.[a-z]{2,5}';
+ $utf_domain = '[^?&@"\'\\/()\s\r\t\n]+\\.[a-z]{2,5}';
+ $url = '[a-z0-9%=#+?.:&\\/_-]+';
- $this->link_pattern = "/([\w]+:\/\/|\Wwww\.)($utf_domain(\S+)?)/i";
+ $this->link_pattern = "/([\w]+:\/\/|\Wwww\.)($utf_domain($url)?)/i";
$this->mailto_pattern = "/("
."[-\w!\#\$%&\'*+~\/^`|{}=]+(?:\.[-\w!\#\$%&\'*+~\/^`|{}=]+)*" // local-part
."@$utf_domain" // domain-part
- ."(\?\S+)?" // e.g. ?subject=test...
+ ."(\?$url)?" // e.g. ?subject=test...
.")/i";
}