aboutsummaryrefslogtreecommitdiff
path: root/contrib/file/Magdir
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/file/Magdir')
-rw-r--r--contrib/file/Magdir/adventure2
-rw-r--r--contrib/file/Magdir/amigaos27
-rw-r--r--contrib/file/Magdir/animation46
-rw-r--r--contrib/file/Magdir/apple28
-rw-r--r--contrib/file/Magdir/archive74
-rw-r--r--contrib/file/Magdir/audio196
-rw-r--r--contrib/file/Magdir/bFLT12
-rw-r--r--contrib/file/Magdir/bout9
-rw-r--r--contrib/file/Magdir/c-lang13
-rw-r--r--contrib/file/Magdir/c6427
-rw-r--r--contrib/file/Magdir/cad36
-rw-r--r--contrib/file/Magdir/chord9
-rw-r--r--contrib/file/Magdir/claris2
-rw-r--r--contrib/file/Magdir/commands13
-rw-r--r--contrib/file/Magdir/communications21
-rw-r--r--contrib/file/Magdir/compress9
-rw-r--r--contrib/file/Magdir/console35
-rw-r--r--contrib/file/Magdir/dact10
-rw-r--r--contrib/file/Magdir/database123
-rw-r--r--contrib/file/Magdir/diff5
-rw-r--r--contrib/file/Magdir/elf16
-rw-r--r--contrib/file/Magdir/fcs8
-rw-r--r--contrib/file/Magdir/filesystems61
-rw-r--r--contrib/file/Magdir/flash2
-rw-r--r--contrib/file/Magdir/fonts14
-rw-r--r--contrib/file/Magdir/games157
-rw-r--r--contrib/file/Magdir/gcc16
-rw-r--r--contrib/file/Magdir/geos19
-rw-r--r--contrib/file/Magdir/gnu12
-rw-r--r--contrib/file/Magdir/human68k44
-rw-r--r--contrib/file/Magdir/ibm60002
-rw-r--r--contrib/file/Magdir/iff4
-rw-r--r--contrib/file/Magdir/images172
-rw-r--r--contrib/file/Magdir/intel12
-rw-r--r--contrib/file/Magdir/jpeg115
-rw-r--r--contrib/file/Magdir/linux51
-rw-r--r--contrib/file/Magdir/mach7
-rw-r--r--contrib/file/Magdir/macintosh337
-rw-r--r--contrib/file/Magdir/mail.news12
-rw-r--r--contrib/file/Magdir/maple4
-rw-r--r--contrib/file/Magdir/mathematica11
-rw-r--r--contrib/file/Magdir/matroska14
-rw-r--r--contrib/file/Magdir/misctools5
-rw-r--r--contrib/file/Magdir/motorola20
-rw-r--r--contrib/file/Magdir/msdos97
-rw-r--r--contrib/file/Magdir/netbsd88
-rw-r--r--contrib/file/Magdir/netscape3
-rw-r--r--contrib/file/Magdir/ocaml13
-rw-r--r--contrib/file/Magdir/os220
-rw-r--r--contrib/file/Magdir/palm76
-rw-r--r--contrib/file/Magdir/perl1
-rw-r--r--contrib/file/Magdir/plan94
-rw-r--r--contrib/file/Magdir/printer26
-rw-r--r--contrib/file/Magdir/psion43
-rw-r--r--contrib/file/Magdir/python2
-rw-r--r--contrib/file/Magdir/revision5
-rw-r--r--contrib/file/Magdir/riff135
-rw-r--r--contrib/file/Magdir/rpm9
-rw-r--r--contrib/file/Magdir/sgi228
-rw-r--r--contrib/file/Magdir/sgml11
-rw-r--r--contrib/file/Magdir/sinclair126
-rw-r--r--contrib/file/Magdir/sniffer40
-rw-r--r--contrib/file/Magdir/spec20
-rw-r--r--contrib/file/Magdir/spectrum16
-rw-r--r--contrib/file/Magdir/sun16
-rw-r--r--contrib/file/Magdir/sysex51
-rw-r--r--contrib/file/Magdir/ti-8x239
-rw-r--r--contrib/file/Magdir/unknown4
-rw-r--r--contrib/file/Magdir/varied.out7
-rw-r--r--contrib/file/Magdir/varied.script12
-rw-r--r--contrib/file/Magdir/vmware6
-rw-r--r--contrib/file/Magdir/vorbis48
-rw-r--r--contrib/file/Magdir/wordprocessors111
-rw-r--r--contrib/file/Magdir/xwindows25
74 files changed, 2694 insertions, 600 deletions
diff --git a/contrib/file/Magdir/adventure b/contrib/file/Magdir/adventure
index 864712f6da1a..fb05cbe96588 100644
--- a/contrib/file/Magdir/adventure
+++ b/contrib/file/Magdir/adventure
@@ -16,7 +16,7 @@
# Infocom
# (Note: to avoid false matches Z-machine version 1 and 2 are not
# recognized since only the oldest Zork I and II used them. Similarly
-# there are 4 Infocom games that use verion 4 that are not recognized.)
+# there are 4 Infocom games that use version 4 that are not recognized.)
#0 byte 3 Infocom game data (Z-machine 3,
#>2 beshort <0x7fff Release %3d,
#>26 beshort >0 Size %d*2
diff --git a/contrib/file/Magdir/amigaos b/contrib/file/Magdir/amigaos
index a1be6138a1d3..ba2366c7ed59 100644
--- a/contrib/file/Magdir/amigaos
+++ b/contrib/file/Magdir/amigaos
@@ -3,9 +3,8 @@
#
# 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 0x000003fa AmigaOS shared library
0 belong 0x000003f3 AmigaOS loadseg()ble executable/binary
0 belong 0x000003e7 AmigaOS object/library data
#
@@ -33,7 +32,25 @@
0 string ARP. The Holy Noise Module sound file
0 string BeEp\0 JamCracker Module sound file
0 string COSO\0 Hippel-COSO Module sound file
-26 string V.3 Brian Postma's Soundmon Module sound file v3
-26 string BPSM Brian Postma's Soundmon Module sound file v3
-26 string V.2 Brian Postma's Soundmon Module sound file v2
+# Too simple (short, pure ASCII, deep), MPi
+#26 string V.3 Brian Postma's Soundmon Module sound file v3
+#26 string BPSM Brian Postma's Soundmon Module sound file v3
+#26 string V.2 Brian Postma's Soundmon Module sound file v2
+# The following are from: "Stefan A. Haubenthal" <polluks@web.de>
+0 beshort 0x0f00 AmigaOS bitmap font
+0 beshort 0x0f03 AmigaOS outline font
+0 belong 0x80001001 AmigaOS outline tag
+0 string ##\ version catalog translation
+
+# Amiga disk types
+#
+0 string RDSK Rigid Disk Block
+>160 string x on %.24s
+0 string DOS\0 Amiga DOS disk
+0 string DOS\1 Amiga FFS disk
+0 string DOS\2 Amiga Inter DOS disk
+0 string DOS\3 Amiga Inter FFS disk
+0 string DOS\4 Amiga Fastdir DOS disk
+0 string DOS\5 Amiga Fastdir FFS disk
+0 string KICK Kickstart disk
diff --git a/contrib/file/Magdir/animation b/contrib/file/Magdir/animation
index 56f25cf3b776..815a2088baf0 100644
--- a/contrib/file/Magdir/animation
+++ b/contrib/file/Magdir/animation
@@ -118,6 +118,12 @@
#>3 byte&0x03 1 \b, Emphasis 5
#>3 byte&0x03 3 \b, Emphasis c
+#From: Johan Gade <jgade@diku.dk>
+
+# MPEG-4 Advanced Audio Coding (AAC) file (perhaps also MPEG-2 ACC?)
+16 string M4A MPEG-4 Advanced Audio Coding file (AAC)
+
+
# FLI animation format
4 leshort 0xAF11 FLI file
>6 leshort x - %d frames,
@@ -157,10 +163,19 @@
# \003. Most of them start with non-null values at hex offset 0x34 or so.
#0 string \3\0\0\0\0\0\0\0\0\0\0\0 DL version 3
-# SGI and Apple formats
+# SGI formats
0 string MOVI Silicon Graphics movie file
+
+# Apple Quicktime: Scan for all known top-level QT atom markers
4 string moov Apple QuickTime movie file (moov)
4 string mdat Apple QuickTime movie file (mdat)
+4 string ftyp Apple QuickTime movie file (ftyp)
+4 string free Apple QuickTime movie file (free)
+4 string junk Apple QuickTime movie file (junk)
+4 string pnot Apple QuickTime movie file (pnot)
+4 string skip Apple QuickTime movie file (skip)
+4 string wide Apple QuickTime movie file (wide)
+4 string pict Apple QuickTime movie file (pict)
# iso 13818 transport stream
#
@@ -194,3 +209,32 @@
0 string \x8aMNG MNG video data,
>4 belong !0x0d0a1a0a CORRUPTED,
>4 belong 0x0d0a1a0a
+>>16 belong x %ld x
+>>20 belong x %ld
+
+# JNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
+0 string \x8bJNG JNG video data,
+>4 belong !0x0d0a1a0a CORRUPTED,
+>4 belong 0x0d0a1a0a
+>>16 belong x %ld x
+>>20 belong x %ld
+
+# 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
+
+#---------------------------------------------------------------------------
+# HVQM4: compressed movie format designed by Hudson for Nintendo GameCube
+# From Mark Sheppard <msheppard@climax.co.uk>, 2002-10-03
+#
+0 string HVQM4 %s
+>6 string >\0 v%s
+>0 byte x GameCube movie,
+>0x34 ubeshort x %d x
+>0x36 ubeshort x %d,
+>0x26 ubeshort x %dµs,
+>0x42 ubeshort 0 no audio
+>0x42 ubeshort >0 %dHz audio
diff --git a/contrib/file/Magdir/apple b/contrib/file/Magdir/apple
index c2b372bf3e5b..2b0a290ca85b 100644
--- a/contrib/file/Magdir/apple
+++ b/contrib/file/Magdir/apple
@@ -28,6 +28,13 @@
>12 belong &0x02000000 UseFasterCompression,
>16 belong x version %d
+0 string package4 Newton package,
+>8 byte 8 NOS 1.x,
+>8 byte 9 NOS 2.x,
+>12 belong &0x80000000 AutoRemove,
+>12 belong &0x40000000 CopyProtect,
+>12 belong &0x10000000 NoCompression,
+
# The following entries for the Apple II are for files that have
# been transferred as raw binary data from an Apple, without having
# been encapsulated by any of the above archivers.
@@ -120,3 +127,24 @@
# Beagle Bros. Apple Mechanic fonts
0 belong&0xFF00FFFF 0x6400D000 Apple Mechanic font
+
+# Apple Universal Disk Image Format (UDIF) - dmg files.
+# From Johan Gade.
+# These entries are disabled for now until we fix the following issues.
+#
+# Note there might be some problems with the "VAX COFF executable"
+# entry. Note this entry should be placed before the mac filesystem section,
+# particularly the "Apple Partition data" entry.
+#
+# The intended meaning of these tests is, that the file is only of the
+# specified type if both of the lines are correct - i.e. if the first
+# line matches and the second doesn't then it is not of that type.
+#
+#0 long 0x7801730d
+#>4 long 0x62626060 UDIF read-only zlib-compressed image (UDZO)
+#
+# Note that this entry is recognized correctly by the "Apple Partition
+# data" entry - however since this entry is more specific - this
+# information seems to be more useful.
+#0 long 0x45520200
+#>0x410 string disk\ image UDIF read/write image (UDRW)
diff --git a/contrib/file/Magdir/archive b/contrib/file/Magdir/archive
index 133e50caf177..070feab6f9d9 100644
--- a/contrib/file/Magdir/archive
+++ b/contrib/file/Magdir/archive
@@ -32,8 +32,10 @@
0 string !<arch>\ndebian
>8 string debian-split part of multipart Debian package
>8 string debian-binary Debian binary package
->68 string >\n (format %s)
->136 ledate x created: %s
+>68 string >\0 (format %s)
+>81 string bz2 \b, uses bzip2 compression
+>84 string gz \b, uses gzip compression
+#>136 ledate x created: %s
# other archives
0 long 0177555 very old archive
@@ -187,7 +189,12 @@
>20 byte x - header level %d
# RAR archiver (Greg Roelofs, newt@uchicago.edu)
-0 string Rar! RAR archive data
+0 string Rar! RAR archive data,
+>44 byte x v%0x,
+>35 byte 0 os: MS-DOS
+>35 byte 1 os: OS/2
+>35 byte 2 os: Win32
+>35 byte 3 os: Unix
# SQUISH archiver (Greg Roelofs, newt@uchicago.edu)
0 string SQSH squished archive data (Acorn RISCOS)
@@ -239,9 +246,11 @@
# Microsoft cabinets
# by David Necas (Yeti) <yeti@physics.muni.cz>
-0 string MSCF\0\0\0\0 Microsoft cabinet file data,
->25 byte x v%d
->24 byte x \b.%d
+#0 string MSCF\0\0\0\0 Microsoft cabinet file data,
+#>25 byte x v%d
+#>24 byte x \b.%d
+# MPi: All CABs have version 1.3, so this is pointless.
+# Better magic in debian-additions.
# GTKtalog catalogs
# by David Necas (Yeti) <yeti@physics.muni.cz>
@@ -256,3 +265,56 @@
0 string PAR\0 PARity archive data
>48 leshort =0 - Index file
>48 leshort >0 - file number %d
+
+# Felix von Leitner <felix-file@fefe.de>
+0 string d8:announce BitTorrent file
+
+# Atari MSA archive - Teemu Hukkanen <tjhukkan@iki.fi>
+0 beshort 0x0e0f Atari MSA archive data
+>2 beshort x \b, %d sectors per track
+>4 beshort 0 \b, 1 sided
+>4 beshort 1 \b, 2 sided
+>6 beshort x \b, starting track: %d
+>8 beshort x \b, ending track: %d
+
+# Alternate ZIP string (amc@arwen.cs.berkeley.edu)
+0 string PK00PK\003\004 Zip archive data
+
+# ACE archive (from http://www.wotsit.org/download.asp?f=ace)
+# by Stefan `Sec` Zehl <sec@42.org>
+7 string **ACE** ACE compressed archive
+>15 byte >0 version %d
+>16 byte =0x00 \b, from MS-DOS
+>16 byte =0x01 \b, from OS/2
+>16 byte =0x02 \b, from Win/32
+>16 byte =0x03 \b, from Unix
+>16 byte =0x04 \b, from MacOS
+>16 byte =0x05 \b, from WinNT
+>16 byte =0x06 \b, from Primos
+>16 byte =0x07 \b, from AppleGS
+>16 byte =0x08 \b, from Atari
+>16 byte =0x09 \b, from Vax/VMS
+>16 byte =0x0A \b, from Amiga
+>16 byte =0x0B \b, from Next
+>14 byte x \b, version %d to extract
+>5 leshort &0x0080 \b, multiple volumes,
+>>17 byte x \b (part %d),
+>5 leshort &0x0002 \b, contains comment
+>5 leshort &0x0200 \b, sfx
+>5 leshort &0x0400 \b, small dictionary
+>5 leshort &0x0800 \b, multi-volume
+>5 leshort &0x1000 \b, contains AV-String
+>>30 string\x16*UNREGISTERED\x20VERSION* (unregistered)
+>5 leshort &0x2000 \b, with recovery record
+>5 leshort &0x4000 \b, locked
+>5 leshort &0x8000 \b, solid
+# Date in MS-DOS format (whatever that is)
+#>18 lelong x Created on
+
+# sfArk : compression program for Soundfonts (sf2) by Dirk Jagdmann
+# <doj@cubic.org>
+0x1A string sfArk sfArk compressed Soundfont
+>0x15 string 2
+>>0x1 string >\0 Version %s
+>>0x2A string >\0 : %s
+
diff --git a/contrib/file/Magdir/audio b/contrib/file/Magdir/audio
index 9507c128264e..6a4ef95a94cc 100644
--- a/contrib/file/Magdir/audio
+++ b/contrib/file/Magdir/audio
@@ -8,18 +8,28 @@
# Sun/NeXT audio data
0 string .snd Sun/NeXT audio data:
->12 belong 1 8-bit ISDN u-law,
+>12 belong 1 8-bit ISDN mu-law,
>12 belong 2 8-bit linear PCM [REF-PCM],
>12 belong 3 16-bit linear PCM,
>12 belong 4 24-bit linear PCM,
>12 belong 5 32-bit linear PCM,
>12 belong 6 32-bit IEEE floating point,
>12 belong 7 64-bit IEEE floating point,
->12 belong 23 8-bit ISDN u-law compressed (CCITT G.721 ADPCM voice data encoding),
->12 belong 24 compressed (8-bit G.722 ADPCM)
->12 belong 25 compressed (3-bit G.723 ADPCM),
->12 belong 26 compressed (5-bit G.723 ADPCM),
->12 belong 27 8-bit A-law,
+>12 belong 8 Fragmented sample data,
+>12 belong 10 DSP program,
+>12 belong 11 8-bit fixed point,
+>12 belong 12 16-bit fixed point,
+>12 belong 13 24-bit fixed point,
+>12 belong 14 32-bit fixed point,
+>12 belong 18 16-bit linear with emphasis,
+>12 belong 19 16-bit linear compressed,
+>12 belong 20 16-bit linear with emphasis and compression,
+>12 belong 21 Music kit DSP commands,
+>12 belong 23 8-bit ISDN mu-law compressed (CCITT G.721 ADPCM voice data encoding),
+>12 belong 24 compressed (8-bit CCITT G.722 ADPCM)
+>12 belong 25 compressed (3-bit CCITT G.723.3 ADPCM),
+>12 belong 26 compressed (5-bit CCITT G.723.5 ADPCM),
+>12 belong 27 8-bit A-law (CCITT G.711),
>20 belong 1 mono,
>20 belong 2 stereo,
>20 belong 4 quad,
@@ -28,14 +38,28 @@
# 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 DEC audio data:
->12 lelong 1 8-bit ISDN u-law,
+>12 lelong 1 8-bit ISDN mu-law,
>12 lelong 2 8-bit linear PCM [REF-PCM],
>12 lelong 3 16-bit linear PCM,
>12 lelong 4 24-bit linear PCM,
>12 lelong 5 32-bit linear PCM,
>12 lelong 6 32-bit IEEE floating point,
>12 lelong 7 64-bit IEEE floating point,
->12 lelong 23 8-bit ISDN u-law compressed (CCITT G.721 ADPCM voice data encoding),
+>12 belong 8 Fragmented sample data,
+>12 belong 10 DSP program,
+>12 belong 11 8-bit fixed point,
+>12 belong 12 16-bit fixed point,
+>12 belong 13 24-bit fixed point,
+>12 belong 14 32-bit fixed point,
+>12 belong 18 16-bit linear with emphasis,
+>12 belong 19 16-bit linear compressed,
+>12 belong 20 16-bit linear with emphasis and compression,
+>12 belong 21 Music kit DSP commands,
+>12 lelong 23 8-bit ISDN mu-law compressed (CCITT G.721 ADPCM voice data encoding),
+>12 belong 24 compressed (8-bit CCITT G.722 ADPCM)
+>12 belong 25 compressed (3-bit CCITT G.723.3 ADPCM),
+>12 belong 26 compressed (5-bit CCITT G.723.5 ADPCM),
+>12 belong 27 8-bit A-law (CCITT G.711),
>20 lelong 1 mono,
>20 lelong 2 stereo,
>20 lelong 4 quad,
@@ -43,8 +67,12 @@
# Creative Labs AUDIO stuff
0 string MThd Standard MIDI data
->9 byte >0 (format %d)
->11 byte >1 using %d tracks
+>8 beshort x (format %d)
+>10 beshort x using %d track
+>10 beshort >1 \bs
+>12 beshort&0x7fff x at 1/%d
+>12 beshort&0x8000 >0 SMPTE
+
0 string CTMF Creative Music (CMF) data
0 string SBI SoundBlaster instrument data
0 string Creative\ Voice\ File Creative Labs voice data
@@ -72,12 +100,18 @@
# MTM/669/FAR/S3M/ULT/XM format checking [Aaron Eppert, aeppert@dialin.ind.net]
# Oct 31, 1995
-0 string MTM MultiTracker Module sound file
+# fixed by <doj@cubic.org> 2003-06-24
+# Too short...
+#0 string MTM MultiTracker Module sound file
#0 string if Composer 669 Module sound data
-0 string FAR Module sound data
+#0 string JN Composer 669 Module sound data (extended format)
0 string MAS_U ULT(imate) Module sound data
+
+#0 string FAR Module sound data
+#>4 string >\15 Title: "%s"
+
0x2c string SCRM ScreamTracker III Module sound data
-0 string Extended Module Extended Module sound data
+>0 string >\0 Title: "%s"
# Gravis UltraSound patches
# From <ache@nagual.ru>
@@ -88,37 +122,68 @@
#
# Taken from loader code from mikmod version 2.14
# by Steve McIntyre (stevem@chiark.greenend.org.uk)
-0 string JN extended 669 module data
+# <doj@cubic.org> added title printing on 2003-06-24
0 string MAS_UTrack_V00
>14 string >/0 ultratracker V1.%.1s module sound data
+
0 string UN05 MikMod UNI format module sound data
+
0 string Extended\ Module: Fasttracker II module sound data
-21 string !SCREAM! Screamtracker 2 module sound data
+>17 string >\0 Title: "%s"
+
+21 string/c !SCREAM! Screamtracker 2 module sound data
+21 string BMOD2STM Screamtracker 2 module sound data
1080 string M.K. 4-channel Protracker module sound data
+>0 string >\0 Title: "%s"
1080 string M!K! 4-channel Protracker module sound data
+>0 string >\0 Title: "%s"
1080 string FLT4 4-channel Startracker module sound data
+>0 string >\0 Title: "%s"
+1080 string FLT8 8-channel Startracker module sound data
+>0 string >\0 Title: "%s"
1080 string 4CHN 4-channel Fasttracker module sound data
+>0 string >\0 Title: "%s"
1080 string 6CHN 6-channel Fasttracker module sound data
+>0 string >\0 Title: "%s"
1080 string 8CHN 8-channel Fasttracker module sound data
-1080 string CD81 8-channel Oktalyzer module sound data
+>0 string >\0 Title: "%s"
+1080 string CD81 8-channel Octalyser module sound data
+>0 string >\0 Title: "%s"
1080 string OKTA 8-channel Oktalyzer module sound data
+>0 string >\0 Title: "%s"
# Not good enough.
#1082 string CH
#>1080 string >/0 %.2s-channel Fasttracker "oktalyzer" module sound data
1080 string 16CN 16-channel Taketracker module sound data
+>0 string >\0 Title: "%s"
1080 string 32CN 32-channel Taketracker module sound data
+>0 string >\0 Title: "%s"
# TOC sound files -Trevor Johnson <trevor@jpj.net>
#
0 string TOC TOC sound file
# sidfiles <pooka@iki.fi>
+# added name,author,(c) and new RSID type by <doj@cubic.org> 2003-06-24
0 string SIDPLAY\ INFOFILE Sidplay info file
+
0 string PSID PlaySID v2.2+ (AMIGA) sidtune
>4 beshort >0 w/ header v%d,
>14 beshort =1 single song,
>14 beshort >1 %d songs,
>16 beshort >0 default song: %d
+>0x16 string >\0 name: "%s"
+>0x36 string >\0 author: "%s"
+>0x56 string >\0 copyright: "%s"
+
+0 string RSID RSID sidtune PlaySID compatible
+>4 beshort >0 w/ header v%d,
+>14 beshort =1 single song,
+>14 beshort >1 %d songs,
+>16 beshort >0 default song: %d
+>0x16 string >\0 name: "%s"
+>0x36 string >\0 author: "%s"
+>0x56 string >\0 copyright: "%s"
# IRCAM <mpruett@sgi.com>
# VAX and MIPS files are little-endian; Sun and NeXT are big-endian
@@ -133,8 +198,25 @@
# Sample Vision <mpruett@sgi.com>
0 string SOUND\ SAMPLE\ DATA\ Sample Vision file
-# Audio Visual Research <mpruett@sgi.com>
-0 string 2BIT Audio Visual Research file
+# Audio Visual Research <tonigonenstein@users.sourceforge.net>
+0 string 2BIT Audio Visual Research file,
+>12 beshort =0 mono,
+>12 beshort =-1 stereo,
+>14 beshort x %d bits
+>16 beshort =0 unsigned,
+>16 beshort =-1 signed,
+>22 belong&0x00ffffff x %d Hz,
+>18 beshort =0 no loop,
+>18 beshort =-1 loop,
+>21 ubyte <=127 note %d,
+>22 byte =0 replay 5.485 KHz
+>22 byte =1 replay 8.084 KHz
+>22 byte =2 replay 10.971 Khz
+>22 byte =3 replay 16.168 Khz
+>22 byte =4 replay 21.942 KHz
+>22 byte =5 replay 32.336 KHz
+>22 byte =6 replay 43.885 KHz
+>22 byte =7 replay 47.261 KHz
# SGI SoundTrack <mpruett@sgi.com>
0 string _SGI_SoundTrack SGI SoundTrack project file
@@ -230,6 +312,29 @@
0 string FTMN FaceTheMusic module
>16 string >\0d \b, "%s"
+# From: <doj@cubic.org> 2003-06-24
+0 string AMShdr\32 Velvet Studio AMS Module v2.2
+0 string Extreme Extreme Tracker AMS Module v1.3
+0 string DDMF Xtracker DMF Module
+>4 byte x v%i
+>0xD string >\0 Title: "%s"
+>0x2B string >\0 Composer: "%s"
+0 string DSM\32 Dynamic Studio Module DSM
+0 string SONG DigiTrekker DTM Module
+0 string DMDL DigiTrakker MDL Module
+0 string PSM\32 Protracker Studio PSM Module
+44 string PTMF Poly Tracker PTM Module
+>0 string >\32 Title: "%s"
+0 string MT20 MadTracker 2.0 Module MT2
+0 string RAD\40by\40REALiTY!! RAD Adlib Tracker Module RAD
+0 string RTMM RTM Module
+0x426 string MaDoKaN96 XMS Adlib Module
+>0 string >\0 Composer: "%s"
+0 string AMF AMF Module
+>4 string >\0 Title: "%s"
+0 string MODINFO1 Open Cubic Player Module Inforation MDZ
+0 string Extended\40Instrument: Fast Tracker II Instrument
+
# From: Takeshi Hamasaki <hma@syd.odn.ne.jp>
# NOA Nancy Codec file
0 string \210NOA\015\012\032 NOA Nancy Codec Movie file
@@ -240,7 +345,56 @@
>20 string Ver01.00 Ver. 1.00
>>32 byte x , %d tracks
-# FLAC audio stream <URL:http://flac.sourceforge.net/>
-# From: Dan Fandrich <dan@coneharvesters.com>
-0 string fLaC FLAC audio stream data
+# Free lossless audio codec <http://flac.sourceforge.net>
+# From: Przemyslaw Augustyniak <silvathraec@rpg.pl>
+0 string fLaC FLAC audio bitstream data
+>4 byte&0x7f >0 \b, unknown version
+>4 byte&0x7f 0 \b
+# some common bits/sample values
+>>20 beshort&0x1f0 0x030 \b, 4 bit
+>>20 beshort&0x1f0 0x050 \b, 6 bit
+>>20 beshort&0x1f0 0x070 \b, 8 bit
+>>20 beshort&0x1f0 0x0b0 \b, 12 bit
+>>20 beshort&0x1f0 0x0f0 \b, 16 bit
+>>20 beshort&0x1f0 0x170 \b, 24 bit
+>>20 byte&0xe 0x0 \b, mono
+>>20 byte&0xe 0x2 \b, stereo
+>>20 byte&0xe 0x4 \b, 3 channels
+>>20 byte&0xe 0x6 \b, 4 channels
+>>20 byte&0xe 0x8 \b, 5 channels
+>>20 byte&0xe 0xa \b, 6 channels
+>>20 byte&0xe 0xc \b, 7 channels
+>>20 byte&0xe 0xe \b, 8 channels
+# some common sample rates
+>>17 belong&0xfffff0 0x0ac440 \b, 44.1 kHz
+>>17 belong&0xfffff0 0x0bb800 \b, 48 kHz
+>>17 belong&0xfffff0 0x07d000 \b, 32 kHz
+>>17 belong&0xfffff0 0x056220 \b, 22.05 kHz
+>>17 belong&0xfffff0 0x05dc00 \b, 24 kHz
+>>17 belong&0xfffff0 0x03e800 \b, 16 kHz
+>>17 belong&0xfffff0 0x02b110 \b, 11.025 kHz
+>>17 belong&0xfffff0 0x02ee00 \b, 12 kHz
+>>17 belong&0xfffff0 0x01f400 \b, 8 kHz
+>>17 belong&0xfffff0 0x177000 \b, 96 kHz
+>>17 belong&0xfffff0 0x0fa000 \b, 64 kHz
+>>21 byte&0xf >0 \b, >4G samples
+>>21 byte&0xf 0 \b
+>>>22 belong >0 \b, %u samples
+>>>22 belong 0 \b, length unknown
+
+# (ISDN) VBOX voice message file (Wolfram Kleff)
+0 string VBOX VBOX voice message data
+
+# ReBorn Song Files (.rbs)
+# David J. Singer <doc@deadvirgins.org.uk>
+8 string RB40 RBS Song file
+>29 string ReBorn created by ReBorn
+>37 string Propellerhead created by ReBirth
+
+# Synthesizer Generator and Kimwitu share their file format
+0 string A#S#C#S#S#L#V#3 Synthesizer Generator or Kimwitu data
+# Kimwitu++ uses a slightly different magic
+0 string A#S#C#S#S#L#HUB Kimwitu++ data
+# From "Simon Hosie
+0 string TFMX-SONG TFMX module sound data
diff --git a/contrib/file/Magdir/bFLT b/contrib/file/Magdir/bFLT
new file mode 100644
index 000000000000..5e288d130b07
--- /dev/null
+++ b/contrib/file/Magdir/bFLT
@@ -0,0 +1,12 @@
+#------------------------------------------------------------------------------
+# bFLT: file(1) magic for BFLT uclinux binary files
+#
+# From Philippe De Muyter <phdm@macqel.be>
+#
+0 string bFLT BFLT executable
+>4 belong x - version %ld
+>4 belong 4
+>>36 belong&0x1 0x1 ram
+>>36 belong&0x2 0x2 gotpic
+>>36 belong&0x4 0x4 gzip
+>>36 belong&0x8 0x8 gzdata
diff --git a/contrib/file/Magdir/bout b/contrib/file/Magdir/bout
new file mode 100644
index 000000000000..ab771fedec6c
--- /dev/null
+++ b/contrib/file/Magdir/bout
@@ -0,0 +1,9 @@
+#
+# i80960 b.out objects and archives
+#
+0 long 0x10d i960 b.out relocatable object
+>16 long >0 not stripped
+#
+# b.out archive (hp-rt on i960)
+0 string !<bout> b.out archive
+>8 string __.SYMDEF random library
diff --git a/contrib/file/Magdir/c-lang b/contrib/file/Magdir/c-lang
index 1b0147595b7d..1dcf63680fae 100644
--- a/contrib/file/Magdir/c-lang
+++ b/contrib/file/Magdir/c-lang
@@ -10,4 +10,15 @@
# this first will upset you if you're a PL/1 shop...
# in which case rm it; ascmagic will catch real C programs
#0 string /* C or REXX program text
-0 string // C++ program text
+#0 string // C++ program text
+
+# From: Mikhail Teterin <mi@aldan.algebra.com>
+0 string cscope cscope reference data
+>7 string x version %.2s
+# We skip the path here, because it is often long (so file will
+# truncate it) and mostly redundant.
+# The inverted index functionality was added some time betwen
+# versions 11 and 15, so look for -q if version is above 14:
+>7 string >14
+>>10 regex .+\ -q\ with inverted index
+>10 regex .+\ -c\ text (non-compressed)
diff --git a/contrib/file/Magdir/c64 b/contrib/file/Magdir/c64
new file mode 100644
index 000000000000..4ca143fbf946
--- /dev/null
+++ b/contrib/file/Magdir/c64
@@ -0,0 +1,27 @@
+
+#------------------------------------------------------------------------------
+# c64: file(1) magic for various commodore 64 related files
+#
+# From <doj@cubic.org>
+
+0x16500 belong 0x12014100 D64 Image
+0x16500 belong 0x12014180 D71 Image
+0x61800 belong 0x28034400 D81 Image
+0 string C64\40CARTRIDGE CCS C64 Emultar Cartridge Image
+0 belong 0x43154164 X64 Image
+
+0 string GCR-1541 GCR Image
+>8 byte x version: $i
+>9 byte x tracks: %i
+
+9 string PSUR ARC archive (c64)
+2 string -LH1- LHA archive (c64)
+
+0 string C64File PC64 Emulator file
+>8 string >\0 "%s"
+0 string C64Image PC64 Freezer Image
+
+0 beshort 0x38CD C64 PCLink Image
+0 string CBM\144\0\0 Power 64 C64 Emulator Snapshot
+
+0 belong 0xFF424CFF WRAptor packer (c64)
diff --git a/contrib/file/Magdir/cad b/contrib/file/Magdir/cad
new file mode 100644
index 000000000000..92aa837e8afa
--- /dev/null
+++ b/contrib/file/Magdir/cad
@@ -0,0 +1,36 @@
+
+#------------------------------------------------------------------------------
+# autocad: file(1) magic for cad files
+#
+
+# AutoCAD DWG versions R13/R14 (www.autodesk.com)
+# Written December 01, 2003 by Lester Hightower
+# Based on the DWG File Format Specifications at http://www.opendwg.org/
+0 string \101\103\061\060\061 AutoCAD
+>5 string \062\000\000\000\000 DWG ver. R13
+>5 string \064\000\000\000\000 DWG ver. R14
+
+# Microstation DGN/CIT Files (www.bentley.com)
+# Written October 30, 2003 by Lester Hightower
+# DGN is the default file extension of Microstation/Intergraph CAD files.
+# CIT is the proprietary raster format (similar to TIFF) used to attach
+# raster underlays to Microstation DGN (vector) drawings.
+#
+# http://www.wotsit.org/search.asp
+# http://filext.com/detaillist.php?extdetail=DGN
+# http://filext.com/detaillist.php?extdetail=CIT
+#
+# http://www.bentley.com/products/default.cfm?objectid=97F351F5-9C35-4E5E-89C2
+# 3F86C928&method=display&p_objectid=97F351F5-9C35-4E5E-89C280A93F86C928
+# http://www.bentley.com/products/default.cfm?objectid=A5C2FD43-3AC9-4C71-B682
+# 721C479F&method=display&p_objectid=A5C2FD43-3AC9-4C71-B682C7BE721C479F
+0 string \010\011\376 Microstation
+>3 string \002
+>>30 string \372\104 DGN File
+>>30 string \172\104 DGN File
+>>30 string \026\105 DGN File
+>4 string \030\000\000 CIT File
+
+# AutoCad, from Nahuel Greco
+0 string AC1012 AutoCad (release 12)
+0 string AC1014 AutoCad (release 14)
diff --git a/contrib/file/Magdir/chord b/contrib/file/Magdir/chord
new file mode 100644
index 000000000000..3639f3c4917e
--- /dev/null
+++ b/contrib/file/Magdir/chord
@@ -0,0 +1,9 @@
+
+#------------------------------------------------------------------------------
+# chord: file(1) magic for Chord music sheet typesetting utility input files
+#
+# From Philippe De Muyter <phdm@macqel.be>
+# File format is actually free, but many distributed files begin with `{title'
+#
+0 string {title Chord text file
+
diff --git a/contrib/file/Magdir/claris b/contrib/file/Magdir/claris
index b18bd915d5ed..368b473260ec 100644
--- a/contrib/file/Magdir/claris
+++ b/contrib/file/Magdir/claris
@@ -32,7 +32,7 @@
# a t r i s t sp ^ S cr nl d i v sp #
# .mth Thesaurus
-# statrts with \0 but no magic header
+# starts with \0 but no magic header
# .chy Hyphenation file
# I am not sure: 000 210 034 000 000
diff --git a/contrib/file/Magdir/commands b/contrib/file/Magdir/commands
index a9dd089bf8e0..93244b8cdd98 100644
--- a/contrib/file/Magdir/commands
+++ b/contrib/file/Magdir/commands
@@ -13,6 +13,8 @@
#
# zsh/ash/ae/nawk/gawk magic from cameron@cs.unsw.oz.au (Cameron Simpson)
+0 string/b #!\ /bin/zsh Paul Falstad's zsh script text executable
+0 string/b #!\ /usr/bin/zsh Paul Falstad's zsh script text executable
0 string/b #!\ /usr/local/bin/zsh Paul Falstad's zsh script text executable
0 string/b #!\ /usr/local/bin/ash Neil Brown's ash script text executable
0 string/b #!\ /usr/local/bin/ae Neil Brown's ae script text executable
@@ -40,17 +42,6 @@
0 string #!\ /usr/bin/env a
>16 string >\0 %s script text executable
-
-# generic shell magic
-0 string #!\ / a
->3 string >\0 %s script text executable
-0 string #!\ / a
->3 string >\0 %s script text executable
-0 string #!/ a
->2 string >\0 %s script text executable
-0 string #!\ script text executable
->3 string >\0 for %s
-
# PHP scripts
# Ulf Harnhammar <ulfh@update.uu.se>
0 string/c =<?php PHP script text
diff --git a/contrib/file/Magdir/communications b/contrib/file/Magdir/communications
new file mode 100644
index 000000000000..81417ec08371
--- /dev/null
+++ b/contrib/file/Magdir/communications
@@ -0,0 +1,21 @@
+
+#----------------------------------------------------------------------------
+# communication
+
+# TTCN is the Tree and Tabular Combined Notation described in ISO 9646-3.
+# It is used for conformance testing of communication protocols.
+# Added by W. Borgert <debacle@debian.org>.
+0 string $Suite TTCN Abstract Test Suite
+>&1 string $SuiteId
+>>&1 string >\n %s
+>&2 string $SuiteId
+>>&1 string >\n %s
+>&3 string $SuiteId
+>>&1 string >\n %s
+
+# MSC (message sequence charts) are a formal description technique,
+# described in ITU-T Z.120, mainly used for communication protocols.
+# Added by W. Borgert <debacle@debian.org>.
+0 string mscdocument Message Sequence Chart (document)
+0 string msc Message Sequence Chart (chart)
+0 string submsc Message Sequence Chart (subchart)
diff --git a/contrib/file/Magdir/compress b/contrib/file/Magdir/compress
index 01305416595b..71e689c1b2e3 100644
--- a/contrib/file/Magdir/compress
+++ b/contrib/file/Magdir/compress
@@ -46,10 +46,8 @@
>2 belong >1 \b, %d characters originally
>2 belong =1 \b, %d character originally
#
-# This magic number is byte-order-independent. XXX - Does that mean this
-# is big-endian, little-endian, either, or that you can't tell?
-# this short is valid for SunOS
-0 short 017437 old packed data
+# This magic number is byte-order-independent.
+0 short 0x1f1f old packed data
# XXX - why *two* entries for "compacted data", one of which is
# byte-order independent, and one of which is byte-order dependent?
@@ -169,3 +167,6 @@
0 string 7z\274\257\047\034 7z archive data,
>6 byte x version %d
>7 byte x \b.%d
+
+# AFX compressed files (Wolfram Kleff)
+2 string -afx- AFX compressed file data
diff --git a/contrib/file/Magdir/console b/contrib/file/Magdir/console
index f8d2ebb5ae07..ff5a15268022 100644
--- a/contrib/file/Magdir/console
+++ b/contrib/file/Magdir/console
@@ -119,4 +119,37 @@
#------------------------------------------------------------------------------
# msx: file(1) magic for MSX game cartridge dumps
-0 beshort 0x4142 MSX game cartridge dump
+# Too simple - MPi
+#0 beshort 0x4142 MSX game cartridge dump
+
+#------------------------------------------------------------------------------
+# Sony Playstation executables (Adam Sjoegren <asjo@diku.dk>) :
+0 string PS-X\ EXE Sony Playstation executable
+# Area:
+>113 string x (%s)
+
+#------------------------------------------------------------------------------
+# Microsoft Xbox executables .xbe (Esa Hyytiä <ehyytia@cc.hut.fi>)
+0 string XBEH XBE, Microsoft Xbox executable
+# probabilistic checks whether signed or not
+>0x0004 ulelong =0x0
+>>&2 ulelong =0x0
+>>>&2 ulelong =0x0 \b, not signed
+>0x0004 ulelong >0
+>>&2 ulelong >0
+>>>&2 ulelong >0 \b, signed
+# expect base address of 0x10000
+>0x0104 ulelong =0x10000
+>>(0x0118-0x0FF60) ulelong&0x80000007 0x80000007 \b, all regions
+>>(0x0118-0x0FF60) ulelong&0x80000007 !0x80000007
+>>>(0x0118-0x0FF60) ulelong >0 (regions:
+>>>>(0x0118-0x0FF60) ulelong &0x00000001 NA
+>>>>(0x0118-0x0FF60) ulelong &0x00000002 Japan
+>>>>(0x0118-0x0FF60) ulelong &0x00000004 Rest_of_World
+>>>>(0x0118-0x0FF60) ulelong &0x80000000 Manufacturer
+>>>(0x0118-0x0FF60) ulelong >0 \b)
+
+# --------------------------------
+# Microsoft Xbox data file formats
+0 string XIP0 XIP, Microsoft Xbox data
+0 string XTF0 XTF, Microsoft Xbox data
diff --git a/contrib/file/Magdir/dact b/contrib/file/Magdir/dact
new file mode 100644
index 000000000000..5cca8d961601
--- /dev/null
+++ b/contrib/file/Magdir/dact
@@ -0,0 +1,10 @@
+
+#------------------------------------------------------------------------------
+# dact: file(1) magic for DACT compressed files
+#
+0 long 0x444354C3 DACT compressed data
+>4 byte >-1 (version %i.
+>5 byte >-1 $BS%i.
+>6 byte >-1 $BS%i)
+>7 long >0 $BS, original size: %i bytes
+>15 long >30 $BS, block size: %i bytes
diff --git a/contrib/file/Magdir/database b/contrib/file/Magdir/database
index 9d5fe1970dab..f31aee50d007 100644
--- a/contrib/file/Magdir/database
+++ b/contrib/file/Magdir/database
@@ -78,3 +78,126 @@
0 string root\0 ROOT file
>4 belong x Version %d
>33 belong x (Compression: %d)
+
+# XXX: Weak magic.
+# Alex Ott <ott@jet.msk.su>
+## Paradox file formats
+#2 leshort 0x0800 Paradox
+#>0x39 byte 3 v. 3.0
+#>0x39 byte 4 v. 3.5
+#>0x39 byte 9 v. 4.x
+#>0x39 byte 10 v. 5.x
+#>0x39 byte 11 v. 5.x
+#>0x39 byte 12 v. 7.x
+#>>0x04 byte 0 indexed .DB data file
+#>>0x04 byte 1 primary index .PX file
+#>>0x04 byte 2 non-indexed .DB data file
+#>>0x04 byte 3 non-incrementing secondary index .Xnn file
+#>>0x04 byte 4 secondary index .Ynn file
+#>>0x04 byte 5 incrementing secondary index .Xnn file
+#>>0x04 byte 6 non-incrementing secondary index .XGn file
+#>>0x04 byte 7 secondary index .YGn file
+#>>>0x04 byte 8 incrementing secondary index .XGn file
+## XBase database files
+#0 byte 0x02
+#>8 leshort >0
+#>>12 leshort 0 FoxBase
+#>>>0x04 lelong 0 (no records)
+#>>>0x04 lelong >0 (%ld records)
+#
+#0 byte 0x03
+#>8 leshort >0
+#>>12 leshort 0 FoxBase+, FoxPro, dBaseIII+, dBaseIV, no memo
+#>>>0x04 lelong 0 (no records)
+#>>>0x04 lelong >0 (%ld records)
+#
+#0 byte 0x04
+#>8 leshort >0
+#>>12 leshort 0 dBASE IV no memo file
+#>>>0x04 lelong 0 (no records)
+#>>>0x04 lelong >0 (%ld records)
+#
+#0 byte 0x05
+#>8 leshort >0
+#>>12 leshort 0 dBASE V no memo file
+#>>>0x04 lelong 0 (no records)
+#>>>0x04 lelong >0 (%ld records)
+#
+#0 byte 0x30
+#>8 leshort >0
+#>>12 leshort 0 Visual FoxPro
+#>>>0x04 lelong 0 (no records)
+#>>>0x04 lelong >0 (%ld records)
+#
+#0 byte 0x43
+#>8 leshort >0
+#>>12 leshort 0 FlagShip with memo var size
+#>>>0x04 lelong 0 (no records)
+#>>>0x04 lelong >0 (%ld records)
+#
+#0 byte 0x7b
+#>8 leshort >0
+#>>12 leshort 0 dBASEIV with memo
+#>>>0x04 lelong 0 (no records)
+#>>>0x04 lelong >0 (%ld records)
+#
+#0 byte 0x83
+#>8 leshort >0
+#>>12 leshort 0 FoxBase+, dBaseIII+ with memo
+#>>>0x04 lelong 0 (no records)
+#>>>0x04 lelong >0 (%ld records)
+#
+#0 byte 0x8b
+#>8 leshort >0
+#>>12 leshort 0 dBaseIV with memo
+#>>>0x04 lelong 0 (no records)
+#>>>0x04 lelong >0 (%ld records)
+#
+#0 byte 0x8e
+#>8 leshort >0
+#>>12 leshort 0 dBaseIV with SQL Table
+#>>>0x04 lelong 0 (no records)
+#>>>0x04 lelong >0 (%ld records)
+#
+#0 byte 0xb3
+#>8 leshort >0
+#>>12 leshort 0 FlagShip with .dbt memo
+#>>>0x04 lelong 0 (no records)
+#>>>0x04 lelong >0 (%ld records)
+#
+#0 byte 0xf5
+#>8 leshort >0
+#>>12 leshort 0 FoxPro with memo
+#>>>0x04 lelong 0 (no records)
+#>>>0x04 lelong >0 (%ld records)
+#
+#0 leshort 0x0006 DBase 3 index file
+
+# MS Access database
+4 string Standard\ Jet\ DB Microsoft Access Database
+
+# TDB database from Samba et al - Martin Pool <mbp@samba.org>
+0 string TDB\ file TDB database
+>32 lelong 0x2601196D version 6, little-endian
+>>36 lelong x hash size %d bytes
+
+# SE Linux policy database
+0 lelong 0xf97cff8c SE Linux policy
+>16 lelong x v%d
+>20 lelong 1 MLS
+>24 lelong x %d symbols
+>28 lelong x %d ocons
+
+# ICE authority file data (Wolfram Kleff)
+2 string ICE ICE authority data
+
+# X11 Xauthority file (Wolfram Kleff)
+10 string MIT-MAGIC-COOKIE-1 X11 Xauthority data
+11 string MIT-MAGIC-COOKIE-1 X11 Xauthority data
+12 string MIT-MAGIC-COOKIE-1 X11 Xauthority data
+13 string MIT-MAGIC-COOKIE-1 X11 Xauthority data
+14 string MIT-MAGIC-COOKIE-1 X11 Xauthority data
+15 string MIT-MAGIC-COOKIE-1 X11 Xauthority data
+16 string MIT-MAGIC-COOKIE-1 X11 Xauthority data
+17 string MIT-MAGIC-COOKIE-1 X11 Xauthority data
+18 string MIT-MAGIC-COOKIE-1 X11 Xauthority data
diff --git a/contrib/file/Magdir/diff b/contrib/file/Magdir/diff
index 81a9b82ab8d8..9e651465efd1 100644
--- a/contrib/file/Magdir/diff
+++ b/contrib/file/Magdir/diff
@@ -6,8 +6,3 @@
0 string ***\ 'diff' output text
0 string Only\ in\ 'diff' output text
0 string Common\ subdirectories:\ 'diff' output text
-
-# xdelta is like diff(1) for binary files (works for text, too).
-# Available from: ftp://ftp.xcf.berkeley.edu/pub/xdelta/
-0 string %XDZ xdelta diff file
->4 string >% version %.3s
diff --git a/contrib/file/Magdir/elf b/contrib/file/Magdir/elf
index bac7f71c93ab..10aac0693daf 100644
--- a/contrib/file/Magdir/elf
+++ b/contrib/file/Magdir/elf
@@ -12,9 +12,14 @@
>4 byte 0 invalid class
>4 byte 1 32-bit
# only for MIPS - in the future, the ABI field of e_flags should be used.
+>>18 leshort 8
+>>>36 lelong &0x20 N32
+>>18 leshort 10
+>>>36 lelong &0x20 N32
>>18 beshort 8
+>>>36 belong &0x20 N32
>>18 beshort 10
->>>36 belong &0x20 N32
+>>>36 belong &0x20 N32
>4 byte 2 64-bit
>5 byte 0 invalid byte order
>5 byte 1 LSB
@@ -77,12 +82,14 @@
>>18 leshort 17 Fujitsu VPP500,
>>18 leshort 18 SPARC32PLUS,
>>18 leshort 20 PowerPC,
+>>18 leshort 22 IBM S/390,
>>18 leshort 36 NEC V800,
>>18 leshort 37 Fujitsu FR20,
>>18 leshort 38 TRW RH-32,
>>18 leshort 39 Motorola RCE,
>>18 leshort 40 ARM,
>>18 leshort 41 Alpha,
+>>18 leshort 0xa390 IBM S/390 (obsolete),
>>18 leshort 42 Hitachi SH,
>>18 leshort 43 SPARC V9 - invalid byte order,
>>18 leshort 44 Siemens Tricore Embedded Processor,
@@ -162,6 +169,7 @@
>>>36 belong&0xffff00 &0x000800 Sun UltraSPARC3 Extensions Required,
>>18 beshort 20 PowerPC or cisco 4500,
>>18 beshort 21 cisco 7500,
+>>18 beshort 22 IBM S/390,
>>18 beshort 24 cisco SVIP,
>>18 beshort 25 cisco 7200,
>>18 beshort 36 NEC V800 or cisco 12000,
@@ -186,10 +194,14 @@
>>18 beshort 75 Digital VAX,
>>18 beshort 97 NatSemi 32k,
>>18 beshort 0x9026 Alpha (unofficial),
+>>18 beshort 0xa390 IBM S/390 (obsolete),
>>20 belong 0 invalid version
>>20 belong 1 version 1
>>36 belong 1 MathCoPro/FPU/MAU Required
->8 string >\0 (%s)
+# Up to now only 0, 1 and 2 are defined; I've seen a file with 0x83, it seemed
+# like proper ELF, but extracting the string had bad results.
+>4 byte <0x80
+>>8 string >\0 (%s)
>8 string \0
>>7 byte 0 (SYSV)
>>7 byte 1 (HP-UX)
diff --git a/contrib/file/Magdir/fcs b/contrib/file/Magdir/fcs
new file mode 100644
index 000000000000..ac4b02c81cf8
--- /dev/null
+++ b/contrib/file/Magdir/fcs
@@ -0,0 +1,8 @@
+
+#------------------------------------------------------------------------------
+# fcs: file(1) magic for FCS (Flow Cytometry Standard) data files
+# From Roger Leigh <roger@whinlatter.uklinux.net>
+0 string FCS1.0 Flow Cytometry Standard (FCS) data, version 1.0
+0 string FCS2.0 Flow Cytometry Standard (FCS) data, version 2.0
+0 string FCS3.0 Flow Cytometry Standard (FCS) data, version 3.0
+
diff --git a/contrib/file/Magdir/filesystems b/contrib/file/Magdir/filesystems
index f34c8235c2b0..c79852580c38 100644
--- a/contrib/file/Magdir/filesystems
+++ b/contrib/file/Magdir/filesystems
@@ -205,8 +205,8 @@
# SGI XFS filesystem - Nathan Scott <nathans@debian.org>
0 belong 0x58465342 SGI XFS filesystem data
->0x4 belong x (blksz=3D%d,
->0x68 beshort x inosz=3D%d,
+>0x4 belong x (blksz %d,
+>0x68 beshort x inosz %d,
>0x64 beshort ^0x2004 v1 dirs)
>0x64 beshort &0x2004 v2 dirs)
@@ -276,5 +276,62 @@
# CDROM Filesystems
32769 string CD001 ISO 9660 CD-ROM filesystem data
+# "application id" which appears to be used as a volume label
+>32808 string >\0 '%s'
+>34816 string \000CD001\001EL\ TORITO\ SPECIFICATION (bootable)
37633 string CD001 ISO 9660 CD-ROM filesystem data (raw 2352 byte sectors)
32776 string CDROM High Sierra CD-ROM filesystem data
+
+# cramfs filesystem - russell@coker.com.au
+0 lelong 0x28cd3d45 Linux Compressed ROM File System data, little endian
+>4 lelong x size %d
+>8 lelong &1 version #2
+>8 lelong &2 sorted_dirs
+>8 lelong &4 hole_support
+>32 lelong x CRC 0x%x,
+>36 lelong x edition %d,
+>40 lelong x %d blocks,
+>44 lelong x %d files
+
+0 belong 0x28cd3d45 Linux Compressed ROM File System data, big endian
+>4 belong x size %d
+>8 belong &1 version #2
+>8 belong &2 sorted_dirs
+>8 belong &4 hole_support
+>32 belong x CRC 0x%x,
+>36 belong x edition %d,
+>40 belong x %d blocks,
+>44 belong x %d files
+
+# reiserfs - russell@coker.com.au
+0x10034 string ReIsErFs ReiserFS V3.5
+0x10034 string ReIsEr2Fs ReiserFS V3.6
+>0x1002c leshort x block size %d
+>0x10032 leshort &2 (mounted or unclean)
+>0x10000 lelong x num blocks %d
+>0x10040 lelong 1 tea hash
+>0x10040 lelong 2 yura hash
+>0x10040 lelong 3 r5 hash
+
+# JFFS - russell@coker.com.au
+0 lelong 0x34383931 Linux Journalled Flash File system, little endian
+0 belong 0x34383931 Linux Journalled Flash File system, big endian
+
+# EST flat binary format (which isn't, but anyway)
+# From: Mark Brown <broonie@sirena.org.uk>
+0 string ESTFBINR EST flat binary
+
+# Aculab VoIP firmware
+# From: Mark Brown <broonie@sirena.org.uk>
+0 string VoIP\ Startup\ and Aculab VoIP firmware
+>35 string x format %s
+
+# PPCBoot image file
+# From: Mark Brown <broonie@sirena.org.uk>
+0 belong 0x27051956 PPCBoot image
+>4 string PPCBoot
+>>12 string x version %s
+
+# JFFS2 file system
+0 leshort 0x1984 Linux old jffs2 filesystem data little endian
+0 lelong 0xe0011985 Linux jffs2 filesystem data little endian
diff --git a/contrib/file/Magdir/flash b/contrib/file/Magdir/flash
index 0db9bfe20f57..2f343d8c31ba 100644
--- a/contrib/file/Magdir/flash
+++ b/contrib/file/Magdir/flash
@@ -8,6 +8,8 @@
#
0 string FWS Macromedia Flash data,
>3 byte x version %d
+0 string CWS Macromedia Flash data (compressed),
+>3 byte x version %d
#
# From Dave Wilson
0 string AGD4\xbe\xb8\xbb\xcb\x00 Macromedia Freehand 9 Document
diff --git a/contrib/file/Magdir/fonts b/contrib/file/Magdir/fonts
index d0dc225993c6..6a1ad34b2ea4 100644
--- a/contrib/file/Magdir/fonts
+++ b/contrib/file/Magdir/fonts
@@ -7,9 +7,9 @@
0 short 017001 byte-swapped Berkeley vfont data
# PostScript fonts (must precede "printer" entries), quinlan@yggdrasil.com
-0 string %!PS-AdobeFont-1.0 PostScript Type 1 font text
+0 string %!PS-AdobeFont-1. PostScript Type 1 font text
>20 string >\0 (%s)
-6 string %!PS-AdobeFont-1.0 PostScript Type 1 font program data
+6 string %!PS-AdobeFont-1. PostScript Type 1 font program data
# X11 font files in SNF (Server Natural Format) format
0 belong 00000004 X11 SNF font data, MSB first
@@ -49,3 +49,13 @@
# downloadable fonts for browser (prints type) anthon@mnt.org
0 string PFR1 PFR1 font
>102 string >0 \b: %s
+
+# True Type fonts
+0 string \000\001\000\000\000 TrueType font data
+
+0 string \007\001\001\000Copyright\ (c)\ 199 Adobe Multiple Master font
+0 string \012\001\001\000Copyright\ (c)\ 199 Adobe Multiple Master font
+
+# Opentype font data from Avi Bercovich
+0 string OTTO OpenType font data
+
diff --git a/contrib/file/Magdir/games b/contrib/file/Magdir/games
new file mode 100644
index 000000000000..2dc17da6c625
--- /dev/null
+++ b/contrib/file/Magdir/games
@@ -0,0 +1,157 @@
+#------------------------------------------------------------------------------
+# games: file(1) for games
+
+# Thomas M. Ott (ThMO)
+1 string =WAD DOOM data,
+>0 string =I main wad
+>0 string =P patch wad
+>0 byte x unknown junk
+
+# Fabio Bonelli <fabiobonelli@libero.it>
+# Quake II - III data files
+0 string IDP2 Quake II 3D Model file,
+>20 long x %lu skin(s),
+>8 long x (%lu x
+>12 long x %lu),
+>40 long x %lu frame(s),
+>16 long x Frame size %lu bytes,
+>24 long x %lu vertices/frame,
+>28 long x %lu texture coordinates,
+>32 long x %lu triangles/frame
+
+0 string IBSP Quake
+>4 long 0x26 II Map file (BSP)
+>4 long 0x2E III Map file (BSP)
+
+0 string IDS2 Quake II SP2 sprite file
+
+#---------------------------------------------------------------------------
+# Doom and Quake
+# submitted by Nicolas Patrois
+
+# DOOM
+
+0 string IWAD DOOM or DOOM ][ world
+0 string PWAD DOOM or DOOM ][ extension world
+
+0 string \xcb\x1dBoom\xe6\xff\x03\x01 Boom or linuxdoom demo
+# some doom lmp files don't match, I've got one beginning with \x6d\x02\x01\x01
+
+24 string LxD\ 203 Linuxdoom save
+>0 string x , name=%s
+>44 string x , world=%s
+
+# Quake
+
+0 string PACK Quake I or II world or extension
+
+#0 string -1\x0a Quake I demo
+#>30 string x version %.4s
+#>61 string x level %s
+
+#0 string 5\x0a Quake I save
+
+# The levels
+
+# Quake 1
+
+0 string 5\x0aIntroduction Quake I save: start Introduction
+0 string 5\x0athe_Slipgate_Complex Quake I save: e1m1 The slipgate complex
+0 string 5\x0aCastle_of_the_Damned Quake I save: e1m2 Castle of the damned
+0 string 5\x0athe_Necropolis Quake I save: e1m3 The necropolis
+0 string 5\x0athe_Grisly_Grotto Quake I save: e1m4 The grisly grotto
+0 string 5\x0aZiggurat_Vertigo Quake I save: e1m8 Ziggurat vertigo (secret)
+0 string 5\x0aGloom_Keep Quake I save: e1m5 Gloom keep
+0 string 5\x0aThe_Door_To_Chthon Quake I save: e1m6 The door to Chthon
+0 string 5\x0aThe_House_of_Chthon Quake I save: e1m7 The house of Chthon
+0 string 5\x0athe_Installation Quake I save: e2m1 The installation
+0 string 5\x0athe_Ogre_Citadel Quake I save: e2m2 The ogre citadel
+0 string 5\x0athe_Crypt_of_Decay Quake I save: e2m3 The crypt of decay (dopefish lives!)
+0 string 5\x0aUnderearth Quake I save: e2m7 Underearth (secret)
+0 string 5\x0athe_Ebon_Fortress Quake I save: e2m4 The ebon fortress
+0 string 5\x0athe_Wizard's_Manse Quake I save: e2m5 The wizard's manse
+0 string 5\x0athe_Dismal_Oubliette Quake I save: e2m6 The dismal oubliette
+0 string 5\x0aTermination_Central Quake I save: e3m1 Termination central
+0 string 5\x0aVaults_of_Zin Quake I save: e3m2 Vaults of Zin
+0 string 5\x0athe_Tomb_of_Terror Quake I save: e3m3 The tomb of terror
+0 string 5\x0aSatan's_Dark_Delight Quake I save: e3m4 Satan's dark delight
+0 string 5\x0athe_Haunted_Halls Quake I save: e3m7 The haunted halls (secret)
+0 string 5\x0aWind_Tunnels Quake I save: e3m5 Wind tunnels
+0 string 5\x0aChambers_of_Torment Quake I save: e3m6 Chambers of torment
+0 string 5\x0athe_Sewage_System Quake I save: e4m1 The sewage system
+0 string 5\x0aThe_Tower_of_Despair Quake I save: e4m2 The tower of despair
+0 string 5\x0aThe_Elder_God_Shrine Quake I save: e4m3 The elder god shrine
+0 string 5\x0athe_Palace_of_Hate Quake I save: e4m4 The palace of hate
+0 string 5\x0aHell's_Atrium Quake I save: e4m5 Hell's atrium
+0 string 5\x0athe_Nameless_City Quake I save: e4m8 The nameless city (secret)
+0 string 5\x0aThe_Pain_Maze Quake I save: e4m6 The pain maze
+0 string 5\x0aAzure_Agony Quake I save: e4m7 Azure agony
+0 string 5\x0aShub-Niggurath's_Pit Quake I save: end Shub-Niggurath's pit
+
+# Quake DeathMatch levels
+
+0 string 5\x0aPlace_of_Two_Deaths Quake I save: dm1 Place of two deaths
+0 string 5\x0aClaustrophobopolis Quake I save: dm2 Claustrophobopolis
+0 string 5\x0aThe_Abandoned_Base Quake I save: dm3 The abandoned base
+0 string 5\x0aThe_Bad_Place Quake I save: dm4 The bad place
+0 string 5\x0aThe_Cistern Quake I save: dm5 The cistern
+0 string 5\x0aThe_Dark_Zone Quake I save: dm6 The dark zone
+
+# Scourge of Armagon
+
+0 string 5\x0aCommand_HQ Quake I save: start Command HQ
+0 string 5\x0aThe_Pumping_Station Quake I save: hip1m1 The pumping station
+0 string 5\x0aStorage_Facility Quake I save: hip1m2 Storage facility
+0 string 5\x0aMilitary_Complex Quake I save: hip1m5 Military complex (secret)
+0 string 5\x0athe_Lost_Mine Quake I save: hip1m3 The lost mine
+0 string 5\x0aResearch_Facility Quake I save: hip1m4 Research facility
+0 string 5\x0aAncient_Realms Quake I save: hip2m1 Ancient realms
+0 string 5\x0aThe_Gremlin's_Domain Quake I save: hip2m6 The gremlin's domain (secret)
+0 string 5\x0aThe_Black_Cathedral Quake I save: hip2m2 The black cathedral
+0 string 5\x0aThe_Catacombs Quake I save: hip2m3 The catacombs
+0 string 5\x0athe_Crypt__ Quake I save: hip2m4 The crypt
+0 string 5\x0aMortum's_Keep Quake I save: hip2m5 Mortum's keep
+0 string 5\x0aTur_Torment Quake I save: hip3m1 Tur torment
+0 string 5\x0aPandemonium Quake I save: hip3m2 Pandemonium
+0 string 5\x0aLimbo Quake I save: hip3m3 Limbo
+0 string 5\x0athe_Edge_of_Oblivion Quake I save: hipdm1 The edge of oblivion (secret)
+0 string 5\x0aThe_Gauntlet Quake I save: hip3m4 The gauntlet
+0 string 5\x0aArmagon's_Lair Quake I save: hipend Armagon's lair
+
+# Malice
+
+0 string 5\x0aThe_Academy Quake I save: start The academy
+0 string 5\x0aThe_Lab Quake I save: d1 The lab
+0 string 5\x0aArea_33 Quake I save: d1b Area 33
+0 string 5\x0aSECRET_MISSIONS Quake I save: d3b Secret missions
+0 string 5\x0aThe_Hospital Quake I save: d10 The hospital (secret)
+0 string 5\x0aThe_Genetics_Lab Quake I save: d11 The genetics lab (secret)
+0 string 5\x0aBACK_2_MALICE Quake I save: d4b Back to Malice
+0 string 5\x0aArea44 Quake I save: d1c Area 44
+0 string 5\x0aTakahiro_Towers Quake I save: d2 Takahiro towers
+0 string 5\x0aA_Rat's_Life Quake I save: d3 A rat's life
+0 string 5\x0aInto_The_Flood Quake I save: d4 Into the flood
+0 string 5\x0aThe_Flood Quake I save: d5 The flood
+0 string 5\x0aNuclear_Plant Quake I save: d6 Nuclear plant
+0 string 5\x0aThe_Incinerator_Plant Quake I save: d7 The incinerator plant
+0 string 5\x0aThe_Foundry Quake I save: d7b The foundry
+0 string 5\x0aThe_Underwater_Base Quake I save: d8 The underwater base
+0 string 5\x0aTakahiro_Base Quake I save: d9 Takahiro base
+0 string 5\x0aTakahiro_Laboratories Quake I save: d12 Takahiro laboratories
+0 string 5\x0aStayin'_Alive Quake I save: d13 Stayin' alive
+0 string 5\x0aB.O.S.S._HQ Quake I save: d14 B.O.S.S. HQ
+0 string 5\x0aSHOWDOWN! Quake I save: d15 Showdown!
+
+# Malice DeathMatch levels
+
+0 string 5\x0aThe_Seventh_Precinct Quake I save: ddm1 The seventh precinct
+0 string 5\x0aSub_Station Quake I save: ddm2 Sub station
+0 string 5\x0aCrazy_Eights! Quake I save: ddm3 Crazy eights!
+0 string 5\x0aEast_Side_Invertationa Quake I save: ddm4 East side invertationa
+0 string 5\x0aSlaughterhouse Quake I save: ddm5 Slaughterhouse
+0 string 5\x0aDOMINO Quake I save: ddm6 Domino
+0 string 5\x0aSANDRA'S_LADDER Quake I save: ddm7 Sandra's ladder
+
+
+0 string MComprHD MAME CHD compressed hard disk image,
+>12 belong x version %lu
diff --git a/contrib/file/Magdir/gcc b/contrib/file/Magdir/gcc
new file mode 100644
index 000000000000..ee726f3a5ade
--- /dev/null
+++ b/contrib/file/Magdir/gcc
@@ -0,0 +1,16 @@
+
+#------------------------------------------------------------------------------
+# gcc: file(1) magic for GCC special files
+#
+0 string gpch GCC precompiled header
+
+# The version field is annoying. It's 3 characters, not zero-terminated.
+>5 byte x (version %c
+>6 byte x \b%c
+>7 byte x \b%c)
+
+# 67 = 'C', 111 = 'o', 43 = '+', 79 = 'O'
+>4 byte 67 for C
+>4 byte 111 for Objective C
+>4 byte 43 for C++
+>4 byte 79 for Objective C++
diff --git a/contrib/file/Magdir/geos b/contrib/file/Magdir/geos
new file mode 100644
index 000000000000..af1df7b71945
--- /dev/null
+++ b/contrib/file/Magdir/geos
@@ -0,0 +1,19 @@
+
+#------------------------------------------------------------------------------
+# GEOS files (Vidar Madsen, vidar@gimp.org)
+# semi-commonly used in embedded and handheld systems.
+0 belong 0xc745c153 GEOS
+>40 byte 1 executable
+>40 byte 2 VMFile
+>40 byte 3 binary
+>40 byte 4 directory label
+>40 byte <1 unknown
+>40 byte >4 unknown
+>4 string >\0 \b, name "%s"
+#>44 short x \b, version %d
+#>46 short x \b.%d
+#>48 short x \b, rev %d
+#>50 short x \b.%d
+#>52 short x \b, proto %d
+#>54 short x \br%d
+#>168 string >\0 \b, copyright "%s"
diff --git a/contrib/file/Magdir/gnu b/contrib/file/Magdir/gnu
index a385fc972e8d..99b9830eb222 100644
--- a/contrib/file/Magdir/gnu
+++ b/contrib/file/Magdir/gnu
@@ -10,3 +10,15 @@
# message catalogs, from Mitchum DSouza <m.dsouza@mrc-apu.cam.ac.uk>
0 string *nazgul* Nazgul style compiled message catalog
>8 lelong >0 \b, version %ld
+# GnuPG
+# The format is very similar to pgp
+0 string \001gpg GPG key trust database
+>4 byte x version %d
+0 beshort 0x9901 GPG key public ring
+# This magic is not particularly good, as the keyrings don't have true
+# magic. Nevertheless, it covers many keyrings.
+
+# Gnumeric spreadsheet
+# This entry is only semi-helpful, as Gnumeric compresses its files, so
+# they will ordinarily reported as "compressed", but at least -z helps
+39 string =<gmr:Workbook Gnumeric spreadsheet
diff --git a/contrib/file/Magdir/human68k b/contrib/file/Magdir/human68k
index 0ac82a76689b..d8070f725d04 100644
--- a/contrib/file/Magdir/human68k
+++ b/contrib/file/Magdir/human68k
@@ -1,25 +1,25 @@
#------------------------------------------------------------------------------
# human68k: file(1) magic for Human68k (X680x0 DOS) binary formats
-
-0 string HU Human68k
->68 string LZX LZX compressed
->>72 string >\0 (version %s)
->(8.L+74) string LZX LZX compressed
->>(8.L+78) string >\0 (version %s)
->60 belong >0 binded
->(8.L+66) string #HUPAIR hupair
->0 string HU X executable
->(8.L+74) string #LIBCV1 - linked PD LIBC ver 1
->4 belong >0 - base address 0x%x
->28 belong >0 not stripped
->32 belong >0 with debug information
-0 beshort 0x601a Human68k Z executable
-0 beshort 0x6000 Human68k object file
-0 belong 0xd1000000 Human68k ar binary archive
-0 belong 0xd1010000 Human68k ar ascii archive
-0 beshort 0x0068 Human68k lib archive
-4 string LZX Human68k LZX compressed
->8 string >\0 (version %s)
->4 string LZX R executable
-2 string #HUPAIR Human68k hupair R executable
+# Magic too short!
+#0 string HU Human68k
+#>68 string LZX LZX compressed
+#>>72 string >\0 (version %s)
+#>(8.L+74) string LZX LZX compressed
+#>>(8.L+78) string >\0 (version %s)
+#>60 belong >0 binded
+#>(8.L+66) string #HUPAIR hupair
+#>0 string HU X executable
+#>(8.L+74) string #LIBCV1 - linked PD LIBC ver 1
+#>4 belong >0 - base address 0x%x
+#>28 belong >0 not stripped
+#>32 belong >0 with debug information
+#0 beshort 0x601a Human68k Z executable
+#0 beshort 0x6000 Human68k object file
+#0 belong 0xd1000000 Human68k ar binary archive
+#0 belong 0xd1010000 Human68k ar ascii archive
+#0 beshort 0x0068 Human68k lib archive
+#4 string LZX Human68k LZX compressed
+#>8 string >\0 (version %s)
+#>4 string LZX R executable
+#2 string #HUPAIR Human68k hupair R executable
diff --git a/contrib/file/Magdir/ibm6000 b/contrib/file/Magdir/ibm6000
index 8e1077b9b8c8..6870c3121ade 100644
--- a/contrib/file/Magdir/ibm6000
+++ b/contrib/file/Magdir/ibm6000
@@ -15,3 +15,5 @@
0 string 0xabcdef AIX message catalog
0 belong 0x000001f9 AIX compiled message catalog
0 string \<aiaff> archive
+0 string \<bigaf> archive (big format)
+
diff --git a/contrib/file/Magdir/iff b/contrib/file/Magdir/iff
index 68d1b79bd86c..334d71e6c039 100644
--- a/contrib/file/Magdir/iff
+++ b/contrib/file/Magdir/iff
@@ -16,6 +16,8 @@
>8 string AIFC \b, AIFF-C compressed audio
>8 string 8SVX \b, 8SVX 8-bit sampled sound voice
>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
>>20 beshort x \b, %d x
@@ -26,3 +28,5 @@
>8 string TDDD \b, TDDD 3-D rendering
# other formats
>8 string FTXT \b, FTXT formatted text
+>8 string CTLG \b, CTLG message catalog
+>8 string PREF \b, PREF preferences
diff --git a/contrib/file/Magdir/images b/contrib/file/Magdir/images
index 27a38ebb4a16..b992a92bac91 100644
--- a/contrib/file/Magdir/images
+++ b/contrib/file/Magdir/images
@@ -17,10 +17,16 @@
# `tgatoppm' recognizes a superset (Index may be anything)
1 belong&0xfff7ffff 0x01010000 Targa image data - Map
>2 byte&8 8 - RLE
+>12 leshort >0 %hd x
+>14 leshort >0 %hd
1 belong&0xfff7ffff 0x00020000 Targa image data - RGB
>2 byte&8 8 - RLE
+>12 leshort >0 %hd x
+>14 leshort >0 %hd
1 belong&0xfff7ffff 0x00030000 Targa image data - Mono
>2 byte&8 8 - RLE
+>12 leshort >0 %hd x
+>14 leshort >0 %hd
# PBMPLUS images
# The next byte following the magic is always whitespace.
@@ -158,10 +164,11 @@
>>18 lelong x \b, %d x
>>22 lelong x %d x
>>28 leshort x %d
-0 string IC PC icon data
-0 string PI PC pointer image data
-0 string CI PC color icon data
-0 string CP PC color pointer image data
+# Too simple - MPi
+#0 string IC PC icon data
+#0 string PI PC pointer image data
+#0 string CI PC color icon data
+#0 string CP PC color pointer image data
# Conflicts with other entries [BABYL]
#0 string BA PC bitmap array data
@@ -269,11 +276,11 @@
# DICOM medical imaging data
128 string DICM DICOM medical imaging data
-# XWD - X-Windows Dump file.
+# XWD - X Window Dump file.
# As described in /usr/X11R6/include/X11/XWDFile.h
# used by the xwd program.
# Bradford Castalia, idaeim, 1/01
-4 belong 7 XWD X-Windows Dump image data
+4 belong 7 XWD X Window Dump image data
>100 string >\0 \b, "%s"
>16 belong x \b, %dx
>20 belong x \b%dx
@@ -359,3 +366,156 @@
>>14 leshort x %hd dpi,
>2 byte 0 uncompressed
>2 byte 1 RLE compressed
+
+# Adobe Photoshop
+0 string 8BPS Adobe Photoshop Image
+
+# XV thumbnail indicator (ThMO)
+0 string P7\ 332 XV thumbnail image data
+
+# NITF is defined by United States MIL-STD-2500A
+0 string NITF National Imagery Transmission Format
+>25 string >\0 dated %.14s
+
+# GEM Image: Version 1, Headerlen 8 (Wolfram Kleff)
+0 belong 0x00010008 GEM Image data
+>12 beshort x %d x
+>14 beshort x %d,
+>4 beshort x %d planes,
+>8 beshort x %d x
+>10 beshort x %d pixelsize
+
+# GEM Metafile (Wolfram Kleff)
+0 lelong 0x0018FFFF GEM Metafile data
+>4 leshort x version %d
+
+#
+# SMJPEG. A custom Motion JPEG format used by Loki Entertainment
+# Software Torbjorn Andersson <d91tan@Update.UU.SE>.
+#
+0 string \0\nSMJPEG SMJPEG
+>8 belong x %d.x data
+# According to the specification you could find any number of _TXT
+# headers here, but I can't think of any way of handling that. None of
+# the SMJPEG files I tried it on used this feature. Even if such a
+# file is encountered the output should still be reasonable.
+>16 string _SND \b,
+>>24 beshort >0 %d Hz
+>>26 byte 8 8-bit
+>>26 byte 16 16-bit
+>>28 string NONE uncompressed
+# >>28 string APCM ADPCM compressed
+>>27 byte 1 mono
+>>28 byte 2 stereo
+# Help! Isn't there any way to avoid writing this part twice?
+>>32 string _VID \b,
+# >>>48 string JFIF JPEG
+>>>40 belong >0 %d frames
+>>>44 beshort >0 (%d x
+>>>46 beshort >0 %d)
+>16 string _VID \b,
+# >>32 string JFIF JPEG
+>>24 belong >0 %d frames
+>>28 beshort >0 (%d x
+>>30 beshort >0 %d)
+
+0 string Paint\ Shop\ Pro\ Image\ File Paint Shop Pro Image File
+
+# "thumbnail file" (icon)
+# descended from "xv", but in use by other applications as well (Wolfram Kleff)
+0 string P7\ 332 XV "thumbnail file" (icon) data
+
+# taken from fkiss: (<yav@mte.biglobe.ne.jp> ?)
+0 string KiSS KISS/GS
+>4 byte 16 color
+>>5 byte x %d bit
+>>8 leshort x %d colors
+>>10 leshort x %d groups
+>4 byte 32 cell
+>>5 byte x %d bit
+>>8 leshort x %d x
+>>10 leshort x %d
+>>12 leshort x +%d
+>>14 leshort x +%d
+
+# Webshots (www.webshots.com), by John Harrison
+0 string C\253\221g\230\0\0\0 Webshots Desktop .wbz file
+
+# Hercules DASD image files
+# From Jan Jaeger <jj@septa.nl>
+0 string CKD_P370 Hercules CKD DASD image file
+>8 long x \b, %d heads per cylinder
+>12 long x \b, track size %d bytes
+>16 byte x \b, device type 33%2.2X
+
+0 string CKD_C370 Hercules compressed CKD DASD image file
+>8 long x \b, %d heads per cylinder
+>12 long x \b, track size %d bytes
+>16 byte x \b, device type 33%2.2X
+
+0 string CKD_S370 Hercules CKD DASD shadow file
+>8 long x \b, %d heads per cylinder
+>12 long x \b, track size %d bytes
+>16 byte x \b, device type 33%2.2X
+
+# Squeak images and - etoffi@softhome.net
+0 string \146\031\0\0 Squeak image data
+0 string 'From\040Squeak Squeak program text
+
+# partimage: file(1) magic for PartImage files (experimental, incomplete)
+# Author: Hans-Joachim Baader <hjb@pro-linux.de>
+0 string PaRtImAgE-VoLuMe PartImage
+>0x0020 string 0.6.1 file version %s
+>>0x0060 lelong >-1 volume %ld
+#>>0x0064 8 byte identifier
+#>>0x007c reserved
+>>0x0200 string >\0 type %s
+>>0x1400 string >\0 device %s,
+>>0x1600 string >\0 original filename %s,
+# Some fields omitted
+>>0x2744 lelong 0 not compressed
+>>0x2744 lelong 1 gzip compressed
+>>0x2744 lelong 2 bzip2 compressed
+>>0x2744 lelong >2 compressed with unknown algorithm
+>0x0020 string >0.6.1 file version %s
+>0x0020 string <0.6.1 file version %s
+
+# DCX is multi-page PCX, using a simple header of up to 1024
+# offsets for the respective PCX components.
+# From: Joerg Wunsch <joerg_wunsch@uriah.heep.sax.de>
+0 lelong 987654321 DCX multi-page PCX image data
+
+# Simon Walton <simonw@matteworld.com>
+# Kodak Cineon format for scanned negatives
+# http://www.kodak.com/US/en/motion/support/dlad/
+0 lelong 0xd75f2a80 Cineon image data
+>200 belong >0 \b, %ld x
+>204 belong >0 %ld
+
+
+# Bio-Rad .PIC is an image format used by microscope control systems
+# and related image processing software used by biologists.
+# From: Vebjorn Ljosa <vebjorn@ljosa.com>
+54 leshort 12345 Bio-Rad .PIC Image File
+>0 leshort >0 %hd x
+>2 leshort >0 %hd,
+>4 leshort =1 1 image in file
+>4 leshort >1 %hd images in file
+
+# From Jan "Yenya" Kasprzak <kas@fi.muni.cz>
+# The description of *.mrw format can be found at
+# http://www.dalibor.cz/minolta/raw_file_format.htm
+0 string \000MRM Minolta Dimage camera raw image data
+
+# From: stephane.loeuillet@tiscali.f
+# http://www.djvuzone.org/
+0 string AT&TFORM DjVu Image file
+
+# From: Jason Bacon <bacon@smithers.neuro.mcw.edu>
+0 beshort 0x3020 character Computer Graphics Metafile
+
+
+
+# From: Tom Hilinski <tom.hilinski@comcast.net>
+# http://www.unidata.ucar.edu/packages/netcdf/
+0 string CDF\001 netcdf file
diff --git a/contrib/file/Magdir/intel b/contrib/file/Magdir/intel
index d450e2661691..00942c2b2e0a 100644
--- a/contrib/file/Magdir/intel
+++ b/contrib/file/Magdir/intel
@@ -33,3 +33,15 @@
0 leshort =0514 80386 COFF executable
>12 lelong >0 not stripped
>22 leshort >0 - version %ld
+
+# rom: file(1) magic for BIOS ROM Extensions found in intel machines
+# mapped into memory between 0xC0000 and 0xFFFFF
+# From Gürkan Sengün <gurkan@linuks.mine.nu>, www.linuks.mine.nu
+0 beshort 0x55AA BIOS (ia32) ROM Ext.
+>5 string USB USB
+>7 string LDR UNDI image
+>30 string IBM IBM comp. Video
+>26 string Adaptec Adaptec
+>28 string Adaptec Adaptec
+>42 string PROMISE Promise
+>2 byte x (%d*512)
diff --git a/contrib/file/Magdir/jpeg b/contrib/file/Magdir/jpeg
index bedc6c99952c..af646d6fb920 100644
--- a/contrib/file/Magdir/jpeg
+++ b/contrib/file/Magdir/jpeg
@@ -10,22 +10,113 @@
#
0 beshort 0xffd8 JPEG image data
>6 string JFIF \b, JFIF standard
->6 string Exif \b, EXIF standard
# The following added by Erik Rossen <rossen@freesurf.ch> 1999-09-06
# in a vain attempt to add image size reporting for JFIF. Note that these
# tests are not fool-proof since some perfectly valid JPEGs are currently
# impossible to specify in magic(4) format.
# First, a little JFIF version info:
->11 byte x \b %d.
->12 byte x \b%02d
+>>11 byte x \b %d.
+>>12 byte x \b%02d
# Next, the resolution or aspect ratio of the image:
->13 byte 0 \b, aspect ratio
->13 byte 1 \b, resolution (DPI)
->13 byte 2 \b, resolution (DPCM)
-#>4 beshort x \b, segment length %d
+#>>13 byte 0 \b, aspect ratio
+#>>13 byte 1 \b, resolution (DPI)
+#>>13 byte 2 \b, resolution (DPCM)
+#>>4 beshort x \b, segment length %d
# Next, show thumbnail info, if it exists:
->18 byte !0 \b, thumbnail %dx
->>19 byte x \b%d
+>>18 byte !0 \b, thumbnail %dx
+>>>19 byte x \b%d
+
+# EXIF moved down here to avoid reporting a bogus version number,
+# and EXIF version number printing added.
+# - Patrik R=E5dman <patrik+file-magic@iki.fi>
+>6 string Exif \b, EXIF standard
+# Look for EXIF IFD offset in IFD 0, and then look for EXIF version tag in EXIF IFD.
+# All possible combinations of entries have to be enumerated, since no looping
+# is possible. And both endians are possible...
+# The combinations included below are from real-world JPEGs.
+# Little-endian
+>>12 string II
+# IFD 0 Entry #5:
+>>>70 leshort 0x8769
+# EXIF IFD Entry #1:
+>>>>(78.l+14) leshort 0x9000
+>>>>>(78.l+23) byte x %c
+>>>>>(78.l+24) byte x \b.%c
+>>>>>(78.l+25) byte !0x30 \b%c
+# IFD 0 Entry #9:
+>>>118 leshort 0x8769
+# EXIF IFD Entry #3:
+>>>>(126.l+38) leshort 0x9000
+>>>>>(126.l+47) byte x %c
+>>>>>(126.l+48) byte x \b.%c
+>>>>>(126.l+49) byte !0x30 \b%c
+# IFD 0 Entry #10
+>>>130 leshort 0x8769
+# EXIF IFD Entry #3:
+>>>>(138.l+38) leshort 0x9000
+>>>>>(138.l+47) byte x %c
+>>>>>(138.l+48) byte x \b.%c
+>>>>>(138.l+49) byte !0x30 \b%c
+# EXIF IFD Entry #4:
+>>>>(138.l+50) leshort 0x9000
+>>>>>(138.l+59) byte x %c
+>>>>>(138.l+60) byte x \b.%c
+>>>>>(138.l+61) byte !0x30 \b%c
+# EXIF IFD Entry #5:
+>>>>(138.l+62) leshort 0x9000
+>>>>>(138.l+71) byte x %c
+>>>>>(138.l+72) byte x \b.%c
+>>>>>(138.l+73) byte !0x30 \b%c
+# IFD 0 Entry #11
+>>>142 leshort 0x8769
+# EXIF IFD Entry #3:
+>>>>(150.l+38) leshort 0x9000
+>>>>>(150.l+47) byte x %c
+>>>>>(150.l+48) byte x \b.%c
+>>>>>(150.l+49) byte !0x30 \b%c
+# EXIF IFD Entry #4:
+>>>>(150.l+50) leshort 0x9000
+>>>>>(150.l+59) byte x %c
+>>>>>(150.l+60) byte x \b.%c
+>>>>>(150.l+61) byte !0x30 \b%c
+# EXIF IFD Entry #5:
+>>>>(150.l+62) leshort 0x9000
+>>>>>(150.l+71) byte x %c
+>>>>>(150.l+72) byte x \b.%c
+>>>>>(150.l+73) byte !0x30 \b%c
+# Big-endian
+>>12 string MM
+# IFD 0 Entry #9:
+>>>118 beshort 0x8769
+# EXIF IFD Entry #1:
+>>>>(126.L+14) beshort 0x9000
+>>>>>(126.L+23) byte x %c
+>>>>>(126.L+24) byte x \b.%c
+>>>>>(126.L+25) byte !0x30 \b%c
+# EXIF IFD Entry #3:
+>>>>(126.L+38) beshort 0x9000
+>>>>>(126.L+47) byte x %c
+>>>>>(126.L+48) byte x \b.%c
+>>>>>(126.L+49) byte !0x30 \b%c
+# IFD 0 Entry #10
+>>>130 beshort 0x8769
+# EXIF IFD Entry #3:
+>>>>(138.L+38) beshort 0x9000
+>>>>>(138.L+47) byte x %c
+>>>>>(138.L+48) byte x \b.%c
+>>>>>(138.L+49) byte !0x30 \b%c
+# EXIF IFD Entry #5:
+>>>>(138.L+62) beshort 0x9000
+>>>>>(138.L+71) byte x %c
+>>>>>(138.L+72) byte x \b.%c
+>>>>>(138.L+73) byte !0x30 \b%c
+# IFD 0 Entry #11
+>>>142 beshort 0x8769
+# EXIF IFD Entry #4:
+>>>>(150.L+50) beshort 0x9000
+>>>>>(150.L+59) byte x %c
+>>>>>(150.L+60) byte x \b.%c
+>>>>>(150.L+61) byte !0x30 \b%c
# Here things get sticky. We can do ONE MORE marker segment with
# indirect addressing, and that's all. It would be great if we could
# do pointer arithemetic like in an assembler language. Christos?
@@ -33,7 +124,7 @@
# named accumulators, it would be even more effective...
# At least we can show a comment if no other segments got inserted before:
>(4.S+5) byte 0xFE
->>(4.S+8) string >\0 \b, "%s"
+>>(4.S+8) string >\0 \b, comment: "%s"
#>(4.S+5) byte 0xFE \b, comment
#>>(4.S+6) beshort x \b length=%d
#>>(4.S+8) string >\0 \b, "%s"
@@ -54,8 +145,8 @@
# I've commented-out quantisation table reporting. I doubt anyone cares yet.
#>(4.S+5) byte 0xDB \b, quantisation table
#>>(4.S+6) beshort x \b length=%d
->14 beshort x \b, %d x
->16 beshort x \b %d
+#>14 beshort x \b, %d x
+#>16 beshort x \b %d
# HSI is Handmade Software's proprietary JPEG encoding scheme
0 string hsi1 JPEG image data, HSI proprietary
diff --git a/contrib/file/Magdir/linux b/contrib/file/Magdir/linux
index 4db4958a4d2d..1b8961c27729 100644
--- a/contrib/file/Magdir/linux
+++ b/contrib/file/Magdir/linux
@@ -44,11 +44,6 @@
# this can be overridden by the DOS executable (COM) entry
2 string LILO Linux/i386 LILO boot/chain loader
#
-# Debian Packages, from Peter Tobias <tobias@server.et-inf.fho-emden.de>
-0 string 0.9
->8 byte 0x0a old Debian Binary Package
->>3 byte >0 \b, created by dpkg 0.9%c
->>4 byte >0 pl%c
# PSF fonts, from H. Peter Anvin <hpa@yggdrasil.com>
0 leshort 0x0436 Linux/i386 PC Screen Font data,
>2 byte 0 256 characters, no directory,
@@ -60,6 +55,8 @@
4086 string SWAP-SPACE Linux/i386 swap file
# according to man page of mkswap (8) March 1999
4086 string SWAPSPACE2 Linux/i386 swap file (new style)
+>0x400 long x %d (4K pages)
+>0x404 long x size %d pages
# ECOFF magic for OSF/1 and Linux (only tested under Linux though)
#
# from Erik Troan (ewt@redhat.com) examining od dumps, so this
@@ -79,28 +76,38 @@
# and others such as Axel Kohlmeyer <akohlmey@rincewind.chemie.uni-ulm.de>
# and Nicolás Lichtmaier <nick@debian.org>
# All known start with: b8 c0 07 8e d8 b8 00 90 8e c0 b9 00 01 29 f6 29
-514 string HdrS Linux kernel
->518 leshort >0
->>529 byte 0 zImage data,
->>529 byte 1 bzImage data,
->0x048c byte 0x31
->>0x048c string x version %s
->0x0493 byte 0x31
->>0x0493 string x version %s
->0x048c byte 0x32
->>0x048c string x version %s
->0x0493 byte 0x32
->>0x0493 string x version %s
->0x04df byte 0x32
->>0x04df string x version %s
->0x04fb byte 0x32
->>0x04fb string x version %s
+# Linux kernel boot images (i386 arch) (Wolfram Kleff)
+514 string HdrS Linux kernel
+>510 leshort 0xAA55 x86 boot executable
+>>518 leshort >=3D0x200
+>>529 byte 0 zImage,
+>>>529 byte 1 bzImage,
+>>>(526.s+0x200) string >\0 version %s,
+>>498 leshort 1 RO-rootFS,
+>>498 leshort 0 RW-rootFS,
+>>508 leshort >0 root_dev 0x%X,
+>>502 leshort >0 swap_dev 0x%X,
+>>504 leshort >0 RAMdisksize %u KB,
+>>506 leshort 0xFFFF Normal VGA
+>>506 leshort 0xFFFE Extended VGA
+>>506 leshort 0xFFFD Prompt for Videomode
+>>506 leshort >0 Video mode %d
# This also matches new kernels, which were caught above by "HdrS".
0 belong 0xb8c0078e Linux kernel
>0x1e3 string Loading version 1.3.79 or older
>0x1e9 string Loading from prehistoric times
-# LSM entries - Nicolás Lichtmaier <nick@feedback.net.ar>
+
+# System.map files - Nicolás Lichtmaier <nick@debian.org>
+8 string \ A\ _text Linux kernel symbol map text
+
+# LSM entries - Nicolás Lichtmaier <nick@debian.org>
0 string Begin3 Linux Software Map entry text
+0 string Begin4 Linux Software Map entry text (new format)
+
+# From Matt Zimmerman
+0 belong 0x4f4f4f4d User-mode Linux COW file
+>4 belong x \b, version %d
+>8 string >\0 \b, backing file %s
############################################################################
# Linux kernel versions
diff --git a/contrib/file/Magdir/mach b/contrib/file/Magdir/mach
index e0f4808eea5b..d3fd4708397a 100644
--- a/contrib/file/Magdir/mach
+++ b/contrib/file/Magdir/mach
@@ -12,7 +12,10 @@
>12 belong 3 shared library
>12 belong 4 core
>12 belong 5 preload executable
->12 belong >5
+>12 belong 6 dynamically linked shared library
+>12 belong 7 dynamic linker
+>12 belong 8 bundle
+>12 belong >8
>>12 belong x filetype=%ld
>4 belong <0
>>4 belong x architecture=%ld
@@ -38,6 +41,6 @@
>4 belong 15 i860-big
>4 belong 16 i860
>4 belong 17 rs6000
->4 belong 18 powerPC
+>4 belong 18 ppc
>4 belong >18
>>4 belong x architecture=%ld
diff --git a/contrib/file/Magdir/macintosh b/contrib/file/Magdir/macintosh
index 277cb6b34d5d..91364a0c67dd 100644
--- a/contrib/file/Magdir/macintosh
+++ b/contrib/file/Magdir/macintosh
@@ -88,7 +88,8 @@
# that the first one be 0x80, 0x81, 0x82, or 0x83, and that the second
# be 0x81. This works for the files I have, but maybe not for everyone's.
-122 beshort&0xFCFF 0x8081 Macintosh MacBinary data
+# Unfortunately, this magic is quite weak - MPi
+#122 beshort&0xFCFF 0x8081 Macintosh MacBinary data
# MacBinary I doesn't have the version number field at all, but MacBinary II
# has been in use since 1987 so I hope there aren't many really old files
@@ -111,117 +112,117 @@
# >73 byte&0x10 0x40 \b, invisible
# >73 byte&0x10 0x80 \b, locked
->65 string x \b, type "%4.4s"
+#>65 string x \b, type "%4.4s"
->65 string 8BIM (PhotoShop)
->65 string ALB3 (PageMaker 3)
->65 string ALB4 (PageMaker 4)
->65 string ALT3 (PageMaker 3)
->65 string APPL (application)
->65 string AWWP (AppleWorks word processor)
->65 string CIRC (simulated circuit)
->65 string DRWG (MacDraw)
->65 string EPSF (Encapsulated PostScript)
->65 string FFIL (font suitcase)
->65 string FKEY (function key)
->65 string FNDR (Macintosh Finder)
->65 string GIFf (GIF image)
->65 string Gzip (GNU gzip)
->65 string INIT (system extension)
->65 string LIB\ (library)
->65 string LWFN (PostScript font)
->65 string MSBC (Microsoft BASIC)
->65 string PACT (Compact Pro archive)
->65 string PDF\ (Portable Document Format)
->65 string PICT (picture)
->65 string PNTG (MacPaint picture)
->65 string PREF (preferences)
->65 string PROJ (Think C project)
->65 string QPRJ (Think Pascal project)
->65 string SCFL (Defender scores)
->65 string SCRN (startup screen)
->65 string SITD (StuffIt Deluxe)
->65 string SPn3 (SuperPaint)
->65 string STAK (HyperCard stack)
->65 string Seg\ (StuffIt segment)
->65 string TARF (Unix tar archive)
->65 string TEXT (ASCII)
->65 string TIFF (TIFF image)
->65 string TOVF (Eudora table of contents)
->65 string WDBN (Microsoft Word word processor)
->65 string WORD (MacWrite word processor)
->65 string XLS\ (Microsoft Excel)
->65 string ZIVM (compress (.Z))
->65 string ZSYS (Pre-System 7 system file)
->65 string acf3 (Aldus FreeHand)
->65 string cdev (control panel)
->65 string dfil (Desk Acessory suitcase)
->65 string libr (library)
->65 string nX^d (WriteNow word processor)
->65 string nX^w (WriteNow dictionary)
->65 string rsrc (resource)
->65 string scbk (Scrapbook)
->65 string shlb (shared library)
->65 string ttro (SimpleText read-only)
->65 string zsys (system file)
+#>65 string 8BIM (PhotoShop)
+#>65 string ALB3 (PageMaker 3)
+#>65 string ALB4 (PageMaker 4)
+#>65 string ALT3 (PageMaker 3)
+#>65 string APPL (application)
+#>65 string AWWP (AppleWorks word processor)
+#>65 string CIRC (simulated circuit)
+#>65 string DRWG (MacDraw)
+#>65 string EPSF (Encapsulated PostScript)
+#>65 string FFIL (font suitcase)
+#>65 string FKEY (function key)
+#>65 string FNDR (Macintosh Finder)
+#>65 string GIFf (GIF image)
+#>65 string Gzip (GNU gzip)
+#>65 string INIT (system extension)
+#>65 string LIB\ (library)
+#>65 string LWFN (PostScript font)
+#>65 string MSBC (Microsoft BASIC)
+#>65 string PACT (Compact Pro archive)
+#>65 string PDF\ (Portable Document Format)
+#>65 string PICT (picture)
+#>65 string PNTG (MacPaint picture)
+#>65 string PREF (preferences)
+#>65 string PROJ (Think C project)
+#>65 string QPRJ (Think Pascal project)
+#>65 string SCFL (Defender scores)
+#>65 string SCRN (startup screen)
+#>65 string SITD (StuffIt Deluxe)
+#>65 string SPn3 (SuperPaint)
+#>65 string STAK (HyperCard stack)
+#>65 string Seg\ (StuffIt segment)
+#>65 string TARF (Unix tar archive)
+#>65 string TEXT (ASCII)
+#>65 string TIFF (TIFF image)
+#>65 string TOVF (Eudora table of contents)
+#>65 string WDBN (Microsoft Word word processor)
+#>65 string WORD (MacWrite word processor)
+#>65 string XLS\ (Microsoft Excel)
+#>65 string ZIVM (compress (.Z))
+#>65 string ZSYS (Pre-System 7 system file)
+#>65 string acf3 (Aldus FreeHand)
+#>65 string cdev (control panel)
+#>65 string dfil (Desk Acessory suitcase)
+#>65 string libr (library)
+#>65 string nX^d (WriteNow word processor)
+#>65 string nX^w (WriteNow dictionary)
+#>65 string rsrc (resource)
+#>65 string scbk (Scrapbook)
+#>65 string shlb (shared library)
+#>65 string ttro (SimpleText read-only)
+#>65 string zsys (system file)
->69 string x \b, creator "%4.4s"
+#>69 string x \b, creator "%4.4s"
# Somewhere, Apple has a repository of registered Creator IDs. These are
# just the ones that I happened to have files from and was able to identify.
->69 string 8BIM (Adobe Photoshop)
->69 string ALD3 (PageMaker 3)
->69 string ALD4 (PageMaker 4)
->69 string ALFA (Alpha editor)
->69 string APLS (Apple Scanner)
->69 string APSC (Apple Scanner)
->69 string BRKL (Brickles)
->69 string BTFT (BitFont)
->69 string CCL2 (Common Lisp 2)
->69 string CCL\ (Common Lisp)
->69 string CDmo (The Talking Moose)
->69 string CPCT (Compact Pro)
->69 string CSOm (Eudora)
->69 string DMOV (Font/DA Mover)
->69 string DSIM (DigSim)
->69 string EDIT (Macintosh Edit)
->69 string ERIK (Macintosh Finder)
->69 string EXTR (self-extracting archive)
->69 string Gzip (GNU gzip)
->69 string KAHL (Think C)
->69 string LWFU (LaserWriter Utility)
->69 string LZIV (compress)
->69 string MACA (MacWrite)
->69 string MACS (Macintosh operating system)
->69 string MAcK (MacKnowledge terminal emulator)
->69 string MLND (Defender)
->69 string MPNT (MacPaint)
->69 string MSBB (Microsoft BASIC (binary))
->69 string MSWD (Microsoft Word)
->69 string NCSA (NCSA Telnet)
->69 string PJMM (Think Pascal)
->69 string PSAL (Hunt the Wumpus)
->69 string PSI2 (Apple File Exchange)
->69 string R*ch (BBEdit)
->69 string RMKR (Resource Maker)
->69 string RSED (Resource Editor)
->69 string Rich (BBEdit)
->69 string SIT! (StuffIt)
->69 string SPNT (SuperPaint)
->69 string Unix (NeXT Mac filesystem)
->69 string VIM! (Vim editor)
->69 string WILD (HyperCard)
->69 string XCEL (Microsoft Excel)
->69 string aCa2 (Fontographer)
->69 string aca3 (Aldus FreeHand)
->69 string dosa (Macintosh MS-DOS file system)
->69 string movr (Font/DA Mover)
->69 string nX^n (WriteNow)
->69 string pdos (Apple ProDOS file system)
->69 string scbk (Scrapbook)
->69 string ttxt (SimpleText)
->69 string ufox (Foreign File Access)
+#>69 string 8BIM (Adobe Photoshop)
+#>69 string ALD3 (PageMaker 3)
+#>69 string ALD4 (PageMaker 4)
+#>69 string ALFA (Alpha editor)
+#>69 string APLS (Apple Scanner)
+#>69 string APSC (Apple Scanner)
+#>69 string BRKL (Brickles)
+#>69 string BTFT (BitFont)
+#>69 string CCL2 (Common Lisp 2)
+#>69 string CCL\ (Common Lisp)
+#>69 string CDmo (The Talking Moose)
+#>69 string CPCT (Compact Pro)
+#>69 string CSOm (Eudora)
+#>69 string DMOV (Font/DA Mover)
+#>69 string DSIM (DigSim)
+#>69 string EDIT (Macintosh Edit)
+#>69 string ERIK (Macintosh Finder)
+#>69 string EXTR (self-extracting archive)
+#>69 string Gzip (GNU gzip)
+#>69 string KAHL (Think C)
+#>69 string LWFU (LaserWriter Utility)
+#>69 string LZIV (compress)
+#>69 string MACA (MacWrite)
+#>69 string MACS (Macintosh operating system)
+#>69 string MAcK (MacKnowledge terminal emulator)
+#>69 string MLND (Defender)
+#>69 string MPNT (MacPaint)
+#>69 string MSBB (Microsoft BASIC (binary))
+#>69 string MSWD (Microsoft Word)
+#>69 string NCSA (NCSA Telnet)
+#>69 string PJMM (Think Pascal)
+#>69 string PSAL (Hunt the Wumpus)
+#>69 string PSI2 (Apple File Exchange)
+#>69 string R*ch (BBEdit)
+#>69 string RMKR (Resource Maker)
+#>69 string RSED (Resource Editor)
+#>69 string Rich (BBEdit)
+#>69 string SIT! (StuffIt)
+#>69 string SPNT (SuperPaint)
+#>69 string Unix (NeXT Mac filesystem)
+#>69 string VIM! (Vim editor)
+#>69 string WILD (HyperCard)
+#>69 string XCEL (Microsoft Excel)
+#>69 string aCa2 (Fontographer)
+#>69 string aca3 (Aldus FreeHand)
+#>69 string dosa (Macintosh MS-DOS file system)
+#>69 string movr (Font/DA Mover)
+#>69 string nX^n (WriteNow)
+#>69 string pdos (Apple ProDOS file system)
+#>69 string scbk (Scrapbook)
+#>69 string ttxt (SimpleText)
+#>69 string ufox (Foreign File Access)
# Just in case...
@@ -236,6 +237,14 @@
>24 string CATALOG catalog
>24 string INDEX data file index
>24 string VIEW data view
+# sas 7+ magic from Reinhold Koch (reinhold.koch@roche.com)
+#
+0x54 string SAS SAS 7+
+>0x9C string DATA data file
+>0x9C string CATALOG catalog
+>0x9C string INDEX data file index
+>0x9C string VIEW data view
+
# spss magic for SPSS system and portable files,
# from Bruce Foster (bef@nwu.edu).
@@ -247,6 +256,7 @@
# Macintosh filesystem data
# From "Tom N Harris" <telliamed@mac.com>
+# Fixed HFS+ and Partition map magic: Ethan Benson <erbenson@alaska.net>
# The MacOS epoch begins on 1 Jan 1904 instead of 1 Jan 1970, so these
# entries depend on the data arithmetic added after v.35
# There's also some Pascal strings in here, ditto...
@@ -266,39 +276,39 @@
>0x412 beshort x number of blocks: %d,
>0x424 pstring x volume name: %s
-0x400 beshort 0x4244 Macintosh HFS data
->0 beshort 0x4C4B (bootable)
->0x40a beshort &0x8000 (locked)
->0x40a beshort ^0x0100 (mounted)
->0x40a beshort &0x0800 (unclean)
->0x402 beldate-0x7C25B080 x created: %s,
->0x406 beldate-0x7C25B080 x last modified: %s,
->0x440 beldate-0x7C25B080 >0 last backup: %s,
->0x414 belong x block size: %d,
->0x412 beshort x number of blocks: %d,
->0x424 pstring x volume name: %s
-#>0x480 beshort =0x482B Embedded HFS+ Volume:
-#>>((0x482*(0x414))+(0x41c*512)) x \b
-# Well, this is (theoretically) how we could do this. But it occurs to
-# me that we likely don't read in a large enough chunk. I don't have any
-# HFS+ volumes to see what a typical offset would be.
+# "BD" is has many false positives
+#0x400 beshort 0x4244 Macintosh HFS data
+#>0 beshort 0x4C4B (bootable)
+#>0x40a beshort &0x8000 (locked)
+#>0x40a beshort ^0x0100 (mounted)
+#>0x40a beshort &0x0200 (spared blocks)
+#>0x40a beshort &0x0800 (unclean)
+#>0x47C beshort 0x482B (Embedded HFS+ Volume)
+#>0x402 beldate-0x7C25B080 x created: %s,
+#>0x406 beldate-0x7C25B080 x last modified: %s,
+#>0x440 beldate-0x7C25B080 >0 last backup: %s,
+#>0x414 belong x block size: %d,
+#>0x412 beshort x number of blocks: %d,
+#>0x424 pstring x volume name: %s
0x400 beshort 0x482B Macintosh HFS Extended
->&2 beshort x version %d data
+>&0 beshort x version %d data
>0 beshort 0x4C4B (bootable)
->&4 belong ^0x00000100 (mounted)
->&4 belong &0x00000800 (unclean)
->&4 belong &0x00008000 (locked)
->&8 string x last mounted by: '%.4s',
+>0x404 belong ^0x00000100 (mounted)
+>&2 belong &0x00000200 (spared blocks)
+>&2 belong &0x00000800 (unclean)
+>&2 belong &0x00008000 (locked)
+>&6 string x last mounted by: '%.4s',
# really, that should be treated as a belong and we print a string
# based on the value. TN1150 only mentions '8.10' for "MacOS 8.1"
->&16 beldate-0x7C25B080 x created: %s,
->&20 beldate-0x7C25B080 x last modified: %s,
->&24 beldate-0x7C25B080 >0 last backup: %s,
->&28 beldate-0x7C25B080 >0 last checked: %s,
->&40 belong x block size: %d,
->&44 belong x number of blocks: %d,
->&48 belong x free blocks: %d
+>&14 beldate-0x7C25B080 x created: %s,
+# only the creation date is local time, all other timestamps in HFS+ are UTC.
+>&18 bedate-0x7C25B080 x last modified: %s,
+>&22 bedate-0x7C25B080 >0 last backup: %s,
+>&26 bedate-0x7C25B080 >0 last checked: %s,
+>&38 belong x block size: %d,
+>&42 belong x number of blocks: %d,
+>&46 belong x free blocks: %d
# I don't think this is really necessary since it doesn't do much and
# anything with a valid driver descriptor will also have a valid
@@ -311,29 +321,40 @@
# cstring. Of course, partitions can contain more than four entries, but
# what're you gonna do?
0x200 beshort 0x504D Apple Partition data
->&2 beshort x block size: %d
->&48 string x first type: %s,
->&12 belong x number of blocks: %d,
->(&0x2.S) beshort 0x504D
->>&48 string x second type: %s
->>&12 belong x number of blocks: %d,
->>(&0x2.S) beshort 0x504D
->>>&48 string x third type: %s
->>>&12 belong x number of blocks: %d,
->>>(&0x2.S) beshort 0x504D
->>>>&48 string x fourth type: %s
->>>>&12 belong x number of blocks: %d,
+>0x2 beshort x block size: %d,
+>0x230 string x first type: %s,
+>0x210 string x name: %s,
+>0x254 belong x number of blocks: %d,
+>0x400 beshort 0x504D
+>>0x430 string x second type: %s,
+>>0x410 string x name: %s,
+>>0x454 belong x number of blocks: %d,
+>>0x800 beshort 0x504D
+>>>0x830 string x third type: %s,
+>>>0x810 string x name: %s,
+>>>0x854 belong x number of blocks: %d,
+>>>0xa00 beshort 0x504D
+>>>>0xa30 string x fourth type: %s,
+>>>>0xa10 string x name: %s,
+>>>>0xa54 belong x number of blocks: %d
# AFAIK, only the signature is different
0x200 beshort 0x5453 Apple Old Partition data
->&2 beshort x block size: %d
->&48 string x first type: %s,
->&12 belong x number of blocks: %d,
->(&0x2.S) beshort 0x504D
->>&48 string x second type: %s
->>&12 belong x number of blocks: %d,
->>(&0x2.S) beshort 0x504D
->>>&48 string x third type: %s
->>>&12 belong x number of blocks: %d,
->>>(&0x2.S) beshort 0x504D
->>>>&48 string x fourth type: %s
->>>>&12 belong x number of blocks: %d,
+>0x2 beshort x block size: %d,
+>0x230 string x first type: %s,
+>0x210 string x name: %s,
+>0x254 belong x number of blocks: %d,
+>0x400 beshort 0x504D
+>>0x430 string x second type: %s,
+>>0x410 string x name: %s,
+>>0x454 belong x number of blocks: %d,
+>>0x800 beshort 0x504D
+>>>0x830 string x third type: %s,
+>>>0x810 string x name: %s,
+>>>0x854 belong x number of blocks: %d,
+>>>0xa00 beshort 0x504D
+>>>>0xa30 string x fourth type: %s,
+>>>>0xa10 string x name: %s,
+>>>>0xa54 belong x number of blocks: %d
+
+# From: Remi Mommsen <mommsen@slac.stanford.edu>
+0 string BOMStore Mac OS X bill of materials (BOM) fil
diff --git a/contrib/file/Magdir/mail.news b/contrib/file/Magdir/mail.news
index ab8b293c3b33..2cace95cb33a 100644
--- a/contrib/file/Magdir/mail.news
+++ b/contrib/file/Magdir/mail.news
@@ -26,3 +26,15 @@
# From: Kevin Sullivan <ksulliva@psc.edu>
0 string *mbx* MBX mail folder
+# From: Simon Matter <simon.matter@invoca.ch>
+0 string \241\002\213\015skiplist\ file\0\0\0 Cyrus skiplist DB
+
+# JAM(mbp) Fidonet message area databases
+# JHR file
+0 string JAM\0 JAM message area header file
+>12 leshort >0 (%d messages)
+
+# Squish Fidonet message area databases
+# SQD file (requires at least one message in the area)
+256 leshort 0xAFAE4453 Squish message area data file
+>4 leshort >0 (%d messages)
diff --git a/contrib/file/Magdir/maple b/contrib/file/Magdir/maple
index f39c62d25370..eea479453664 100644
--- a/contrib/file/Magdir/maple
+++ b/contrib/file/Magdir/maple
@@ -20,9 +20,9 @@
0 string \<PACKAGE= Maple help file
0 string \<HELP\ NAME= Maple help file
0 string \n\<HELP\ NAME= Maple help file with extra carriage return at start (yuck)
-0 string #\ Newton Maple help file, old style
+#0 string #\ Newton Maple help file, old style
0 string #\ daub Maple help file, old style
-0 string #=========== Maple help file, old style
+#0 string #=========== Maple help file, old style
# .mws
0 string \000\000\001\044\000\221 Maple worksheet
diff --git a/contrib/file/Magdir/mathematica b/contrib/file/Magdir/mathematica
index 136c25361eed..b9d3405d5eaa 100644
--- a/contrib/file/Magdir/mathematica
+++ b/contrib/file/Magdir/mathematica
@@ -56,4 +56,13 @@
0 string (*********************** Mathematica 3.0 notebook
# other (* matches it is a comment start in these langs
-0 string (* Mathematica, or Pascal, Modula-2 or 3 code
+0 string (* Mathematica, or Pascal, Modula-2 or 3 code text
+
+#########################
+# MatLab v5
+0 string MATLAB Matlab v5 mat-file
+>126 short 0x494d (big endian)
+>>124 beshort x version 0x%04x
+>126 short 0x4d49 (little endian)
+>>124 leshort x version 0x%04x
+
diff --git a/contrib/file/Magdir/matroska b/contrib/file/Magdir/matroska
new file mode 100644
index 000000000000..ca00db4b2068
--- /dev/null
+++ b/contrib/file/Magdir/matroska
@@ -0,0 +1,14 @@
+
+#------------------------------------------------------------------------------
+# matroska: file(1) magic for Matroska files
+#
+# See http://www.matroska.org/
+#
+
+# EBML id:
+0 belong 0x1a45dfa3
+# DocType id:
+>5 beshort 0x4282
+# DocType contents:
+>>8 string matroska Matroska data
+
diff --git a/contrib/file/Magdir/misctools b/contrib/file/Magdir/misctools
new file mode 100644
index 000000000000..c32d52c26808
--- /dev/null
+++ b/contrib/file/Magdir/misctools
@@ -0,0 +1,5 @@
+#-----------------------------------------------------------------------------
+# misctools: file(1) magic for miscelanous UNIX tools.
+#
+0 string %%!! X-Post-It-Note text
+0 string BEGIN:VCALENDAR vCalendar calendar file
diff --git a/contrib/file/Magdir/motorola b/contrib/file/Magdir/motorola
index 1a3174cc600c..bfe7ea030ee8 100644
--- a/contrib/file/Magdir/motorola
+++ b/contrib/file/Magdir/motorola
@@ -48,3 +48,23 @@
>6 belong x dat=%ld,
>10 belong x bss=%ld,
>14 belong x sym=%ld)
+
+# Atari ST/TT... program format (sent by Wolfram Kleff <kleff@cs.uni-bonn.de>)
+0 beshort 0x601A Atari 68xxx executable,
+>2 belong x text len %lu,
+>6 belong x data len %lu,
+>10 belong x BSS len %lu,
+>14 belong x symboltab len %lu,
+>18 belong 0
+>22 belong &0x01 fastload flag,
+>22 belong &0x02 may be loaded to alternate RAM,
+>22 belong &0x04 malloc may be from alternate RAM,
+>22 belong x flags: 0x%lX,
+>26 beshort 0 no relocation tab
+>26 beshort !0 + relocation tab
+>30 string SFX [Self-Extracting LZH SFX archive]
+>38 string SFX [Self-Extracting LZH SFX archive]
+>44 string ZIP! [Self-Extracting ZIP SFX archive]
+
+0 beshort 0x0064 Atari 68xxx CPX file
+>8 beshort x (version %04lx)
diff --git a/contrib/file/Magdir/msdos b/contrib/file/Magdir/msdos
index 99f11095812d..1c707d467249 100644
--- a/contrib/file/Magdir/msdos
+++ b/contrib/file/Magdir/msdos
@@ -4,7 +4,7 @@
#
# .BAT files (Daniel Quinlan, quinlan@yggdrasil.com)
-0 string @echo\ off MS-DOS batch file text
+0 string/c @echo\ off MS-DOS batch file text
# XXX - according to Microsoft's spec, at an offset of 0x3c in a
# PE-format executable is the offset in the file of the PE header;
@@ -144,9 +144,10 @@
#
#
-# Windows NT Registry files.
+# Windows Registry files.
#
-0 string regf Windows NT Registry file
+0 string regf Windows NT registry file
+0 string CREG Windows 95 registry file
# Popular applications
2080 string Microsoft\ Word\ 6.0\ Document %s
@@ -159,13 +160,17 @@
0 string PO^Q` Microsoft Word 6.0 Document
#
0 string \376\067\0\043 Microsoft Office Document
-0 string \320\317\021\340\241\261 Microsoft Office Document
+0 string \320\317\021\340\241\261\032\341 Microsoft Office Document
0 string \333\245-\0\0\0 Microsoft Office Document
#
2080 string Microsoft\ Excel\ 5.0\ Worksheet %s
+2080 string Foglio\ di\ lavoro\ Microsoft\ Exce %s
#
# Pawel Wiecek <coven@i17linuxb.ists.pwr.wroc.pl> (for polish Excel)
2114 string Biff5 Microsoft Excel 5.0 Worksheet
+# Italian MS-Excel
+2121 string Biff5 Microsoft Excel 5.0 Worksheet
+0 string \x09\x04\x06\x00\x00\x00\x10\x00 Microsoft Excel Worksheet
#
0 belong 0x00001a00 Lotus 1-2-3
>4 belong 0x00100400 wk3 document data
@@ -180,9 +185,6 @@
# Help files
0 string ?_\3\0 MS Windows Help Data
-# Microsoft CAB distribution format Dale Worley <root@dworley.ny.mediaone.net>
-0 string MSCF\000\000\000\000 Microsoft CAB file
-
# DeIsL1.isu what this is I don't know
0 string \161\250\000\000\001\002 DeIsL1.isu whatever that is
@@ -238,11 +240,6 @@
>>8 byte >0 \b, %d-colors
-# True Type fonts currently misidentified as raw G3 data
-
-0 string \000\001\000\000\000 MS-Windows true type font .ttf
-
-
# .chr files
0 string PK\010\010BGI Borland font
>4 string >\0 %s
@@ -263,9 +260,9 @@
# Acroread or something files wrongly identified as G3 .pfm
# these have the form \000 \001 any? \002 \000 \000
# or \000 \001 any? \022 \000 \000
-0 string \000\001 pfm?
->3 string \022\000\000Copyright\ yes
->3 string \002\000\000Copyright\ yes
+#0 string \000\001 pfm?
+#>3 string \022\000\000Copyright\ yes
+#>3 string \002\000\000Copyright\ yes
#>3 string >\0 oops, not a font file. Cancel that.
#it clashes with ttf files so put it lower down.
@@ -278,7 +275,8 @@
0 string DCU1 Borland Delphi .DCU file
0 string !<spell> MKS Spell hash list (old format)
0 string !<spell2> MKS Spell hash list
-0 string AH Halo(TM) bitmapped font file
+# Too simple - MPi
+#0 string AH Halo(TM) bitmapped font file
0 lelong 0x08086b70 TurboC BGI file
0 lelong 0x08084b50 TurboC Font file
@@ -309,3 +307,70 @@
# TNEF magic From "Joomy" <joomy@se-ed.net>
0 leshort 0x223e9f78 TNEF
+
+# HtmlHelp files (.chm)
+0 string ITSF\003\000\000\000\x60\000\000\000\001\000\000\000 MS Windows HtmlHelp Data
+
+# GFA-BASIC (Wolfram Kleff)
+2 string GFA-BASIC3 GFA-BASIC 3 data
+
+# DJGPP compiled files
+# v >2, uses DPMI & small(2k) stub (Robert vd Boon, rjvdboon@europe.com)
+0x200 string go32stub DOS-executable compiled w/DJGPP
+>0x20c string >0 (stub v%.4s)
+>>0x8b2 string djp [compressed w/%s
+>>>&1 string >\0 %.4s]
+>>0x8ad string UPX [compressed w/%s
+>>>&1 string >\0 %.4s]
+>>0x1c string pmodedj stubbed with %s
+
+# QDOS
+4 belong 0x4AFB QDOS executable
+>9 pstring x '%s'
+0 beshort 0xFB01 QDOS object
+>2 pstring x '%s'
+
+#------------------------------------------------------------------------------
+# From Stuart Caie <kyzer@4u.net> (developer of cabextract)
+# Microsoft Cabinet files
+0 string MSCF\0\0\0\0 Microsoft Cabinet file
+>8 lelong x \b, %u bytes
+>28 leshort 1 \b, 1 file
+>28 leshort >1 \b, %u files
+
+# InstallShield Cabinet files
+0 string ISc( InstallShield Cabinet file
+>5 byte&0xf0 =0x60 version 6,
+>5 byte&0xf0 !0x60 version 4/5,
+>(12.l+40) lelong x %u files
+
+# Windows CE package files
+0 string MSCE\0\0\0\0 Microsoft WinCE install header
+>20 lelong 0 \b, architecture-independent
+>20 lelong 103 \b, Hitachi SH3
+>20 lelong 104 \b, Hitachi SH4
+>20 lelong 0xA11 \b, StrongARM
+>20 lelong 4000 \b, MIPS R4000
+>20 lelong 10003 \b, Hitachi SH3
+>20 lelong 10004 \b, Hitachi SH3E
+>20 lelong 10005 \b, Hitachi SH4
+>20 lelong 70001 \b, ARM 7TDMI
+>52 leshort 1 \b, 1 file
+>52 leshort >1 \b, %u files
+>56 leshort 1 \b, 1 registry entry
+>56 leshort >1 \b, %u registry entries
+
+# Outlook Personal Folders
+0 lelong 0x4E444221 Microsoft Outlook binary email folder
+
+# From: Dirk Jagdmann <doj@cubic.org>
+0 lelong 0x00035f3f Windows 3.x help file
+
+# Christophe Monniez
+0 string Client\ UrlCache\ MMF Microsoft Internet Explorer Cache File
+>20 string >\0 Version %s
+0 string \xCF\xAD\x12\xFE Microsoft Outlook Express DBX File
+>4 byte =0xC5 Message database
+>4 byte =0xC6 Folder database
+>4 byte =0xC7 Accounts informations
+>4 byte =0x30 Offline database
diff --git a/contrib/file/Magdir/netbsd b/contrib/file/Magdir/netbsd
index 7c260e40ff99..b6aae1ac623e 100644
--- a/contrib/file/Magdir/netbsd
+++ b/contrib/file/Magdir/netbsd
@@ -5,187 +5,187 @@
# All new-style magic numbers are in network byte order.
#
-0 lelong 000000407 NetBSD little-endian object file
+0 lelong 000000407 a.out NetBSD little-endian object file
>16 lelong >0 not stripped
-0 belong 000000407 NetBSD big-endian object file
+0 belong 000000407 a.out NetBSD big-endian object file
>16 belong >0 not stripped
-0 belong&0377777777 041400413 NetBSD/i386 demand paged
+0 belong&0377777777 041400413 a.out NetBSD/i386 demand paged
>0 byte &0x80
>>20 lelong <4096 shared library
>>20 lelong =4096 dynamically linked executable
>>20 lelong >4096 dynamically linked executable
>0 byte ^0x80 executable
>16 lelong >0 not stripped
-0 belong&0377777777 041400410 NetBSD/i386 pure
+0 belong&0377777777 041400410 a.out NetBSD/i386 pure
>0 byte &0x80 dynamically linked executable
>0 byte ^0x80 executable
>16 lelong >0 not stripped
-0 belong&0377777777 041400407 NetBSD/i386
+0 belong&0377777777 041400407 a.out NetBSD/i386
>0 byte &0x80 dynamically linked executable
>0 byte ^0x80
>>0 byte &0x40 position independent
>>20 lelong !0 executable
>>20 lelong =0 object file
>16 lelong >0 not stripped
-0 belong&0377777777 041400507 NetBSD/i386 core
+0 belong&0377777777 041400507 a.out NetBSD/i386 core
>12 string >\0 from '%s'
>32 lelong !0 (signal %d)
-0 belong&0377777777 041600413 NetBSD/m68k demand paged
+0 belong&0377777777 041600413 a.out NetBSD/m68k demand paged
>0 byte &0x80
>>20 belong <8192 shared library
>>20 belong =8192 dynamically linked executable
>>20 belong >8192 dynamically linked executable
>0 byte ^0x80 executable
>16 belong >0 not stripped
-0 belong&0377777777 041600410 NetBSD/m68k pure
+0 belong&0377777777 041600410 a.out NetBSD/m68k pure
>0 byte &0x80 dynamically linked executable
>0 byte ^0x80 executable
>16 belong >0 not stripped
-0 belong&0377777777 041600407 NetBSD/m68k
+0 belong&0377777777 041600407 a.out NetBSD/m68k
>0 byte &0x80 dynamically linked executable
>0 byte ^0x80
>>0 byte &0x40 position independent
>>20 belong !0 executable
>>20 belong =0 object file
>16 belong >0 not stripped
-0 belong&0377777777 041600507 NetBSD/m68k core
+0 belong&0377777777 041600507 a.out NetBSD/m68k core
>12 string >\0 from '%s'
>32 belong !0 (signal %d)
-0 belong&0377777777 042000413 NetBSD/m68k4k demand paged
+0 belong&0377777777 042000413 a.out NetBSD/m68k4k demand paged
>0 byte &0x80
>>20 belong <4096 shared library
>>20 belong =4096 dynamically linked executable
>>20 belong >4096 dynamically linked executable
>0 byte ^0x80 executable
>16 belong >0 not stripped
-0 belong&0377777777 042000410 NetBSD/m68k4k pure
+0 belong&0377777777 042000410 a.out NetBSD/m68k4k pure
>0 byte &0x80 dynamically linked executable
>0 byte ^0x80 executable
>16 belong >0 not stripped
-0 belong&0377777777 042000407 NetBSD/m68k4k
+0 belong&0377777777 042000407 a.out NetBSD/m68k4k
>0 byte &0x80 dynamically linked executable
>0 byte ^0x80
>>0 byte &0x40 position independent
>>20 belong !0 executable
>>20 belong =0 object file
>16 belong >0 not stripped
-0 belong&0377777777 042000507 NetBSD/m68k4k core
+0 belong&0377777777 042000507 a.out NetBSD/m68k4k core
>12 string >\0 from '%s'
>32 belong !0 (signal %d)
-0 belong&0377777777 042200413 NetBSD/ns32532 demand paged
+0 belong&0377777777 042200413 a.out NetBSD/ns32532 demand paged
>0 byte &0x80
>>20 lelong <4096 shared library
>>20 lelong =4096 dynamically linked executable
>>20 lelong >4096 dynamically linked executable
>0 byte ^0x80 executable
>16 lelong >0 not stripped
-0 belong&0377777777 042200410 NetBSD/ns32532 pure
+0 belong&0377777777 042200410 a.out NetBSD/ns32532 pure
>0 byte &0x80 dynamically linked executable
>0 byte ^0x80 executable
>16 lelong >0 not stripped
-0 belong&0377777777 042200407 NetBSD/ns32532
+0 belong&0377777777 042200407 a.out NetBSD/ns32532
>0 byte &0x80 dynamically linked executable
>0 byte ^0x80
>>0 byte &0x40 position independent
>>20 lelong !0 executable
>>20 lelong =0 object file
>16 lelong >0 not stripped
-0 belong&0377777777 042200507 NetBSD/ns32532 core
+0 belong&0377777777 042200507 a.out NetBSD/ns32532 core
>12 string >\0 from '%s'
>32 lelong !0 (signal %d)
-0 belong&0377777777 045200507 NetBSD/powerpc core
+0 belong&0377777777 045200507 a.out NetBSD/powerpc core
>12 string >\0 from '%s'
-0 belong&0377777777 042400413 NetBSD/sparc demand paged
+0 belong&0377777777 042400413 a.out NetBSD/sparc demand paged
>0 byte &0x80
>>20 belong <8192 shared library
>>20 belong =8192 dynamically linked executable
>>20 belong >8192 dynamically linked executable
>0 byte ^0x80 executable
>16 belong >0 not stripped
-0 belong&0377777777 042400410 NetBSD/sparc pure
+0 belong&0377777777 042400410 a.out NetBSD/sparc pure
>0 byte &0x80 dynamically linked executable
>0 byte ^0x80 executable
>16 belong >0 not stripped
-0 belong&0377777777 042400407 NetBSD/sparc
+0 belong&0377777777 042400407 a.out NetBSD/sparc
>0 byte &0x80 dynamically linked executable
>0 byte ^0x80
>>0 byte &0x40 position independent
>>20 belong !0 executable
>>20 belong =0 object file
>16 belong >0 not stripped
-0 belong&0377777777 042400507 NetBSD/sparc core
+0 belong&0377777777 042400507 a.out NetBSD/sparc core
>12 string >\0 from '%s'
>32 belong !0 (signal %d)
-0 belong&0377777777 042600413 NetBSD/pmax demand paged
+0 belong&0377777777 042600413 a.out NetBSD/pmax demand paged
>0 byte &0x80
>>20 lelong <4096 shared library
>>20 lelong =4096 dynamically linked executable
>>20 lelong >4096 dynamically linked executable
>0 byte ^0x80 executable
>16 lelong >0 not stripped
-0 belong&0377777777 042600410 NetBSD/pmax pure
+0 belong&0377777777 042600410 a.out NetBSD/pmax pure
>0 byte &0x80 dynamically linked executable
>0 byte ^0x80 executable
>16 lelong >0 not stripped
-0 belong&0377777777 042600407 NetBSD/pmax
+0 belong&0377777777 042600407 a.out NetBSD/pmax
>0 byte &0x80 dynamically linked executable
>0 byte ^0x80
>>0 byte &0x40 position independent
>>20 lelong !0 executable
>>20 lelong =0 object file
>16 lelong >0 not stripped
-0 belong&0377777777 042600507 NetBSD/pmax core
+0 belong&0377777777 042600507 a.out NetBSD/pmax core
>12 string >\0 from '%s'
>32 lelong !0 (signal %d)
-0 belong&0377777777 043000413 NetBSD/vax 1k demand paged
+0 belong&0377777777 043000413 a.out NetBSD/vax 1k demand paged
>0 byte &0x80
>>20 lelong <4096 shared library
>>20 lelong =4096 dynamically linked executable
>>20 lelong >4096 dynamically linked executable
>0 byte ^0x80 executable
>16 lelong >0 not stripped
-0 belong&0377777777 043000410 NetBSD/vax 1k pure
+0 belong&0377777777 043000410 a.out NetBSD/vax 1k pure
>0 byte &0x80 dynamically linked executable
>0 byte ^0x80 executable
>16 lelong >0 not stripped
-0 belong&0377777777 043000407 NetBSD/vax 1k
+0 belong&0377777777 043000407 a.out NetBSD/vax 1k
>0 byte &0x80 dynamically linked executable
>0 byte ^0x80
>>0 byte &0x40 position independent
>>20 lelong !0 executable
>>20 lelong =0 object file
>16 lelong >0 not stripped
-0 belong&0377777777 043000507 NetBSD/vax 1k core
+0 belong&0377777777 043000507 a.out NetBSD/vax 1k core
>12 string >\0 from '%s'
>32 lelong !0 (signal %d)
-0 belong&0377777777 045400413 NetBSD/vax 4k demand paged
+0 belong&0377777777 045400413 a.out NetBSD/vax 4k demand paged
>0 byte &0x80
>>20 lelong <4096 shared library
>>20 lelong =4096 dynamically linked executable
>>20 lelong >4096 dynamically linked executable
>0 byte ^0x80 executable
>16 lelong >0 not stripped
-0 belong&0377777777 045400410 NetBSD/vax 4k pure
+0 belong&0377777777 045400410 a.out NetBSD/vax 4k pure
>0 byte &0x80 dynamically linked executable
>0 byte ^0x80 executable
>16 lelong >0 not stripped
-0 belong&0377777777 045400407 NetBSD/vax 4k
+0 belong&0377777777 045400407 a.out NetBSD/vax 4k
>0 byte &0x80 dynamically linked executable
>0 byte ^0x80
>>0 byte &0x40 position independent
>>20 lelong !0 executable
>>20 lelong =0 object file
>16 lelong >0 not stripped
-0 belong&0377777777 045400507 NetBSD/vax 4k core
+0 belong&0377777777 045400507 a.out NetBSD/vax 4k core
>12 string >\0 from '%s'
>32 lelong !0 (signal %d)
@@ -195,44 +195,44 @@
0 lelong 0x00070185 ECOFF NetBSD/alpha binary
>10 leshort 0x0001 not stripped
>10 leshort 0x0000 stripped
-0 belong&0377777777 043200507 NetBSD/alpha core
+0 belong&0377777777 043200507 a.out NetBSD/alpha core
>12 string >\0 from '%s'
>32 lelong !0 (signal %d)
-0 belong&0377777777 043400413 NetBSD/mips demand paged
+0 belong&0377777777 043400413 a.out NetBSD/mips demand paged
>0 byte &0x80
>>20 belong <8192 shared library
>>20 belong =8192 dynamically linked executable
>>20 belong >8192 dynamically linked executable
>0 byte ^0x80 executable
>16 belong >0 not stripped
-0 belong&0377777777 043400410 NetBSD/mips pure
+0 belong&0377777777 043400410 a.out NetBSD/mips pure
>0 byte &0x80 dynamically linked executable
>0 byte ^0x80 executable
>16 belong >0 not stripped
-0 belong&0377777777 043400407 NetBSD/mips
+0 belong&0377777777 043400407 a.out NetBSD/mips
>0 byte &0x80 dynamically linked executable
>0 byte ^0x80
>>0 byte &0x40 position independent
>>20 belong !0 executable
>>20 belong =0 object file
>16 belong >0 not stripped
-0 belong&0377777777 043400507 NetBSD/mips core
+0 belong&0377777777 043400507 a.out NetBSD/mips core
>12 string >\0 from '%s'
>32 belong !0 (signal %d)
-0 belong&0377777777 043600413 NetBSD/arm32 demand paged
+0 belong&0377777777 043600413 a.out NetBSD/arm32 demand paged
>0 byte &0x80
>>20 lelong <4096 shared library
>>20 lelong =4096 dynamically linked executable
>>20 lelong >4096 dynamically linked executable
>0 byte ^0x80 executable
>16 lelong >0 not stripped
-0 belong&0377777777 043600410 NetBSD/arm32 pure
+0 belong&0377777777 043600410 a.out NetBSD/arm32 pure
>0 byte &0x80 dynamically linked executable
>0 byte ^0x80 executable
>16 lelong >0 not stripped
-0 belong&0377777777 043600407 NetBSD/arm32
+0 belong&0377777777 043600407 a.out NetBSD/arm32
>0 byte &0x80 dynamically linked executable
>0 byte ^0x80
>>0 byte &0x40 position independent
@@ -241,6 +241,6 @@
>16 lelong >0 not stripped
# NetBSD/arm26 has always used ELF objects, but it shares a core file
# format with NetBSD/arm32.
-0 belong&0377777777 043600507 NetBSD/arm core
+0 belong&0377777777 043600507 a.out NetBSD/arm core
>12 string >\0 from '%s'
>32 lelong !0 (signal %d)
diff --git a/contrib/file/Magdir/netscape b/contrib/file/Magdir/netscape
index eb4361c06c57..f14227db76cb 100644
--- a/contrib/file/Magdir/netscape
+++ b/contrib/file/Magdir/netscape
@@ -8,6 +8,9 @@
# Netscape Address book .nab
0 string \000\017\102\104\000\000\000\000\000\000\001\000\000\000\000\002\000\000\000\002\000\000\004\000 Netscape Address book
+# Netscape Communicator address book
+0 string \000\017\102\111 Netscape Communicator address book
+
# .snm Caches
0 string #\ Netscape\ folder\ cache Netscape folder cache
0 string \000\036\204\220\000 Netscape folder cache
diff --git a/contrib/file/Magdir/ocaml b/contrib/file/Magdir/ocaml
new file mode 100644
index 000000000000..f8ba976272e6
--- /dev/null
+++ b/contrib/file/Magdir/ocaml
@@ -0,0 +1,13 @@
+
+#------------------------------------------------------------------------------
+# ocaml: file(1) magic for Objective Caml files.
+0 string Caml1999 Objective caml
+>8 string X exec file
+>8 string I interface file (.cmi)
+>8 string O object file (.cmo)
+>8 string A library file (.cma)
+>8 string Y native object file (.cmx)
+>8 string Z native library file (.cmxa)
+>8 string M abstract syntax tree implementation file
+>8 string N abstract syntax tree interface file
+>9 string >\0 (Version %3.3s).
diff --git a/contrib/file/Magdir/os2 b/contrib/file/Magdir/os2
index 7ae67c7c4585..e4920311d6bf 100644
--- a/contrib/file/Magdir/os2
+++ b/contrib/file/Magdir/os2
@@ -11,16 +11,16 @@
# OS/2 URL objects
# Provided 1998/08/22 by
# David Mediavilla <davidme.news@REMOVEIFNOTSPAMusa.net>
-0 string http: OS/2 URL object text
->5 string >\ (WWW) <http:%s>
-0 string mailto: OS/2 URL object text
->7 string >\ (email) <%s>
-0 string news: OS/2 URL object text
->5 string >\ (Usenet) <%s>
-0 string ftp: OS/2 URL object text
->4 string >\ (FTP) <ftp:%s>
-0 string file: OS/2 URL object text
->5 string >\ (Local file) <%s>
+#0 string http: OS/2 URL object text
+#>5 string >\ (WWW) <http:%s>
+#0 string mailto: OS/2 URL object text
+#>7 string >\ (email) <%s>
+#0 string news: OS/2 URL object text
+#>5 string >\ (Usenet) <%s>
+#0 string ftp: OS/2 URL object text
+#>4 string >\ (FTP) <ftp:%s>
+#0 string file: OS/2 URL object text
+#>5 string >\ (Local file) <%s>
# >>>>> OS/2 INF/HLP <<<<< (source: Daniel Dissett ddissett@netcom.com)
# Carl Hauser (chauser.parc@xerox.com) and
diff --git a/contrib/file/Magdir/palm b/contrib/file/Magdir/palm
index 46bc632e1521..79af1f00c36f 100644
--- a/contrib/file/Magdir/palm
+++ b/contrib/file/Magdir/palm
@@ -13,3 +13,79 @@
# HACK
60 belong 0x4841434b HackMaster hack
>0 string >\0 "%s"
+
+# Variety of PalmOS document types
+# Michael-John Turner <mj@debian.org>
+# Thanks to Hasan Umit Ezerce <humit@tr-net.net.tr> for his DocType
+60 string BVokBDIC BDicty PalmOS document
+>0 string >\0 "%s"
+60 string DB99DBOS DB PalmOS document
+>0 string >\0 "%s"
+60 string vIMGView FireViewer/ImageViewer PalmOS document
+>0 string >\0 "%s"
+60 string PmDBPmDB HanDBase PalmOS document
+>0 string >\0 "%s"
+60 string InfoINDB InfoView PalmOS document
+>0 string >\0 "%s"
+60 string ToGoToGo iSilo PalmOS document
+>0 string >\0 "%s"
+60 string JfDbJBas JFile PalmOS document
+>0 string >\0 "%s"
+60 string JfDbJFil JFile Pro PalmOS document
+>0 string >\0 "%s"
+60 string DATALSdb List PalmOS document
+>0 string >\0 "%s"
+60 string Mdb1Mdb1 MobileDB PalmOS document
+>0 string >\0 "%s"
+60 string PNRdPPrs PeanutPress PalmOS document
+>0 string >\0 "%s"
+60 string DataPlkr Plucker PalmOS document
+>0 string >\0 "%s"
+60 string DataSprd QuickSheet PalmOS document
+>0 string >\0 "%s"
+60 string SM01SMem SuperMemo PalmOS document
+>0 string >\0 "%s"
+60 string DataTlPt TealDoc PalmOS document
+>0 string >\0 "%s"
+60 string InfoTlIf TealInfo PalmOS document
+>0 string >\0 "%s"
+60 string DataTlMl TealMeal PalmOS document
+>0 string >\0 "%s"
+60 string DataTlPt TealPaint PalmOS document
+>0 string >\0 "%s"
+60 string dataTDBP ThinkDB PalmOS document
+>0 string >\0 "%s"
+60 string TdatTide Tides PalmOS document
+>0 string >\0 "%s"
+60 string ToRaTRPW TomeRaider PalmOS document
+>0 string >\0 "%s"
+
+# A GutenPalm zTXT etext for use on Palm Pilots (http://gutenpalm.sf.net)
+# For version 1.xx zTXTs, outputs version and numbers of bookmarks and
+# annotations.
+# For other versions, just outputs version.
+#
+60 string zTXT A GutenPalm zTXT e-book
+>0 string >\0 "%s"
+>(0x4E.L) byte 0
+>>(0x4E.L+1) byte x (v0.%02d)
+>(0x4E.L) byte 1
+>>(0x4E.L+1) byte x (v1.%02d)
+>>>(0x4E.L+10) beshort >0
+>>>>(0x4E.L+10) beshort <2 - 1 bookmark
+>>>>(0x4E.L+10) beshort >1 - %d bookmarks
+>>>(0x4E.L+14) beshort >0
+>>>>(0x4E.L+14) beshort <2 - 1 annotation
+>>>>(0x4E.L+14) beshort >1 - %d annotations
+>(0x4E.L) byte >1 (v%d.
+>>(0x4E.L+1) byte x %02d)
+
+# Palm OS .prc file types
+60 string libr Palm OS dynamic library data
+>0 string >\0 "%s"
+60 string ptch Palm OS operating system patch data
+>0 string >\0 "%s"
+
+# Mobipocket (www.mobipocket.com), donated by Carl Witty
+60 string BOOKMOBI Mobipocket E-book
+>0 string >\0 "%s"
diff --git a/contrib/file/Magdir/perl b/contrib/file/Magdir/perl
index 28b608667f13..f70b8dccb854 100644
--- a/contrib/file/Magdir/perl
+++ b/contrib/file/Magdir/perl
@@ -11,6 +11,7 @@
0 string eval\ "exec\ /usr/bin/perl perl script text
0 string/b #!\ /usr/local/bin/perl perl script text
0 string eval\ "exec\ /usr/local/bin/perl perl script text executable
+0 string eval\ '(exit\ $?0)'\ &&\ eval\ 'exec perl script text
# a couple more, by me
# XXX: christos matches
diff --git a/contrib/file/Magdir/plan9 b/contrib/file/Magdir/plan9
new file mode 100644
index 000000000000..b564fc846348
--- /dev/null
+++ b/contrib/file/Magdir/plan9
@@ -0,0 +1,4 @@
+#------------------------------------------------------------------------------
+# plan9: file(1) magic for AT&T Bell Labs' Plan 9 executables
+#
+0 belong 0x000001EB Plan 9 executable
diff --git a/contrib/file/Magdir/printer b/contrib/file/Magdir/printer
index dfbd5b97ceee..388facf730e4 100644
--- a/contrib/file/Magdir/printer
+++ b/contrib/file/Magdir/printer
@@ -83,10 +83,34 @@
#
# Now magic for IMAGEN font files...
0 string Rast RST-format raster font data
->45 string >0 face %
+>45 string >0 face %s
# From Jukka Ukkonen
0 string \033[K\002\0\0\017\033(a\001\0\001\033(g Canon Bubble Jet BJC formatted data
# From <mike@flyn.org>
# These are the /etc/magic entries to decode data sent to an Epson printer.
0 string \x1B\x40\x1B\x28\x52\x08\x00\x00REMOTE1P Epson Stylus Color 460 data
+
+
+#------------------------------------------------------------------------------
+# zenographics: file(1) magic for Zenographics ZjStream printer data
+# Rick Richardson rickr@mn.rr.com
+0 string JZJZ
+>0x12 string ZZ Zenographics ZjStream printer data (big-endian)
+0 string ZJZJ
+>0x12 string ZZ Zenographics ZjStream printer data (little-endian)
+
+
+#------------------------------------------------------------------------------
+# Oak Technologies printer stream
+# Rick Richardson <rickr@mn.rr.com>
+0 string OAK
+>0x07 byte 0
+>0x0b byte 0 Oak Technologies printer stream
+
+# This would otherwise be recognized as PostScript - nick@debian.org
+0 string %!VMF SunClock's Vector Map Format data
+
+#------------------------------------------------------------------------------
+# HP LaserJet 1000 series downloadable firmware file
+0 string \xbe\xefABCDEFGH HP LaserJet 1000 series downloadable firmware
diff --git a/contrib/file/Magdir/psion b/contrib/file/Magdir/psion
new file mode 100644
index 000000000000..5e6ab1aa9ecb
--- /dev/null
+++ b/contrib/file/Magdir/psion
@@ -0,0 +1,43 @@
+
+#------------------------------------------------------------------------------
+# psion: file(1) magic for Psion handhelds data
+# from: Peter Breitenlohner <peb@mppmu.mpg.de>
+#
+0 lelong 0x10000037 Psion Series 5
+>4 lelong 0x10000039 font file
+>4 lelong 0x1000003A printer driver
+>4 lelong 0x1000003B clipboard
+>4 lelong 0x10000042 multi-bitmap image
+>4 lelong 0x1000006A application infomation file
+>4 lelong 0x1000006D
+>>8 lelong 0x1000007D sketch image
+>>8 lelong 0x1000007E voice note
+>>8 lelong 0x1000007F word file
+>>8 lelong 0x10000085 OPL program
+>>8 lelong 0x10000088 sheet file
+>>8 lelong 0x100001C4 EasyFax initialisation file
+>4 lelong 0x10000073 OPO module
+>4 lelong 0x10000074 OPL application
+>4 lelong 0x1000008A exported multi-bitmap image
+
+0 lelong 0x10000041 Psion Series 5 ROM multi-bitmap image
+
+0 lelong 0x10000050 Psion Series 5
+>4 lelong 0x1000006D database
+>4 lelong 0x100000E4 ini file
+
+0 lelong 0x10000079 Psion Series 5 binary:
+>4 lelong 0x00000000 DLL
+>4 lelong 0x10000049 comms hardware library
+>4 lelong 0x1000004A comms protocol library
+>4 lelong 0x1000005D OPX
+>4 lelong 0x1000006C application
+>4 lelong 0x1000008D DLL
+>4 lelong 0x100000AC logical device driver
+>4 lelong 0x100000AD physical device driver
+>4 lelong 0x100000E5 file transfer protocol
+>4 lelong 0x100000E5 file transfer protocol
+>4 lelong 0x10000140 printer defintion
+>4 lelong 0x10000141 printer defintion
+
+0 lelong 0x1000007A Psion Series 5 executable
diff --git a/contrib/file/Magdir/python b/contrib/file/Magdir/python
index 1932fd263a7b..ec4c12160672 100644
--- a/contrib/file/Magdir/python
+++ b/contrib/file/Magdir/python
@@ -11,4 +11,4 @@
0 belong 0x87c60d0a python 2.0 byte-compiled
0 belong 0x2aeb0d0a python 2.1 byte-compiled
0 belong 0x2ded0d0a python 2.2 byte-compiled
-#0 belong 0x31f20d0a python 2.3 byte-compiled
+0 belong 0x3bf20d0a python 2.3 byte-compiled
diff --git a/contrib/file/Magdir/revision b/contrib/file/Magdir/revision
new file mode 100644
index 000000000000..36a829ba0ad5
--- /dev/null
+++ b/contrib/file/Magdir/revision
@@ -0,0 +1,5 @@
+
+#------------------------------------------------------------------------------
+# file(1) magic for revision control files
+# From Hendrik Scholz <hendrik@scholz.net>
+0 string /1\ :pserver: cvs password text file
diff --git a/contrib/file/Magdir/riff b/contrib/file/Magdir/riff
index a81eb9352a2b..a79dd66ad08b 100644
--- a/contrib/file/Magdir/riff
+++ b/contrib/file/Magdir/riff
@@ -5,13 +5,7 @@
#
# http://www.seanet.com/users/matts/riffmci/riffmci.htm
#
-# and
-#
-# http://www.ora.com/centers/gff/formats/micriff/index.htm
-#
-# and
-#
-# http://www.jtauber.com/music/encoding/niff/spec/
+# AVI section extended by Patrik Rådman <patrik+file-magic@iki.fi>
#
0 string RIFF RIFF (little-endian) data
# RIFF Palette format
@@ -40,8 +34,8 @@
>>20 leshort 1 \b, Microsoft PCM
>>>34 leshort >0 \b, %d bit
>>20 leshort 2 \b, Microsoft ADPCM
->>20 leshort 6 \b, ITU G.711 a-law
->>20 leshort 7 \b, ITU G.711 u-law
+>>20 leshort 6 \b, ITU G.711 A-law
+>>20 leshort 7 \b, ITU G.711 mu-law
>>20 leshort 17 \b, IMA ADPCM
>>20 leshort 20 \b, ITU G.723 ADPCM (Yamaha)
>>20 leshort 49 \b, GSM 6.10
@@ -52,10 +46,124 @@
>>22 leshort =2 \b, stereo
>>22 leshort >2 \b, %d channels
>>24 lelong >0 %d Hz
+# Corel Draw Picture
+>8 string CDRA \b, Corel Draw Picture
# AVI == Audio Video Interleave
->8 string AVI\ \b, AVI
+>8 string AVI\040 \b, AVI
+>>12 string LIST
+>>>20 string hdrlavih
+>>>>&36 lelong x \b, %lu x
+>>>>&40 lelong x %lu,
+>>>>&4 lelong >1000000 <1 fps,
+>>>>&4 lelong 1000000 1.00 fps,
+>>>>&4 lelong 500000 2.00 fps,
+>>>>&4 lelong 333333 3.00 fps,
+>>>>&4 lelong 250000 4.00 fps,
+>>>>&4 lelong 200000 5.00 fps,
+>>>>&4 lelong 166667 6.00 fps,
+>>>>&4 lelong 142857 7.00 fps,
+>>>>&4 lelong 125000 8.00 fps,
+>>>>&4 lelong 111111 9.00 fps,
+>>>>&4 lelong 100000 10.00 fps,
+# ]9.9,10.1[
+>>>>&4 lelong <101010
+>>>>>&-4 lelong >99010
+>>>>>>&-4 lelong !100000 ~10 fps,
+>>>>&4 lelong 83333 12.00 fps,
+# ]11.9,12.1[
+>>>>&4 lelong <84034
+>>>>>&-4 lelong >82645
+>>>>>>&-4 lelong !83333 ~12 fps,
+>>>>&4 lelong 66667 15.00 fps,
+# ]14.9,15.1[
+>>>>&4 lelong <67114
+>>>>>&-4 lelong >66225
+>>>>>>&-4 lelong !66667 ~15 fps,
+>>>>&4 lelong 50000 20.00 fps,
+>>>>&4 lelong 41708 23.98 fps,
+>>>>&4 lelong 41667 24.00 fps,
+# ]23.9,24.1[
+>>>>&4 lelong <41841
+>>>>>&-4 lelong >41494
+>>>>>>&-4 lelong !41708
+>>>>>>>&-4 lelong !41667 ~24 fps,
+>>>>&4 lelong 40000 25.00 fps,
+# ]24.9,25.1[
+>>>>&4 lelong <40161
+>>>>>&-4 lelong >39841
+>>>>>>&-4 lelong !40000 ~25 fps,
+>>>>&4 lelong 33367 29.97 fps,
+>>>>&4 lelong 33333 30.00 fps,
+# ]29.9,30.1[
+>>>>&4 lelong <33445
+>>>>>&-4 lelong >33223
+>>>>>>&-4 lelong !33367
+>>>>>>>&-4 lelong !33333 ~30 fps,
+>>>>&4 lelong <32224 >30 fps,
+##>>>>&4 lelong x (%lu)
+##>>>>&20 lelong x %lu frames,
+# Note: The tests below assume that the AVI has 1 or 2 streams,
+# "vids" optionally followed by "auds".
+# (Should cover 99.9% of all AVIs.)
+# assuming avih length = 56
+>>>88 string LIST
+>>>>96 string strlstrh
+>>>>>108 string vids video:
+>>>>>>&0 lelong 0 uncompressed
+# skip past vids strh
+>>>>>>(104.l+108) string strf
+>>>>>>>(104.l+132) lelong 1 RLE 8bpp
+>>>>>>>(104.l+132) string/c cvid Cinepak
+>>>>>>>(104.l+132) string/c i263 Intel I.263
+>>>>>>>(104.l+132) string/c iv32 Indeo 3.2
+>>>>>>>(104.l+132) string/c iv41 Indeo 4.1
+>>>>>>>(104.l+132) string/c iv50 Indeo 5.0
+>>>>>>>(104.l+132) string/c mp42 Microsoft MPEG-4 v2
+>>>>>>>(104.l+132) string/c mp43 Microsoft MPEG-4 v3
+>>>>>>>(104.l+132) string/c mjpg Motion JPEG
+>>>>>>>(104.l+132) string/c div3 DivX 3
+>>>>>>>>112 string/c div3 Low-Motion
+>>>>>>>>112 string/c div4 Fast-Motion
+>>>>>>>(104.l+132) string/c divx DivX 4
+>>>>>>>(104.l+132) string/c dx50 DivX 5
+>>>>>>>(104.l+132) string/c xvid XviD
+>>>>>>>(104.l+132) lelong 0
+##>>>>>>>(104.l+132) string x (%.4s)
+# skip past first (video) LIST
+>>>>(92.l+96) string LIST
+>>>>>(92.l+104) string strlstrh
+>>>>>>(92.l+116) string auds \b, audio:
+# auds strh length = 56:
+>>>>>>>(92.l+172) string strf
+>>>>>>>>(92.l+180) leshort 0x0001 uncompressed PCM
+>>>>>>>>(92.l+180) leshort 0x0002 ADPCM
+>>>>>>>>(92.l+180) leshort 0x0055 MPEG-1 Layer 3
+>>>>>>>>(92.l+180) leshort 0x2000 Dolby AC3
+>>>>>>>>(92.l+180) leshort 0x0161 DivX
+##>>>>>>>>(92.l+180) leshort x (0x%.4x)
+>>>>>>>>(92.l+182) leshort 1 (mono,
+>>>>>>>>(92.l+182) leshort 2 (stereo,
+>>>>>>>>(92.l+182) leshort >2 (%d channels,
+>>>>>>>>(92.l+184) lelong x %d Hz)
+# auds strh length = 64:
+>>>>>>>(92.l+180) string strf
+>>>>>>>>(92.l+188) leshort 0x0001 uncompressed PCM
+>>>>>>>>(92.l+188) leshort 0x0002 ADPCM
+>>>>>>>>(92.l+188) leshort 0x0055 MPEG-1 Layer 3
+>>>>>>>>(92.l+188) leshort 0x2000 Dolby AC3
+>>>>>>>>(92.l+188) leshort 0x0161 DivX
+##>>>>>>>>(92.l+188) leshort x (0x%.4x)
+>>>>>>>>(92.l+190) leshort 1 (mono,
+>>>>>>>>(92.l+190) leshort 2 (stereo,
+>>>>>>>>(92.l+190) leshort >2 (%d channels,
+>>>>>>>>(92.l+192) lelong x %d Hz)
# Animated Cursor format
>8 string ACON \b, animated cursor
+# SoundFont 2 <mpruett@sgi.com>
+>8 string sfbk SoundFont/Bank
+# MPEG-1 wrapped in a RIFF, apparently
+>8 string CDXA \b, wrapped MPEG-1 (CDXA)
+>8 string 4XMV \b, 4X Movie file
#
# XXX - some of the below may only appear in little-endian form.
@@ -93,12 +201,13 @@
>>22 beshort =2 \b, stereo
>>22 beshort >2 \b, %d channels
>>24 belong >0 %d Hz
+# Corel Draw Picture
+>8 string CDRA \b, Corel Draw Picture
# AVI == Audio Video Interleave
->8 string AVI\ \b, AVI
+>8 string AVI\040 \b, AVI
# Animated Cursor format
>8 string ACON \b, animated cursor
# Notation Interchange File Format (big-endian only)
>8 string NIFF \b, Notation Interchange File Format
-
# SoundFont 2 <mpruett@sgi.com>
->8 string sfbk SoundFont 2
+>8 string sfbk SoundFont/Bank
diff --git a/contrib/file/Magdir/rpm b/contrib/file/Magdir/rpm
index 14ad6db93642..09ee51b4f026 100644
--- a/contrib/file/Magdir/rpm
+++ b/contrib/file/Magdir/rpm
@@ -2,7 +2,7 @@
#
# RPM: file(1) magic for Red Hat Packages Erik Troan (ewt@redhat.com)
#
-0 beshort 0xedab
+0 beshort 0xedab
>2 beshort 0xeedb RPM
>>4 byte x v%d
>>6 beshort 0 bin
@@ -13,5 +13,10 @@
>>8 beshort 4 MIPS
>>8 beshort 5 PowerPC
>>8 beshort 6 68000
->>8 beshort 7 SGI
+>>8 beshort 7 SGI
+>>8 beshort 8 RS6000
+>>8 beshort 9 IA64
+>>8 beshort 10 Sparc64
+>>8 beshort 11 MIPSel
+>>8 beshort 12 ARM
>>10 string x %s
diff --git a/contrib/file/Magdir/sgi b/contrib/file/Magdir/sgi
index 1983f0da154e..23f182aa561b 100644
--- a/contrib/file/Magdir/sgi
+++ b/contrib/file/Magdir/sgi
@@ -1,177 +1,59 @@
#------------------------------------------------------------------------------
-# sgi: file(1) magic for Silicon Graphics (MIPS, IRIS, IRIX, etc.)
-# Dec Ultrix (MIPS)
-# all of SGI's *current* machines and OSes run in big-endian mode on the
-# MIPS machines, as far as I know.
-#
-# XXX - what is the blank "-" line?
-#
-# kbd file definitions
-0 string kbd!map kbd map file
->8 byte >0 Ver %d:
->10 short >0 with %d table(s)
-0 belong 0407 old SGI 68020 executable
-0 belong 0410 old SGI 68020 pure executable
-0 beshort 0x8765 disk quotas file
-0 beshort 0x0506 IRIS Showcase file
->2 byte 0x49 -
->3 byte x - version %ld
-0 beshort 0x0226 IRIS Showcase template
->2 byte 0x63 -
->3 byte x - version %ld
-0 belong 0x5343464d IRIS Showcase file
->4 byte x - version %ld
-0 belong 0x5443464d IRIS Showcase template
->4 byte x - version %ld
-0 belong 0xdeadbabe IRIX Parallel Arena
->8 belong >0 - version %ld
-#
-0 beshort 0x0160 MIPSEB COFF executable
->20 beshort 0407 (impure)
->20 beshort 0410 (swapped)
->20 beshort 0413 (paged)
->8 belong >0 not stripped
->8 belong 0 stripped
->22 byte x - version %ld
->23 byte x .%ld
-#
-0 beshort 0x0162 MIPSEL COFF executable
->20 beshort 0407 (impure)
->20 beshort 0410 (swapped)
->20 beshort 0413 (paged)
->8 belong >0 not stripped
->8 belong 0 stripped
->23 byte x - version %d
->22 byte x .%ld
-#
-0 beshort 0x6001 MIPSEB-LE COFF executable
->20 beshort 03401 (impure)
->20 beshort 04001 (swapped)
->20 beshort 05401 (paged)
->8 belong >0 not stripped
->8 belong 0 stripped
->23 byte x - version %d
->22 byte x .%ld
-#
-0 beshort 0x6201 MIPSEL-LE COFF executable
->20 beshort 03401 (impure)
->20 beshort 04001 (swapped)
->20 beshort 05401 (paged)
->8 belong >0 not stripped
->8 belong 0 stripped
->23 byte x - version %ld
->22 byte x .%ld
-#
-# MIPS 2 additions
-#
-0 beshort 0x0163 MIPSEB MIPS-II COFF executable
->20 beshort 0407 (impure)
->20 beshort 0410 (swapped)
->20 beshort 0413 (paged)
->8 belong >0 not stripped
->8 belong 0 stripped
->22 byte x - version %ld
->23 byte x .%ld
-#
-0 beshort 0x0166 MIPSEL MIPS-II COFF executable
->20 beshort 0407 (impure)
->20 beshort 0410 (swapped)
->20 beshort 0413 (paged)
->8 belong >0 not stripped
->8 belong 0 stripped
->22 byte x - version %ld
->23 byte x .%ld
-#
-0 beshort 0x6301 MIPSEB-LE MIPS-II COFF executable
->20 beshort 03401 (impure)
->20 beshort 04001 (swapped)
->20 beshort 05401 (paged)
->8 belong >0 not stripped
->8 belong 0 stripped
->23 byte x - version %ld
->22 byte x .%ld
-#
-0 beshort 0x6601 MIPSEL-LE MIPS-II COFF executable
->20 beshort 03401 (impure)
->20 beshort 04001 (swapped)
->20 beshort 05401 (paged)
->8 belong >0 not stripped
->8 belong 0 stripped
->23 byte x - version %ld
->22 byte x .%ld
-#
-# MIPS 3 additions
-#
-0 beshort 0x0140 MIPSEB MIPS-III COFF executable
->20 beshort 0407 (impure)
->20 beshort 0410 (swapped)
->20 beshort 0413 (paged)
->8 belong >0 not stripped
->8 belong 0 stripped
->22 byte x - version %ld
->23 byte x .%ld
-#
-0 beshort 0x0142 MIPSEL MIPS-III COFF executable
->20 beshort 0407 (impure)
->20 beshort 0410 (swapped)
->20 beshort 0413 (paged)
->8 belong >0 not stripped
->8 belong 0 stripped
->22 byte x - version %ld
->23 byte x .%ld
-#
-0 beshort 0x4001 MIPSEB-LE MIPS-III COFF executable
->20 beshort 03401 (impure)
->20 beshort 04001 (swapped)
->20 beshort 05401 (paged)
->8 belong >0 not stripped
->8 belong 0 stripped
->23 byte x - version %ld
->22 byte x .%ld
-#
-0 beshort 0x4201 MIPSEL-LE MIPS-III COFF executable
->20 beshort 03401 (impure)
->20 beshort 04001 (swapped)
->20 beshort 05401 (paged)
->8 belong >0 not stripped
->8 belong 0 stripped
->23 byte x - version %ld
->22 byte x .%ld
-#
-0 beshort 0x180 MIPSEB Ucode
-0 beshort 0x182 MIPSEL Ucode
-# 32bit core file
-0 belong 0xdeadadb0 IRIX core dump
->4 belong 1 of
->16 string >\0 '%s'
-# 64bit core file
-0 belong 0xdeadad40 IRIX 64-bit core dump
->4 belong 1 of
->16 string >\0 '%s'
-# N32bit core file
-0 belong 0xbabec0bb IRIX N32 core dump
->4 belong 1 of
->16 string >\0 '%s'
-# New style crash dump file
-0 string \x43\x72\x73\x68\x44\x75\x6d\x70 IRIX vmcore dump of
->36 string >\0 '%s'
-# Trusted IRIX info
-0 string SGIAUDIT SGI Audit file
->8 byte x - version %d
->9 byte x .%ld
+# sgi: file(1) magic for Silicon Graphics applications
+
#
-0 string WNGZWZSC Wingz compiled script
-0 string WNGZWZSS Wingz spreadsheet
-0 string WNGZWZHP Wingz help file
#
-0 string \#Inventor V IRIS Inventor 1.0 file
-0 string \#Inventor V2 Open Inventor 2.0 file
-# GLF is OpenGL stream encoding
-0 string glfHeadMagic(); GLF_TEXT
-4 belong 0x7d000000 GLF_BINARY_LSB_FIRST
-4 belong 0x0000007d GLF_BINARY_MSB_FIRST
-# GLS is OpenGL stream encoding; GLS is the successor of GLF
-0 string glsBeginGLS( GLS_TEXT
-4 belong 0x10000000 GLS_BINARY_LSB_FIRST
-4 belong 0x00000010 GLS_BINARY_MSB_FIRST
+# Performance Co-Pilot file types
+0 string PmNs PCP compiled namespace (V.0)
+0 string PmN PCP compiled namespace
+>3 string >\0 (V.%1.1s)
+3 lelong 0x84500526 PCP archive
+>7 byte x (V.%d)
+>20 lelong -2 temporal index
+>20 lelong -1 metadata
+>20 lelong 0 log volume #0
+>20 lelong >0 log volume #%ld
+>24 string >\0 host: %s
+0 string PCPFolio PCP
+>9 string Version: Archive Folio
+>18 string >\0 (V.%s)
+0 string #pmchart PCP pmchart view
+>9 string Version
+>17 string >\0 (V%-3.3s)
+0 string pmview PCP pmview config
+>7 string Version
+>15 string >\0 (V%-3.3s)
+0 string #pmlogger PCP pmlogger config
+>10 string Version
+>18 string >\0 (V%1.1s)
+0 string PcPh PCP Help
+>4 string 1 Index
+>4 string 2 Text
+>5 string >\0 (V.%1.1s)
+0 string #pmieconf-rules PCP pmieconf rules
+>16 string >\0 (V.%1.1s)
+3 string pmieconf-pmie PCP pmie config
+>17 string >\0 (V.%1.1s)
+
+# SpeedShop data files
+0 lelong 0x13130303 SpeedShop data file
+
+# mdbm files
+0 lelong 0x01023962 mdbm file, version 0 (obsolete)
+0 string mdbm mdbm file,
+>5 byte x version %d,
+>6 byte x 2^%d pages,
+>7 byte x pagesize 2^%d,
+>17 byte x hash %d,
+>11 byte x dataformat %d
+
+# Alias|Wavefront Maya files
+0 string //Maya ASCII Alias|Wavefront Maya Ascii File,
+>13 string >\0 version %s
+8 string MAYAFOR4 Alias|Wavefront Maya Binary File,
+>32 string >\0 version %s scene
+8 string MayaFOR4 Alias|Wavefront Maya Binary File,
+>32 string >\0 version %s scene
+8 string CIMG Alias|Wavefront Maya Image File
+8 string DEEP Alias|Wavefront Maya Image File
diff --git a/contrib/file/Magdir/sgml b/contrib/file/Magdir/sgml
index 55b8301ee3ec..9f33529299a8 100644
--- a/contrib/file/Magdir/sgml
+++ b/contrib/file/Magdir/sgml
@@ -4,14 +4,21 @@
# HyperText Markup Language (HTML) is an SGML document type,
# from Daniel Quinlan (quinlan@yggdrasil.com)
# adapted to string extenstions by Anthon van der Neut <anthon@mnt.org)
-0 string/cB \<!doctype\ html HTML document text
+0 string/cB \<!DOCTYPE\ html HTML document text
0 string/cb \<head HTML document text
0 string/cb \<title HTML document text
0 string/cb \<html HTML document text
# Extensible markup language (XML), a subset of SGML
# from Marc Prud'hommeaux (marc@apocalypse.org)
-0 string/cb \<?xml XML document text
+0 string/cb \<?xml XML document text
+0 string \<?xml\ version " XML
+0 string \<?xml\ version=" XML
+>15 string >\0 %.3s document text
+>>23 string \<xsl:stylesheet (XSL stylesheet)
+>>24 string \<xsl:stylesheet (XSL stylesheet)
+0 string/b \<?xml XML document text
+0 string/cb \<?xml broken XML document text
# SGML, mostly from rph@sq
diff --git a/contrib/file/Magdir/sinclair b/contrib/file/Magdir/sinclair
new file mode 100644
index 000000000000..702875ea5355
--- /dev/null
+++ b/contrib/file/Magdir/sinclair
@@ -0,0 +1,126 @@
+
+#------------------------------------------------------------------------------
+# sinclair: file(1) sinclair QL
+
+# additions to /etc/magic by Thomas M. Ott (ThMO)
+
+# Sinclair QL floppy disk formats (ThMO)
+0 string =QL5 QL disk dump data,
+>3 string =A 720 KB,
+>3 string =B 1.44 MB,
+>3 string =C 3.2 MB,
+>4 string >\0 label:%.10s
+
+# Sinclair QL OS dump (ThMO)
+# (NOTE: if `file' would be able to use indirect references in a endian format
+# differing from the natural host format, this could be written more
+# reliably and faster...)
+#
+# we *can't* lookup QL OS code dumps, because `file' is UNABLE to read more
+# than the first 8K of a file... #-(
+#
+#0 belong =0x30000
+#>49124 belong <47104
+#>>49128 belong <47104
+#>>>49132 belong <47104
+#>>>>49136 belong <47104 QL OS dump data,
+#>>>>>49148 string >\0 type %.3s,
+#>>>>>49142 string >\0 version %.4s
+
+# Sinclair QL firmware executables (ThMO)
+0 string NqNqNq`\004 QL firmware executable (BCPL)
+
+# Sinclair QL libraries (ThMO)
+0 beshort =0xFB01 QL library archive data
+
+# Sinclair QL executbables (ThMO)
+6 beshort =0x4AFB QL executable,
+>10 string =\0 un-named
+>8 beshort =1
+>>10 string >\0 named: %.1s
+>8 beshort =2
+>>10 string >\0 named: %.2s
+>8 beshort =3
+>>10 string >\0 named: %.3s
+>8 beshort =4
+>>10 string >\0 named: %.4s
+>8 beshort =5
+>>10 string >\0 named: %.5s
+>8 beshort =6
+>>10 string >\0 named: %.6s
+>8 beshort =7
+>>10 string >\0 named: %.7s
+>8 beshort =8
+>>10 string >\0 named: %.8s
+>8 beshort =9
+>>10 string >\0 named: %.9s
+>8 beshort =10
+>>10 string >\0 named: %.10s
+>8 beshort =11
+>>10 string >\0 named: %.11s
+>8 beshort =12
+>>10 string >\0 named: %.12s
+>8 beshort =13
+>>10 string >\0 named: %.13s
+>8 beshort =14
+>>10 string >\0 named: %.14s
+>8 beshort =15
+>>10 string >\0 named: %.15s
+>8 beshort =16
+>>10 string >\0 named: %.16s
+>8 beshort =17
+>>10 string >\0 named: %.17s
+>8 beshort =18
+>>10 string >\0 named: %.18s
+>8 beshort =19
+>>10 string >\0 named: %.19s
+>8 beshort =20
+>>10 string >\0 named: %.20s
+>8 beshort >20
+>>10 string >\0 (truncated) named: %.20s
+
+# Sinclair QL rom (ThMO)
+0 belong =0x4AFB0001 QL plugin-ROM data,
+>10 string =\0 un-named
+>8 beshort =1
+>>10 string >\0 named: %.1s
+>8 beshort =2
+>>10 string >\0 named: %.2s
+>8 beshort =3
+>>10 string >\0 named: %.3s
+>8 beshort =4
+>>10 string >\0 named: %.4s
+>8 beshort =5
+>>10 string >\0 named: %.5s
+>8 beshort =6
+>>10 string >\0 named: %.6s
+>8 beshort =7
+>>10 string >\0 named: %.7s
+>8 beshort =8
+>>10 string >\0 named: %.8s
+>8 beshort =9
+>>10 string >\0 named: %.9s
+>8 beshort =10
+>>10 string >\0 named: %.10s
+>8 beshort =11
+>>10 string >\0 named: %.11s
+>8 beshort =12
+>>10 string >\0 named: %.12s
+>8 beshort =13
+>>10 string >\0 named: %.13s
+>8 beshort =14
+>>10 string >\0 named: %.14s
+>8 beshort =15
+>>10 string >\0 named: %.15s
+>8 beshort =16
+>>10 string >\0 named: %.16s
+>8 beshort =17
+>>10 string >\0 named: %.17s
+>8 beshort =18
+>>10 string >\0 named: %.18s
+>8 beshort =19
+>>10 string >\0 named: %.19s
+>8 beshort =20
+>>10 string >\0 named: %.20s
+>8 beshort >20
+>>10 string >\0 (truncated) named: %.20s
diff --git a/contrib/file/Magdir/sniffer b/contrib/file/Magdir/sniffer
index 626439e18903..b45b63e99f71 100644
--- a/contrib/file/Magdir/sniffer
+++ b/contrib/file/Magdir/sniffer
@@ -9,23 +9,25 @@
# Microsoft Network Monitor 1.x capture files.
#
0 string RTSS NetMon capture file
->4 byte x - version %d
->5 byte x \b.%d
+>5 byte x - version %d
+>4 byte x \b.%d
>6 leshort 0 (Unknown)
>6 leshort 1 (Ethernet)
>6 leshort 2 (Token Ring)
>6 leshort 3 (FDDI)
+>6 leshort 4 (ATM)
#
# Microsoft Network Monitor 2.x capture files.
#
0 string GMBU NetMon capture file
->4 byte x - version %d
->5 byte x \b.%d
+>5 byte x - version %d
+>4 byte x \b.%d
>6 leshort 0 (Unknown)
>6 leshort 1 (Ethernet)
>6 leshort 2 (Token Ring)
>6 leshort 3 (FDDI)
+>6 leshort 4 (ATM)
#
# Network General Sniffer capture files.
@@ -58,6 +60,9 @@
>44 leshort 0 (Ethernet)
>44 leshort 1 (Token Ring)
>44 leshort 2 (FDDI)
+>44 leshort 3 (WAN)
+>44 leshort 8 (ATM)
+>44 leshort 9 (802.11)
#
# "libpcap" capture files.
@@ -75,7 +80,7 @@
>20 belong 4 (ProNET
>20 belong 5 (CHAOS
>20 belong 6 (Token Ring
->20 belong 7 (ARCNET
+>20 belong 7 (BSD ARCNET
>20 belong 8 (SLIP
>20 belong 9 (PPP
>20 belong 10 (FDDI
@@ -92,10 +97,21 @@
>20 belong 104 (BSD/OS Cisco HDLC
>20 belong 105 (802.11
>20 belong 106 (Linux Classical IP over ATM
+>20 belong 107 (Frame Relay
>20 belong 108 (OpenBSD loopback
->20 belong 109 (OpenBSD IPSEC encrypted
+>20 belong 109 (OpenBSD IPsec encrypted
+>20 belong 112 (Cisco HDLC
>20 belong 113 (Linux "cooked"
>20 belong 114 (LocalTalk
+>20 belong 117 (OpenBSD PFLOG
+>20 belong 119 (802.11 with Prism header
+>20 belong 123 (SunATM
+>20 belong 127 (802.11 with radiotap header
+>20 belong 129 (Linux ARCNET
+>20 belong 140 (MTP2
+>20 belong 141 (MTP3
+>20 belong 143 (DOCSIS
+>20 belong 144 (IrDA
>16 belong x \b, capture length %d)
0 ulelong 0xa1b2c3d4 tcpdump capture file (little-endian)
>4 leshort x - version %d
@@ -124,10 +140,21 @@
>20 lelong 104 (BSD/OS Cisco HDLC
>20 lelong 105 (802.11
>20 lelong 106 (Linux Classical IP over ATM
+>20 lelong 107 (Frame Relay
>20 lelong 108 (OpenBSD loopback
>20 lelong 109 (OpenBSD IPSEC encrypted
+>20 lelong 112 (Cisco HDLC
>20 lelong 113 (Linux "cooked"
>20 lelong 114 (LocalTalk
+>20 lelong 117 (OpenBSD PFLOG
+>20 lelong 119 (802.11 with Prism header
+>20 lelong 123 (SunATM
+>20 lelong 127 (802.11 with radiotap header
+>20 lelong 129 (Linux ARCNET
+>20 lelong 140 (MTP2
+>20 lelong 141 (MTP3
+>20 lelong 143 (DOCSIS
+>20 lelong 144 (IrDA
>16 lelong x \b, capture length %d)
#
@@ -178,6 +205,7 @@
#
# AIX "iptrace" capture files.
#
+0 string iptrace\ 1.0 "iptrace" capture file
0 string iptrace\ 2.0 "iptrace" capture file
#
diff --git a/contrib/file/Magdir/spec b/contrib/file/Magdir/spec
new file mode 100644
index 000000000000..bfda30642c73
--- /dev/null
+++ b/contrib/file/Magdir/spec
@@ -0,0 +1,20 @@
+
+#------------------------------------------------------------------------------
+# spec: file(1) magic for SPEC raw results (*.raw, *.rsf)
+#
+# Cloyce D. Spradling <cloyce@headgear.org>
+
+0 string spec SPEC
+>4 string .cpu CPU
+>>8 string <: \b%.4s
+>>12 string . raw result text
+
+17 string version=SPECjbb SPECjbb
+>32 string <: \b%.4s
+>>37 string <: v%.4s raw result text
+
+0 string BEGIN\040SPECWEB SPECweb
+>13 string <: \b%.2s
+>>15 string _SSL \b_SSL
+>>>20 string <: v%.4s raw result text
+>>16 string <: v%.4s raw result text
diff --git a/contrib/file/Magdir/spectrum b/contrib/file/Magdir/spectrum
index e7a5549b675a..ab9fd0467f42 100644
--- a/contrib/file/Magdir/spectrum
+++ b/contrib/file/Magdir/spectrum
@@ -26,3 +26,19 @@
>3 byte 2 - character array
>3 byte 3 - memory block
>>14 belong 0x001B0040 (screen)
+
+# The following three blocks are from pak21-spectrum@srcf.ucam.org
+# TZX tape images
+0 string ZXTape!\x1a Spectrum .TZX data
+>8 byte x version %d
+>9 byte x .%d
+
+# RZX input recording files
+0 string RZX! Spectrum .RZX data
+>4 byte x version %d
+>5 byte x .%d
+
+# And three sorts of disk image
+0 string MV\ -\ CPCEMU\ Disk-Fil Amstrad/Spectrum .DSK data
+0 string MV\ -\ CPC\ format\ Dis Amstrad/Spectrum DU54 .DSK data
+0 string EXTENDED\ CPC\ DSK\ Fil Amstrad/Spectrum Extended .DSK data
diff --git a/contrib/file/Magdir/sun b/contrib/file/Magdir/sun
index 10f30b4627dc..4c43b27a792b 100644
--- a/contrib/file/Magdir/sun
+++ b/contrib/file/Magdir/sun
@@ -101,7 +101,23 @@
>12 belong 7 (IBM channel-to-channel adapter)
>12 belong 8 (FDDI)
>12 belong 9 (Unknown)
+
+# Microsoft ICM color profile
+36 string acspMSFT Microsoft ICM Color Profile
# Sun KCMS
36 string acsp Kodak Color Management System, ICC Profile
+#---------------------------------------------------------------------------
+# The following entries have been tested by Duncan Laurie <duncan@sun.com> (a
+# lead Sun/Cobalt developer) who agrees that they are good and worthy of
+# inclusion.
+
+# Boot ROM images for Sun/Cobalt Linux server appliances
+0 string Cobalt\ Networks\ Inc.\nFirmware\ v Paged COBALT boot rom
+>38 string x V%.4s
+
+# New format for Sun/Cobalt boot ROMs is annoying, it stores the version code
+# at the very end where file(1) can't get it.
+0 string CRfs COBALT boot rom data (Flat boot rom or file system)
+
diff --git a/contrib/file/Magdir/sysex b/contrib/file/Magdir/sysex
index 9a3fe2ec246a..e2a4bd827d2e 100644
--- a/contrib/file/Magdir/sysex
+++ b/contrib/file/Magdir/sysex
@@ -4,13 +4,63 @@
#
0 byte 0xF0 SysEx File -
+# North American Group
+>1 byte 0x01 Sequential
+>1 byte 0x02 IDP
+>1 byte 0x03 OctavePlateau
+>1 byte 0x04 Moog
+>1 byte 0x05 Passport
+>1 byte 0x06 Lexicon
+>1 byte 0x07 Kurzweil
+>1 byte 0x08 Fender
+>1 byte 0x09 Gulbransen
+>1 byte 0x0a AKG
+>1 byte 0x0b Voyce
+>1 byte 0x0c Waveframe
+>1 byte 0x0d ADA
+>1 byte 0x0e Garfield
+>1 byte 0x0f Ensoniq
+>1 byte 0x10 Oberheim
+>1 byte 0x11 Apple
+>1 byte 0x12 GreyMatter
+>1 byte 0x14 PalmTree
+>1 byte 0x15 JLCooper
+>1 byte 0x16 Lowrey
+>1 byte 0x17 AdamsSmith
+>1 byte 0x18 E-mu
+>1 byte 0x19 Harmony
+>1 byte 0x1a ART
+>1 byte 0x1b Baldwin
+>1 byte 0x1c Eventide
+>1 byte 0x1d Inventronics
+>1 byte 0x1f Clarity
+
+# European Group
+>1 byte 0x21 SIEL
+>1 byte 0x22 Synthaxe
+>1 byte 0x24 Hohner
+>1 byte 0x25 Twister
+>1 byte 0x26 Solton
+>1 byte 0x27 Jellinghaus
+>1 byte 0x28 Southworth
+>1 byte 0x29 PPG
+>1 byte 0x2a JEN
+>1 byte 0x2b SSL
+>1 byte 0x2c AudioVertrieb
+
>1 byte 0x2f ELKA
>>3 byte 0x09 EK-44
+>1 byte 0x30 Dynacord
+>1 byte 0x33 Clavia
+>1 byte 0x39 Soundcraft
+
>1 byte 0x3e Waldorf
>>3 byte 0x7f Microwave I
+# Japanese Group
>1 byte 0x40 Kawai
+>>3 byte 0x20 K1
>>3 byte 0x22 K4
>1 byte 0x41 Roland
@@ -26,6 +76,7 @@
>1 byte 0x46 Kamiya
>1 byte 0x47 Akai
>1 byte 0x48 Victor
+>1 byte 0x49 Mesosha
>1 byte 0x4b Fujitsu
>1 byte 0x4c Sony
>1 byte 0x4e Teac
diff --git a/contrib/file/Magdir/ti-8x b/contrib/file/Magdir/ti-8x
index d740060a5b44..89e220401c52 100644
--- a/contrib/file/Magdir/ti-8x
+++ b/contrib/file/Magdir/ti-8x
@@ -1,36 +1,237 @@
# ------------------------------------------------------------------------
-# ti-8x: file(1) magic for the TI-8x and TI-92 Graphing Calculators.
+# ti-8x: file(1) magic for the TI-8x and TI-9x Graphing Calculators.
#
# From: Ryan McGuire (rmcguire@freenet.columbus.oh.us).
#
+# Update: Romain Lievin (roms@lpg.ticalc.org).
+#
# NOTE: This list is not complete.
+# Files for the TI-80 and TI-81 are pretty rare. I'm not going to put the
+# program/group magic numbers in here because I cannot find any.
+0 string **TI80** TI-80 Graphing Calculator File.
+0 string **TI81** TI-81 Graphing Calculator File.
+#
+# Magic Numbers for the TI-73
#
+0 string **TI73** TI-73 Graphing Calculator
+>0x00003B byte 0x00 (real number)
+>0x00003B byte 0x01 (list)
+>0x00003B byte 0x02 (matrix)
+>0x00003B byte 0x03 (equation)
+>0x00003B byte 0x04 (string)
+>0x00003B byte 0x05 (program)
+>0x00003B byte 0x06 (assembly program)
+>0x00003B byte 0x07 (picture)
+>0x00003B byte 0x08 (gdb)
+>0x00003B byte 0x0C (complex number)
+>0x00003B byte 0x0F (window settings)
+>0x00003B byte 0x10 (zoom)
+>0x00003B byte 0x11 (table setup)
+>0x00003B byte 0x13 (backup)
+
# Magic Numbers for the TI-82
#
-0 string **TI82** TI-82 Graphing Calculator
->0x000037 byte 0x0B TI-BASIC Group/Program File.
+0 string **TI82** TI-82 Graphing Calculator
+>0x00003B byte 0x00 (real)
+>0x00003B byte 0x01 (list)
+>0x00003B byte 0x02 (matrix)
+>0x00003B byte 0x03 (Y-variable)
+>0x00003B byte 0x05 (program)
+>0x00003B byte 0x06 (protected prgm)
+>0x00003B byte 0x07 (picture)
+>0x00003B byte 0x08 (gdb)
+>0x00003B byte 0x0B (window settings)
+>0x00003B byte 0x0C (window settings)
+>0x00003B byte 0x0D (table setup)
+>0x00003B byte 0x0E (screenshot)
+>0x00003B byte 0x0F (backup)
#
# Magic Numbers for the TI-83
#
-0 string **TI83** TI-83 Graphing Calculator
->0x000037 byte 0x0B TI-BASIC Group/Program File.
+0 string **TI83** TI-83 Graphing Calculator
+>0x00003B byte 0x00 (real)
+>0x00003B byte 0x01 (list)
+>0x00003B byte 0x02 (matrix)
+>0x00003B byte 0x03 (Y-variable)
+>0x00003B byte 0x04 (string)
+>0x00003B byte 0x05 (program)
+>0x00003B byte 0x06 (protected prgm)
+>0x00003B byte 0x07 (picture)
+>0x00003B byte 0x08 (gdb)
+>0x00003B byte 0x0B (window settings)
+>0x00003B byte 0x0C (window settings)
+>0x00003B byte 0x0D (table setup)
+>0x00003B byte 0x0E (screenshot)
+>0x00003B byte 0x13 (backup)
+#
+# Magic Numbers for the TI-83+
+#
+0 string **TI83F* TI-83+ Graphing Calculator
+>0x00003B byte 0x00 (real number)
+>0x00003B byte 0x01 (list)
+>0x00003B byte 0x02 (matrix)
+>0x00003B byte 0x03 (equation)
+>0x00003B byte 0x04 (string)
+>0x00003B byte 0x05 (program)
+>0x00003B byte 0x06 (assembly program)
+>0x00003B byte 0x07 (picture)
+>0x00003B byte 0x08 (gdb)
+>0x00003B byte 0x0C (complex number)
+>0x00003B byte 0x0F (window settings)
+>0x00003B byte 0x10 (zoom)
+>0x00003B byte 0x11 (table setup)
+>0x00003B byte 0x13 (backup)
+>0x00003B byte 0x15 (application variable)
+>0x00003B byte 0x17 (group of variable)
+
#
# Magic Numbers for the TI-85
#
-0 string **TI85** TI-85 Graphing Calculator
->11 string Backup Backup File.
->0x000032 string ZS4 - ZShell Version 4 File.
->0x000032 string ZS3 - ZShell Version 3 File.
->0x00000B string GDatabase Graphics Database.
->0x00003B byte 0x12 TI-BASIC Group/Program File.
+0 string **TI85** TI-85 Graphing Calculator
+>0x00003B byte 0x00 (real number)
+>0x00003B byte 0x01 (complex number)
+>0x00003B byte 0x02 (real vector)
+>0x00003B byte 0x03 (complex vector)
+>0x00003B byte 0x04 (real list)
+>0x00003B byte 0x05 (complex list)
+>0x00003B byte 0x06 (real matrix)
+>0x00003B byte 0x07 (complex matrix)
+>0x00003B byte 0x08 (real constant)
+>0x00003B byte 0x09 (complex constant)
+>0x00003B byte 0x0A (equation)
+>0x00003B byte 0x0C (string)
+>0x00003B byte 0x0D (function GDB)
+>0x00003B byte 0x0E (polar GDB)
+>0x00003B byte 0x0F (parametric GDB)
+>0x00003B byte 0x10 (diffeq GDB)
+>0x00003B byte 0x11 (picture)
+>0x00003B byte 0x12 (program)
+>0x00003B byte 0x13 (range)
+>0x00003B byte 0x17 (window settings)
+>0x00003B byte 0x18 (window settings)
+>0x00003B byte 0x19 (window settings)
+>0x00003B byte 0x1A (window settings)
+>0x00003B byte 0x1B (zoom)
+>0x00003B byte 0x1D (backup)
+>0x00003B byte 0x1E (unknown)
+>0x00003B byte 0x2A (equation)
+>0x000032 string ZS4 - ZShell Version 4 File.
+>0x000032 string ZS3 - ZShell Version 3 File.
+#
+# Magic Numbers for the TI-86
+#
+0 string **TI86** TI-86 Graphing Calculator
+>0x00003B byte 0x00 (real number)
+>0x00003B byte 0x01 (complex number)
+>0x00003B byte 0x02 (real vector)
+>0x00003B byte 0x03 (complex vector)
+>0x00003B byte 0x04 (real list)
+>0x00003B byte 0x05 (complex list)
+>0x00003B byte 0x06 (real matrix)
+>0x00003B byte 0x07 (complex matrix)
+>0x00003B byte 0x08 (real constant)
+>0x00003B byte 0x09 (complex constant)
+>0x00003B byte 0x0A (equation)
+>0x00003B byte 0x0C (string)
+>0x00003B byte 0x0D (function GDB)
+>0x00003B byte 0x0E (polar GDB)
+>0x00003B byte 0x0F (parametric GDB)
+>0x00003B byte 0x10 (diffeq GDB)
+>0x00003B byte 0x11 (picture)
+>0x00003B byte 0x12 (program)
+>0x00003B byte 0x13 (range)
+>0x00003B byte 0x17 (window settings)
+>0x00003B byte 0x18 (window settings)
+>0x00003B byte 0x19 (window settings)
+>0x00003B byte 0x1A (window settings)
+>0x00003B byte 0x1B (zoom)
+>0x00003B byte 0x1D (backup)
+>0x00003B byte 0x1E (unknown)
+>0x00003B byte 0x2A (equation)
+#
+# Magic Numbers for the TI-89
+#
+0 string **TI89** TI-89 Graphing Calculator
+>0x000048 byte 0x00 (expression)
+>0x000048 byte 0x04 (list)
+>0x000048 byte 0x06 (matrix)
+>0x000048 byte 0x0A (data)
+>0x000048 byte 0x0B (text)
+>0x000048 byte 0x0C (string)
+>0x000048 byte 0x0D (graphic data base)
+>0x000048 byte 0x0E (figure)
+>0x000048 byte 0x10 (picture)
+>0x000048 byte 0x12 (program)
+>0x000048 byte 0x13 (function)
+>0x000048 byte 0x14 (macro)
+>0x000048 byte 0x1C (zipped)
+>0x000048 byte 0x21 (assembler)
#
# Magic Numbers for the TI-92
#
-0 string **TI92** TI-92 Graphing Calculator
->0x000058 byte 0x12 TI-BASIC Group File.
->0x000012 string Function Function.
->0x000048 byte 0x12 TI-BASIC Program.
-# Files for the TI-80 and TI-81 are pretty rare. I'm not going to put the
-# program/group magic numbers in here because I cannot find any.
-0 string **TI80** TI-80 Graphing Calculator File.
-0 string **TI81** TI-81 Graphing Calculator File.
+0 string **TI92** TI-92 Graphing Calculator
+>0x000048 byte 0x00 (expression)
+>0x000048 byte 0x04 (list)
+>0x000048 byte 0x06 (matrix)
+>0x000048 byte 0x0A (data)
+>0x000048 byte 0x0B (text)
+>0x000048 byte 0x0C (string)
+>0x000048 byte 0x0D (graphic data base)
+>0x000048 byte 0x0E (figure)
+>0x000048 byte 0x10 (picture)
+>0x000048 byte 0x12 (program)
+>0x000048 byte 0x13 (function)
+>0x000048 byte 0x14 (macro)
+>0x000048 byte 0x1D (backup)
+#
+# Magic Numbers for the TI-92+/V200
+#
+0 string **TI92P* TI-92+/V200 Graphing Calculator
+>0x000048 byte 0x00 (expression)
+>0x000048 byte 0x04 (list)
+>0x000048 byte 0x06 (matrix)
+>0x000048 byte 0x0A (data)
+>0x000048 byte 0x0B (text)
+>0x000048 byte 0x0C (string)
+>0x000048 byte 0x0D (graphic data base)
+>0x000048 byte 0x0E (figure)
+>0x000048 byte 0x10 (picture)
+>0x000048 byte 0x12 (program)
+>0x000048 byte 0x13 (function)
+>0x000048 byte 0x14 (macro)
+>0x000048 byte 0x1C (zipped)
+>0x000048 byte 0x21 (assembler)
+#
+# Magic Numbers for the TI-73/83+/89/92+/V200 FLASH upgrades
+#
+0x0000016 string Advanced TI-XX Graphing Calculator (FLASH)
+0 string **TIFL** TI-XX Graphing Calculator (FLASH)
+>8 byte >0 - Revision %d
+>>9 byte x \b.%d,
+>12 byte >0 Revision date %02x
+>>13 byte x \b/%02x
+>>14 beshort x \b/%04x,
+>17 string >/0 name: '%s',
+>48 byte 0x74 device: TI-73,
+>48 byte 0x73 device: TI-83+,
+>48 byte 0x98 device: TI-89,
+>48 byte 0x88 device: TI-92+,
+>49 byte 0x23 type: OS upgrade,
+>49 byte 0x24 type: application,
+>49 byte 0x25 type: certificate,
+>49 byte 0x3e type: license,
+>74 lelong >0 size: %ld bytes
+
+# VTi & TiEmu skins (TI Graphing Calculators).
+# From: Romain Lievin (roms@lpg.ticalc.org).
+# Magic Numbers for the VTi skins
+0 string VTI Virtual TI skin
+>3 string v - Version
+>>4 byte >0 \b %c
+>>6 byte x \b.%c
+# Magic Numbers for the TiEmu skins
+0 string TiEmu TiEmu skin
+>6 string v - Version
+>>7 byte >0 \b %c
+>>9 byte x \b.%c
+>>10 byte x \b%c
diff --git a/contrib/file/Magdir/unknown b/contrib/file/Magdir/unknown
index 843dc2936db0..910cea48e079 100644
--- a/contrib/file/Magdir/unknown
+++ b/contrib/file/Magdir/unknown
@@ -15,7 +15,7 @@
# 0x10B is 0413; that's VAX demand-paged, but this is a short, not a
# long, as it would be on a VAX.
#
-# 0x10C is 0414, 0x10D is 0415, and 0x10E is 416; those *are* unknown.
+# 0x10C is 0414 and 0x10E is 416; those *are* unknown.
#
0 short 0x107 unknown machine executable
>8 short >0 not stripped
@@ -31,6 +31,4 @@
>15 byte >0 - version %ld
0 long 0x10c unknown demand paged pure executable
>16 long >0 not stripped
-0 long 0x10d unknown demand paged pure executable
->16 long >0 not stripped
0 long 0x10e unknown readable demand paged pure executable
diff --git a/contrib/file/Magdir/varied.out b/contrib/file/Magdir/varied.out
index 76322dd5487a..537c5af463ef 100644
--- a/contrib/file/Magdir/varied.out
+++ b/contrib/file/Magdir/varied.out
@@ -28,5 +28,8 @@
>4 long x - version %ld
# From: Dave Pearson <davep@davep.org>
# Harbour <URL:http://www.harbour-project.org/> HRB files.
-0 string \xc0HRB Harbour HRB file
->4 short x version %d
+0 string \xc0HRB Harbour HRB file
+>4 short x version %d
+
+# From: "Stefan A. Haubenthal" <polluks@web.de>
+0 belong 0x000001EB Plan 9 executable
diff --git a/contrib/file/Magdir/varied.script b/contrib/file/Magdir/varied.script
new file mode 100644
index 000000000000..a3e0972b96bb
--- /dev/null
+++ b/contrib/file/Magdir/varied.script
@@ -0,0 +1,12 @@
+#------------------------------------------------------------------------------
+# varied.script: file(1) magic for various interpreter scripts
+
+0 string #!\ / a
+>3 string >\0 %s script text executable
+0 string #!\ / a
+>3 string >\0 %s script text executable
+0 string #!/ a
+>2 string >\0 %s script text executable
+0 string #!\ script text executable
+>3 string >\0 for %s
+
diff --git a/contrib/file/Magdir/vmware b/contrib/file/Magdir/vmware
index 857a4a94524a..6af543c435de 100644
--- a/contrib/file/Magdir/vmware
+++ b/contrib/file/Magdir/vmware
@@ -3,10 +3,10 @@
# VMware specific files (deducted from version 1.1 and log file entries)
# Anthon van der Neut (anthon@mnt.org)
0 belong 0x4d52564e VMware nvram
-0 belong 0x434f5744
->8 byte 3 VMware virtual disk
+0 belong 0x434f5744 VMware
+>4 byte 3 virtual disk
>>32 lelong x (%d/
>>36 lelong x \b%d/
>>40 lelong x \b%d)
->8 byte 2 VMware undoable disk
+>4 byte 2 undoable disk
>>32 string >\0 (%s)
diff --git a/contrib/file/Magdir/vorbis b/contrib/file/Magdir/vorbis
index 8977845d0f70..5957ea0d2782 100644
--- a/contrib/file/Magdir/vorbis
+++ b/contrib/file/Magdir/vorbis
@@ -17,6 +17,18 @@
##>4 byte 0 revision 0
>4 byte 0
##>>14 lelong x (Serial %lX)
+# non-Vorbis content: FLAC (Free Lossless Audio Codec, http://flac.sourceforge.net)
+>>28 string fLaC \b, FLAC audio
+# non-Vorbis content: Theora
+>>28 string \x80theora \b, Theora video
+# non-Vorbis content: Speex
+>>28 string Speex\ \ \ \b, Speex audio
+# non-Vorbis content: OGM
+>>28 string \x01video\0\0\0 \b, OGM video
+>>>37 string/c div3 (DivX 3)
+>>>37 string/c divx (DivX 4)
+>>>37 string/c dx50 (DivX 5)
+>>>37 string/c xvid (XviD)
# --- First vorbis packet - general header ---
>>28 string \x01vorbis \b, Vorbis audio,
>>>35 lelong !0 UNKNOWN VERSION %lu,
@@ -29,19 +41,19 @@
# Minimal, nominal and maximal bitrates specified when encoding
>>>>48 string <\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff \b,
# The above tests if at least one of these is specified:
->>>>>44 lelong !-1
+>>>>>52 lelong !-1
# Vorbis RC2 has a bug which puts -1000 in the min/max bitrate fields
# instead of -1.
# Vorbis 1.0 uses 0 instead of -1.
->>>>>>44 lelong !-1000
->>>>>>>44 lelong !0
->>>>>>>>44 lelong x >%lu
->>>>>48 lelong !-1
->>>>>>48 lelong x ~%lu
->>>>>52 lelong !-1
>>>>>>52 lelong !0
>>>>>>>52 lelong !-1000
>>>>>>>>52 lelong x <%lu
+>>>>>48 lelong !-1
+>>>>>>48 lelong x ~%lu
+>>>>>44 lelong !-1
+>>>>>>44 lelong !-1000
+>>>>>>>44 lelong !0
+>>>>>>>>44 lelong x >%lu
>>>>>48 string <\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff bps
# -- Second vorbis header packet - the comments
# A kludge to read the vendor string. It's a counted string, not a
@@ -52,28 +64,30 @@
# in a different place, so we must use an indirect offset.
>>>(84.b+85) string \x03vorbis
>>>>(84.b+96) string/c Xiphophorus\ libVorbis\ I \b, created by: Xiphophorus libVorbis I
->>>>>(84.b+120) string >00000000 %.8s
+>>>>>(84.b+120) string >00000000
# Map to beta version numbers:
->>>>>>(84.b+120) string <20000508 (<beta1 - prepublic)
->>>>>>(84.b+120) string 20000508 (beta1/2)
+>>>>>>(84.b+120) string <20000508 (<beta1, prepublic)
+>>>>>>(84.b+120) string 20000508 (1.0 beta 1 or beta 2)
>>>>>>(84.b+120) string >20000508
>>>>>>>(84.b+120) string <20001031 (beta2-3)
->>>>>>(84.b+120) string 20001031 (beta3)
+>>>>>>(84.b+120) string 20001031 (1.0 beta 3)
>>>>>>(84.b+120) string >20001031
>>>>>>>(84.b+120) string <20010225 (beta3-4)
->>>>>>(84.b+120) string 20010225 (beta4)
+>>>>>>(84.b+120) string 20010225 (1.0 beta 4)
>>>>>>(84.b+120) string >20010225
>>>>>>>(84.b+120) string <20010615 (beta4-RC1)
->>>>>>(84.b+120) string 20010615 (RC1)
->>>>>>(84.b+120) string 20010813 (RC2)
+>>>>>>(84.b+120) string 20010615 (1.0 RC1)
+>>>>>>(84.b+120) string 20010813 (1.0 RC2)
>>>>>>(84.b+120) string 20010816 (RC2 - Garf tuned v1)
>>>>>>(84.b+120) string 20011014 (RC2 - Garf tuned v2)
->>>>>>(84.b+120) string 20011217 (pre-RC3 CVS)
->>>>>>(84.b+120) string 20011231 (RC3)
+>>>>>>(84.b+120) string 20011217 (1.0 RC3)
+>>>>>>(84.b+120) string 20011231 (1.0 RC3)
# Some pre-1.0 CVS snapshots still had "Xiphphorus"...
>>>>>>(84.b+120) string >20011231 (pre-1.0 CVS)
# For the 1.0 release, Xiphophorus is replaced by Xiph.Org
>>>>(84.b+96) string/c Xiph.Org\ libVorbis\ I \b, created by: Xiph.Org libVorbis I
->>>>>(84.b+117) string >00000000 %.8s
+>>>>>(84.b+117) string >00000000
>>>>>>(84.b+117) string <20020717 (pre-1.0 CVS)
>>>>>>(84.b+117) string 20020717 (1.0)
+>>>>>>(84.b+117) string 20030909 (1.0.1)
+>>>>>>(84.b+117) string 20040629 (1.1.0 RC1)
diff --git a/contrib/file/Magdir/wordprocessors b/contrib/file/Magdir/wordprocessors
new file mode 100644
index 000000000000..9b122c148743
--- /dev/null
+++ b/contrib/file/Magdir/wordprocessors
@@ -0,0 +1,111 @@
+
+#------------------------------------------------------------------------------
+# wordprocessors: file(1) magic fo word processors.
+#
+####### PWP file format used on Smith Corona Personal Word Processors:
+2 string \040\040\040\040\040\040\040\040\040\040\040ML4D\040\'92 Smith Corona PWP
+>24 byte 2 \b, single spaced
+>24 byte 3 \b, 1.5 spaced
+>24 byte 4 \b, double spaced
+>25 byte 0x42 \b, letter
+>25 byte 0x54 \b, legal
+>26 byte 0x46 \b, A4
+
+#WordPerfect type files Version 1.6 - PLEASE DO NOT REMOVE THIS LINE
+0 string \377WPC\020\000\000\000\022\012\001\001\000\000\000\000 (WP) loadable text
+>15 byte 0 Optimized for Intel
+>15 byte 1 Optimized for Non-Intel
+1 string WPC (Corel/WP)
+>8 short 257 WordPerfect macro
+>8 short 258 WordPerfect help file
+>8 short 259 WordPerfect keyboard file
+>8 short 266 WordPerfect document
+>8 short 267 WordPerfect dictionary
+>8 short 268 WordPerfect thesaurus
+>8 short 269 WordPerfect block
+>8 short 270 WordPerfect rectangular block
+>8 short 271 WordPerfect column block
+>8 short 272 WordPerfect printer data
+>8 short 275 WordPerfect printer data
+>8 short 276 WordPerfect driver resource data
+>8 short 279 WordPerfect hyphenation code
+>8 short 280 WordPerfect hyphenation data
+>8 short 281 WordPerfect macro resource data
+>8 short 283 WordPerfect hyphenation lex
+>8 short 285 WordPerfect wordlist
+>8 short 286 WordPerfect equation resource data
+>8 short 289 WordPerfect spell rules
+>8 short 290 WordPerfect dictionary rules
+>8 short 295 WordPerfect spell rules (Microlytics)
+>8 short 299 WordPerfect settings file
+>8 short 301 WordPerfect 4.2 document
+>8 short 325 WordPerfect dialog file
+>8 short 332 WordPerfect button bar
+>8 short 513 Shell macro
+>8 short 522 Shell definition
+>8 short 769 Notebook macro
+>8 short 770 Notebook help file
+>8 short 771 Notebook keyboard file
+>8 short 778 Notebook definition
+>8 short 1026 Calculator help file
+>8 short 1538 Calendar help file
+>8 short 1546 Calendar data file
+>8 short 1793 Editor macro
+>8 short 1794 Editor help file
+>8 short 1795 Editor keyboard file
+>8 short 1817 Editor macro resource file
+>8 short 2049 Macro editor macro
+>8 short 2050 Macro editor help file
+>8 short 2051 Macro editor keyboard file
+>8 short 2305 PlanPerfect macro
+>8 short 2306 PlanPerfect help file
+>8 short 2307 PlanPerfect keyboard file
+>8 short 2314 PlanPerfect worksheet
+>8 short 2319 PlanPerfect printer definition
+>8 short 2322 PlanPerfect graphic definition
+>8 short 2323 PlanPerfect data
+>8 short 2324 PlanPerfect temporary printer
+>8 short 2329 PlanPerfect macro resource data
+>8 byte 11 Mail
+>8 short 2818 help file
+>8 short 2821 distribution list
+>8 short 2826 out box
+>8 short 2827 in box
+>8 short 2836 users archived mailbox
+>8 short 2837 archived message database
+>8 short 2838 archived attachments
+>8 short 3083 Printer temporary file
+>8 short 3330 Scheduler help file
+>8 short 3338 Scheduler in file
+>8 short 3339 Scheduler out file
+>8 short 3594 GroupWise settings file
+>8 short 3601 GroupWise directory services
+>8 short 3627 GroupWise settings file
+>8 short 4362 Terminal resource data
+>8 short 4363 Terminal resource data
+>8 short 4395 Terminal resource data
+>8 short 4619 GUI loadable text
+>8 short 4620 graphics resource data
+>8 short 4621 printer settings file
+>8 short 4622 port definition file
+>8 short 4623 print queue parameters
+>8 short 4624 compressed file
+>8 short 5130 Network service msg file
+>8 short 5131 Network service msg file
+>8 short 5132 Async gateway login msg
+>8 short 5134 GroupWise message file
+>8 short 7956 GroupWise admin domain database
+>8 short 7957 GroupWise admin host database
+>8 short 7959 GroupWise admin remote host database
+>8 short 7960 GroupWise admin ADS deferment data file
+>8 short 8458 IntelliTAG (SGML) compiled DTD
+>8 long 18219264 WordPerfect graphic image (1.0)
+>8 long 18219520 WordPerfect graphic image (2.0)
+#end of WordPerfect type files Version 1.6 - PLEASE DO NOT REMOVE THIS LINE
+
+# Hangul (Korean) Word Processor File
+0 string HWP\ Document\ File Hangul (Korean) Word Processor File
+
+# CosmicBook, from Benoît Rouits
+0 string CSBK Ted Neslson's CosmicBook hypertext file
+
diff --git a/contrib/file/Magdir/xwindows b/contrib/file/Magdir/xwindows
new file mode 100644
index 000000000000..1805d45b9282
--- /dev/null
+++ b/contrib/file/Magdir/xwindows
@@ -0,0 +1,25 @@
+
+#------------------------------------------------------------------------------
+# xwindows: file(1) magic for various X/Window system file formats.
+
+# Compiled X Keymap
+# XKM (compiled X keymap) files (including version and byte ordering)
+1 string mkx Compiled XKB Keymap: lsb,
+>0 byte >0 version %d
+>0 byte =0 obsolete
+0 string xkm Compiled XKB Keymap: msb,
+>3 byte >0 version %d
+>0 byte =0 obsolete
+
+# xfsdump archive
+0 string xFSdump0 xfsdump archive
+>8 long x (version %d)
+
+# Jaleo XFS files
+0 long 395726 Jaleo XFS file
+>4 long x - version %ld
+>8 long x - [%ld -
+>20 long x %ldx
+>24 long x %ldx
+>28 long 1008 YUV422]
+>28 long 1000 RGB24]