From 42b8a60cf33eb3eb768b11b9c94f79b152f75ca5 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Mon, 19 Nov 2012 05:18:15 -0500
Subject: [PATCH] Fix wrapping of quoted text with format=flowed (#1488177)

---
 CHANGELOG                      |    1 +
 program/include/rcube_mime.php |   10 +++++-----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 2f313d6..cb7cf67 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG Roundcube Webmail
 ===========================
 
+- Fix wrapping of quoted text with format=flowed (#1488177)
 - Select default_addressbook on the list in Address Book (#1488280)
 - Fix so mobile phone has TYPE=CELL in exported vCard (#1488812)
 - Support contacts import from CSV file (#1486399)
diff --git a/program/include/rcube_mime.php b/program/include/rcube_mime.php
index ac3ef9e..48175b4 100644
--- a/program/include/rcube_mime.php
+++ b/program/include/rcube_mime.php
@@ -539,11 +539,11 @@
 
         foreach ($text as $idx => $line) {
             if ($line != '-- ') {
-                if ($line[0] == '>' && preg_match('/^(>+)/', $line, $regs)) {
-                    $prefix = $regs[0];
-                    $level = strlen($prefix);
-                    $line  = rtrim(substr($line, $level));
-                    $line  = $prefix . self::wordwrap($line, $length - $level - 2, " \r\n$prefix ", false, $charset);
+                if ($line[0] == '>' && preg_match('/^(>+ {0,1})+/', $line, $regs)) {
+                    $level  = substr_count($regs[0], '>');
+                    $prefix = str_repeat('>', $level) . ' ';
+                    $line   = rtrim(substr($line, strlen($regs[0])));
+                    $line   = $prefix . self::wordwrap($line, $length - $level - 2, " \r\n$prefix", false, $charset);
                 }
                 else if ($line) {
                     $line = self::wordwrap(rtrim($line), $length - 2, " \r\n", false, $charset);

--
Gitblit v1.9.1