This file is indexed.

/usr/lib/x86_64-linux-gnu/perl5/5.22/File/MMagic/XS.pm is in libfile-mmagic-xs-perl 0.09008-2build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
package File::MMagic::XS;
use strict;
use warnings;
use XSLoader;

our $VERSION;
our $MAGIC_FILE;

BEGIN
{
    $VERSION = '0.09008';
    XSLoader::load(__PACKAGE__, $VERSION);

    require File::Spec;
    foreach my $path (map { File::Spec->catfile($_, qw(File MMagic magic)) } @INC) {
        if (-f $path) {
            $MAGIC_FILE = $path;
            last;
        }
    }
}

sub import
{
    my $class = shift;

    for(my $idx = 0; $idx < @_; $idx++) {
        if ($_[$idx] eq ':compat') {
            *checktype_filename   = \&get_mime;
            *checktype_filehandle = \&fhmagic;
            *checktype_contents   = \&bufmagic;
            *addMagicEntry        = \&add_magic;

            splice(@_, $idx, 1) and last;
        }
    }

    $class->SUPER::import(@_);
}

sub new {
    my ($class, $magic_file) = @_;
    $magic_file ||= $MAGIC_FILE;

    my $self = $class->_create();
    $self->parse_magic_file( $magic_file );
    return $self;
}

1;

__END__

=head1 NAME

File::MMagic::XS - Guess File Type With XS (a la mod_mime_magic)

=head1 SYNOPSIS

  use File::MMagic::XS;

  my $m = File::MMagic::XS->new();
     $m = File::MMagic::XS->new('/etc/magic'); # use external magic file

  my $mime = $m->get_mime($file);

  # use File::MMagic compatible interface
  use File::MMagic::XS qw(:compat);

  my $m = File::MMagic::XS->new();
  $m->checktype_filename($file);

=head1 DESCRIPTION

This is a port of Apache2 mod_mime_magic.c in Perl, written in XS with the
aim of being efficient and fast, especially for applications that need to be 
run for an extended amount of time.

There is a compatibility layer for File::MMagic. you can specify :compat
when importing the module

   use File::MMagic::XS qw(:compat);

And then the following methods are going to be available from File::MMagic::XS:

   checktype_filename
   checktype_filehandle
   checktype_contents
   addMagicEntry

Currently this software is in beta. If you have suggestions/recommendations 
about the interface or anything else, now is your chance to send them!

=head1 METHODS

=head2 new(%args)

Creates a new File::MMagic::XS object.

If you specify the C<file> argument, then File::MMagic::XS will load magic
definitions from the specified file. If unspecified, it will use the magic
file that will be installed under File/MMagic/ directory.

=head2 clone()

Clones an existing File::MMagic::XS object.

=head2 parse_magic_file($file)

Read and parse a magic file, as used by Apache2.

=head2 get_mime($file)

Inspects the file specified by C<$file> and returns a MIME type if possible.
If no matching MIME type is found, then undef is returned.

=head2 fsmagic($file)

Inspects a file and returns a MIME type using inode information only. The
contents of the file is not inspected.

=head2 fhmagic($fh)

Inspects a file handle and returns a mime string by reading the contents
of the file handle.

=head2 ascmagic($file)

Inspects a piece of data (assuming it's not binary data), and attempts to
determine the file type.

=head2 bufmagic($scalar)

Inspects a scalar buffer, and attempts to determine the file type

=head2 add_magic($magic_line)

Adds a new magic entry to the object. The format of $magic_line is the same
as magic(5) file. This allows you to add custom magic entries at run time

=head2 add_file_ext($ext, $mime)

Adds a new file extension to MIME mapping. This is used as a fallback method
to determining MIME types. 

  my $magic = File::MMagic::XS->new;
  $magic->add_file_ext('t', 'text/perl-test');
  my $mime  = $magic->get_mime('t/01-sanity.t');

This will make get_mime() return 'text/perl-test'.

=head2 error()

Returns the last error string.

=head1 PERFORMANCE

This is on my laptop (MacBook, Core 2 Duo/ Mac OS X 10.4.3), tested against
File::MMagic::XS 0.09003

          Rate  perl    xs
  perl   513/s    --  -96%
  xs   12048/s 2249%    --

=head1 SEE ALSO

L<File::MMagic|File::MMagic>

=head1 AUTHOR

Copyright 2005-2007 Daisuke Maki E<lt>daisuke@endeworks.jpE<gt>.

Underlying software: Copyright 1999-2004 The Apache Software Foundation, Copyright (c) 1996-1997 Cisco Systems, Inc., Copyright (c) Ian F. Darwin, 1987. Written by Ian F. Darwin.

=head1 LICENSE

This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.

See http://www.perl.com/perl/misc/Artistic.html

=cut