diff options
author | Thomas Bruederli <thomas@roundcube.net> | 2013-10-10 23:03:01 +0200 |
---|---|---|
committer | Thomas Bruederli <thomas@roundcube.net> | 2013-10-10 23:03:01 +0200 |
commit | a01f3b959abd9720ec1b33624cbd31bee4838c2b (patch) | |
tree | 1ad5812457031f386a335d2c7b13f1a646c4eb5d /program/lib | |
parent | e480ca00ba507ea1575bad7ffb824d8d72b666d4 (diff) | |
parent | 4136174517d426dcec74304ce004b4c845f075f5 (diff) |
Merge branch 'master' of github.com:roundcube/roundcubemail
Diffstat (limited to 'program/lib')
-rw-r--r-- | program/lib/Roundcube/rcube_imap_generic.php | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/program/lib/Roundcube/rcube_imap_generic.php b/program/lib/Roundcube/rcube_imap_generic.php index bce4cd4e2..f9a62f010 100644 --- a/program/lib/Roundcube/rcube_imap_generic.php +++ b/program/lib/Roundcube/rcube_imap_generic.php @@ -48,6 +48,8 @@ class rcube_imap_generic '*' => '\\*', ); + public static $mupdate; + private $fp; private $host; private $logged = false; @@ -3156,6 +3158,11 @@ class rcube_imap_generic } foreach ($data as $entry) { + // Workaround cyrus-murder bug, the entry[2] string needs to be escaped + if (self::$mupdate) { + $entry[2] = addcslashes($entry[2], '\\"'); + } + // ANNOTATEMORE drafts before version 08 require quoted parameters $entries[] = sprintf('%s (%s %s)', $this->escape($entry[0], true), $this->escape($entry[1], true), $this->escape($entry[2], true)); @@ -3720,6 +3727,10 @@ class rcube_imap_generic $this->prefs['literal+'] = true; } + if (preg_match('/(\[| )MUPDATE=.*/', $str)) { + self::$mupdate = true; + } + if ($trusted) { $this->capability_readed = true; } |