Added myself. :)
[squirrelmail.git] / functions / attachment_common.php
index 871a1344020237fb85e94137a54c937af9c36355..3b9e561a923b7de4fa8baeb079293b0b14a8367a 100644 (file)
@@ -3,11 +3,10 @@
 /**
  * attachment_common.php
  *
- * Copyright (c) 1999-2005 The SquirrelMail Project Team
- * Licensed under the GNU GPL. For full terms see the file COPYING.
- *
  * This file provides the handling of often-used attachment types.
  *
+ * @copyright © 1999-2006 The SquirrelMail Project Team
+ * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  * @version $Id$
  * @package squirrelmail
  * @todo document attachment $type hook arguments
@@ -25,10 +24,19 @@ global $attachment_common_show_images_list;
 $attachment_common_show_images_list = array();
 
 global $FileExtensionToMimeType, $attachment_common_types;
+/**
+ * Mapping of file extensions to mime types
+ *
+ * Used for application/octet-stream mime type detection.
+ * Supported extensions: bmp, gif, htm, html, jpg, jpeg, php,
+ * png, rtf, txt, patch (since 1.4.2), vcf
+ * @global array $FileExtensionToMimeType
+ */
 $FileExtensionToMimeType = array('bmp'  => 'image/x-bitmap',
                                  'gif'  => 'image/gif',
                                  'htm'  => 'text/html',
                                  'html' => 'text/html',
+                                 'jpe'  => 'image/jpeg',
                                  'jpg'  => 'image/jpeg',
                                  'jpeg' => 'image/jpeg',
                                  'php'  => 'text/plain',
@@ -40,15 +48,19 @@ $FileExtensionToMimeType = array('bmp'  => 'image/x-bitmap',
 
 /* Register browser-supported image types */
 sqgetGlobalVar('attachment_common_types', $attachment_common_types);
+// FIXME: do we use $attachment_common_types that is not extracted by sqgetGlobalVar() ?
 if (isset($attachment_common_types)) {
+    // var is used to detect activation of jpeg image types
+    unset($jpeg_done);
     /* Don't run this before being logged in. That may happen
        when plugins include mime.php */
     foreach ($attachment_common_types as $val => $v) {
         if ($val == 'image/gif')
             register_attachment_common('image/gif',       'link_image');
-        elseif (($val == 'image/jpeg' || $val == 'image/pjpeg') and
+        elseif (($val == 'image/jpeg' || $val == 'image/pjpeg' || $val == 'image/jpg') and
                 (!isset($jpeg_done))) {
             $jpeg_done = 1;
+            register_attachment_common('image/jpg',       'link_image');
             register_attachment_common('image/jpeg',      'link_image');
             register_attachment_common('image/pjpeg',     'link_image');
         }
@@ -56,6 +68,25 @@ if (isset($attachment_common_types)) {
             register_attachment_common('image/png',       'link_image');
         elseif ($val == 'image/x-xbitmap')
             register_attachment_common('image/x-xbitmap', 'link_image');
+        elseif ($val == '*/*' || $val == 'image/*') {
+            /**
+             * browser (Firefox) declared that anything is acceptable. 
+             * Lets register some common image types.
+             */
+            if (! isset($jpeg_done)) {
+                $jpeg_done = 1;
+                register_attachment_common('image/jpg',   'link_image');
+                register_attachment_common('image/jpeg',  'link_image');
+                register_attachment_common('image/pjpeg', 'link_image');
+            }
+            register_attachment_common('image/gif',       'link_image');
+            register_attachment_common('image/png',       'link_image');
+            register_attachment_common('image/x-xbitmap', 'link_image');
+            // register_attachment_common('image/x-ico',     'link_image');
+            // register_attachment_common('image/x-icon',    'link_image');
+            // register_attachment_common('image/bmp',       'link_image');
+            // register_attachment_common('image/x-ms-bmp',  'link_image');
+        }
     }
     unset($jpeg_done);
 }