# mime.types(5)

## Name

mime.types - mime type description file for cups

## Description

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 ".types".

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 recognition rules that are used to automatically identify print and web files:

        super/type rule [ ... ruleN]

MIME type names are case-insensitive and are sorted in ascending alphanumeric order for the purposes of matching. See the "TYPE MATCHING AND PRIORITY" section for more information.

The rules may be grouped using parenthesis, joined using "+" for a logical AND and "," or whitespace for a logical OR, and negated using "!".

## Rules

Rules take two forms - a filename extension by itself and functions with test values inside parenthesis. The following functions are available:

match("pattern")
  Pattern match on filename
ascii(offset,length)
  True if bytes are valid printable ASCII (CR, NL, TAB, BS, 32-126)
printable(offset,length)
  True if bytes are printable 8-bit chars (CR, NL, TAB, BS, 32-126, 128-254)
priority(number)
  Specifies the relative priority of this MIME type. The default priority is 100. Larger values have higher priority while smaller values have lower priority.
string(offset,"string")
  True if bytes are identical to string
istring(offset,"string")
  True if a case-insensitive comparison of the bytes is identical
char(offset,value)
  True if byte is identical
short(offset,value)
  True if 16-bit integer is identical
int(offset,value)
  True if 32-bit integer is identical
locale("string")
  True if current locale matches string
contains(offset,range,"string")
  True if the range contains the string

## String Constants

String constants can be specified inside quotes ("") for strings containing whitespace and angle brackets (<>) for hexadecimal strings.

## Type Matching And Priority

When CUPS needs to determine the MIME type of a given file, it checks every MIME type defined in the .types files. When two types have the same matching rules, the type chosen will depend on the type name and priority, with higher- priority types being used over lower-priority ones. If the types have the same priority, the type names are sorted alphanumerically in ascending order and the first type is chosen.

For example, if two types "text/bar" and "text/foo" are defined as matching the extension "doc", normally the type "text/bar" will be chosen since its name is alphanumerically smaller than "text/foo". However, if "text/foo" also defines a higher priority than "text/bar", "text/foo" will be chosen instead.

## See Also

classes.conf(5), cupsd(8), cupsd.conf(5), mime.convs(5), printers.conf(5),
http://localhost:631/help

## Copyright

Copyright 2007-2012 by Apple Inc.