Index: filefield.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/filefield/filefield.module,v
retrieving revision 1.205
diff -u -r1.205 filefield.module
--- filefield.module	25 Jul 2009 00:34:57 -0000	1.205
+++ filefield.module	25 Jul 2009 02:56:59 -0000
@@ -195,8 +195,16 @@
   // Access is granted.
   $name = mime_header_encode($file->filename);
   $type = mime_header_encode($file->filemime);
-  // Serve images and text inline for display rather than download.
-  $disposition = (ereg('^(text/|image/)', $file->filemime) || ereg('flash$', $file->filemime)) ? 'inline' : 'attachment';
+  // By default, serve images, text, and flash content for display rather than
+  // download. Or if variable 'filefield_inline_types' is set, use its patterns.
+  $inline_types = variable_get('filefield_inline_types', array('^text/', '^image/', 'flash$'));
+  $disposition = 'attachment';
+  foreach ($inline_types as $inline_type) {
+    // Exclamation marks are used as delimiters to avoid escaping slashes.
+    if (preg_match('!' . $inline_type . '!', $file->filemime)) {
+      $disposition = 'inline';
+    }
+  }
   return array(
     'Content-Type: ' . $type . '; name="' . $name . '"',
     'Content-Length: ' . $file->filesize,
