aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xinclude/items.php9
-rw-r--r--mod/item.php5
-rw-r--r--version.inc2
3 files changed, 15 insertions, 1 deletions
diff --git a/include/items.php b/include/items.php
index c69ac2c84..d78792839 100755
--- a/include/items.php
+++ b/include/items.php
@@ -179,6 +179,15 @@ function red_escape_zrl_callback($matches) {
return '[' . $matches[1] . 'rl' . $matches[2] . ']' . $matches[3] . '"' . $matches[4] . '"' . $matches[5] . '[/' . $matches[6] . 'rl]';
}
+function red_escape_codeblock($m) {
+ return '[code]' . base64_encode($m[1]) . '[/code]';
+}
+
+function red_unescape_codeblock($m) {
+ return '[code]' . base64_decode($m[1]) . '[/code]';
+}
+
+
/**
* @function post_activity_item($arr)
*
diff --git a/mod/item.php b/mod/item.php
index 69cc624ea..784ee31b4 100644
--- a/mod/item.php
+++ b/mod/item.php
@@ -429,10 +429,15 @@ function item_post(&$a) {
* otherwise http://elsewhere.com becomes #^[url=http://elsewhere.com]http://elsewhere.com[/url]
*/
+ $body = preg_replace_callback('/\[code\](.*?)\[\/code\]/ism','red_escape_codeblock',$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);
+ $body = preg_replace_callback('/\[code\](.*?)\[\/code\]/ism','red_unescape_codeblock',$body);
+
+
/**
*
* When a photo was uploaded into the message using the (profile wall) ajax
diff --git a/version.inc b/version.inc
index fc4e28cab..177a8cfe6 100644
--- a/version.inc
+++ b/version.inc
@@ -1 +1 @@
-2014-02-09.583
+2014-02-10.584