summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--program/include/rcube_shared.inc43
1 files changed, 24 insertions, 19 deletions
diff --git a/program/include/rcube_shared.inc b/program/include/rcube_shared.inc
index a130391f7..2c3e63933 100644
--- a/program/include/rcube_shared.inc
+++ b/program/include/rcube_shared.inc
@@ -259,7 +259,12 @@ function rc_wordwrap($string, $width=75, $break="\n", $cut=false)
$para = explode($break, $string);
$string = '';
while (count($para)) {
- $list = explode(' ', array_shift($para));
+ $line = array_shift($para);
+ if ($line[0] == '>') {
+ $string .= $line.$break;
+ continue;
+ }
+ $list = explode(' ', $line);
$len = 0;
while (count($list)) {
$line = array_shift($list);
@@ -270,25 +275,25 @@ function rc_wordwrap($string, $width=75, $break="\n", $cut=false)
$string .= ($len ? ' ' : '').$line;
$len += (1 + $l);
} else {
- if ($l > $width) {
- if ($cut) {
- $start = 0;
- while ($l) {
- $str = mb_substr($line, $start, $width);
- $strlen = mb_strlen($str);
- $string .= ($len ? $break : '').$str;
- $start += $strlen;
- $l -= $strlen;
- $len = $strlen;
- }
- } else {
- $string .= ($len ? $break : '').$line;
- if (count($list)) $string .= $break;
- $len = 0;
- }
- } else {
+ if ($l > $width) {
+ if ($cut) {
+ $start = 0;
+ while ($l) {
+ $str = mb_substr($line, $start, $width);
+ $strlen = mb_strlen($str);
+ $string .= ($len ? $break : '').$str;
+ $start += $strlen;
+ $l -= $strlen;
+ $len = $strlen;
+ }
+ } else {
+ $string .= ($len ? $break : '').$line;
+ if (count($list)) $string .= $break;
+ $len = 0;
+ }
+ } else {
$string .= $break.$line;
- $len = $l;
+ $len = $l;
}
}
}