function banana_quote($line, $level, $mark = '>')
{
$lines = explode("\n", $line);
+ $quote = str_repeat($mark, $level);
foreach ($lines as &$line) {
- if ($level > 0 && substr($line, 0, strlen($mark)) != $mark) {
- $line = ' ' . $line;
- }
- for ($i = 0 ; $i < $level ; $i++) {
- $line = $mark . $line;
- }
+ $line = $quote . $line;
}
return implode("\n", $lines);
}
$line = banana_removeQuotes($line, $level);
while (banana_isFlowed($line)) {
$lvl = 0;
- if (is_null($nl = array_shift($lines))) {
+ if (empty($lines)) {
break;
}
+ $nl = $lines[0];
$nl = banana_removeQuotes($nl, $lvl);
- $line .= $nl;
+ if ($lvl == $level) {
+ $line .= $nl;
+ array_shift($lines);
+ } else {
+ break;
+ }
}
$text .= banana_quote($line, $level) . "\n";
}
'_' => 'u',
'*' => 'strong');
$url = Banana::$msgshow_url;
- preg_match_all("/$url/i", $text, $urls);
+ preg_match_all("/$url/ui", $text, $urls);
$text = str_replace($urls[0], "&&&urls&&&", $text);
foreach ($formatting as $limit=>$mark) {
$limit = preg_quote($limit, '/');
$url = Banana::$msgshow_url;
$res = preg_replace("/&(lt|gt|quot);/", " &\\1; ", $text);
- $res = preg_replace("/$url/ie", "'\\1'.banana__cleanurl('\\2').'\\3'", $res);
+ $res = preg_replace("/$url/uie", "'\\1'.banana__cleanurl('\\2').'\\3'", $res);
$res = preg_replace('/(["\[])?(?:mailto:|news:)?([a-z0-9.\-+_\$]+@([\-.+_]?[a-z0-9])+)(["\]])?/ie',
"'\\1' . banana__catchMailLink('\\2') . '\\4'",
$res);
while (!is_null($line = array_shift($lines))) {
$lvl = 0;
$line = banana_removeQuotes($line, $lvl, $strict);
- if($lvl != $level && !empty($buffer)) {
- $text .= banana_wordwrap(implode("\n", $buffer), $level + $base_level) . "\n";
+ if($lvl != $level) {
+ if (!empty($buffer)) {
+ $text .= banana_wordwrap(implode("\n", $buffer), $level + $base_level) . "\n";
+ $buffer = array();
+ }
$level = $lvl;
- $buffer = array();
}
$buffer[] = $line;
}
return banana_cleanHtml($text);
}
+function banana_quoteRichtText(BananaMimePart &$part)
+{
+ $text = $part->getText();
+ $text = banana_richtextToHtml($text);
+ $text = banana_htmlToPlainText($text);
+ return banana_wrap($text, 1);
+}
+
// }}}
-// vim:set et sw=4 sts=4 ts=4:
+// vim:set et sw=4 sts=4 ts=4 enc=utf-8:
?>