]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Fixed #1170: Auto-linking bug when URL cotains special chars.
authorSean Murphy <sgmurphy@gmail.com>
Mon, 9 Feb 2009 22:29:27 +0000 (17:29 -0500)
committerEvan Prodromou <evan@controlyourself.ca>
Tue, 17 Feb 2009 14:43:13 +0000 (09:43 -0500)
lib/util.php

index 7ce4e229eb76f93a8a49568b2283f9fd95e33d4c..5204693bc51f0128b8bda5086ddea704d14a74ea 100644 (file)
@@ -412,8 +412,8 @@ function common_replace_urls_callback($text, $callback) {
 
     // Then clean up what the regex left behind
     $offset = 0;
-    foreach($matches[0] as $url) {
-        $url = htmlspecialchars_decode($url);
+    foreach($matches[0] as $orig_url) {
+        $url = htmlspecialchars_decode($orig_url);
 
         // Make sure we didn't pick up an email address
         if (preg_match('#^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$#i', $url)) continue;
@@ -456,6 +456,9 @@ function common_replace_urls_callback($text, $callback) {
 
         if (!in_array($url_parts[2], $tlds)) continue;
 
+        // Put the url back the way we found it.
+        $url = (mb_strpos($orig_url, htmlspecialchars($url)) === FALSE) ? $url:htmlspecialchars($url);
+
         // Call user specified func
         $modified_url = $callback($url);