From 3d4ba6280810ce4267809177bdc4a3e462b32e5e Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Fri, 19 Jun 2009 13:06:31 -0400
Subject: [PATCH] Fix link text replacements (#1485789)

---
 program/include/rcube_string_replacer.php |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/program/include/rcube_string_replacer.php b/program/include/rcube_string_replacer.php
index 064a723..8539ee5 100644
--- a/program/include/rcube_string_replacer.php
+++ b/program/include/rcube_string_replacer.php
@@ -74,7 +74,7 @@
     $i = -1;
     $scheme = strtolower($matches[1]);
 
-    if ($scheme == 'http://' || $scheme == 'https://' || $scheme == 'ftp://') {
+    if (preg_match('!^(http||ftp|file)s?://!', $scheme)) {
       $url = $matches[1] . $matches[2];
       $i = $this->add(html::a(array('href' => $url, 'target' => '_blank'), Q($url)));
     }
@@ -83,7 +83,8 @@
       $i = $this->add($m[1] . html::a(array('href' => 'http://' . $url, 'target' => '_blank'), Q($url)));
     }
 
-    return $i >= 0 ? $this->get_replacement($i) : '';
+    // Return valid link for recognized schemes, otherwise, return the unmodified string for unrecognized schemes.
+    return $i >= 0 ? $this->get_replacement($i) : $matches[0];
   }
 
   /**

--
Gitblit v1.9.1