From f19d86b96da4a73efa88042dd0bcf0da1a214762 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Tue, 15 Jun 2010 02:53:28 -0400
Subject: [PATCH] - Fix attachment filenames broken with TNEF decoder using long filenames (#1486795) - Use tnef_decoder class from Horde

---
 program/include/rcube_message.php |   15 +++++++--------
 1 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/program/include/rcube_message.php b/program/include/rcube_message.php
index e51ab26..c3753b2 100644
--- a/program/include/rcube_message.php
+++ b/program/include/rcube_message.php
@@ -500,7 +500,7 @@
     {
         if (strlen($part->mime_id))
             $this->mime_parts[$part->mime_id] = &$part;
-      
+
         if (is_array($part->parts))
             for ($i=0; $i<count($part->parts); $i++)
                 $this->get_mime_numbers($part->parts[$i]);
@@ -518,18 +518,17 @@
         if (!isset($part->body))
             $part->body = $this->imap->get_message_part($this->uid, $part->mime_id, $part);
 
-        require_once('lib/tnef_decoder.inc');
-
         $parts = array();
-        $tnef_arr = tnef_decode($part->body);
+        $tnef = new tnef_decoder;
+        $tnef_arr = $tnef->decompress($part->body);
 
         foreach ($tnef_arr as $pid => $winatt) {
             $tpart = new rcube_message_part;
 
             $tpart->filename        = trim($winatt['name']);
             $tpart->encoding        = 'stream';
-            $tpart->ctype_primary   = trim(strtolower($winatt['type0']));
-            $tpart->ctype_secondary = trim(strtolower($winatt['type1']));
+            $tpart->ctype_primary   = trim(strtolower($winatt['type']));
+            $tpart->ctype_secondary = trim(strtolower($winatt['subtype']));
             $tpart->mimetype        = $tpart->ctype_primary . '/' . $tpart->ctype_secondary;
             $tpart->mime_id         = 'winmail.' . $part->mime_id . '.' . $pid;
             $tpart->size            = $winatt['size'];
@@ -538,7 +537,7 @@
             $parts[] = $tpart;
             unset($tnef_arr[$pid]);
         }
-        
+
         return $parts;
     }
 
@@ -584,7 +583,7 @@
                 unset($matches[$pid]);
             }
         }
-        
+
         return $parts;
     }
 

--
Gitblit v1.9.1