summaryrefslogtreecommitdiffstats
path: root/Horde_Imap_Client-upstream.patch
diff options
context:
space:
mode:
Diffstat (limited to 'Horde_Imap_Client-upstream.patch')
-rw-r--r--Horde_Imap_Client-upstream.patch58
1 files changed, 58 insertions, 0 deletions
diff --git a/Horde_Imap_Client-upstream.patch b/Horde_Imap_Client-upstream.patch
new file mode 100644
index 0000000..00ca1e3
--- /dev/null
+++ b/Horde_Imap_Client-upstream.patch
@@ -0,0 +1,58 @@
+From ae1adf9f1549f6bb826b541274949cfd0e77457e Mon Sep 17 00:00:00 2001
+From: Michael M Slusarz <slusarz@horde.org>
+Date: Tue, 13 Jan 2015 03:00:10 -0700
+Subject: [PATCH] [mms] Workaround broken in-memory stream filter handling.
+
+Needed to work on PHP 5.5.21+ and 5.6.5+
+---
+ .../Horde/Imap/Client/Data/Format/Filter/Quote.php | 25 ++++++++++++++++++++--
+ framework/Imap_Client/package.xml | 4 ++--
+ 2 files changed, 25 insertions(+), 4 deletions(-)
+
+diff --git a/framework/Imap_Client/lib/Horde/Imap/Client/Data/Format/Filter/Quote.php b/framework/Imap_Client/lib/Horde/Imap/Client/Data/Format/Filter/Quote.php
+index a3f1788..3964f69 100644
+--- a/framework/Imap_Client/lib/Horde/Imap/Client/Data/Format/Filter/Quote.php
++++ b/framework/Imap_Client/lib/Horde/Imap/Client/Data/Format/Filter/Quote.php
+@@ -23,11 +23,28 @@
+ class Horde_Imap_Client_Data_Format_Filter_Quote extends php_user_filter
+ {
+ /**
++ * Has the initial quote been prepended?
++ *
++ * @var boolean
++ */
++ protected $_prepend;
++
++ /**
++ */
++ public function onCreate()
++ {
++ $this->_prepend = false;
++ }
++
++ /**
+ * @see stream_filter_register()
+ */
+ public function filter($in, $out, &$consumed, $closing)
+ {
+- stream_bucket_append($out, stream_bucket_new($this->stream, '"'));
++ if (!$this->_prepend) {
++ stream_bucket_append($out, stream_bucket_new($this->stream, '"'));
++ $this->_prepend = true;
++ }
+
+ while ($bucket = stream_bucket_make_writeable($in)) {
+ $consumed += $bucket->datalen;
+@@ -35,7 +52,11 @@ public function filter($in, $out, &$consumed, $closing)
+ stream_bucket_append($out, $bucket);
+ }
+
+- stream_bucket_append($out, stream_bucket_new($this->stream, '"'));
++ /* feof() call needed due to:
++ * http://news.php.net/php.internals/80363 */
++ if ($closing || feof($this->stream)) {
++ stream_bucket_append($out, stream_bucket_new($this->stream, '"'));
++ }
+
+ return PSFS_PASS_ON;
+ }