You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdelibs/kio/magic

1066 lines
41 KiB

# Magic data for KMimeMagic (originally for file(1) command)
#
# The format is 4-5 columns:
# Column #1: byte number to begin checking from, ">" indicates continuation
# Column #2: type of data to match
# Column #3: contents of data to match
# Column #4: MIME type of result
#------------------------------------------------------------------------------
# Localstuff: file(1) magic for locally observed files
# Add any locally observed files here.
#------------------------------------------------------------------------------
# end local stuff
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
# audio: file(1) magic for sound formats (see also "iff")
#
# Jan Nicolai Langfeldt (janl@ifi.uio.no), Dan Quinlan (quinlan@yggdrasil.com),
# and others
#
# Sun/NeXT audio data
0 string .snd
>12 belong 1 audio/basic
>12 belong 2 audio/basic
>12 belong 3 audio/basic
>12 belong 4 audio/basic
>12 belong 5 audio/basic
>12 belong 6 audio/basic
>12 belong 7 audio/basic
>12 belong 23 audio/x-adpcm
>12 belong 24 audio/x-adpcm
>12 belong 25 audio/x-adpcm
>12 belong 26 audio/x-adpcm
>12 belong 27 audio/x-adpcm
# DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format
# that uses little-endian encoding and has a different magic number
0 lelong 0x0064732E
>12 lelong 1 audio/x-adpcm
>12 lelong 2 audio/x-adpcm
>12 lelong 3 audio/x-adpcm
>12 lelong 4 audio/x-adpcm
>12 lelong 5 audio/x-adpcm
>12 lelong 6 audio/x-adpcm
>12 lelong 7 audio/x-adpcm
# compressed (G.721 ADPCM)
>12 lelong 23 audio/x-adpcm
# Creative Labs AUDIO stuff
0 string MThd audio/x-midi
#0 string CTMF Creative Music (CMF) data
#0 string SBI SoundBlaster instrument data
#0 string Creative\ Voice\ File Creative Labs voice data
# Real Audio (Magic .ra\0375)
0 belong 0x2e7261fd audio/vnd.rn-realaudio
0 string .RMF application/vnd.rn-realmedia
# OGG files
# For theora at position 87, see bug #109598
0 string OggS application/ogg
>28 string \x01vorbis audio/vorbis
>28 string fLaC audio/x-oggflac
>28 string \x80theora video/x-theora
>87 string \x80theora video/x-theora
>28 string Speex\ \ audio/x-speex
>29 string video video/x-ogm
>29 string FLAC audio/x-oggflac
# FLAC files
0 string fLaC audio/x-flac
# Musepack files
0 string MP+ audio/x-musepack
# C64 PSID sound files
0 string PSID audio/prs.sid
#------------------------------------------------------------------------------
# riff: file(1) magic for RIFF format
# See
#
# http://www.seanet.com/users/matts/riffmci/riffmci.htm
#
# RIFF (little-endian) data
0 string RIFF
# RIFF MIDI format
#>8 string RMID audio/x-midi?
# Microsoft WAVE format (*.wav)
>8 string WAVE audio/x-wav
>>20 leshort 80 audio/mpeg
>>20 leshort 85 audio/x-mp3
# Corel Draw Picture
#>8 string CDRA Corel Draw Picture
# AVI == Audio Video Interleave
>8 string AVI\040 video/x-msvideo
# RIFF (big-endian) data
0 string RIFX
# RIFF MIDI format
#>8 string RMID \b, MIDI
# Microsoft WAVE format (*.wav)
>8 string WAVE audio/x-wav
# Corel Draw Picture
#>8 string CDRA \b, Corel Draw Picture
# AVI == Audio Video Interleave
>8 string AVI\040 video/x-msvideo
#------------------------------------------------------------------------------
# iff: file(1) magic for Interchange File Format (see also "audio" & "images")
#
# Daniel Quinlan (quinlan@yggdrasil.com) -- IFF was designed by Electronic
# Arts for file interchange. It has also been used by Apple, SGI, and
# especially Commodore-Amiga.
#
# IFF files begin with an 8 byte FORM header, followed by a 4 character
# FORM type, which is followed by the first chunk in the FORM.
0 string FORM
>8 string AIFF audio/x-aiff
# AIFF-C audio data
>8 string AIFC audio/x-aiff
# IFF/8SVX audio data
>8 string 8SVX audio/x-aiff
#>8 string SAMP \b, SAMP sampled audio
#>8 string DTYP \b, DTYP datatype description
#>8 string PTCH \b, PTCH binary patch
# image formats
#>8 string ILBMBMHD \b, ILBM interleaved image
# other formats
#>8 string FTXT \b, FTXT formatted text
#------------------------------------------------------------------------------
# KSysV stuff: logfiles and packages belonging to KSysV
#
# KSysV logfiles
0 string KDE\ System\ V\ Init\ Editor text/x-ksysv-log
# KSysV init packages
4 string KSysV
>15 byte >0x01 application/x-ksysv-package
#------------------------------------------------------------------------------
# c-lang: file(1) magic for C programs or various scripts
#
# XPM icons (Greg Roelofs, newt@uchicago.edu)
# ideally should go into "images", but entries below would tag XPM as C source
0 string /*\ XPM image/x-xpm
# this first will upset you if you're a PL/1 shop... (are there any left?)
# in which case rm it; ascmagic will catch real C programs
# C or REXX program text
#0 string /* text/x-c
# C++ program text
#0 string // text/x-c++
#------------------------------------------------------------------------------
# commands: file(1) magic for various shells and interpreters
#
#0 string :\ shell archive or commands for antique kernel text
0 string #!/bin/sh application/x-shellscript
0 string #!\ /bin/sh application/x-shellscript
0 string #!/bin/csh application/x-shellscript
0 string #!\ /bin/csh application/x-shellscript
# korn shell magic, sent by George Wu, gwu@clyde.att.com
0 string #!/bin/ksh application/x-shellscript
0 string #!\ /bin/ksh application/x-shellscript
0 string #!/bin/zsh application/x-shellscript
0 string #!\ /bin/zsh application/x-shellscript
0 string #!/bin/tcsh application/x-shellscript
0 string #!\ /bin/tcsh application/x-shellscript
0 string #!/usr/local/tcsh application/x-shellscript
0 string #!\ /usr/local/tcsh application/x-shellscript
0 string #!/usr/local/bin/tcsh application/x-shellscript
0 string #!\ /usr/local/bin/tcsh application/x-shellscript
# /usr/bin paths for ksh, zsh and tcsh
0 string #!/usr/bin/ksh application/x-shellscript
0 string #!\ /usr/bin/ksh application/x-shellscript
0 string #!/usr/bin/zsh application/x-shellscript
0 string #!\ /usr/bin/zsh application/x-shellscript
0 string #!/usr/bin/tcsh application/x-shellscript
0 string #!\ /usr/bin/tcsh application/x-shellscript
# bash shell magic, from Peter Tobias (tobias@server.et-inf.fho-emden.de)
0 string #!/bin/bash application/x-shellscript
0 string #!\ /bin/bash application/x-shellscript
0 string #!/usr/local/bin/bash application/x-shellscript
0 string #!\ /usr/local/bin/bash application/x-shellscript
0 string #!\ /bin/env\ bash application/x-shellscript
0 string #!/bin/env\ bash application/x-shellscript
0 string #!\ /usr/bin/env\ bash application/x-shellscript
0 string #!/usr/bin/env\ bash application/x-shellscript
#
0 string #!/bin/ash application/x-shellscript
0 string #!\ /bin/ash application/x-shellscript
# zsh/ash/ae/nawk/gawk magic from cameron@cs.unsw.oz.au (Cameron Simpson)
0 string #!/usr/local/bin/zsh application/x-shellscript
0 string #!\ /usr/local/bin/zsh application/x-shellscript
0 string #!/usr/local/bin/ash application/x-shellscript
0 string #!\ /usr/local/bin/ash application/x-shellscript
#0 string #!/usr/local/bin/ae Neil Brown's ae
#0 string #!\ /usr/local/bin/ae Neil Brown's ae
0 string #!/bin/nawk application/x-nawk
0 string #!\ /bin/nawk application/x-nawk
0 string #!/usr/bin/nawk application/x-nawk
0 string #!\ /usr/bin/nawk application/x-nawk
0 string #!/usr/local/bin/nawk application/x-nawk
0 string #!\ /usr/local/bin/nawk application/x-nawk
0 string #!/bin/gawk application/x-gawk
0 string #!\ /bin/gawk application/x-gawk
0 string #!/usr/bin/gawk application/x-gawk
0 string #!\ /usr/bin/gawk application/x-gawk
0 string #!/usr/local/bin/gawk application/x-gawk
0 string #!\ /usr/local/bin/gawk application/x-gawk
#
0 string #!/bin/awk application/x-awk
0 string #!\ /bin/awk application/x-awk
0 string #!/usr/bin/awk application/x-awk
0 string #!\ /usr/bin/awk application/x-awk
#0 string BEGIN application/x-awk
# For Larry Wall's perl language. The ``eval'' line recognizes an
# outrageously clever hack for USG systems.
# Keith Waclena <keith@cerberus.uchicago.edu>
0 string #!/bin/perl application/x-perl
0 string #!\ /bin/perl application/x-perl
0 string eval\ "exec\ /bin/perl application/x-perl
0 string #!/usr/bin/perl application/x-perl
0 string #!\ /usr/bin/perl application/x-perl
0 string eval\ "exec\ /usr/bin/perl application/x-perl
0 string #!/usr/local/bin/perl application/x-perl
0 string #!\ /usr/local/bin/perl application/x-perl
0 string eval\ "exec\ /usr/local/bin/perl application/x-perl
0 string #!/bin/env\ perl application/x-perl
0 string #!\ /bin/env\ perl application/x-perl
0 string #!/usr/bin/env\ perl application/x-perl
0 string #!\ /usr/bin/env\ perl application/x-perl
# python.
#
0 string #!/bin/python application/x-python
0 string #!\ /bin/python application/x-python
0 string eval\ "exec\ /bin/python application/x-python
0 string #!/usr/bin/python application/x-python
0 string #!\ /usr/bin/python application/x-python
0 string eval\ "exec\ /usr/bin/python application/x-python
0 string #!/usr/local/bin/python application/x-python
0 string #!\ /usr/local/bin/python application/x-python
0 string eval\ "exec\ /usr/local/bin/python application/x-python
0 string #!/bin/env\ python application/x-python
0 string #!\ /bin/env\ python application/x-python
0 string #!/usr/bin/env\ python application/x-python
0 string #!\ /usr/bin/env\ python application/x-python
# MAGIC as specified in Python/import.c (1.5 to 2.3.0a)
# 20121 ( YEAR - 1995 ) + MONTH + DAY (little endian followed by "\r\n"
# python 1.5/1.6 byte-compiled
0 belong 0x994e0d0a application/x-python-bytecode
# python 2.0 byte-compiled
0 belong 0x87c60d0a application/x-python-bytecode
# python 2.1 byte-compiled
0 belong 0x2aeb0d0a application/x-python-bytecode
# python 2.2 byte-compiled
0 belong 0x2ded0d0a application/x-python-bytecode
# python 2.3 byte-compiled
0 belong 0x3bf20d0a application/x-python-bytecode
# ruby
0 string #!/bin/env\ ruby application/x-ruby
0 string #!\ /bin/env\ ruby application/x-ruby
0 string #!/usr/bin/env\ ruby application/x-ruby
0 string #!\ /usr/bin/env\ ruby application/x-ruby
#------------------------------------------------------------------------------
# compress: file(1) magic for pure-compression formats (no archives)
#
# compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, whap, etc.
#
# Formats for various forms of compressed data
# Formats for "compress" proper have been moved into "compress.c",
# because it tries to uncompress it to figure out what's inside.
# standard unix compress
0 string \037\235 application/x-compress
# gzip (GNU zip, not to be confused with [Info-ZIP/PKWARE] zip archiver)
0 string \037\213 application/x-gzip
# KOffice documents (gzipped, with an idenfication string in the 'orig filename' header)
>10 string KOffice
>>18 string application/x-kchart\004\006 application/x-kchart
>>18 string application/x-kformula\004\006 application/x-kformula
>>18 string application/x-killustrator\004\006 application/x-killustrator
>>18 string application/x-kontour\004\006 application/x-kontour
>>18 string application/x-kpresenter\004\006 application/x-kpresenter
>>18 string application/x-kspread\004\006 application/x-kspread
>>18 string application/x-kword\004\006 application/x-kword
>>18 string application/x-krita\004\006 application/x-krita
>>18 string application/x-kivio\004\006 application/x-kivio
>>18 string application/x-karbon\004\006 application/x-karbon
# Rosegarden documents (like old KOffice documents, gzipped with id string in header)
>10 string audio/x-rosegarden\000 audio/x-rosegarden
>10 string audio/x-rosegarden-device\000 audio/x-rosegarden-device
#KOffice documents v1.2 and later (may 1 2002) using zip as a wrapper
0 string PK\003\004 application/x-zip
>30 string mimetype
>>38 string application/x-kchart application/x-kchart
>>38 string application/x-kformula application/x-kformula
>>38 string application/x-kontour application/x-kontour
>>38 string application/x-kpresenter application/x-kpresenter
>>38 string application/x-kspread application/x-kspread
>>38 string application/x-krita application/x-krita
>>38 string application/x-kword application/x-kword
>>38 string application/x-kivio application/x-kivio
>>38 string application/x-karbon application/x-karbon
#KOffice documents writen using the kzip rewrite used 'unx' based
#zips; dislocating the mimetype. This was (temporarily) for koffice 1.3 (okt 2003).
0 string PK\003\004
>30 string mimetype
>>55 string application/x-kchart application/x-kchart
>>55 string application/x-kformula application/x-kformula
>>55 string application/x-kontour application/x-kontour
>>55 string application/x-kpresenter application/x-kpresenter
>>55 string application/x-kspread application/x-kspread
>>55 string application/x-krita application/x-krita
>>55 string application/x-kword application/x-kword
>>55 string application/x-kivio application/x-kivio
>>55 string application/x-karbon application/x-karbon
# OpenOffice.org 1.1 puts the mimetype into the header too
0 string PK\003\004
>30 string mimetype
>>38 string application/vnd.sun.xml.calc application/vnd.sun.xml.calc
>>38 string application/vnd.sun.xml.calc.template application/vnd.sun.xml.calc.template
>>38 string application/vnd.sun.xml.draw application/vnd.sun.xml.draw
>>38 string application/vnd.sun.xml.draw.template application/vnd.sun.xml.draw.template
>>38 string application/vnd.sun.xml.impress application/vnd.sun.xml.impress
>>38 string application/vnd.sun.xml.impress.template application/vnd.sun.xml.impress.template
>>38 string application/vnd.sun.xml.writer application/vnd.sun.xml.writer
>>38 string application/vnd.sun.xml.writer.master application/vnd.sun.xml.writer.master
>>38 string application/vnd.sun.xml.writer.template application/vnd.sun.xml.writer.template
>>38 string application/vnd.sun.xml.base application/vnd.sun.xml.base
# OASIS OpenDocument (KOffice >= 1.4 and OpenOffice >= 2.0)
0 string PK\003\004
>30 string mimetype
>>38 string application/vnd.oasis.opendocument.chart application/vnd.oasis.opendocument.chart
>>38 string application/vnd.oasis.opendocument.formula application/vnd.oasis.opendocument.formula
>>38 string application/vnd.oasis.opendocument.graphics application/vnd.oasis.opendocument.graphics
>>38 string application/vnd.oasis.opendocument.graphics-template application/vnd.oasis.opendocument.graphics-template
>>38 string application/vnd.oasis.opendocument.image application/vnd.oasis.opendocument.image
>>38 string application/vnd.oasis.opendocument.presentation application/vnd.oasis.opendocument.presentation
>>38 string application/vnd.oasis.opendocument.presentation-template application/vnd.oasis.opendocument.presentation-template
>>38 string application/vnd.oasis.opendocument.spreadsheet application/vnd.oasis.opendocument.spreadsheet
>>38 string application/vnd.oasis.opendocument.spreadsheet-template application/vnd.oasis.opendocument.spreadsheet-template
>>38 string application/vnd.oasis.opendocument.text application/vnd.oasis.opendocument.text
>>38 string application/vnd.oasis.opendocument.text-template application/vnd.oasis.opendocument.text-template
# BZIP2
0 string BZh application/x-bzip2
# BZIP
0 string BZ application/x-bzip
# According to gzip.h, this is the correct byte order for packed data.
0 string \037\036 application/octet-stream
#
# This magic number is byte-order-independent.
#
0 short 017437 application/octet-stream
# ID Software's pak data archive
0 string PACK application/x-pak
# XXX - why *two* entries for "compacted data", one of which is
# byte-order independent, and one of which is byte-order dependent?
#
# compacted data
0 short 0x1fff application/octet-stream
0 string \377\037 application/octet-stream
# huf output
0 short 0145405 application/octet-stream
# Squeeze and Crunch...
# These numbers were gleaned from the Unix versions of the programs to
# handle these formats. Note that I can only uncrunch, not crunch, and
# I didn't have a crunched file handy, so the crunch number is untested.
# Keith Waclena <keith@cerberus.uchicago.edu>
#0 leshort 0x76FF squeezed data (CP/M, DOS)
#0 leshort 0x76FE crunched data (CP/M, DOS)
# Freeze
#0 string \037\237 Frozen file 2.1
#0 string \037\236 Frozen file 1.0 (or gzip 0.5)
# lzh?
#0 string \037\240 LZH compressed data
#POSIX tar archive
257 string ustar\0 application/x-tar
#GNU tar archive
257 string ustar\040\040\0 application/x-tar
# The SVR4 "cpio(4)" hints that there are additional formats, but they
# are defined as "short"s; I think all the new formats are
# character-header formats and thus are strings, not numbers.
0 short 070707 application/x-cpio
0 short 0143561 application/x-cpio
0 string 070707 application/x-cpio
0 string 070701 application/x-cpio
0 string 070702 application/x-cpio
0 string !<arch>\ndebian application/x-debian-package
0 string =<ar> application/x-archive
0 string !<arch> application/x-archive
#------------------------------------------------------------------------------
#
# RPM: file(1) magic for Red Hat Packages Erik Troan (ewt@redhat.com)
#
0 beshort 0xedab
>2 beshort 0xeedb application/x-rpm
# lzw
0 lelong&0x8080ffff 0x0000081a application/x-arc
# squashed
0 lelong&0x8080ffff 0x0000091a application/x-arc
# uncompressed
0 lelong&0x8080ffff 0x0000021a application/x-arc
# packed
0 lelong&0x8080ffff 0x0000031a application/x-arc
# squeezed
0 lelong&0x8080ffff 0x0000041a application/x-arc
# crunched
0 lelong&0x8080ffff 0x0000061a application/x-arc
# LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu)
2 string -lh0- application/x-lha
2 string -lh1- application/x-lha
2 string -lz4- application/x-lha
2 string -lz5- application/x-lha
# [never seen any but the last; -lh4- reported in comp.compression:]
2 string -lzs- application/x-lha
2 string -lh\40- application/x-lha
2 string -lhd- application/x-lha
2 string -lh2- application/x-lha
2 string -lh3- application/x-lha
2 string -lh4- application/x-lha
2 string -lh5- application/x-lha
2 string -lh6- application/x-lha
2 string -lh7- application/x-lha
# ARJ archiver (jason@jarthur.Claremont.EDU)
0 leshort 0xea60 application/x-arj
# RAR archiver (Greg Roelofs, newt@uchicago.edu)
0 string Rar! application/x-rar
# ZIP archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu)
0 string PK\003\004 application/x-zip
# Alternate ZIP string (amc@arwen.cs.berkeley.edu)
0 string PK00PK\003\004 application/x-zip
# Zoo archiver
20 lelong 0xfdc4a7dc application/x-zoo
# Shell archives
10 string #\ This\ is\ a\ shell\ archive application/x-shellscript
# ACE archive
7 string **ACE** application/x-ace
#------------------------------------------------------------------------------
# frame: file(1) magic for FrameMaker files
#
# This stuff came on a FrameMaker demo tape, most of which is
# copyright, but this file is "published" as witness the following:
#
0 string \<MakerFile application/x-frame
0 string \<MIFFile application/x-frame
0 string \<MakerDictionary application/x-frame
0 string \<MakerScreenFon application/x-frame
0 string \<MML application/x-frame
0 string \<Book application/x-frame
0 string \<Maker application/x-frame
#------------------------------------------------------------------------------
# html: file(1) magic for HTML (HyperText Markup Language) docs
#
# from Daniel Quinlan <quinlan@yggdrasil.com>
#
0 string \<HEAD text/html
0 string \<head text/html
0 string \<BODY text/html
0 string \<body text/html
0 string \<TITLE text/html
0 string \<title text/html
0 string \<html text/html
0 string \<HTML text/html
0 string \<!-- text/html
0 string \<h1 text/html
0 string \<H1 text/html
0 string \<!doctype\ HTML text/html
0 string \<!DOCTYPE\ HTML text/html
0 string \<!doctype\ html text/html
0 string \<!DOCTYPE\ html text/html
# PHP (offset should be "between 0 and 64"...)
0 string \<?php application/x-php
# Docbook
0 string \<!doctype\ book\ public\ "-//OASIS//DTD\ DocBook text/docbook
# Hack: <?xml (with version but no encoding etc.) with a docbook mimetype afterwards.
0 string \<?xml
>23 string \<!doctype\ book\ public\ "-//OASIS//DTD\ DocBook text/docbook
>23 string \<!DOCTYPE\ book\ PUBLIC\ "-//OASIS//DTD\ DocBook text/docbook
>23 string \<!doctype\ book\ public\ "-//KDE//DTD\ DocBook text/docbook
>23 string \<!DOCTYPE\ book\ PUBLIC\ "-//KDE//DTD\ DocBook text/docbook
# Extensible markup language (XML), a subset of SGML
# from Marc Prud'hommeaux (marc@apocalypse.org)
0 string \<?xml text/xml
0 string \<?XML text/xml
0 string \<?Xml text/xml
#-----------------------------------------------------------------------------
# troff stuff
#
0 string .\\" application/x-troff
0 string '\\" application/x-troff
0 string '.\\" application/x-troff
0 string \\" application/x-troff
#------------------------------------------------------------------------------
# images: file(1) magic for image formats (see also "c-lang" for XPM bitmaps)
#
# originally from jef@helios.ee.lbl.gov (Jef Poskanzer),
# additions by janl@ifi.uio.no as well as others. Jan also suggested
# merging several one- and two-line files into here.
#
# XXX - byte order for GIF and TIFF fields?
# [GRR: TIFF allows both byte orders; GIF is probably little-endian]
#
# [GRR: what the hell is this doing in here?]
#0 string xbtoa btoa'd file
# PBMPLUS
# PBM file
0 string P1 image/x-portable-bitmap
# PGM file
0 string P2 image/x-portable-greymap
# PPM file
0 string P3 image/x-portable-pixmap
# PBM "rawbits" file
0 string P4 image/x-portable-bitmap
# PGM "rawbits" file
0 string P5 image/x-portable-greymap
# PPM "rawbits" file
0 string P6 image/x-portable-pixmap
# NIFF (Navy Interchange File Format, a modification of TIFF)
# [GRR: this *must* go before TIFF]
0 string IIN1 image/x-niff
0 string II\x2a\x00
>8 string CR\x02 image/x-raw
# Phase One RAW image, big-endian
32 string MMMMRawT image/x-raw
# Phase One RAW image, little-endian
32 string IIIITwaR image/x-raw
# Canon RAW image
6 string HEAPCCDR image/x-raw
# Canon CR2 image (20D, 1Dmk2, ...)
0 string II*\000\020\000\000\000CR image/x-raw
# Minolta RAW image
0 string \x00MRM image/x-raw
# Fuji RAW image
0 string FUJIFILM image/x-raw
# Rollei RAW image
0 string DSC-Image image/x-raw
# Foveon RAW image
0 string FOVb image/x-raw
# TIFF and friends
# TIFF file, big-endian
0 string MM\x00\x2a image/tiff
# TIFF file, little-endian
0 string II\x2a\x00 image/tiff
# GIF
0 string GIF image/gif
# JPEG images
0 beshort 0xffd8 image/jpeg
# JPEG2000 images
0 beshort 0x0101010C6A50 image/jp2
# PNG images
0 string \x89PNG image/png
# PC bitmaps (OS/2, Windoze BMP files) (Greg Roelofs, newt@uchicago.edu)
0 string BM
#(OS/2 1.x format)
>14 byte 12 image/x-bmp
#(OS/2 2.x format)
>14 byte 64 image/x-bmp
# (Windows 3.x format)
>14 byte 40 image/x-bmp
# PCX images (Nadeem Hasan)
0 byte 10
# Version 2.5
>1 byte 0 image/x-pcx
# Version 2.8 w/ palette
>1 byte 2 image/x-pcx
# Version 2.8 w/o pallete
>1 byte 3 image/x-pcx
# Version 3.0
>1 byte 5 image/x-pcx
#0 string IC icon
#0 string PI pointer
#0 string CI color icon
#0 string CP color pointer
#0 string BA bitmap array
# Gimp's XCF
0 string gimp\ xcf image/x-xcf-gimp
# X11 cursor files
0 string Xcur image/x-xcursor
# EXR images
0 lelong 0x762f3101 image/x-exr
# SGI images (*.rgb, *.rgba, *.bw, *.sgi)
0 beshort 474 image/x-rgb
#------------------------------------------------------------------------------
# lisp: file(1) magic for lisp programs
#
# various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com)
#0 string ;; text/plain
# Emacs 18 - this is always correct, but not very magical.
0 string \012( application/x-elc
# Emacs 19
0 string ;ELC\023\000\000\000 application/x-elc
#------------------------------------------------------------------------------
# mail.news: file(1) magic for mail and news
#
# There are tests to ascmagic.c to cope with mail and news.
0 string Relay-Version: message/rfc822
0 string #!\ rnews message/rfc822
0 string N#!\ rnews message/rfc822
0 string Forward\ to message/rfc822
0 string Pipe\ to message/rfc822
0 string Return-Path: message/rfc822
0 string Return-Path: message/rfc822
0 string Path: message/news
0 string Xref: message/news
0 string From: message/rfc822
0 string From\x20 application/mbox
0 string Article message/news
#0 string BABYL message/x-gnu-rmail
0 string Received: message/rfc822
# TNEF files...
0 lelong 0x223E9F78 application/ms-tnef
#------------------------------------------------------------------------------
# mswrite
0 lelong 0xBE31 application/x-mswrite
# with OLE objects
0 lelong 0xBE32 application/x-mswrite
#------------------------------------------------------------------------------
# msword: file(1) magic for MS Word files
#
# Contributor claims:
# Reversed-engineered MS Word magic numbers
# Except that they are generic MSOffice magic numbers ! (DF)
0 string \376\067\0\043 application/msword
0 string \320\317\021\340\241\261 application/msword
0 string \333\245-\0\0\0 application/msword
2080 string Microsoft\ Word\ 6.0\ Document application/msword
2112 string Microsoft\ Word\ document\ data application/msword
# excel
2080 string Microsoft\ Excel\ 5.0\ Worksheet application/msexcel
#------------------------------------------------------------------------------
# word perfect
0 belong 0xff575053c405 application/wordperfect
1 string WPC application/wordperfect
#------------------------------------------------------------------------------
# printer: file(1) magic for printer-formatted files
#
# PostScript
0 string %! application/postscript
>15 string EPS image/x-eps
0 string \004%! application/postscript
>16 string EPS image/x-eps
# Acrobat
0 string %PDF- application/pdf
0 string \n%PDF- application/pdf
#------------------------------------------------------------------------------
# sc: file(1) magic for "sc" spreadsheet
#
38 string Spreadsheet application/x-sc
#------------------------------------------------------------------------------
# tex: file(1) magic for TeX files
#
# XXX - needs byte-endian stuff (big-endian and little-endian DVI?)
#
# From <conklin@talisman.kaleida.com>
# Although we may know the offset of certain text fields in TeX DVI
# and font files, we can't use them reliably because they are not
# zero terminated. [but we do anyway, christos]
0 string \367\002 application/x-dvi
#0 string \367\203 TeX generic font data
#0 string \367\131 TeX packed font data
#0 string \367\312 TeX virtual font data
# Maybe we should have a mimetype like x-tex-log, but in any case
# text/plain is better than nothing. (David Faure)
0 string This\ is\ TeX, text/plain
0 string This\ is\ METAFONT, text/plain
# XXX promoted from tex so that *.tfm is not mis-identified as mc68k file.
# There is no way to detect TeX Font Metric (*.tfm) files without
# breaking them apart and reading the data. The following patterns
# match most *.tfm files generated by METAFONT or afm2tfm.
2 string \000\021 application/x-tex-tfm
>33 string >\0 application/x-tex-tfm
2 string \000\022 application/x-tex-tfm
>33 string >\0 application/x-tex-tfm
# Texinfo and GNU Info, from Daniel Quinlan (quinlan@yggdrasil.com)
#0 string \\input\ texinfo Texinfo source text
#0 string This\ is\ Info\ file GNU Info text
# correct TeX magic for Linux (and maybe more)
# from Peter Tobias (tobias@server.et-inf.fho-emden.de)
#
0 leshort 0x02f7 application/x-dvi
# RTF - Rich Text Format
0 string {\\rtf text/rtf
# UTF16 (UTF16 docs are not MP3s - see the next audio/x-mp3 check :))
0 beshort 0xfffe text/plain
#------------------------------------------------------------------------------
# animation: file(1) magic for animation/movie formats
#
# animation formats
# MPEG, FLI, DL originally from vax@ccwf.cc.utexas.edu (VaX#n8)
# FLC, SGI, Apple originally from Daniel Quinlan (quinlan@yggdrasil.com)
# MPEG animation format
0 belong 0x000001b3 video/mpeg
0 belong 0x000001ba video/mpeg
# MPEG 1.0 audio (layer III,II,I)
0 beshort&0xfff8 0xfff8
>0 beshort&0x0006 0x0002 audio/x-mp3
>0 beshort&0x0006 0x0004 audio/x-mp2
>0 beshort&0x0006 0x0006 audio/mpeg
# MPEG 2.0 audio (layer III,II,I)
0 beshort&0xfff8 0xfff0
>0 beshort&0x0006 0x0002 audio/x-mp3
>0 beshort&0x0006 0x0004 audio/x-mp2
>0 beshort&0x0006 0x0006 audio/mpeg
# MPEG 2.5 audio (layer III,II,I)
0 beshort&0xfff8 0xff80
>0 beshort&0x0006 0x0002 audio/x-mp3
>0 beshort&0x0006 0x0004 audio/x-mp2
>0 beshort&0x0006 0x0006 audio/mpeg
# MPEG-4 audio
16 string M4A audio/mp4
# FLI animation format
0 leshort 0xAF11 video/x-flic
# FLC animation format
0 leshort 0xAF12 video/x-flic
# SGI and Apple formats
0 string MOVI video/sgi
4 string moov video/quicktime
4 string mdat video/quicktime
4 string wide video/quicktime
4 string free video/quicktime
# DIF digital video file format <mpruett@sgi.com>
#0 belong&0xffffff00 0x1f070000 DIF
# Microsoft Advanced Streaming Format (ASF) <mpruett@sgi.com>
0 belong 0x3026b275 video/x-ms-asf
# MNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
0 string \x8aMNG video/x-mng
# JNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
#0 string \x8bJNG JNG video data,
# Vivo video (Wolfram Kleff)
#3 string \x0D\x0AVersion:Vivo Vivo video data
# VRML (Virtual Reality Modelling Language)
#0 string/b #VRML\ V1.0\ ascii VRML 1 file
#0 string/b #VRML\ V2.0\ utf8 ISO/IEC 14772 VRML 97 file
#------------------------------------------------------------------------------
# Databases
#
# GDBM magic numbers
# Will be maintained as part of the GDBM distribution in the future.
# <downsj@teeny.org>
0 belong 0x13579ace application/x-gdbm
0 lelong 0x13579ace application/x-gdbm
0 string GDBM application/x-gdbm
#
0 belong 0x061561 application/x-dbm
#
# Executables
#
0 string \177ELF
>4 byte 0
>4 byte 1
>4 byte 2
>5 byte 0
>5 byte 1
>>16 leshort 0
>>16 leshort 1 application/x-object
>>16 leshort 2 application/x-executable
>>16 leshort 3 application/x-sharedlib
>>16 leshort 4 application/x-core
>5 byte 2
>>16 beshort 0
>>16 beshort 1 application/x-object
>>16 beshort 2 application/x-executable
>>16 beshort 3 application/x-sharedlib
>>16 beshort 4 application/x-core
# MS Access database (95 or newer, i.e. MS Jet 3.0 or newer)
4 string Standard\ Jet\ DB application/x-msaccess
#
# DOS
0 string MZ application/x-msdos-program
#
# KDE desktop file
0 string [Desktop\ Entry] application/x-desktop
0 string [Desktop\ Action application/x-desktop
0 string [KDE\ Desktop\ Entry] application/x-desktop
0 string \#\ Config\ File application/x-desktop
0 string \#\ KDE\ Config\ File application/x-desktop
# xmcd database file for kscd
0 string \#\ xmcd text/xmcd
# SQLite database files
0 string **\ This\ file\ contains\ an\ SQLite application/x-sqlite2
0 string SQLite\ format\ 3 application/x-sqlite3
#------------------------------------------------------------------------------
# Java
0 short 0xcafe
>2 short 0xbabe application/x-java
# vcard / vcalendar
0 string BEGIN:VCALENDAR text/x-vcalendar
0 string begin:vcalendar text/x-vcalendar
0 string BEGIN:VCARD text/x-vcard
0 string begin:vcard text/x-vcard
# LDIF / LDAP interchange format
0 string dn:\ cn= text/x-ldif
# applix
#------------------------------------------------------------------------------
# applix: file(1) magic for Applixware
# From: Peter Soos <sp@osb.hu>
#
0 string *BEGIN
>7 string WORDS application/x-applixword
>7 string GRAPHICS application/x-applixgraphics
#>7 string RASTER application/x-applix
>7 string SPREADSHEETS application/x-applixspread
#>7 string MACRO application/x-applix
#>7 string BUILDER application/x-applix
#------------------------------------------------------------------------------
# diff: file(1) magic for diff(1) output
#
0 string diff\ text/x-diff
0 string ***\ text/x-diff
0 string Only\ in\ text/x-diff
0 string Common\ subdirectories:\ text/x-diff
#------------------------------------------------------------------------------
# flash: file(1) magic for Macromedia Flash file format
#
# See
#
# http://www.macromedia.com/software/flash/open/
#
0 string FWS application/x-shockwave-flash
#------------------------------------------------------------------------------
# DjVu (Leon Bottou <leonb@research.att.com>):
#
4 string FORM
>12 string DJVU image/x-djvu
>12 string DJVM image/x-djvu
>12 string BM44 image/x-djvu
>12 string PM44 image/x-djvu
#------------------------------------------------------------------------------
# adi: file(1) magic for ADi's objects
# From Gregory McGarry <g.mcgarry@ieee.org>
#
0 leshort 0x521c application/x-executable # COFF DSP21k
>18 lelong &02 application/x-executable # executable,
>18 lelong ^02
>>18 lelong &01 application/x-executable # static object,
>>18 lelong ^01 application/x-executable # relocatable object,
>18 lelong &010 application/x-executable # stripped
>18 lelong ^010 application/x-executable # not stripped
#------------------------------------------------------------------------------
# alliant: file(1) magic for Alliant FX series a.out files
#
# If the FX series is the one that had a processor with a 68K-derived
# instruction set, the "short" should probably become "beshort" and the
# "long" should probably become "belong".
# If it's the i860-based one, they should probably become either the
# big-endian or little-endian versions, depending on the mode they ran
# the 860 in....
#
0 short 0420 application/x-executable # 0420 Alliant virtual executable
>2 short &0x0020 application/x-sharedlib # common library
>16 long >0 application/x-sharedlib # not stripped
0 short 0421 application/x-executable # 0421 Alliant compact executable
>2 short &0x0020 application/x-sharedlib # common library
>16 long >0 application/x-sharedlib # not stripped
#-----------------------------------------------------------
# alpha architecture description
#
0 leshort 0603 application/x-executable # COFF format alpha
>22 leshort&030000 !020000 application/x-executable # executable
>24 leshort 0410 application/x-executable # pure
>24 leshort 0413 application/x-executable # paged
>22 leshort&020000 !0 application/x-executable # dynamically linked
>16 lelong !0 application/x-executable # not stripped
>16 lelong 0 application/x-executable # stripped
>22 leshort&030000 020000 application/x-sharedlib # shared library
>24 leshort 0407 application/x-executable # object
# Basic recognition of Digital UNIX core dumps - Mike Bremford <mike@opac.bl.uk>
#
# The actual magic number is just "Core", followed by a 2-byte version
# number; however, treating any file that begins with "Core" as a Digital
# UNIX core dump file may produce too many false hits, so we include one
# byte of the version number as well; DU 5.0 appears only to be up to
# version 2.
#
0 string Core\001 application/x-core # Alpha COFF format core dump (Digital UNIX)
0 string Core\002 application/x-core # Alpha COFF format core dump (Digital UNIX)
#------------------------------------------------------------------------------
# Win95 InternetShortcut (URL): (Helge Deller <deller@gmx.de>):
#
1 string InternetShortcut application/x-mswinurl
#------------------------------------------------------------------------------
# amigaos: file(1) magic for AmigaOS binary formats:
#
# From ignatios@cs.uni-bonn.de (Ignatios Souvatzis)
# Some formats are still missing: AmigaOS special IFF's, e.g.: FORM....CTLG
# (the others should be separate, anyway)
#
0 belong 0x000003f3 application/x-executable # AmigaOS loadseg()ble executable/binary
0 belong 0x000003e7 application/x-sharedlib # AmigaOS object/library data
0 string %TGIF application/x-tgif
0 string #FIG application/x-xfig
0 string #LyX\ 1 application/x-lyx
#------------------------------------------------------------------------------
# VRML
0 string #VRML model/vrml
#------------------------------------------------------------------------------
# KWallet file
0 string KWALLET\012\015\000\015\012 application/x-kde-wallet
#------------------------------------------------------------------------------
# ICA Client configuration files
0 string [WFClient] application/x-ica
1 string [WFClient] application/x-ica
0 string [ApplicationServers] application/x-ica
1 string [ApplicationServers] application/x-ica
0 string [ICA application/x-ica
1 string [ICA application/x-ica
0 string [Program\ Neighborhood application/x-ica
1 string [Program\ Neighborhood application/x-ica
#------------------------------------------------------------------------------
# CD image files (ISO is imported from file 4.07)
32769 string CD001 application/x-iso
32633 string CD001 application/x-iso
# CDR-wins bin-with-cue files
#0 belong 0x00FFFFFF application/x-cuebin
# FITS (see RFC 4047)
# The SIMPLE keyword is always on the first line, NAXIS on the third.
# Lines are supposed to be exactly 80 characters long.
# FITS files can be different but then they are not application/fits anymore.
0 string SIMPLE\ \ =\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ T application/fits
>160 string NAXIS\ \ \ =\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 2 image/fits
>160 string NAXIS\ \ \ =\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 3 image/fits
# kate: space-indent off; replace-tabs off;