Package: mime-support
Version: 3.44-1
Followup-For: Bug #77985

I attach an updated patch against Lenny's run-mailcap. Is there some
problem getting this into Debian?

By the way, this update changes one thing: it uses the file extension
first, the file, rather than the other way around.

-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)

Kernel: Linux 2.6.26-1-686 (SMP w/1 CPU core)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

mime-support depends on no packages.

Versions of packages mime-support recommends:
ii  file                          4.26-1     Determines file type using "magic"

mime-support suggests no packages.

-- no debconf information
--- /usr/bin/run-mailcap        2008-06-19 14:50:42.000000000 +0200
+++ /usr/local/bin/run-mailcap  2008-11-07 23:45:49.000000000 +0100
@@ -281,8 +281,20 @@
 
 
 
-sub PatternMimetype {
+sub MagicMimetype {
     my($file) = @_;
+    my($typ);
+
+    open(READER, "-|", "file", "-b", "--mime-type", "-e", "tokens", "-L", 
"-z", $file);
+    $typ = <READER>;
+    chomp $typ;
+    return $typ;
+}
+
+
+
+sub PatternMimetype {
+    my($realfile, $file) = @_;
     my($key,$val);
 
     while (($key,$val) = each %patterntypes) {
@@ -299,12 +311,13 @@
 
 
 sub FileMimetype {
-    my($file) = @_;
+    my($realfile, $file) = @_;
     my($ext)  = ($file =~ m!\.([^/\.]+)$!);
 
     my $type;
 
-    $type = ExtensionMimetype($ext) if $ext;
+    $type = ExtensionMimetype($ext) if $ext && $ext ne "";
+    $type = MagicMimetype($realfile) unless $type || !-e $realfile;
     $type = PatternMimetype($file) unless $type;
 
     return $type;
@@ -340,9 +353,9 @@
         if ($code) {
             my $efile = $file;
             $efile =~ s/\.[^\.]+$//;
-            $type = FileMimetype($efile);
+            $type = FileMimetype($file, $efile);
         } else {
-            $type = FileMimetype($file);
+            $type = FileMimetype($file, $file);
         }
         if ($type) {
             push @files,"${type}:${code}:${file}";

Reply via email to