summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharles Plessy <plessy@debian.org>2014-05-06 14:20:38 +0900
committerCharles Plessy <plessy@debian.org>2014-05-06 14:20:38 +0900
commit519acae6c39196102af17aede5ff005f2adb71a7 (patch)
treef82c730af6fb2458e7754bb7176c4df9df2f4698
parent642d6a93e91a57d066c11103f0bbe77ff27436cc (diff)
Call ExtensionMimetype and PatternMimetype directly instead of through FileMimetype.
This will be useful to easily add MagicMimetype and remove PatternMimetype later.
-rwxr-xr-xrun-mailcap43
1 files changed, 15 insertions, 28 deletions
diff --git a/run-mailcap b/run-mailcap
index bf2f815..36dd965 100755
--- a/run-mailcap
+++ b/run-mailcap
@@ -277,20 +277,20 @@ sub EncodeFile {
sub ExtensionMimetype {
- my($ext) = @_;
+ my($file) = @_;
+ my($ext) = ($file =~ m!\.([^/\.]+)$!);
my($typ);
-
- unless ($donemimetypes) {
- ReadMimetypes($usrmimetyp);
- ReadMimetypes($locmimetyp);
- ReadMimetypes($shrmimetyp);
- ReadMimetypes($etcmimetyp);
- $donemimetypes = 1;
+ if ($ext) {
+ unless ($donemimetypes) {
+ ReadMimetypes($usrmimetyp);
+ ReadMimetypes($locmimetyp);
+ ReadMimetypes($shrmimetyp);
+ ReadMimetypes($etcmimetyp);
+ $donemimetypes = 1;
+ }
+ $typ = $mimetypes{lc($ext)};
+ print STDERR " - extension \"$ext\" maps to mime-type \"$typ\"\n" if $debug;
}
-
- $typ = $mimetypes{lc($ext)};
-
- print STDERR " - extension \"$ext\" maps to mime-type \"$typ\"\n" if $debug;
return $typ;
}
@@ -313,20 +313,6 @@ sub PatternMimetype {
-sub FileMimetype {
- my($file) = @_;
- my($ext) = ($file =~ m!\.([^/\.]+)$!);
-
- my $type;
-
- $type = ExtensionMimetype($ext) if $ext;
- $type = PatternMimetype($file) unless $type;
-
- return $type;
-}
-
-
-
@files = ();
foreach (@ARGV) {
print STDERR " - parsing parameter \"$_\"\n" if $debug;
@@ -355,10 +341,11 @@ foreach (@ARGV) {
if ($code) {
my $efile = $file;
$efile =~ s/\.[^\.]+$//;
- $type = FileMimetype($efile);
+ $type = ExtensionMimetype($efile);
} else {
- $type = FileMimetype($file);
+ $type = ExtensionMimetype($file);
}
+ $type = PatternMimetype($file) unless $type;
if ($type) {
push @files,"${type}:${code}:${file}";
} else {