hjemli at gmail.com
Wed Jun 22 23:55:40 CEST 2011
On Wed, Jun 22, 2011 at 23:22, Ferry Huberts <mailings at hupie.com> wrote:
> On 06/22/2011 11:01 PM, Lars Hjemli wrote:
>> On Wed, Jun 22, 2011 at 21:10, Ferry Huberts <mailings at hupie.com> wrote:
>>> Instead of hardcoding the mime types cgit knows about, why not read
>>> /etc/mime.types when a mime type is needed?
>> Yeah, an option to specify the path to a (httpd style) mime.types file
>> and then looking into this file when a mimetype lookup is needed (i.e.
>> in ui-plain.c) sounds like a good idea.
> already working on it :-)
> With the httpd style I hope you mean the same format as /etc/mime.types?
I think so. See below...
> My /etc/mime.types is provided by mailcap on F15 and CentOS/RHEL 5
> It's format is very simple:
> - comments are empty lines or lines starting with a #
> - other lines are: mimetype [extension]+
On my box (slackware 13), there's no /etc/mime.types but there's
/etc/httpd/mime.types which seems to match your description . But
`man mime.types` documents a different format used by CUPS, which
seems to be much more complex . We probably don't want to support
the latter variant.
> I propose a new parameter called mime-types with a default of
I don't think the parameter should have a default value - not everyone
agree that plain-view should return the "correct" mimetypes for blobs
(due to security _and_ philosophy), hence the use of hardcoded
"plain/text" and "application/octet-stream" when no (matching)
mimetype-mapping is specified in cgitrc.
Also, since we already have the option 'mimetype.<ext>', I propose the
name 'mimetype-file' for this new option.
 $ head -20 /etc/httpd/mime.types
# This file maps Internet media types to unique file extension(s).
# Although created for httpd, this file is used by many software systems
# and has been placed in the public domain for unlimited redisribution.
# The table below contains both registered and (common) unregistered types.
# A type that has no unique extension can be ignored -- they are listed
# here to guide configurations toward known types and to make it easier to
# identify "new" types. File extensions are also commonly used to indicate
# content languages and encodings, so choose them carefully.
# Internet media types should be registered as described in RFC 4288.
# The registry is at <http://www.iana.org/assignments/media-types/>.
# MIME type Extensions
 $ man mime.types|cat
mime.types(5) Apple Inc. mime.types(5)
mime.types - mime type description file for cups
The mime.types file defines the recognized file types.
Additional file types can be added to mime.types or (preferably) in
additional files in the CUPS configuration directory with the extension
Each line in the mime.types file is a comment, blank, or rule line.
Comment lines start with the # character. Rule lines start with the
MIME type name and are optionally followed by a series of file recogni‐
tion rules that are used to automatically identify print and web files:
super/type rule [ ... ruleN]
The rules may be grouped using parenthesis, joined using "+" for a log‐
ical AND and "," or whitespace for a logical OR, and negated using "!".
Rules take two forms - a filename extension by itself and functions
with test values inside parenthesis. The following functions are avail‐
Pattern match on filename
True if bytes are valid printable ASCII (CR, NL, TAB, BS, 32-126)
True if bytes are printable 8-bit chars (CR, NL, TAB, BS, 32-126,
True if bytes are identical to string
True if a case-insensitive comparison of the bytes is identical
True if byte is identical
True if 16-bit integer is identical
True if 32-bit integer is identical
True if current locale matches string
True if the range contains the string
String constants can be specified inside quotes ("") for strings con‐
taining whitespace and angle brackets (<>) for hexadecimal strings.
classes.conf(5), cupsd(8), cupsd.conf(5), mime.convs(5), print‐
Copyright 2007 by Apple Inc.
12 February 2006 Common UNIX Printing System mime.types(5)
More information about the CGit