diff options
Diffstat (limited to 'chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/LWP/MediaTypes.pm')
-rw-r--r-- | chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/LWP/MediaTypes.pm | 299 |
1 files changed, 0 insertions, 299 deletions
diff --git a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/LWP/MediaTypes.pm b/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/LWP/MediaTypes.pm deleted file mode 100644 index 8bdfe709eb3..00000000000 --- a/chromium/third_party/cygwin/lib/perl5/vendor_perl/5.10/LWP/MediaTypes.pm +++ /dev/null @@ -1,299 +0,0 @@ -package LWP::MediaTypes; - -require Exporter; -@ISA = qw(Exporter); -@EXPORT = qw(guess_media_type media_suffix); -@EXPORT_OK = qw(add_type add_encoding read_media_types); -$VERSION = "5.810"; - -require LWP::Debug; -use strict; - -# note: These hashes will also be filled with the entries found in -# the 'media.types' file. - -my %suffixType = ( - 'txt' => 'text/plain', - 'html' => 'text/html', - 'gif' => 'image/gif', - 'jpg' => 'image/jpeg', - 'xml' => 'text/xml', -); - -my %suffixExt = ( - 'text/plain' => 'txt', - 'text/html' => 'html', - 'image/gif' => 'gif', - 'image/jpeg' => 'jpg', - 'text/xml' => 'xml', -); - -#XXX: there should be some way to define this in the media.types files. -my %suffixEncoding = ( - 'Z' => 'compress', - 'gz' => 'gzip', - 'hqx' => 'x-hqx', - 'uu' => 'x-uuencode', - 'z' => 'x-pack', - 'bz2' => 'x-bzip2', -); - -read_media_types(); - - - -sub _dump { - require Data::Dumper; - Data::Dumper->new([\%suffixType, \%suffixExt, \%suffixEncoding], - [qw(*suffixType *suffixExt *suffixEncoding)])->Dump; -} - - -sub guess_media_type -{ - my($file, $header) = @_; - return undef unless defined $file; - - my $fullname; - if (ref($file)) { - # assume URI object - $file = $file->path; - #XXX should handle non http:, file: or ftp: URIs differently - } - else { - $fullname = $file; # enable peek at actual file - } - - my @encoding = (); - my $ct = undef; - for (file_exts($file)) { - # first check this dot part as encoding spec - if (exists $suffixEncoding{$_}) { - unshift(@encoding, $suffixEncoding{$_}); - next; - } - if (exists $suffixEncoding{lc $_}) { - unshift(@encoding, $suffixEncoding{lc $_}); - next; - } - - # check content-type - if (exists $suffixType{$_}) { - $ct = $suffixType{$_}; - last; - } - if (exists $suffixType{lc $_}) { - $ct = $suffixType{lc $_}; - last; - } - - # don't know nothing about this dot part, bail out - last; - } - unless (defined $ct) { - # Take a look at the file - if (defined $fullname) { - $ct = (-T $fullname) ? "text/plain" : "application/octet-stream"; - } - else { - $ct = "application/octet-stream"; - } - } - - if ($header) { - $header->header('Content-Type' => $ct); - $header->header('Content-Encoding' => \@encoding) if @encoding; - } - - wantarray ? ($ct, @encoding) : $ct; -} - - -sub media_suffix { - if (!wantarray && @_ == 1 && $_[0] !~ /\*/) { - return $suffixExt{$_[0]}; - } - my(@type) = @_; - my(@suffix, $ext, $type); - foreach (@type) { - if (s/\*/.*/) { - while(($ext,$type) = each(%suffixType)) { - push(@suffix, $ext) if $type =~ /^$_$/; - } - } - else { - while(($ext,$type) = each(%suffixType)) { - push(@suffix, $ext) if $type eq $_; - } - } - } - wantarray ? @suffix : $suffix[0]; -} - - -sub file_exts -{ - require File::Basename; - my @parts = reverse split(/\./, File::Basename::basename($_[0])); - pop(@parts); # never consider first part - @parts; -} - - -sub add_type -{ - my($type, @exts) = @_; - for my $ext (@exts) { - $ext =~ s/^\.//; - $suffixType{$ext} = $type; - } - $suffixExt{$type} = $exts[0] if @exts; -} - - -sub add_encoding -{ - my($type, @exts) = @_; - for my $ext (@exts) { - $ext =~ s/^\.//; - $suffixEncoding{$ext} = $type; - } -} - - -sub read_media_types -{ - my(@files) = @_; - - local($/, $_) = ("\n", undef); # ensure correct $INPUT_RECORD_SEPARATOR - - my @priv_files = (); - if($^O eq "MacOS") { - push(@priv_files, "$ENV{HOME}:media.types", "$ENV{HOME}:mime.types") - if defined $ENV{HOME}; # Some does not have a home (for instance Win32) - } - else { - push(@priv_files, "$ENV{HOME}/.media.types", "$ENV{HOME}/.mime.types") - if defined $ENV{HOME}; # Some doesn't have a home (for instance Win32) - } - - # Try to locate "media.types" file, and initialize %suffixType from it - my $typefile; - unless (@files) { - if($^O eq "MacOS") { - @files = map {$_."LWP:media.types"} @INC; - } - else { - @files = map {"$_/LWP/media.types"} @INC; - } - push @files, @priv_files; - } - for $typefile (@files) { - local(*TYPE); - open(TYPE, $typefile) || next; - LWP::Debug::debug("Reading media types from $typefile"); - while (<TYPE>) { - next if /^\s*#/; # comment line - next if /^\s*$/; # blank line - s/#.*//; # remove end-of-line comments - my($type, @exts) = split(' ', $_); - add_type($type, @exts); - } - close(TYPE); - } -} - -1; - - -__END__ - -=head1 NAME - -LWP::MediaTypes - guess media type for a file or a URL - -=head1 SYNOPSIS - - use LWP::MediaTypes qw(guess_media_type); - $type = guess_media_type("/tmp/foo.gif"); - -=head1 DESCRIPTION - -This module provides functions for handling media (also known as -MIME) types and encodings. The mapping from file extensions to media -types is defined by the F<media.types> file. If the F<~/.media.types> -file exists it is used instead. -For backwards compatibility we will also look for F<~/.mime.types>. - -The following functions are exported by default: - -=over 4 - -=item guess_media_type( $filename ) - -=item guess_media_type( $uri ) - -=item guess_media_type( $filename_or_uri, $header_to_modify ) - -This function tries to guess media type and encoding for a file or a URI. -It returns the content type, which is a string like C<"text/html">. -In array context it also returns any content encodings applied (in the -order used to encode the file). You can pass a URI object -reference, instead of the file name. - -If the type can not be deduced from looking at the file name, -then guess_media_type() will let the C<-T> Perl operator take a look. -If this works (and C<-T> returns a TRUE value) then we return -I<text/plain> as the type, otherwise we return -I<application/octet-stream> as the type. - -The optional second argument should be a reference to a HTTP::Headers -object or any object that implements the $obj->header method in a -similar way. When it is present the values of the -'Content-Type' and 'Content-Encoding' will be set for this header. - -=item media_suffix( $type, ... ) - -This function will return all suffixes that can be used to denote the -specified media type(s). Wildcard types can be used. In a scalar -context it will return the first suffix found. Examples: - - @suffixes = media_suffix('image/*', 'audio/basic'); - $suffix = media_suffix('text/html'); - -=back - -The following functions are only exported by explicit request: - -=over 4 - -=item add_type( $type, @exts ) - -Associate a list of file extensions with the given media type. -Example: - - add_type("x-world/x-vrml" => qw(wrl vrml)); - -=item add_encoding( $type, @ext ) - -Associate a list of file extensions with an encoding type. -Example: - - add_encoding("x-gzip" => "gz"); - -=item read_media_types( @files ) - -Parse media types files and add the type mappings found there. -Example: - - read_media_types("conf/mime.types"); - -=back - -=head1 COPYRIGHT - -Copyright 1995-1999 Gisle Aas. - -This library is free software; you can redistribute it and/or -modify it under the same terms as Perl itself. - |