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}";