Merge from vendor branch LIBSTDC++:
[dragonfly.git] / contrib / file / magic.mime
1 # Magic data for KMimeMagic (originally for file(1) command)
2 #
3 # The format is 4-5 columns:
4 #    Column #1: byte number to begin checking from, ">" indicates continuation
5 #    Column #2: type of data to match
6 #    Column #3: contents of data to match
7 #    Column #4: MIME type of result
8 #    Column #5: MIME encoding of result (optional)
9
10 #------------------------------------------------------------------------------
11 # Localstuff:  file(1) magic for locally observed files
12 # Add any locally observed files here.
13
14 #------------------------------------------------------------------------------
15 # end local stuff
16 #------------------------------------------------------------------------------
17
18 #------------------------------------------------------------------------------
19 # Java
20
21 0       short           0xcafe
22 >2      short           0xbabe          application/java
23
24 #------------------------------------------------------------------------------
25 # audio:  file(1) magic for sound formats
26 #
27 # from Jan Nicolai Langfeldt <janl@ifi.uio.no>,
28 #
29
30 # Sun/NeXT audio data
31 0       string          .snd
32 >12     belong          1               audio/basic
33 >12     belong          2               audio/basic
34 >12     belong          3               audio/basic
35 >12     belong          4               audio/basic
36 >12     belong          5               audio/basic
37 >12     belong          6               audio/basic
38 >12     belong          7               audio/basic
39
40 >12     belong          23              audio/x-adpcm
41
42 # DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format
43 # that uses little-endian encoding and has a different magic number
44 # (0x0064732E in little-endian encoding).
45 0       lelong          0x0064732E      
46 >12     lelong          1               audio/x-dec-basic
47 >12     lelong          2               audio/x-dec-basic
48 >12     lelong          3               audio/x-dec-basic
49 >12     lelong          4               audio/x-dec-basic
50 >12     lelong          5               audio/x-dec-basic
51 >12     lelong          6               audio/x-dec-basic
52 >12     lelong          7               audio/x-dec-basic
53 #                                       compressed (G.721 ADPCM)
54 >12     lelong          23              audio/x-dec-adpcm
55
56 # Bytes 0-3 of AIFF, AIFF-C, & 8SVX audio files are "FORM"
57 #                                       AIFF audio data
58 8       string          AIFF            audio/x-aiff    
59 #                                       AIFF-C audio data
60 8       string          AIFC            audio/x-aiff    
61 #                                       IFF/8SVX audio data
62 8       string          8SVX            audio/x-aiff    
63
64 # Creative Labs AUDIO stuff
65 #                                       Standard MIDI data
66 0       string  MThd                    audio/unknown   
67 #>9     byte    >0                      (format %d)
68 #>11    byte    >1                      using %d channels
69 #                                       Creative Music (CMF) data
70 0       string  CTMF                    audio/unknown   
71 #                                       SoundBlaster instrument data
72 0       string  SBI                     audio/unknown   
73 #                                       Creative Labs voice data
74 0       string  Creative\ Voice\ File   audio/unknown   
75 ## is this next line right?  it came this way...
76 #>19    byte    0x1A
77 #>23    byte    >0                      - version %d
78 #>22    byte    >0                      \b.%d
79
80 # [GRR 950115:  is this also Creative Labs?  Guessing that first line
81 #  should be string instead of unknown-endian long...]
82 #0      long            0x4e54524b      MultiTrack sound data
83 #0      string          NTRK            MultiTrack sound data
84 #>4     long            x               - version %ld
85
86 # Microsoft WAVE format (*.wav)
87 # [GRR 950115:  probably all of the shorts and longs should be leshort/lelong]
88 #                                       Microsoft RIFF
89 0       string          RIFF
90 #                                       - WAVE format
91 >8      string          WAVE            audio/x-wav
92 >8      string          AVI             video/x-msvideo
93 #
94 0       belong          0x2e7261fd      application/x-realaudio
95
96 # MPEG Layer 3 sound files
97 0       beshort         &0xffe0         audio/mpeg
98 #MP3 with ID3 tag
99 0       string          ID3             audio/mpeg
100 # Ogg/Vorbis
101 0       string          OggS            audio/x-ogg
102
103 #------------------------------------------------------------------------------
104 # c-lang:  file(1) magic for C programs or various scripts
105 #
106
107 # XPM icons (Greg Roelofs, newt@uchicago.edu)
108 # ideally should go into "images", but entries below would tag XPM as C source
109 0       string          /*\ XPM         image/x-xpm     7bit
110
111 # 3DS (3d Studio files)
112 16      beshort         0x3d3d          image/x-3ds
113
114 # this first will upset you if you're a PL/1 shop... (are there any left?)
115 # in which case rm it; ascmagic will catch real C programs
116 #                                       C or REXX program text
117 #0      string          /*              text/x-c
118 #                                       C++ program text
119 #0      string          //              text/x-c++
120
121 #------------------------------------------------------------------------------
122 # commands:  file(1) magic for various shells and interpreters
123 #
124 #0       string          :\ shell archive or commands for antique kernel text
125 0       string          #!/bin/sh               application/x-shellscript
126 0       string          #!\ /bin/sh             application/x-shellscript
127 0       string          #!/bin/csh              application/x-shellscript
128 0       string          #!\ /bin/csh            application/x-shellscript
129 # korn shell magic, sent by George Wu, gwu@clyde.att.com
130 0       string          #!/bin/ksh              application/x-shellscript
131 0       string          #!\ /bin/ksh            application/x-shellscript
132 0       string          #!/bin/tcsh             application/x-shellscript
133 0       string          #!\ /bin/tcsh           application/x-shellscript
134 0       string          #!/usr/local/tcsh       application/x-shellscript
135 0       string          #!\ /usr/local/tcsh     application/x-shellscript
136 0       string          #!/usr/local/bin/tcsh   application/x-shellscript
137 0       string          #!\ /usr/local/bin/tcsh application/x-shellscript
138 # bash shell magic, from Peter Tobias (tobias@server.et-inf.fho-emden.de)
139 0       string          #!/bin/bash                     application/x-shellscript
140 0       string          #!\ /bin/bash           application/x-shellscript
141 0       string          #!/usr/local/bin/bash   application/x-shellscript
142 0       string          #!\ /usr/local/bin/bash application/x-shellscript
143
144 #
145 # zsh/ash/ae/nawk/gawk magic from cameron@cs.unsw.oz.au (Cameron Simpson)
146 0       string          #!/usr/local/bin/zsh    application/x-shellscript
147 0       string          #!\ /usr/local/bin/zsh  application/x-shellscript
148 0       string          #!/usr/local/bin/ash    application/x-shellscript
149 0       string          #!\ /usr/local/bin/ash  application/x-shellscript
150 #0       string          #!/usr/local/bin/ae     Neil Brown's ae
151 #0       string          #!\ /usr/local/bin/ae   Neil Brown's ae
152 0       string          #!/bin/nawk             application/x-nawk
153 0       string          #!\ /bin/nawk           application/x-nawk
154 0       string          #!/usr/bin/nawk         application/x-nawk
155 0       string          #!\ /usr/bin/nawk       application/x-nawk
156 0       string          #!/usr/local/bin/nawk   application/x-nawk
157 0       string          #!\ /usr/local/bin/nawk application/x-nawk
158 0       string          #!/bin/gawk             application/x-gawk
159 0       string          #!\ /bin/gawk           application/x-gawk
160 0       string          #!/usr/bin/gawk         application/x-gawk
161 0       string          #!\ /usr/bin/gawk       application/x-gawk
162 0       string          #!/usr/local/bin/gawk   application/x-gawk
163 0       string          #!\ /usr/local/bin/gawk application/x-gawk
164 #
165 0       string          #!/bin/awk              application/x-awk
166 0       string          #!\ /bin/awk            application/x-awk
167 0       string          #!/usr/bin/awk          application/x-awk
168 0       string          #!\ /usr/bin/awk        application/x-awk
169 0       string          BEGIN                   application/x-awk
170
171 # For Larry Wall's perl language.  The ``eval'' line recognizes an
172 # outrageously clever hack for USG systems.
173 #                               Keith Waclena <keith@cerberus.uchicago.edu>
174 0       string          #!/bin/perl                     application/x-perl
175 0       string          #!\ /bin/perl                   application/x-perl
176 0       string          eval\ "exec\ /bin/perl          application/x-perl
177 0       string          #!/usr/bin/perl                 application/x-perl
178 0       string          #!\ /usr/bin/perl               application/x-perl
179 0       string          eval\ "exec\ /usr/bin/perl      application/x-perl
180 0       string          #!/usr/local/bin/perl           application/x-perl
181 0       string          #!\ /usr/local/bin/perl         application/x-perl
182 0       string          eval\ "exec\ /usr/local/bin/perl application/x-perl
183
184 #------------------------------------------------------------------------------
185 # compress:  file(1) magic for pure-compression formats (no archives)
186 #
187 # compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, whap, etc.
188 #
189 # Formats for various forms of compressed data
190 # Formats for "compress" proper have been moved into "compress.c",
191 # because it tries to uncompress it to figure out what's inside.
192
193 # standard unix compress
194 0       string          \037\235        application/x-compress
195
196 # gzip (GNU zip, not to be confused with [Info-ZIP/PKWARE] zip archiver)
197 0       string          \037\213        application/x-gzip
198
199 0               string                  PK\003\004              application/x-zip
200
201 # According to gzip.h, this is the correct byte order for packed data.
202 0       string          \037\036        application/octet-stream
203 #
204 # This magic number is byte-order-independent.
205 #
206 0       short           017437          application/octet-stream
207
208 # XXX - why *two* entries for "compacted data", one of which is
209 # byte-order independent, and one of which is byte-order dependent?
210 #
211 # compacted data
212 0       short           0x1fff          application/octet-stream
213 0       string          \377\037        application/octet-stream
214 # huf output
215 0       short           0145405         application/octet-stream
216
217 # Squeeze and Crunch...
218 # These numbers were gleaned from the Unix versions of the programs to
219 # handle these formats.  Note that I can only uncrunch, not crunch, and
220 # I didn't have a crunched file handy, so the crunch number is untested.
221 #                               Keith Waclena <keith@cerberus.uchicago.edu>
222 #0      leshort         0x76FF          squeezed data (CP/M, DOS)
223 #0      leshort         0x76FE          crunched data (CP/M, DOS)
224
225 # Freeze
226 #0      string          \037\237        Frozen file 2.1
227 #0      string          \037\236        Frozen file 1.0 (or gzip 0.5)
228
229 # lzh?
230 #0      string          \037\240        LZH compressed data
231
232 257     string          ustar\0         application/x-tar       posix
233 257     string          ustar\040\040\0         application/x-tar       gnu
234
235 0       short           070707          application/x-cpio
236 0       short           0143561         application/x-cpio      swapped
237
238 0       string          =<ar>           application/x-archive
239 0       string          !<arch>         application/x-archive
240 >8      string          debian          application/x-debian-package
241
242 #------------------------------------------------------------------------------
243 #
244 # RPM: file(1) magic for Red Hat Packages   Erik Troan (ewt@redhat.com)
245 #
246 0       beshort         0xedab
247 >2      beshort         0xeedb          application/x-rpm
248
249 0       lelong&0x8080ffff       0x0000081a      application/x-arc       lzw
250 0       lelong&0x8080ffff       0x0000091a      application/x-arc       squashed
251 0       lelong&0x8080ffff       0x0000021a      application/x-arc       uncompressed
252 0       lelong&0x8080ffff       0x0000031a      application/x-arc       packed
253 0       lelong&0x8080ffff       0x0000041a      application/x-arc       squeezed
254 0       lelong&0x8080ffff       0x0000061a      application/x-arc       crunched
255
256 0       leshort 0xea60  application/octet-stream        x-arj
257
258 # LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu)
259 2       string  -lh0-   application/x-lharc     lh0
260 2       string  -lh1-   application/x-lharc     lh1
261 2       string  -lz4-   application/x-lharc     lz4
262 2       string  -lz5-   application/x-lharc     lz5
263 #       [never seen any but the last; -lh4- reported in comp.compression:]
264 2       string  -lzs-   application/x-lha       lzs
265 2       string  -lh\ -  application/x-lha       lh
266 2       string  -lhd-   application/x-lha       lhd
267 2       string  -lh2-   application/x-lha       lh2
268 2       string  -lh3-   application/x-lha       lh3
269 2       string  -lh4-   application/x-lha       lh4
270 2       string  -lh5-   application/x-lha       lh5
271 2       string  -lh6-   application/x-lha       lh6
272 2       string  -lh7-   application/x-lha       lh7
273 # Shell archives
274 10      string  #\ This\ is\ a\ shell\ archive  application/octet-stream        x-shell
275
276 #------------------------------------------------------------------------------
277 # frame:  file(1) magic for FrameMaker files
278 #
279 # This stuff came on a FrameMaker demo tape, most of which is
280 # copyright, but this file is "published" as witness the following:
281 #
282 0       string          \<MakerFile     application/x-frame
283 0       string          \<MIFFile       application/x-frame
284 0       string          \<MakerDictionary       application/x-frame
285 0       string          \<MakerScreenFon        application/x-frame
286 0       string          \<MML           application/x-frame
287 0       string          \<Book          application/x-frame
288 0       string          \<Maker         application/x-frame
289
290 #------------------------------------------------------------------------------
291 # html:  file(1) magic for HTML (HyperText Markup Language) docs
292 #
293 # from Daniel Quinlan <quinlan@yggdrasil.com>
294 #
295 0       string          \<HEAD  text/html
296 0       string          \<head  text/html
297 0       string          \<TITLE text/html
298 0       string          \<title text/html
299 0       string          \<html  text/html
300 0       string          \<HTML  text/html
301 0       string          \<!--   text/html
302 0       string          \<h1    text/html
303 0       string          \<H1    text/html
304 0       string          \<!doctype\ HTML        text/html
305 0       string          \<!DOCTYPE\ HTML        text/html
306 0       string          \<!doctype\ html        text/html
307
308 #------------------------------------------------------------------------------
309 # images:  file(1) magic for image formats (see also "c-lang" for XPM bitmaps)
310 #
311 # originally from jef@helios.ee.lbl.gov (Jef Poskanzer),
312 # additions by janl@ifi.uio.no as well as others. Jan also suggested
313 # merging several one- and two-line files into here.
314 #
315 # XXX - byte order for GIF and TIFF fields?
316 # [GRR:  TIFF allows both byte orders; GIF is probably little-endian]
317 #
318
319 # [GRR:  what the hell is this doing in here?]
320 #0      string          xbtoa           btoa'd file
321
322 # PBMPLUS
323 #                                       PBM file
324 0       string          P1              image/x-portable-bitmap 7bit
325 #                                       PGM file
326 0       string          P2              image/x-portable-greymap        7bit
327 #                                       PPM file
328 0       string          P3              image/x-portable-pixmap 7bit
329 #                                       PBM "rawbits" file
330 0       string          P4              image/x-portable-bitmap
331 #                                       PGM "rawbits" file
332 0       string          P5              image/x-portable-greymap
333 #                                       PPM "rawbits" file
334 0       string          P6              image/x-portable-pixmap
335
336 # NIFF (Navy Interchange File Format, a modification of TIFF)
337 # [GRR:  this *must* go before TIFF]
338 0       string          IIN1            image/x-niff
339
340 # TIFF and friends
341 #                                       TIFF file, big-endian
342 0       string          MM              image/tiff
343 #                                       TIFF file, little-endian
344 0       string          II              image/tiff
345
346 # possible GIF replacements; none yet released!
347 # (Greg Roelofs, newt@uchicago.edu)
348 #
349 # GRR 950115:  this was mine ("Zip GIF"):
350 #                                       ZIF image (GIF+deflate alpha)
351 0       string          GIF94z          image/unknown
352 #
353 # GRR 950115:  this is Jeremy Wohl's Free Graphics Format (better):
354 #                                       FGF image (GIF+deflate beta)
355 0       string          FGF95a          image/unknown
356 #
357 # GRR 950115:  this is Thomas Boutell's Portable Bitmap Format proposal
358 # (best; not yet implemented):
359 #                                       PBF image (deflate compression)
360 0       string          PBF             image/unknown
361
362 # GIF
363 0       string          GIF             image/gif
364
365 # JPEG images
366 0       beshort         0xffd8          image/jpeg
367
368 # PC bitmaps (OS/2, Windoze BMP files)  (Greg Roelofs, newt@uchicago.edu)
369 0       string          BM              image/bmp
370 #>14    byte            12              (OS/2 1.x format)
371 #>14    byte            64              (OS/2 2.x format)
372 #>14    byte            40              (Windows 3.x format)
373 #0      string          IC              icon
374 #0      string          PI              pointer
375 #0      string          CI              color icon
376 #0      string          CP              color pointer
377 #0      string          BA              bitmap array
378
379
380 #------------------------------------------------------------------------------
381 # lisp:  file(1) magic for lisp programs
382 #
383 # various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com)
384 0       string  ;;                      text/plain      8bit
385 # Emacs 18 - this is always correct, but not very magical.
386 0       string  \012(                   application/x-elc
387 # Emacs 19
388 0       string  ;ELC\023\000\000\000    application/x-elc
389
390 #------------------------------------------------------------------------------
391 # mail.news:  file(1) magic for mail and news
392 #
393 # There are tests to ascmagic.c to cope with mail and news.
394 0       string          Relay-Version:  message/rfc822  7bit
395 0       string          #!\ rnews       message/rfc822  7bit
396 0       string          N#!\ rnews      message/rfc822  7bit
397 0       string          Forward\ to     message/rfc822  7bit
398 0       string          Pipe\ to        message/rfc822  7bit
399 0       string          Return-Path:    message/rfc822  7bit
400 0       string          Path:           message/news    8bit
401 0       string          Xref:           message/news    8bit
402 0       string          From:           message/rfc822  7bit
403 0       string          Article         message/news    8bit
404 #------------------------------------------------------------------------------
405 # msword: file(1) magic for MS Word files
406 #
407 # Contributor claims:
408 # Reversed-engineered MS Word magic numbers
409 #
410
411 0       string          \376\067\0\043                  application/msword
412 0       string          \320\317\021\340\241\261        application/msword
413 0       string          \333\245-\0\0\0                 application/msword
414
415
416
417 #------------------------------------------------------------------------------
418 # printer:  file(1) magic for printer-formatted files
419 #
420
421 # PostScript
422 0       string          %!              application/postscript
423 0       string          \004%!          application/postscript
424
425 # Acrobat
426 # (due to clamen@cs.cmu.edu)
427 0       string          %PDF-           application/pdf
428
429 #------------------------------------------------------------------------------
430 # sc:  file(1) magic for "sc" spreadsheet
431 #
432 38      string          Spreadsheet     application/x-sc
433
434 #------------------------------------------------------------------------------
435 # tex:  file(1) magic for TeX files
436 #
437 # XXX - needs byte-endian stuff (big-endian and little-endian DVI?)
438 #
439 # From <conklin@talisman.kaleida.com>
440
441 # Although we may know the offset of certain text fields in TeX DVI
442 # and font files, we can't use them reliably because they are not
443 # zero terminated. [but we do anyway, christos]
444 0       string          \367\002        application/x-dvi
445 #0      string          \367\203        TeX generic font data
446 #0      string          \367\131        TeX packed font data
447 #0      string          \367\312        TeX virtual font data
448 #0      string          This\ is\ TeX,  TeX transcript text     
449 #0      string          This\ is\ METAFONT,     METAFONT transcript text
450
451 # There is no way to detect TeX Font Metric (*.tfm) files without
452 # breaking them apart and reading the data.  The following patterns
453 # match most *.tfm files generated by METAFONT or afm2tfm.
454 2       string          \000\021        application/x-tex-tfm
455 2       string          \000\022        application/x-tex-tfm
456 #>34    string          >\0             (%s)
457
458 # Texinfo and GNU Info, from Daniel Quinlan (quinlan@yggdrasil.com)
459 #0      string          \\input\ texinfo        Texinfo source text
460 #0      string          This\ is\ Info\ file    GNU Info text
461
462 # correct TeX magic for Linux (and maybe more)
463 # from Peter Tobias (tobias@server.et-inf.fho-emden.de)
464 #
465 0       leshort         0x02f7          application/x-dvi
466
467 # RTF - Rich Text Format
468 0       string          {\\rtf          text/rtf
469
470 #------------------------------------------------------------------------------
471 # animation:  file(1) magic for animation/movie formats
472 #
473 # animation formats, originally from vax@ccwf.cc.utexas.edu (VaX#n8)
474 #                                               MPEG file
475 0       belong          0x000001b3                      video/mpeg
476 0       belong          0x000001ba                      video/mpeg
477 # FLI animation format
478 0       leshort         0xAF11                          video/fli
479 # FLC animation format
480 0       leshort         0xAF12                          video/flc
481 # AVI
482 >8      string          AVI\                            video/avi
483 #
484 # SGI and Apple formats
485 #
486 0       string          MOVI                            video/sgi
487 4       string          moov                            video/quicktime moov
488 4       string          mdat                            video/quicktime mdat
489 # The contributor claims:
490 #   I couldn't find a real magic number for these, however, this
491 #   -appears- to work.  Note that it might catch other files, too,
492 #   so BE CAREFUL!
493 #
494 # Note that title and author appear in the two 20-byte chunks
495 # at decimal offsets 2 and 22, respectively, but they are XOR'ed with
496 # 255 (hex FF)! DL format SUCKS BIG ROCKS.
497 #
498 #                                               DL file version 1 , medium format (160x100, 4 images/screen)
499 0       byte            1                       video/unknown
500 0       byte            2                       video/unknown
501 #
502 # Databases
503 #
504 # GDBM magic numbers
505 #  Will be maintained as part of the GDBM distribution in the future.
506 #  <downsj@teeny.org>
507 0       belong  0x13579ace      application/x-gdbm
508 0       lelong  0x13579ace      application/x-gdbm
509 0       string  GDBM            application/x-gdbm
510 #
511 0       belong  0x061561        application/x-dbm
512 #
513 # Executables
514 #
515 0       string          \177ELF 
516 >4      byte            0
517 >4      byte            1
518 >4      byte            2
519 >5      byte            0
520 >5      byte            1
521 >>16    leshort         0
522 >>16    leshort         1               application/x-object
523 >>16    leshort         2               application/x-executable
524 >>16    leshort         3               application/x-sharedlib
525 >>16    leshort         4               application/x-coredump
526 #
527 # DOS
528 0               string                  MZ                              application/x-dosexec
529 #
530 # KDE
531 0               string  [KDE\ Desktop\ Entry]   application/x-kdelnk
532 0               string  \#\ KDE\ Config\ File   application/x-kdelnk
533 # xmcd database file for kscd
534 0               string  \#\ xmcd                text/xmcd
535
536 #------------------------------------------------------------------------------
537 # pkgadd:  file(1) magic for SysV R4 PKG Datastreams
538 #
539 0       string          #\ PaCkAgE\ DaTaStReAm  application/x-svr4-package
540
541 #PNG Image Format
542 0       string          \x89PNG                 image/png
543
544 # MNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
545 0       string          \x8aMNG                 video/x-mng
546
547 #------------------------------------------------------------------------------
548 # Hierarchical Data Format, used to facilitate scientific data exchange
549 # specifications at http://hdf.ncsa.uiuc.edu/
550 0       belong          0x0e031301      Hierarchical Data Format (version 4) data
551 0       string          \211HDF\r\n\032 Hierarchical Data Format (version 5) data