From a43e0c95cb6004ce67c7dc357eb6683851895fcb Mon Sep 17 00:00:00 2001
From: svncommit <devs@roundcube.net>
Date: Thu, 06 Apr 2006 13:35:42 -0400
Subject: [PATCH] Corrected issue forwarding attachments without disposition headers

---
 program/steps/mail/compose.inc |   31 +++++++++++++++++++------------
 1 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/program/steps/mail/compose.inc b/program/steps/mail/compose.inc
index b616f07..5969e05 100644
--- a/program/steps/mail/compose.inc
+++ b/program/steps/mail/compose.inc
@@ -396,19 +396,26 @@
   
     foreach ($FORWARD_MESSAGE['parts'] as $part)
       {
-      if ($part->disposition != 'attachment')
-        continue;
+      if ($part->disposition=='attachment' || $part->disposition=='inline' || $part->headers['content-id'] ||
+               (empty($part->disposition) && ($part->d_parameters['filename'] || $part->ctype_parameters['name'])))
+	{
+        $tmp_path = tempnam($temp_dir, 'rcmAttmnt');
+        if ($fp = fopen($tmp_path, 'w'))
+          {
+          fwrite($fp, $IMAP->mime_decode($part->body, $part->headers['content-transfer-encoding']));
+          fclose($fp);
 
-      $tmp_path = tempnam($temp_dir, 'rcmAttmnt');
-      if ($fp = fopen($tmp_path, 'w'))
-        {
-        fwrite($fp, $IMAP->mime_decode($part->body, $part->headers['content-transfer-encoding']));
-        fclose($fp);
-
-        $_SESSION['compose']['attachments'][] = array('name' => $part->d_parameters['filename'],
-                                                      'mimetype' => $part->ctype_primary . '/' . $part->ctype_secondary,
-                                                      'path' => $tmp_path);
-        }
+          if ($part->d_parameters['filename'])
+            $_SESSION['compose']['attachments'][] = array('name' => $part->d_parameters['filename'],
+                                                          'mimetype' => $part->ctype_primary . '/' . $part->ctype_secondary,
+                                                          'path' => $tmp_path);
+                                   
+          else if ($part->ctype_parameters['name'])
+	    $_SESSION['compose']['attachments'][] = array('name' => $part->ctype_parameters['name'],
+                                                          'mimetype' => $part->ctype_primary . '/' . $part->ctype_secondary,
+                                                          'path' => $tmp_path);
+          }
+	}
       }
 
     $_SESSION['compose']['forward_attachments'] = TRUE;

--
Gitblit v1.9.1