From a719cdaf5bb4a701e4ed3a9b484457dbf0f772f1 Mon Sep 17 00:00:00 2001 From: x2003bruneau Date: Thu, 22 Feb 2007 20:49:01 +0000 Subject: [PATCH 1/1] Fix format catcher (ie // ** __ catcher) git-svn-id: svn+ssh://murphy/home/svn/banana/trunk@214 9869982d-c50d-0410-be91-f2a2ec7c7c7b --- banana/message.func.inc.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/banana/message.func.inc.php b/banana/message.func.inc.php index 1628f37..de29b94 100644 --- a/banana/message.func.inc.php +++ b/banana/message.func.inc.php @@ -84,15 +84,15 @@ function banana_wordwrap($text, $quote_level) function banana_catchFormats($text) { - $formatting = Array('/' => 'em', // match / first in order not to match closing markups <> - '_' => 'u', - '*' => 'strong'); + $formatting = Array('em' => array('\B\/\b', '\b\/\B'), + 'u' => array('\b_', '_\b'), + 'strong' => array('\B\*\b', '\b\*\B')); $url = Banana::$msgshow_url; preg_match_all("/$url/ui", $text, $urls); $text = str_replace($urls[0], "&&&urls&&&", $text); - foreach ($formatting as $limit=>$mark) { - $limit = preg_quote($limit, '/'); - $text = preg_replace('/' . $limit . '(\S+?)' . $limit . '/us', + foreach ($formatting as $mark=>$limit) { + list($ll, $lr) = $limit; + $text = preg_replace('/' . $ll . '(\w+?)' . $lr . '/us', "<$mark>\\1", $text); } return preg_replace('/&&&urls&&&/e', 'array_shift($urls[0])', $text); -- 2.1.4