From e4e38e02cfe626ffeda26b1d4a08df7a6cd3997d Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Wed, 02 Feb 2011 14:41:41 -0500
Subject: [PATCH] Fix inconsistency in de_DE localization (#1487749)

---
 program/include/rcube_message.php |   23 ++++++++++++++++++++---
 1 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/program/include/rcube_message.php b/program/include/rcube_message.php
index 89d65eb..af91b80 100644
--- a/program/include/rcube_message.php
+++ b/program/include/rcube_message.php
@@ -5,7 +5,7 @@
  | program/include/rcube_message.php                                     |
  |                                                                       |
  | This file is part of the Roundcube Webmail client                     |
- | Copyright (C) 2008-2010, Roundcube Dev. - Switzerland                 |
+ | Copyright (C) 2008-2010, The Roundcube Dev Team                       |
  | Licensed under the GNU GPL                                            |
  |                                                                       |
  | PURPOSE:                                                              |
@@ -411,6 +411,10 @@
                     if ($plugin['abort'])
                         continue;
 
+                    if ($part_mimetype == 'text/html') {
+                        $got_html_part = true;
+                    }
+
                     $mail_part = $plugin['structure'];
                     list($primary_type, $secondary_type) = explode('/', $plugin['mimetype']);
 
@@ -422,7 +426,7 @@
                         $mail_part->type = 'content';
                         $this->parts[] = $mail_part;
                     }
-          
+
                     // list as attachment as well
                     if (!empty($mail_part->filename))
                         $this->attachments[] = $mail_part;
@@ -469,6 +473,10 @@
                     // attachment encapsulated within message/rfc822 part needs further decoding (#1486743)
                     else if ($part_orig_mimetype == 'message/rfc822') {
                         $this->parse_structure($mail_part, true);
+
+                        // list as attachment as well (mostly .eml)
+                        if (!empty($mail_part->filename))
+                            $this->attachments[] = $mail_part;
                     }
                     // is a regular attachment (content-type name regexp according to RFC4288.4.2)
                     else if (preg_match('/^[a-z0-9!#$&.+^_-]+\/[a-z0-9!#$&.+^_-]+$/i', $part_mimetype)) {
@@ -487,8 +495,17 @@
                     $part_url = $this->get_part_url($inline_object->mime_id);
                     if ($inline_object->content_id)
                         $a_replaces['cid:'.$inline_object->content_id] = $part_url;
-                    if ($inline_object->content_location)
+                    if ($inline_object->content_location) {
                         $a_replaces[$inline_object->content_location] = $part_url;
+                    }
+                    // MS Outlook sends sometimes non-related attachments as related
+                    // In this case multipart/related message has only one text part
+                    // We'll add all such attachments to the attachments list
+                    if (!isset($got_html_part) && empty($inline_object->content_id)
+                        && !empty($inline_object->filename)
+                    ) {
+                        $this->attachments[] = $inline_object;
+                    }
                 }
 
                 // add replace array to each content part

--
Gitblit v1.9.1