diff options
-rwxr-xr-x | include/items.php | 9 | ||||
-rw-r--r-- | mod/item.php | 5 | ||||
-rw-r--r-- | version.inc | 2 |
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 |