Skip to content

Commit e2b86d9

Browse files
committed
Create magic
1 parent b0bd38e commit e2b86d9

File tree

1 file changed

+385
-0
lines changed

1 file changed

+385
-0
lines changed

webserver/original/magic

Lines changed: 385 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,385 @@
1+
# Magic data for mod_mime_magic Apache module (originally for file(1) command)
2+
# The module is described in /manual/mod/mod_mime_magic.html
3+
#
4+
# The format is 4-5 columns:
5+
# Column #1: byte number to begin checking from, ">" indicates continuation
6+
# Column #2: type of data to match
7+
# Column #3: contents of data to match
8+
# Column #4: MIME type of result
9+
# Column #5: MIME encoding of result (optional)
10+
11+
#------------------------------------------------------------------------------
12+
# Localstuff: file(1) magic for locally observed files
13+
# Add any locally observed files here.
14+
15+
#------------------------------------------------------------------------------
16+
# end local stuff
17+
#------------------------------------------------------------------------------
18+
19+
#------------------------------------------------------------------------------
20+
# Java
21+
22+
0 short 0xcafe
23+
>2 short 0xbabe application/java
24+
25+
#------------------------------------------------------------------------------
26+
# audio: file(1) magic for sound formats
27+
#
28+
# from Jan Nicolai Langfeldt <janl@ifi.uio.no>,
29+
#
30+
31+
# Sun/NeXT audio data
32+
0 string .snd
33+
>12 belong 1 audio/basic
34+
>12 belong 2 audio/basic
35+
>12 belong 3 audio/basic
36+
>12 belong 4 audio/basic
37+
>12 belong 5 audio/basic
38+
>12 belong 6 audio/basic
39+
>12 belong 7 audio/basic
40+
41+
>12 belong 23 audio/x-adpcm
42+
43+
# DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format
44+
# that uses little-endian encoding and has a different magic number
45+
# (0x0064732E in little-endian encoding).
46+
0 lelong 0x0064732E
47+
>12 lelong 1 audio/x-dec-basic
48+
>12 lelong 2 audio/x-dec-basic
49+
>12 lelong 3 audio/x-dec-basic
50+
>12 lelong 4 audio/x-dec-basic
51+
>12 lelong 5 audio/x-dec-basic
52+
>12 lelong 6 audio/x-dec-basic
53+
>12 lelong 7 audio/x-dec-basic
54+
# compressed (G.721 ADPCM)
55+
>12 lelong 23 audio/x-dec-adpcm
56+
57+
# Bytes 0-3 of AIFF, AIFF-C, & 8SVX audio files are "FORM"
58+
# AIFF audio data
59+
8 string AIFF audio/x-aiff
60+
# AIFF-C audio data
61+
8 string AIFC audio/x-aiff
62+
# IFF/8SVX audio data
63+
8 string 8SVX audio/x-aiff
64+
65+
# Creative Labs AUDIO stuff
66+
# Standard MIDI data
67+
0 string MThd audio/unknown
68+
#>9 byte >0 (format %d)
69+
#>11 byte >1 using %d channels
70+
# Creative Music (CMF) data
71+
0 string CTMF audio/unknown
72+
# SoundBlaster instrument data
73+
0 string SBI audio/unknown
74+
# Creative Labs voice data
75+
0 string Creative\ Voice\ File audio/unknown
76+
## is this next line right? it came this way...
77+
#>19 byte 0x1A
78+
#>23 byte >0 - version %d
79+
#>22 byte >0 \b.%d
80+
81+
# [GRR 950115: is this also Creative Labs? Guessing that first line
82+
# should be string instead of unknown-endian long...]
83+
#0 long 0x4e54524b MultiTrack sound data
84+
#0 string NTRK MultiTrack sound data
85+
#>4 long x - version %ld
86+
87+
# Microsoft WAVE format (*.wav)
88+
# [GRR 950115: probably all of the shorts and longs should be leshort/lelong]
89+
# Microsoft RIFF
90+
0 string RIFF
91+
# - WAVE format
92+
>8 string WAVE audio/x-wav
93+
# MPEG audio.
94+
0 beshort&0xfff0 0xfff0 audio/mpeg
95+
# C64 SID Music files, from Linus Walleij <triad@df.lth.se>
96+
0 string PSID audio/prs.sid
97+
98+
#------------------------------------------------------------------------------
99+
# c-lang: file(1) magic for C programs or various scripts
100+
#
101+
102+
# XPM icons (Greg Roelofs, newt@uchicago.edu)
103+
# ideally should go into "images", but entries below would tag XPM as C source
104+
0 string /*\ XPM image/x-xbm 7bit
105+
106+
# this first will upset you if you're a PL/1 shop... (are there any left?)
107+
# in which case rm it; ascmagic will catch real C programs
108+
# C or REXX program text
109+
0 string /* text/plain
110+
# C++ program text
111+
0 string // text/plain
112+
113+
#------------------------------------------------------------------------------
114+
# compress: file(1) magic for pure-compression formats (no archives)
115+
#
116+
# compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, whap, etc.
117+
#
118+
# Formats for various forms of compressed data
119+
# Formats for "compress" proper have been moved into "compress.c",
120+
# because it tries to uncompress it to figure out what's inside.
121+
122+
# standard unix compress
123+
0 string \037\235 application/octet-stream x-compress
124+
125+
# gzip (GNU zip, not to be confused with [Info-ZIP/PKWARE] zip archiver)
126+
0 string \037\213 application/octet-stream x-gzip
127+
128+
# According to gzip.h, this is the correct byte order for packed data.
129+
0 string \037\036 application/octet-stream
130+
#
131+
# This magic number is byte-order-independent.
132+
#
133+
0 short 017437 application/octet-stream
134+
135+
# XXX - why *two* entries for "compacted data", one of which is
136+
# byte-order independent, and one of which is byte-order dependent?
137+
#
138+
# compacted data
139+
0 short 0x1fff application/octet-stream
140+
0 string \377\037 application/octet-stream
141+
# huf output
142+
0 short 0145405 application/octet-stream
143+
144+
# Squeeze and Crunch...
145+
# These numbers were gleaned from the Unix versions of the programs to
146+
# handle these formats. Note that I can only uncrunch, not crunch, and
147+
# I didn't have a crunched file handy, so the crunch number is untested.
148+
# Keith Waclena <keith@cerberus.uchicago.edu>
149+
#0 leshort 0x76FF squeezed data (CP/M, DOS)
150+
#0 leshort 0x76FE crunched data (CP/M, DOS)
151+
152+
# Freeze
153+
#0 string \037\237 Frozen file 2.1
154+
#0 string \037\236 Frozen file 1.0 (or gzip 0.5)
155+
156+
# lzh?
157+
#0 string \037\240 LZH compressed data
158+
159+
#------------------------------------------------------------------------------
160+
# frame: file(1) magic for FrameMaker files
161+
#
162+
# This stuff came on a FrameMaker demo tape, most of which is
163+
# copyright, but this file is "published" as witness the following:
164+
#
165+
0 string \<MakerFile application/x-frame
166+
0 string \<MIFFile application/x-frame
167+
0 string \<MakerDictionary application/x-frame
168+
0 string \<MakerScreenFon application/x-frame
169+
0 string \<MML application/x-frame
170+
0 string \<Book application/x-frame
171+
0 string \<Maker application/x-frame
172+
173+
#------------------------------------------------------------------------------
174+
# html: file(1) magic for HTML (HyperText Markup Language) docs
175+
#
176+
# from Daniel Quinlan <quinlan@yggdrasil.com>
177+
# and Anna Shergold <anna@inext.co.uk>
178+
#
179+
0 string \<!DOCTYPE\ HTML text/html
180+
0 string \<!doctype\ html text/html
181+
0 string \<HEAD text/html
182+
0 string \<head text/html
183+
0 string \<TITLE text/html
184+
0 string \<title text/html
185+
0 string \<html text/html
186+
0 string \<HTML text/html
187+
0 string \<!-- text/html
188+
0 string \<h1 text/html
189+
0 string \<H1 text/html
190+
191+
# XML eXtensible Markup Language, from Linus Walleij <triad@df.lth.se>
192+
0 string \<?xml text/xml
193+
194+
#------------------------------------------------------------------------------
195+
# images: file(1) magic for image formats (see also "c-lang" for XPM bitmaps)
196+
#
197+
# originally from jef@helios.ee.lbl.gov (Jef Poskanzer),
198+
# additions by janl@ifi.uio.no as well as others. Jan also suggested
199+
# merging several one- and two-line files into here.
200+
#
201+
# XXX - byte order for GIF and TIFF fields?
202+
# [GRR: TIFF allows both byte orders; GIF is probably little-endian]
203+
#
204+
205+
# [GRR: what the hell is this doing in here?]
206+
#0 string xbtoa btoa'd file
207+
208+
# PBMPLUS
209+
# PBM file
210+
0 string P1 image/x-portable-bitmap 7bit
211+
# PGM file
212+
0 string P2 image/x-portable-greymap 7bit
213+
# PPM file
214+
0 string P3 image/x-portable-pixmap 7bit
215+
# PBM "rawbits" file
216+
0 string P4 image/x-portable-bitmap
217+
# PGM "rawbits" file
218+
0 string P5 image/x-portable-greymap
219+
# PPM "rawbits" file
220+
0 string P6 image/x-portable-pixmap
221+
222+
# NIFF (Navy Interchange File Format, a modification of TIFF)
223+
# [GRR: this *must* go before TIFF]
224+
0 string IIN1 image/x-niff
225+
226+
# TIFF and friends
227+
# TIFF file, big-endian
228+
0 string MM image/tiff
229+
# TIFF file, little-endian
230+
0 string II image/tiff
231+
232+
# possible GIF replacements; none yet released!
233+
# (Greg Roelofs, newt@uchicago.edu)
234+
#
235+
# GRR 950115: this was mine ("Zip GIF"):
236+
# ZIF image (GIF+deflate alpha)
237+
0 string GIF94z image/unknown
238+
#
239+
# GRR 950115: this is Jeremy Wohl's Free Graphics Format (better):
240+
# FGF image (GIF+deflate beta)
241+
0 string FGF95a image/unknown
242+
#
243+
# GRR 950115: this is Thomas Boutell's Portable Bitmap Format proposal
244+
# (best; not yet implemented):
245+
# PBF image (deflate compression)
246+
0 string PBF image/unknown
247+
248+
# GIF
249+
0 string GIF image/gif
250+
251+
# JPEG images
252+
0 beshort 0xffd8 image/jpeg
253+
254+
# PC bitmaps (OS/2, Windoze BMP files) (Greg Roelofs, newt@uchicago.edu)
255+
0 string BM image/bmp
256+
#>14 byte 12 (OS/2 1.x format)
257+
#>14 byte 64 (OS/2 2.x format)
258+
#>14 byte 40 (Windows 3.x format)
259+
#0 string IC icon
260+
#0 string PI pointer
261+
#0 string CI color icon
262+
#0 string CP color pointer
263+
#0 string BA bitmap array
264+
265+
0 string \x89PNG image/png
266+
0 string FWS application/x-shockwave-flash
267+
0 string CWS application/x-shockwave-flash
268+
269+
#------------------------------------------------------------------------------
270+
# lisp: file(1) magic for lisp programs
271+
#
272+
# various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com)
273+
0 string ;; text/plain 8bit
274+
# Emacs 18 - this is always correct, but not very magical.
275+
0 string \012( application/x-elc
276+
# Emacs 19
277+
0 string ;ELC\023\000\000\000 application/x-elc
278+
279+
#------------------------------------------------------------------------------
280+
# mail.news: file(1) magic for mail and news
281+
#
282+
# There are tests to ascmagic.c to cope with mail and news.
283+
0 string Relay-Version: message/rfc822 7bit
284+
0 string #!\ rnews message/rfc822 7bit
285+
0 string N#!\ rnews message/rfc822 7bit
286+
0 string Forward\ to message/rfc822 7bit
287+
0 string Pipe\ to message/rfc822 7bit
288+
0 string Return-Path: message/rfc822 7bit
289+
0 string Path: message/news 8bit
290+
0 string Xref: message/news 8bit
291+
0 string From: message/rfc822 7bit
292+
0 string Article message/news 8bit
293+
#------------------------------------------------------------------------------
294+
# msword: file(1) magic for MS Word files
295+
#
296+
# Contributor claims:
297+
# Reversed-engineered MS Word magic numbers
298+
#
299+
300+
0 string \376\067\0\043 application/msword
301+
0 string \333\245-\0\0\0 application/msword
302+
303+
# disable this one because it applies also to other
304+
# Office/OLE documents for which msword is not correct. See PR#2608.
305+
#0 string \320\317\021\340\241\261 application/msword
306+
307+
308+
309+
#------------------------------------------------------------------------------
310+
# printer: file(1) magic for printer-formatted files
311+
#
312+
313+
# PostScript
314+
0 string %! application/postscript
315+
0 string \004%! application/postscript
316+
317+
# Acrobat
318+
# (due to clamen@cs.cmu.edu)
319+
0 string %PDF- application/pdf
320+
321+
#------------------------------------------------------------------------------
322+
# sc: file(1) magic for "sc" spreadsheet
323+
#
324+
38 string Spreadsheet application/x-sc
325+
326+
#------------------------------------------------------------------------------
327+
# tex: file(1) magic for TeX files
328+
#
329+
# XXX - needs byte-endian stuff (big-endian and little-endian DVI?)
330+
#
331+
# From <conklin@talisman.kaleida.com>
332+
333+
# Although we may know the offset of certain text fields in TeX DVI
334+
# and font files, we can't use them reliably because they are not
335+
# zero terminated. [but we do anyway, christos]
336+
0 string \367\002 application/x-dvi
337+
#0 string \367\203 TeX generic font data
338+
#0 string \367\131 TeX packed font data
339+
#0 string \367\312 TeX virtual font data
340+
#0 string This\ is\ TeX, TeX transcript text
341+
#0 string This\ is\ METAFONT, METAFONT transcript text
342+
343+
# There is no way to detect TeX Font Metric (*.tfm) files without
344+
# breaking them apart and reading the data. The following patterns
345+
# match most *.tfm files generated by METAFONT or afm2tfm.
346+
#2 string \000\021 TeX font metric data
347+
#2 string \000\022 TeX font metric data
348+
#>34 string >\0 (%s)
349+
350+
# Texinfo and GNU Info, from Daniel Quinlan (quinlan@yggdrasil.com)
351+
#0 string \\input\ texinfo Texinfo source text
352+
#0 string This\ is\ Info\ file GNU Info text
353+
354+
# correct TeX magic for Linux (and maybe more)
355+
# from Peter Tobias (tobias@server.et-inf.fho-emden.de)
356+
#
357+
0 leshort 0x02f7 application/x-dvi
358+
359+
# RTF - Rich Text Format
360+
0 string {\\rtf application/rtf
361+
362+
#------------------------------------------------------------------------------
363+
# animation: file(1) magic for animation/movie formats
364+
#
365+
# animation formats, originally from vax@ccwf.cc.utexas.edu (VaX#n8)
366+
# MPEG file
367+
0 string \000\000\001\263 video/mpeg
368+
#
369+
# The contributor claims:
370+
# I couldn't find a real magic number for these, however, this
371+
# -appears- to work. Note that it might catch other files, too,
372+
# so BE CAREFUL!
373+
#
374+
# Note that title and author appear in the two 20-byte chunks
375+
# at decimal offsets 2 and 22, respectively, but they are XOR'ed with
376+
# 255 (hex FF)! DL format SUCKS BIG ROCKS.
377+
#
378+
# DL file version 1 , medium format (160x100, 4 images/screen)
379+
0 byte 1 video/unknown
380+
0 byte 2 video/unknown
381+
# Quicktime video, from Linus Walleij <triad@df.lth.se>
382+
# from Apple quicktime file format documentation.
383+
4 string moov video/quicktime
384+
4 string mdat video/quicktime
385+

0 commit comments

Comments
 (0)