From cb0f030ae98a51398bd01e3d5075c8e939d944bc Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Sun, 30 Dec 2012 07:09:52 -0500
Subject: [PATCH] Support "multipart/relative" as an alias for "multipart/related" type (#1488886)

---
 CHANGELOG                               |    1 +
 program/lib/Roundcube/rcube_message.php |    6 +++---
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 687fd89..5a594c0 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG Roundcube Webmail
 ===========================
 
+- Support "multipart/relative" as an alias for "multipart/related" type (#1488886)
 - Display PGP/MIME signature attachments as "Digital Signature" (#1488570)
 - Workaround UW-IMAP bug where hierarchy separator is added to the shared folder name (#1488879)
 - Fix version comparisons with -stable suffix (#1488876)
diff --git a/program/lib/Roundcube/rcube_message.php b/program/lib/Roundcube/rcube_message.php
index d450bb4..51b2242 100644
--- a/program/lib/Roundcube/rcube_message.php
+++ b/program/lib/Roundcube/rcube_message.php
@@ -385,7 +385,7 @@
             // get html/plaintext parts, other add to attachments list
             foreach ($structure->parts as $p => $sub_part) {
                 $sub_mimetype = $sub_part->mimetype;
-                $is_multipart = in_array($sub_mimetype, array('multipart/related', 'multipart/mixed', 'multipart/alternative'));
+                $is_multipart = preg_match('/^multipart\/(related|relative|mixed|alternative)/', $sub_mimetype);
 
                 // skip empty text parts
                 if (!$sub_part->size && !$is_multipart) {
@@ -560,7 +560,7 @@
                         continue;
 
                     // part belongs to a related message and is linked
-                    if ($mimetype == 'multipart/related'
+                    if (preg_match('/^multipart\/(related|relative)/', $mimetype)
                         && ($mail_part->headers['content-id'] || $mail_part->headers['content-location'])) {
                         if ($mail_part->headers['content-id'])
                             $mail_part->content_id = preg_replace(array('/^</', '/>$/'), '', $mail_part->headers['content-id']);
@@ -599,7 +599,7 @@
             }
 
             // if this was a related part try to resolve references
-            if ($mimetype == 'multipart/related' && sizeof($this->inline_parts)) {
+            if (preg_match('/^multipart\/(related|relative)/', $mimetype) && sizeof($this->inline_parts)) {
                 $a_replaces = array();
                 $img_regexp = '/^image\/(gif|jpe?g|png|tiff|bmp|svg)/';
 

--
Gitblit v1.9.1