aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xinclude/items.php11
-rw-r--r--mod/item.php2
-rw-r--r--version.inc2
3 files changed, 13 insertions, 2 deletions
diff --git a/include/items.php b/include/items.php
index efc2322d5..c69ac2c84 100755
--- a/include/items.php
+++ b/include/items.php
@@ -167,6 +167,17 @@ function red_zrl_callback($matches) {
}
+// If we've got a url or zrl tag with a naked url somewhere in the link text,
+// escape it with quotes unless the naked url is a linked photo.
+
+function red_escape_zrl_callback($matches) {
+
+ // Uncertain why the url/zrl forms weren't picked up by the non-greedy regex.
+
+ if((strpos($matches[3],'zmg') !== false) || (strpos($matches[3],'img') !== false) || (strpos($matches[3],'zrl') !== false) || (strpos($matches[3],'url') !== false))
+ return $matches[0];
+ return '[' . $matches[1] . 'rl' . $matches[2] . ']' . $matches[3] . '"' . $matches[4] . '"' . $matches[5] . '[/' . $matches[6] . 'rl]';
+}
/**
* @function post_activity_item($arr)
diff --git a/mod/item.php b/mod/item.php
index 19d771832..69cc624ea 100644
--- a/mod/item.php
+++ b/mod/item.php
@@ -429,7 +429,7 @@ function item_post(&$a) {
* otherwise http://elsewhere.com becomes #^[url=http://elsewhere.com]http://elsewhere.com[/url]
*/
- $body = preg_replace('/\[([uz])rl(.*?)\](.*?)(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\@\_\~\#\%\$\!\+\,]+)(.*?)\[\/([uz])rl\]/ism','[$1rl$2]$3"$4"$5[/$6rl]',$body);
+ $body = preg_replace_callback('/\[([uz])rl(.*?)\](.*?)(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\@\_\~\#\%\$\!\+\,]+)(.*?)\[\/([uz])rl\]/ism','red_escape_zrl_callback',$body);
$body = preg_replace_callback("/([^\]\='".'"'."]|^|\#\^)(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\@\_\~\#\%\$\!\+\,]+)/ism", 'red_zrl_callback', $body);
diff --git a/version.inc b/version.inc
index bd1fa0985..fc4e28cab 100644
--- a/version.inc
+++ b/version.inc
@@ -1 +1 @@
-2014-02-08.582
+2014-02-09.583