summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr.bin/file/magdir/386bsd1
-rw-r--r--usr.bin/file/magdir/Localstuff2
-rw-r--r--usr.bin/file/magdir/OpenBSD1
-rw-r--r--usr.bin/file/magdir/acorn34
-rw-r--r--usr.bin/file/magdir/adi13
-rw-r--r--usr.bin/file/magdir/allegro9
-rw-r--r--usr.bin/file/magdir/alliant1
-rw-r--r--usr.bin/file/magdir/alpha2
-rw-r--r--usr.bin/file/magdir/amanda2
-rw-r--r--usr.bin/file/magdir/amigaos62
-rw-r--r--usr.bin/file/magdir/animation191
-rw-r--r--usr.bin/file/magdir/apl1
-rw-r--r--usr.bin/file/magdir/apple126
-rw-r--r--usr.bin/file/magdir/applix13
-rw-r--r--usr.bin/file/magdir/archive106
-rw-r--r--usr.bin/file/magdir/asterix1
-rw-r--r--usr.bin/file/magdir/att3b10
-rw-r--r--usr.bin/file/magdir/audio5
-rw-r--r--usr.bin/file/magdir/bFLT14
-rw-r--r--usr.bin/file/magdir/blender19
-rw-r--r--usr.bin/file/magdir/blit1
-rw-r--r--usr.bin/file/magdir/bout2
-rw-r--r--usr.bin/file/magdir/bsdi42
-rw-r--r--usr.bin/file/magdir/c-lang14
-rw-r--r--usr.bin/file/magdir/c6428
-rw-r--r--usr.bin/file/magdir/cad37
-rw-r--r--usr.bin/file/magdir/cddb12
-rw-r--r--usr.bin/file/magdir/chi1
-rw-r--r--usr.bin/file/magdir/chord10
-rw-r--r--usr.bin/file/magdir/cisco12
-rw-r--r--usr.bin/file/magdir/citrus8
-rw-r--r--usr.bin/file/magdir/clipper1
-rw-r--r--usr.bin/file/magdir/commands1
-rw-r--r--usr.bin/file/magdir/compress151
-rw-r--r--usr.bin/file/magdir/console157
-rw-r--r--usr.bin/file/magdir/convex2
-rw-r--r--usr.bin/file/magdir/ctags6
-rw-r--r--usr.bin/file/magdir/dact11
-rw-r--r--usr.bin/file/magdir/database214
-rw-r--r--usr.bin/file/magdir/diamond1
-rw-r--r--usr.bin/file/magdir/diff1
-rw-r--r--usr.bin/file/magdir/digital2
-rw-r--r--usr.bin/file/magdir/dolby59
-rw-r--r--usr.bin/file/magdir/dump1
-rw-r--r--usr.bin/file/magdir/dyadic13
-rw-r--r--usr.bin/file/magdir/editors14
-rw-r--r--usr.bin/file/magdir/elf1
-rw-r--r--usr.bin/file/magdir/encore1
-rw-r--r--usr.bin/file/magdir/epoc11
-rw-r--r--usr.bin/file/magdir/fcs9
-rw-r--r--usr.bin/file/magdir/filesystems334
-rw-r--r--usr.bin/file/magdir/flash16
-rw-r--r--usr.bin/file/magdir/fonts40
-rw-r--r--usr.bin/file/magdir/frame3
-rw-r--r--usr.bin/file/magdir/freebsd18
-rw-r--r--usr.bin/file/magdir/fsav28
-rw-r--r--usr.bin/file/magdir/games159
-rw-r--r--usr.bin/file/magdir/gcc17
-rw-r--r--usr.bin/file/magdir/gimp38
-rw-r--r--usr.bin/file/magdir/gnu44
-rw-r--r--usr.bin/file/magdir/grace21
-rw-r--r--usr.bin/file/magdir/gringotts48
-rw-r--r--usr.bin/file/magdir/hdf8
-rw-r--r--usr.bin/file/magdir/hitachi-sh19
-rw-r--r--usr.bin/file/magdir/hp1
-rw-r--r--usr.bin/file/magdir/human68k26
-rw-r--r--usr.bin/file/magdir/ibm3701
-rw-r--r--usr.bin/file/magdir/ibm60003
-rw-r--r--usr.bin/file/magdir/iff3
-rw-r--r--usr.bin/file/magdir/images173
-rw-r--r--usr.bin/file/magdir/intel13
-rw-r--r--usr.bin/file/magdir/interleaf1
-rw-r--r--usr.bin/file/magdir/island10
-rw-r--r--usr.bin/file/magdir/ispell9
-rw-r--r--usr.bin/file/magdir/java12
-rw-r--r--usr.bin/file/magdir/jpeg11
-rw-r--r--usr.bin/file/magdir/karma3
-rw-r--r--usr.bin/file/magdir/lecter6
-rw-r--r--usr.bin/file/magdir/lex1
-rw-r--r--usr.bin/file/magdir/lif3
-rw-r--r--usr.bin/file/magdir/linux132
-rw-r--r--usr.bin/file/magdir/lisp29
-rw-r--r--usr.bin/file/magdir/mach18
-rw-r--r--usr.bin/file/magdir/macintosh1
-rw-r--r--usr.bin/file/magdir/magic1
-rw-r--r--usr.bin/file/magdir/mail.news22
-rw-r--r--usr.bin/file/magdir/maple58
-rw-r--r--usr.bin/file/magdir/mathematica69
-rw-r--r--usr.bin/file/magdir/mcrypt38
-rw-r--r--usr.bin/file/magdir/mime9
-rw-r--r--usr.bin/file/magdir/mirage1
-rw-r--r--usr.bin/file/magdir/misctools7
-rw-r--r--usr.bin/file/magdir/mkid1
-rw-r--r--usr.bin/file/magdir/mlssa8
-rw-r--r--usr.bin/file/magdir/mmdf1
-rw-r--r--usr.bin/file/magdir/modem35
-rw-r--r--usr.bin/file/magdir/motorola39
-rw-r--r--usr.bin/file/magdir/msdos1
-rw-r--r--usr.bin/file/magdir/msvc45
-rw-r--r--usr.bin/file/magdir/natinst24
-rw-r--r--usr.bin/file/magdir/ncr1
-rw-r--r--usr.bin/file/magdir/netscape25
-rw-r--r--usr.bin/file/magdir/news1
-rw-r--r--usr.bin/file/magdir/nitpicker14
-rw-r--r--usr.bin/file/magdir/ocaml14
-rw-r--r--usr.bin/file/magdir/octave6
-rw-r--r--usr.bin/file/magdir/olf1
-rw-r--r--usr.bin/file/magdir/os248
-rw-r--r--usr.bin/file/magdir/os94
-rw-r--r--usr.bin/file/magdir/parix13
-rw-r--r--usr.bin/file/magdir/pbm1
-rw-r--r--usr.bin/file/magdir/pdp11
-rw-r--r--usr.bin/file/magdir/pgp1
-rw-r--r--usr.bin/file/magdir/pkgadd1
-rw-r--r--usr.bin/file/magdir/plan96
-rw-r--r--usr.bin/file/magdir/plus51
-rw-r--r--usr.bin/file/magdir/printer1
-rw-r--r--usr.bin/file/magdir/project10
-rw-r--r--usr.bin/file/magdir/psdbms1
-rw-r--r--usr.bin/file/magdir/psion44
-rw-r--r--usr.bin/file/magdir/pulsar13
-rw-r--r--usr.bin/file/magdir/pyramid1
-rw-r--r--usr.bin/file/magdir/python15
-rw-r--r--usr.bin/file/magdir/revision6
-rw-r--r--usr.bin/file/magdir/rpm11
-rw-r--r--usr.bin/file/magdir/rtf1
-rw-r--r--usr.bin/file/magdir/sc1
-rw-r--r--usr.bin/file/magdir/sccs1
-rw-r--r--usr.bin/file/magdir/sendmail10
-rw-r--r--usr.bin/file/magdir/sequent1
-rw-r--r--usr.bin/file/magdir/sgi1
-rw-r--r--usr.bin/file/magdir/sgml42
-rw-r--r--usr.bin/file/magdir/sharc23
-rw-r--r--usr.bin/file/magdir/sinclair127
-rw-r--r--usr.bin/file/magdir/sketch6
-rw-r--r--usr.bin/file/magdir/smalltalk25
-rw-r--r--usr.bin/file/magdir/sniffer235
-rw-r--r--usr.bin/file/magdir/softquad2
-rw-r--r--usr.bin/file/magdir/spectrum45
-rw-r--r--usr.bin/file/magdir/sql19
-rw-r--r--usr.bin/file/magdir/sun44
-rw-r--r--usr.bin/file/magdir/sysex195
-rw-r--r--usr.bin/file/magdir/teapot6
-rw-r--r--usr.bin/file/magdir/terminfo1
-rw-r--r--usr.bin/file/magdir/tex68
-rw-r--r--usr.bin/file/magdir/ti-8x239
-rw-r--r--usr.bin/file/magdir/timezone17
-rw-r--r--usr.bin/file/magdir/troff1
-rw-r--r--usr.bin/file/magdir/tuxedo8
-rw-r--r--usr.bin/file/magdir/typeset1
-rw-r--r--usr.bin/file/magdir/unknown1
-rw-r--r--usr.bin/file/magdir/uuencode1
-rw-r--r--usr.bin/file/magdir/varied.out20
-rw-r--r--usr.bin/file/magdir/vax1
-rw-r--r--usr.bin/file/magdir/visx1
-rw-r--r--usr.bin/file/magdir/vms1
-rw-r--r--usr.bin/file/magdir/vmware13
-rw-r--r--usr.bin/file/magdir/vxl14
-rw-r--r--usr.bin/file/magdir/xdelta11
-rw-r--r--usr.bin/file/magdir/xenix1
-rw-r--r--usr.bin/file/magdir/xwindows26
-rw-r--r--usr.bin/file/magdir/zilog1
-rw-r--r--usr.bin/file/magdir/zyxel1
163 files changed, 4286 insertions, 219 deletions
diff --git a/usr.bin/file/magdir/386bsd b/usr.bin/file/magdir/386bsd
index 77bbe9e52c9..60dbc95eb9f 100644
--- a/usr.bin/file/magdir/386bsd
+++ b/usr.bin/file/magdir/386bsd
@@ -1,3 +1,4 @@
+# $OpenBSD: 386bsd,v 1.2 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# 386bsd: file(1) magic for 386BSD objects
diff --git a/usr.bin/file/magdir/Localstuff b/usr.bin/file/magdir/Localstuff
index c20418c3a38..b6960eb7295 100644
--- a/usr.bin/file/magdir/Localstuff
+++ b/usr.bin/file/magdir/Localstuff
@@ -1,6 +1,6 @@
#------------------------------------------------------------------------------
# Localstuff: file(1) magic for locally observed files
#
-# $OpenBSD: Localstuff,v 1.3 1997/02/09 23:58:40 millert Exp $
+# $OpenBSD: Localstuff,v 1.4 2004/06/03 03:14:19 tedu Exp $
# Add any locally observed files here. Remember:
# text if readable, executable if runnable binary, data if unreadable.
diff --git a/usr.bin/file/magdir/OpenBSD b/usr.bin/file/magdir/OpenBSD
index b967521c328..e95757e689c 100644
--- a/usr.bin/file/magdir/OpenBSD
+++ b/usr.bin/file/magdir/OpenBSD
@@ -1,3 +1,4 @@
+# $OpenBSD: OpenBSD,v 1.11 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# OpenBSD: file(1) magic for OpenBSD objects
diff --git a/usr.bin/file/magdir/acorn b/usr.bin/file/magdir/acorn
new file mode 100644
index 00000000000..8245a96b777
--- /dev/null
+++ b/usr.bin/file/magdir/acorn
@@ -0,0 +1,34 @@
+# $OpenBSD: acorn,v 1.1 2004/06/03 03:14:19 tedu Exp $
+
+#------------------------------------------------------------------------------
+# acorn: file(1) magic for files found on Acorn systems
+#
+
+# RISC OS Chunk File Format
+# From RISC OS Programmer's Reference Manual, Appendix D
+# We guess the file type from the type of the first chunk.
+0 lelong 0xc3cbc6c5 RISC OS Chunk data
+>12 string OBJ_ \b, AOF object
+>12 string LIB_ \b, ALF library
+
+# RISC OS AIF, contains "SWI OS_Exit" at offset 16.
+16 lelong 0xef000011 RISC OS AIF executable
+
+# RISC OS Draw files
+# From RISC OS Programmer's Reference Manual, Appendix E
+0 string Draw RISC OS Draw file data
+
+# RISC OS new format font files
+# From RISC OS Programmer's Reference Manual, Appendix E
+0 string FONT\0 RISC OS outline font data,
+>5 byte x version %d
+0 string FONT\1 RISC OS 1bpp font data,
+>5 byte x version %d
+0 string FONT\4 RISC OS 4bpp font data
+>5 byte x version %d
+
+# RISC OS Music files
+# From RISC OS Programmer's Reference Manual, Appendix E
+0 string Maestro\r RISC OS music file
+>8 byte x version %d
+
diff --git a/usr.bin/file/magdir/adi b/usr.bin/file/magdir/adi
new file mode 100644
index 00000000000..a9c5a3f2302
--- /dev/null
+++ b/usr.bin/file/magdir/adi
@@ -0,0 +1,13 @@
+# $OpenBSD: adi,v 1.1 2004/06/03 03:14:19 tedu Exp $
+
+#------------------------------------------------------------------------------
+# adi: file(1) magic for ADi's objects
+# From Gregory McGarry <g.mcgarry@ieee.org>
+#
+0 leshort 0x521c COFF DSP21k
+>18 lelong &02 executable,
+>18 lelong ^02
+>>18 lelong &01 static object,
+>>18 lelong ^01 relocatable object,
+>18 lelong &010 stripped
+>18 lelong ^010 not stripped
diff --git a/usr.bin/file/magdir/allegro b/usr.bin/file/magdir/allegro
new file mode 100644
index 00000000000..f3fc5bff8bf
--- /dev/null
+++ b/usr.bin/file/magdir/allegro
@@ -0,0 +1,9 @@
+# $OpenBSD: allegro,v 1.1 2004/06/03 03:14:19 tedu Exp $
+
+#------------------------------------------------------------------------------
+# allegro: file(1) magic for Allegro datafiles
+# Toby Deshane <hac@shoelace.digivill.net>
+#
+0 belong 0x736C6821 Allegro datafile (packed)
+0 belong 0x736C682E Allegro datafile (not packed/autodetect)
+0 belong 0x736C682B Allegro datafile (appended exe data)
diff --git a/usr.bin/file/magdir/alliant b/usr.bin/file/magdir/alliant
index 69cf4b44d74..1cbe562c4aa 100644
--- a/usr.bin/file/magdir/alliant
+++ b/usr.bin/file/magdir/alliant
@@ -1,3 +1,4 @@
+# $OpenBSD: alliant,v 1.2 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# alliant: file(1) magic for Alliant FX series a.out files
diff --git a/usr.bin/file/magdir/alpha b/usr.bin/file/magdir/alpha
index 4f84d971ac4..27f2efd82bb 100644
--- a/usr.bin/file/magdir/alpha
+++ b/usr.bin/file/magdir/alpha
@@ -1,4 +1,4 @@
-# $OpenBSD: alpha,v 1.2 2001/01/29 01:57:56 niklas Exp $
+# $OpenBSD: alpha,v 1.3 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# alpha architecture description
diff --git a/usr.bin/file/magdir/amanda b/usr.bin/file/magdir/amanda
index 96bb873be62..e38340ccce7 100644
--- a/usr.bin/file/magdir/amanda
+++ b/usr.bin/file/magdir/amanda
@@ -1,4 +1,4 @@
-# $OpenBSD: amanda,v 1.3 2001/01/29 01:57:57 niklas Exp $
+# $OpenBSD: amanda,v 1.4 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# amanda: file(1) magic for amanda file format
diff --git a/usr.bin/file/magdir/amigaos b/usr.bin/file/magdir/amigaos
index 22fc798e80c..572843bf97d 100644
--- a/usr.bin/file/magdir/amigaos
+++ b/usr.bin/file/magdir/amigaos
@@ -1,4 +1,4 @@
-# $OpenBSD: amigaos,v 1.3 2002/02/10 23:15:05 deraadt Exp $
+# $OpenBSD: amigaos,v 1.4 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# amigaos: file(1) magic for AmigaOS binary formats:
@@ -10,3 +10,63 @@
#
0 belong 0x000003f3 AmigaOS loadseg()ble executable/binary
0 belong 0x000003e7 AmigaOS object/library data
+#
+0 beshort 0xe310 Amiga Workbench
+>2 beshort 1
+>>48 byte 1 disk icon
+>>48 byte 2 drawer icon
+>>48 byte 3 tool icon
+>>48 byte 4 project icon
+>>48 byte 5 garbage icon
+>>48 byte 6 device icon
+>>48 byte 7 kickstart icon
+>>48 byte 8 workbench application icon
+>2 beshort >1 icon, vers. %d
+#
+# various sound formats from the Amiga
+# G=F6tz Waschk <waschk@informatik.uni-rostock.de>
+#
+0 string FC14 Future Composer 1.4 Module sound file
+0 string SMOD Future Composer 1.3 Module sound file
+0 string AON4artofnoise Art Of Noise Module sound file
+1 string MUGICIAN/SOFTEYES Mugician Module sound file
+58 string SIDMON\ II\ -\ THE Sidmon 2.0 Module sound file
+0 string Synth4.0 Synthesis Module sound file
+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
+# 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
+
+0 string FORM IFF data
+>8 string CTLG \b, CTLG message catalog
+>8 string PREF \b, PREF preferences
+
+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
+
+0 belong 0x000003fa AmigaOS shared library
+
+# 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/usr.bin/file/magdir/animation b/usr.bin/file/magdir/animation
index 9d2dc8e69aa..b0af39fbd70 100644
--- a/usr.bin/file/magdir/animation
+++ b/usr.bin/file/magdir/animation
@@ -1,3 +1,4 @@
+# $OpenBSD: animation,v 1.3 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# animation: file(1) magic for animation/movie formats
@@ -7,7 +8,122 @@
# FLC, SGI, Apple originally from Daniel Quinlan (quinlan@yggdrasil.com)
# MPEG animation format
-0 string \000\000\001\263 MPEG file
+0 belong 0x000001b3 MPEG video stream data
+#>4 beshort&0xfff0 x (%d x
+#>5 beshort&0x0fff x %d)
+0 belong 0x000001ba MPEG system stream data
+
+# MPEG Audio (*.mpx)
+# from dreesen@math.fu-berlin.de
+
+# MPEG 1.0 Layer 3
+0 beshort&0xfffe =0xfffa \bMP3
+>2 byte&0xf0 =0x10 \b, 32 kBits
+>2 byte&0xf0 =0x20 \b, 40 kBits
+>2 byte&0xf0 =0x30 \b, 48 kBits
+>2 byte&0xf0 =0x40 \b, 56 kBits
+>2 byte&0xf0 =0x50 \b, 64 kBits
+>2 byte&0xf0 =0x60 \b, 80 kBits
+>2 byte&0xf0 =0x70 \b, 96 kBits
+>2 byte&0xf0 =0x80 \b, 112 kBits
+>2 byte&0xf0 =0x90 \b, 128 kBits
+>2 byte&0xf0 =0xA0 \b, 160 kBits
+>2 byte&0xf0 =0xB0 \b, 192 kBits
+>2 byte&0xf0 =0xC0 \b, 224 kBits
+>2 byte&0xf0 =0xD0 \b, 256 kBits
+>2 byte&0xf0 =0xE0 \b, 320 kBits
+# freq
+>2 byte&0x0C =0x00 \b, 44.1 kHz
+>2 byte&0x0C =0x04 \b, 48 kHz
+>2 byte&0x0C =0x08 \b, 32 kHz
+# misc
+>3 byte&0xC0 =0x00 \b, Stereo
+>3 byte&0xC0 =0x40 \b, JStereo
+>3 byte&0xC0 =0x80 \b, Dual-Ch
+>3 byte&0xC0 =0xC0 \b, Mono
+#>1 byte&0x01 =0x00 \b, Error Protection
+#>2 byte&0x02 =0x02 \b, Padding
+#>2 byte&0x01 =0x01 \b, Private
+#>3 byte&0x08 =0x08 \b, Copyright
+#>3 byte&0x04 =0x04 \b, Original
+#>3 byte&0x03 1 \b, Emphasis 5
+#>3 byte&0x03 3 \b, Emphasis c
+
+# MPEG 1.0 Layer 2
+0 beshort&0xfffe =0xfffc \bMP2
+>2 byte&0xf0 =0x10 \b, 32 kBits
+>2 byte&0xf0 =0x20 \b, 48 kBits
+>2 byte&0xf0 =0x30 \b, 56 kBits
+>2 byte&0xf0 =0x40 \b, 64 kBits
+>2 byte&0xf0 =0x50 \b, 80 kBits
+>2 byte&0xf0 =0x60 \b, 96 kBits
+>2 byte&0xf0 =0x70 \b, 112 kBits
+>2 byte&0xf0 =0x80 \b, 128 kBits
+>2 byte&0xf0 =0x90 \b, 160 kBits
+>2 byte&0xf0 =0xA0 \b, 192 kBits
+>2 byte&0xf0 =0xB0 \b, 224 kBits
+>2 byte&0xf0 =0xC0 \b, 256 kBits
+>2 byte&0xf0 =0xD0 \b, 320 kBits
+>2 byte&0xf0 =0xE0 \b, 384 kBits
+# freq
+>2 byte&0x0C =0x00 \b, 44.1 kHz
+>2 byte&0x0C =0x04 \b, 48 kHz
+>2 byte&0x0C =0x08 \b, 32 kHz
+# misc
+>3 byte&0xC0 =0x00 \b, Stereo
+>3 byte&0xC0 =0x40 \b, JStereo
+>3 byte&0xC0 =0x80 \b, Dual-Ch
+>3 byte&0xC0 =0xC0 \b, Mono
+#>1 byte&0x01 =0x00 \b, Error Protection
+#>2 byte&0x02 =0x02 \b, Padding
+#>2 byte&0x01 =0x01 \b, Private
+#>3 byte&0x08 =0x08 \b, Copyright
+#>3 byte&0x04 =0x04 \b, Original
+#>3 byte&0x03 1 \b, Emphasis 5
+#>3 byte&0x03 3 \b, Emphasis c
+
+# MPEG 2.0
+0 beshort&0xfff8 =0xfff0 MP
+# Layer 3
+>1 byte &0x02 \b3
+# Layer 2
+>1 byte &0x04 \b2
+>2 byte&0xf0 =0x10 \b, 8 kBits
+>2 byte&0xf0 =0x20 \b, 16 kBits
+>2 byte&0xf0 =0x30 \b, 24 kBits
+>2 byte&0xf0 =0x40 \b, 32 kBits
+>2 byte&0xf0 =0x50 \b, 40 kBits
+>2 byte&0xf0 =0x60 \b, 48 kBits
+>2 byte&0xf0 =0x70 \b, 56 kBits
+>2 byte&0xf0 =0x80 \b, 64 kBits
+>2 byte&0xf0 =0x90 \b, 80 kBits
+>2 byte&0xf0 =0xA0 \b, 96 kBits
+>2 byte&0xf0 =0xB0 \b, 112 kBits
+>2 byte&0xf0 =0xC0 \b, 128 kBits
+>2 byte&0xf0 =0xD0 \b, 144 kBits
+>2 byte&0xf0 =0xE0 \b, 160 kBits
+# freq
+>2 byte&0x0C =0x00 \b, 22.05 kHz
+>2 byte&0x0C =0x04 \b, 24 kHz
+>2 byte&0x0C =0x08 \b, 16 kHz
+# misc
+>3 byte&0xC0 =0x00 \b, Stereo
+>3 byte&0xC0 =0x40 \b, JStereo
+>3 byte&0xC0 =0x80 \b, Dual-Ch
+>3 byte&0xC0 =0xC0 \b, Mono
+#>1 byte&0x01 =0x00 \b, Error Protection
+#>2 byte&0x02 =0x02 \b, Padding
+#>2 byte&0x01 =0x01 \b, Private
+#>3 byte&0x08 =0x08 \b, Copyright
+#>3 byte&0x04 =0x04 \b, Original
+#>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
@@ -48,7 +164,78 @@
# \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
+#
+# from Oskar Schirmer <schirmer@scara.com> Feb 3, 2001 (ISO 13818.1)
+# (the following is a little bit restrictive and works fine for a stream
+# that starts with PAT properly. it won't work for stream data, that is
+# cut from an input device data right in the middle, but this shouldn't
+# disturb)
+# syncbyte 8 bit 0x47
+# error_ind 1 bit -
+# payload_start 1 bit 1
+# priority 1 bit -
+# PID 13 bit 0x0000
+# scrambling 2 bit -
+# adaptfld_ctrl 2 bit 1 or 3
+# conti_count 4 bit 0
+0 belong&0xFF5FFF1F 0x47400010 MPEG transport stream data
+>188 byte !0x47 CORRUPTED
+
+# DIF digital video file format <mpruett@sgi.com>
+0 belong&0xffffff00 0x1f070000 DIF
+>4 byte &0x01 (DVCPRO) movie file
+>4 byte ^0x01 (DV) movie file
+>3 byte &0x80 (PAL)
+>3 byte ^0x80 (NTSC)
+
+# Microsoft Advanced Streaming Format (ASF) <mpruett@sgi.com>
+0 belong 0x3026b275 Microsoft ASF
+
+# MNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
+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/usr.bin/file/magdir/apl b/usr.bin/file/magdir/apl
index 04004319193..326e2f9feda 100644
--- a/usr.bin/file/magdir/apl
+++ b/usr.bin/file/magdir/apl
@@ -1,3 +1,4 @@
+# $OpenBSD: apl,v 1.2 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# apl: file(1) magic for APL (see also "pdp" and "vax" for other APL
diff --git a/usr.bin/file/magdir/apple b/usr.bin/file/magdir/apple
index 55acff1683b..7758b4a4f95 100644
--- a/usr.bin/file/magdir/apple
+++ b/usr.bin/file/magdir/apple
@@ -1,8 +1,130 @@
+# $OpenBSD: apple,v 1.4 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
-# apple: file(1) magic for Apple II file formats
+# apple: file(1) magic for Apple file formats
#
0 string FiLeStArTfIlEsTaRt binscii (apple ][) text
0 string \x0aGL Binary II (apple ][) data
0 string \x76\xff Squeezed (apple ][) data
-0 string N\365F\351l\345 NuFile archive (apple ][) data
+0 string NuFile NuFile archive (apple ][) data
+0 string N\xf5F\xe9l\xe5 NuFile archive (apple ][) data
+0 belong 0x00051600 AppleSingle encoded Macintosh file
+0 belong 0x00051607 AppleDouble encoded Macintosh file
+
+# magic for Newton PDA package formats
+# from Ruda Moura <ruda@helllabs.org>
+0 string package0 Newton package, NOS 1.x,
+>12 belong &0x80000000 AutoRemove,
+>12 belong &0x40000000 CopyProtect,
+>12 belong &0x10000000 NoCompression,
+>12 belong &0x04000000 Relocation,
+>12 belong &0x02000000 UseFasterCompression,
+>16 belong x version %d
+
+0 string package1 Newton package, NOS 2.x,
+>12 belong &0x80000000 AutoRemove,
+>12 belong &0x40000000 CopyProtect,
+>12 belong &0x10000000 NoCompression,
+>12 belong &0x04000000 Relocation,
+>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.
+#
+# In general, Apple II formats are hard to identify because Apple DOS
+# and especially Apple ProDOS have strong typing in the file system and
+# therefore programmers never felt much need to include type information
+# in the files themselves.
+#
+# Eric Fischer <enf@pobox.com>
+
+# AppleWorks word processor:
+#
+# This matches the standard tab stops for an AppleWorks file, but if
+# a file has a tab stop set in the first four columns this will fail.
+#
+# The "O" is really the magic number, but that's so common that it's
+# necessary to check the tab stops that follow it to avoid false positives.
+
+4 string O==== AppleWorks word processor data
+>85 byte&0x01 >0 \b, zoomed
+>90 byte&0x01 >0 \b, paginated
+>92 byte&0x01 >0 \b, with mail merge
+#>91 byte x \b, left margin %d
+
+# AppleWorks database:
+#
+# This isn't really a magic number, but it's the closest thing to one
+# that I could find. The 1 and 2 really mean "order in which you defined
+# categories" and "left to right, top to bottom," respectively; the D and R
+# mean that the cursor should move either down or right when you press Return.
+
+#30 string \x01D AppleWorks database data
+#30 string \x02D AppleWorks database data
+#30 string \x01R AppleWorks database data
+#30 string \x02R AppleWorks database data
+
+# AppleWorks spreadsheet:
+#
+# Likewise, this isn't really meant as a magic number. The R or C means
+# row- or column-order recalculation; the A or M means automatic or manual
+# recalculation.
+
+#131 string RA AppleWorks spreadsheet data
+#131 string RM AppleWorks spreadsheet data
+#131 string CA AppleWorks spreadsheet data
+#131 string CM AppleWorks spreadsheet data
+
+# Applesoft BASIC:
+#
+# This is incredibly sloppy, but will be true if the program was
+# written at its usual memory location of 2048 and its first line
+# number is less than 256. Yuck.
+
+0 belong&0xff00ff 0x80000 Applesoft BASIC program data
+#>2 leshort x \b, first line number %d
+
+# ORCA/EZ assembler:
+#
+# This will not identify ORCA/M source files, since those have
+# some sort of date code instead of the two zero bytes at 6 and 7
+# XXX Conflicts with ELF
+#4 belong&0xff00ffff 0x01000000 ORCA/EZ assembler source data
+#>5 byte x \b, build number %d
+
+# Broderbund Fantavision
+#
+# I don't know what these values really mean, but they seem to recur.
+# Will they cause too many conflicts?
+
+# Probably :-)
+#2 belong&0xFF00FF 0x040008 Fantavision movie data
+
+# Some attempts at images.
+#
+# These are actually just bit-for-bit dumps of the frame buffer, so
+# there's really no reasonably way to distinguish them except for their
+# address (if preserved) -- 8192 or 16384 -- and their length -- 8192
+# or, occasionally, 8184.
+#
+# Nevertheless this will manage to catch a lot of images that happen
+# to have a solid-colored line at the bottom of the screen.
+
+8144 string \x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F Apple II image with white background
+8144 string \x55\x2A\x55\x2A\x55\x2A\x55\x2A Apple II image with purple background
+8144 string \x2A\x55\x2A\x55\x2A\x55\x2A\x55 Apple II image with green background
+8144 string \xD5\xAA\xD5\xAA\xD5\xAA\xD5\xAA Apple II image with blue background
+8144 string \xAA\xD5\xAA\xD5\xAA\xD5\xAA\xD5 Apple II image with orange background
+
+# Beagle Bros. Apple Mechanic fonts
+
+0 belong&0xFF00FFFF 0x6400D000 Apple Mechanic font
diff --git a/usr.bin/file/magdir/applix b/usr.bin/file/magdir/applix
new file mode 100644
index 00000000000..87d1954df28
--- /dev/null
+++ b/usr.bin/file/magdir/applix
@@ -0,0 +1,13 @@
+# $OpenBSD: applix,v 1.1 2004/06/03 03:14:19 tedu Exp $
+
+#------------------------------------------------------------------------------
+# applix: file(1) magic for Applixware
+# From: Peter Soos <sp@osb.hu>
+#
+0 string *BEGIN Applixware
+>7 string WORDS Words Document
+>7 string GRAPHICS Graphic
+>7 string RASTER Bitmap
+>7 string SPREADSHEETS Spreadsheet
+>7 string MACRO Macro
+>7 string BUILDER Builder Object
diff --git a/usr.bin/file/magdir/archive b/usr.bin/file/magdir/archive
index f266b199808..95fec013ef8 100644
--- a/usr.bin/file/magdir/archive
+++ b/usr.bin/file/magdir/archive
@@ -1,3 +1,4 @@
+# $OpenBSD: archive,v 1.4 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# archive: file(1) magic for archive formats (see also "msdos" for self-
@@ -27,6 +28,16 @@
0 string 070701 ASCII cpio archive (SVR4 with no CRC)
0 string 070702 ASCII cpio archive (SVR4 with CRC)
+# Debian package (needs to go before regular portable archives)
+#
+0 string !<arch>\ndebian
+>8 string debian-split part of multipart Debian package
+>8 string debian-binary Debian binary package
+>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
0 short 0177555 very old PDP-11 archive
@@ -35,7 +46,7 @@
0 long 0100554 apl workspace
0 string =<ar> archive
-# MIPS archive (needs to go first)
+# MIPS archive (needs to go before regular portable archives)
#
0 string !<arch>\n__________E MIPS archive
>20 string U with MIPS Ucode members
@@ -65,8 +76,6 @@
#
0 string !<arch> current ar archive
>8 string __.SYMDEF random library
->8 string debian-split part of multipart Debian package
->8 string debian-binary Debian binary package
>0 belong =65538 - pre SR9.5
>0 belong =65539 - post SR9.5
>0 beshort 2 - object archive
@@ -170,12 +179,14 @@
2 string -lz5- LHarc 1.x archive data [lz5]
# [never seen any but the last; -lh4- reported in comp.compression:]
2 string -lzs- LHa 2.x? archive data [lzs]
-2 string -lh - LHa 2.x? archive data [lh ]
+2 string -lh\40- LHa 2.x? archive data [lh ]
2 string -lhd- LHa 2.x? archive data [lhd]
2 string -lh2- LHa 2.x? archive data [lh2]
2 string -lh3- LHa 2.x? archive data [lh3]
2 string -lh4- LHa (2.x) archive data [lh4]
2 string -lh5- LHa (2.x) archive data [lh5]
+2 string -lh6- LHa (2.x) archive data [lh6]
+2 string -lh7- LHa (2.x) archive data [lh7]
>20 byte x - header level %d
# RAR archiver (Greg Roelofs, newt@uchicago.edu)
@@ -208,3 +219,90 @@
# Shell archives
10 string #\ This\ is\ a\ shell\ archive shell archive text
+
+#
+# LBR. NB: May conflict with the questionable
+# "binary Computer Graphics Metafile" format.
+#
+0 string \0\ \ \ \ \ \ \ \ \ \ \ \0\0 LBR archive data
+#
+# PMA (CP/M derivative of LHA)
+#
+2 string -pm0- PMarc archive data [pm0]
+2 string -pm1- PMarc archive data [pm1]
+2 string -pm2- PMarc archive data [pm2]
+2 string -pms- PMarc SFX archive (CP/M, DOS)
+5 string -pc1- PopCom compressed executable (CP/M)
+
+# From Rafael Laboissiere <rafael@laboissiere.net>
+# The Project Revision Control System (see
+# http://prcs.sourceforge.net) generates a packaged project
+# file which is recognized by the following entry:
+0 leshort 0xeb81 PRCS packaged project
+
+# 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
+# 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>
+4 string gtktalog\ GTKtalog catalog data,
+>13 string 3 version 3
+>>14 beshort 0x677a (gzipped)
+>>14 beshort !0x677a (not gzipped)
+>13 string >3 version %s
+
+############################################################################
+# Parity archive reconstruction file, the 'par' file format now used on Usenet.
+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
diff --git a/usr.bin/file/magdir/asterix b/usr.bin/file/magdir/asterix
index d89504a2407..8c350371b62 100644
--- a/usr.bin/file/magdir/asterix
+++ b/usr.bin/file/magdir/asterix
@@ -1,3 +1,4 @@
+# $OpenBSD: asterix,v 1.2 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# asterix: file(1) magic for Aster*x; SunOS 5.5.1 gave the 4-character
diff --git a/usr.bin/file/magdir/att3b b/usr.bin/file/magdir/att3b
index 7723a7fb8e5..70985504fbf 100644
--- a/usr.bin/file/magdir/att3b
+++ b/usr.bin/file/magdir/att3b
@@ -1,3 +1,4 @@
+# $OpenBSD: att3b,v 1.2 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# att3b: file(1) magic for AT&T 3B machines
@@ -7,11 +8,12 @@
#
# 3B20
#
-0 beshort 0550 3b20 COFF executable
->12 belong >0 not stripped
+# The 3B20 conflicts with SCCS.
+#0 beshort 0550 3b20 COFF executable
+#>12 belong >0 not stripped
#>22 beshort >0 - version %ld
-0 beshort 0551 3b20 COFF executable (TV)
->12 belong >0 not stripped
+#0 beshort 0551 3b20 COFF executable (TV)
+#>12 belong >0 not stripped
#>22 beshort >0 - version %ld
#
# WE32K
diff --git a/usr.bin/file/magdir/audio b/usr.bin/file/magdir/audio
index 33f4226bb53..a166c8e87b8 100644
--- a/usr.bin/file/magdir/audio
+++ b/usr.bin/file/magdir/audio
@@ -1,3 +1,4 @@
+# $OpenBSD: audio,v 1.7 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# audio: file(1) magic for sound formats (see also "iff")
@@ -225,7 +226,3 @@
>3 byte&0xc0 0x40 joint-stereo
>3 byte&0xc0 0x80 dual-channel
>3 byte&0xc0 0xc0 mono
-
-# Ogg Vorbis
-0 string Ogg Ogg Vorbis Audio
-
diff --git a/usr.bin/file/magdir/bFLT b/usr.bin/file/magdir/bFLT
new file mode 100644
index 00000000000..19f6d50099b
--- /dev/null
+++ b/usr.bin/file/magdir/bFLT
@@ -0,0 +1,14 @@
+# $OpenBSD: bFLT,v 1.1 2004/06/03 03:14:19 tedu Exp $
+
+#------------------------------------------------------------------------------
+# 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/usr.bin/file/magdir/blender b/usr.bin/file/magdir/blender
new file mode 100644
index 00000000000..5dc3a3da9be
--- /dev/null
+++ b/usr.bin/file/magdir/blender
@@ -0,0 +1,19 @@
+# $OpenBSD: blender,v 1.1 2004/06/03 03:14:19 tedu Exp $
+
+#------------------------------------------------------------------------------
+# blender: file(1) magic for Blender 3D data files
+#
+# Coded by Guillermo S. Romero <gsromero@alumnos.euitt.upm.es> using the
+# data from Ton Roosendaal <ton@blender.nl>. Ton or his company do not
+# support the rule, so mail GSR if problems with it. Rule version: 1.1.
+# You can get latest version with comments and details about the format
+# at http://acd.asoc.euitt.upm.es/~gsromero/3d/blender/magic.blender
+
+0 string =BLENDER Blender3D,
+>7 string =_ saved as 32-bits
+>7 string =- saved as 64-bits
+>8 string =v little endian
+>8 string =V big endian
+>9 byte x with version %c.
+>10 byte x \b%c
+>11 byte x \b%c
diff --git a/usr.bin/file/magdir/blit b/usr.bin/file/magdir/blit
index 7a470ed4a66..20946d181eb 100644
--- a/usr.bin/file/magdir/blit
+++ b/usr.bin/file/magdir/blit
@@ -1,3 +1,4 @@
+# $OpenBSD: blit,v 1.2 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# blit: file(1) magic for 68K Blit stuff as seen from 680x0 machine
diff --git a/usr.bin/file/magdir/bout b/usr.bin/file/magdir/bout
index ab771fedec6..67e579f818a 100644
--- a/usr.bin/file/magdir/bout
+++ b/usr.bin/file/magdir/bout
@@ -1,3 +1,5 @@
+# $OpenBSD: bout,v 1.2 2004/06/03 03:14:19 tedu Exp $
+
#
# i80960 b.out objects and archives
#
diff --git a/usr.bin/file/magdir/bsdi b/usr.bin/file/magdir/bsdi
index 2e3b646f6bd..f12f8c6d3ec 100644
--- a/usr.bin/file/magdir/bsdi
+++ b/usr.bin/file/magdir/bsdi
@@ -1,7 +1,43 @@
+# $OpenBSD: bsdi,v 1.2 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# bsdi: file(1) magic for BSD/OS (from BSDI) objects
#
-0 lelong 000000314 BSD/OS i386 compact demand paged executable
->16 lelong >0 not stripped
->32 byte 0x6a (uses shared libs)
+
+0 lelong 0314 386 compact demand paged pure executable
+>16 lelong >0 not stripped
+>32 byte 0x6a (uses shared libs)
+
+0 lelong 0407 386 executable
+>16 lelong >0 not stripped
+>32 byte 0x6a (uses shared libs)
+
+0 lelong 0410 386 pure executable
+>16 lelong >0 not stripped
+>32 byte 0x6a (uses shared libs)
+
+0 lelong 0413 386 demand paged pure executable
+>16 lelong >0 not stripped
+>32 byte 0x6a (uses shared libs)
+
+# same as in SunOS 4.x, except for static shared libraries
+0 belong&077777777 0600413 sparc 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
+>36 belong 0xb4100001 (uses shared libs)
+
+0 belong&077777777 0600410 sparc pure
+>0 byte &0x80 dynamically linked executable
+>0 byte ^0x80 executable
+>16 belong >0 not stripped
+>36 belong 0xb4100001 (uses shared libs)
+
+0 belong&077777777 0600407 sparc
+>0 byte &0x80 dynamically linked executable
+>0 byte ^0x80 executable
+>16 belong >0 not stripped
+>36 belong 0xb4100001 (uses shared libs)
diff --git a/usr.bin/file/magdir/c-lang b/usr.bin/file/magdir/c-lang
index 1b0147595b7..fcfa862180f 100644
--- a/usr.bin/file/magdir/c-lang
+++ b/usr.bin/file/magdir/c-lang
@@ -1,3 +1,4 @@
+# $OpenBSD: c-lang,v 1.3 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# c-lang: file(1) magic for C programs (or REXX)
@@ -10,4 +11,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/usr.bin/file/magdir/c64 b/usr.bin/file/magdir/c64
new file mode 100644
index 00000000000..ba9e57e1c9e
--- /dev/null
+++ b/usr.bin/file/magdir/c64
@@ -0,0 +1,28 @@
+# $OpenBSD: c64,v 1.1 2004/06/03 03:14:19 tedu Exp $
+
+#------------------------------------------------------------------------------
+# 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/usr.bin/file/magdir/cad b/usr.bin/file/magdir/cad
new file mode 100644
index 00000000000..e56a4d7d9b6
--- /dev/null
+++ b/usr.bin/file/magdir/cad
@@ -0,0 +1,37 @@
+# $OpenBSD: cad,v 1.1 2004/06/03 03:14:19 tedu Exp $
+
+#------------------------------------------------------------------------------
+# 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/usr.bin/file/magdir/cddb b/usr.bin/file/magdir/cddb
new file mode 100644
index 00000000000..e0f555f0cde
--- /dev/null
+++ b/usr.bin/file/magdir/cddb
@@ -0,0 +1,12 @@
+# $OpenBSD: cddb,v 1.1 2004/06/03 03:14:19 tedu Exp $
+
+#------------------------------------------------------------------------------
+# CDDB: file(1) magic for CDDB(tm) format CD text data files
+#
+# From <steve@gracenote.com>
+#
+# This is the /etc/magic entry to decode datafiles as used by
+# CDDB-enabled CD player applications.
+#
+
+0 string/b #\040xmcd CDDB(tm) format CD text data
diff --git a/usr.bin/file/magdir/chi b/usr.bin/file/magdir/chi
index ee450f55588..6b91cf42865 100644
--- a/usr.bin/file/magdir/chi
+++ b/usr.bin/file/magdir/chi
@@ -1,3 +1,4 @@
+# $OpenBSD: chi,v 1.2 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# chi: file(1) magic for ChiWriter files
diff --git a/usr.bin/file/magdir/chord b/usr.bin/file/magdir/chord
new file mode 100644
index 00000000000..281896b2cce
--- /dev/null
+++ b/usr.bin/file/magdir/chord
@@ -0,0 +1,10 @@
+# $OpenBSD: chord,v 1.1 2004/06/03 03:14:19 tedu Exp $
+
+#------------------------------------------------------------------------------
+# 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/usr.bin/file/magdir/cisco b/usr.bin/file/magdir/cisco
new file mode 100644
index 00000000000..95ff7461473
--- /dev/null
+++ b/usr.bin/file/magdir/cisco
@@ -0,0 +1,12 @@
+# $OpenBSD: cisco,v 1.1 2004/06/03 03:14:19 tedu Exp $
+
+#------------------------------------------------------------------------------
+# cisco: file(1) magic for cisco Systems routers
+#
+# Most cisco file-formats are covered by the generic elf code
+#
+# Microcode files are non-ELF, 0x8501 conflicts with NetBSD/alpha.
+0 belong&0xffffff00 0x85011400 cisco IOS microcode
+>7 string >\0 for '%s'
+0 belong&0xffffff00 0x8501cb00 cisco IOS experimental microcode
+>7 string >\0 for '%s'
diff --git a/usr.bin/file/magdir/citrus b/usr.bin/file/magdir/citrus
new file mode 100644
index 00000000000..3a4def55034
--- /dev/null
+++ b/usr.bin/file/magdir/citrus
@@ -0,0 +1,8 @@
+# $OpenBSD: citrus,v 1.1 2004/06/03 03:14:19 tedu Exp $
+
+#------------------------------------------------------------------------------
+# citrus locale declaration
+#
+
+0 string RuneCT Citrus locale declaration for LC_CTYPE
+
diff --git a/usr.bin/file/magdir/clipper b/usr.bin/file/magdir/clipper
index c325cb8f7c7..b218446e9f1 100644
--- a/usr.bin/file/magdir/clipper
+++ b/usr.bin/file/magdir/clipper
@@ -1,3 +1,4 @@
+# $OpenBSD: clipper,v 1.2 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# clipper: file(1) magic for Intergraph (formerly Fairchild) Clipper.
diff --git a/usr.bin/file/magdir/commands b/usr.bin/file/magdir/commands
index 8a276070736..f9d86514bb5 100644
--- a/usr.bin/file/magdir/commands
+++ b/usr.bin/file/magdir/commands
@@ -1,3 +1,4 @@
+# $OpenBSD: commands,v 1.3 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# commands: file(1) magic for various shells and interpreters
diff --git a/usr.bin/file/magdir/compress b/usr.bin/file/magdir/compress
index a797f8fff5d..7b85ed9346b 100644
--- a/usr.bin/file/magdir/compress
+++ b/usr.bin/file/magdir/compress
@@ -1,3 +1,4 @@
+# $OpenBSD: compress,v 1.4 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# compress: file(1) magic for pure-compression formats (no archives)
@@ -14,37 +15,40 @@
>2 byte&0x1f x %d bits
# gzip (GNU zip, not to be confused with Info-ZIP or PKWARE zip archiver)
+# Edited by Chris Chittleborough <cchittleborough@yahoo.com.au>, March 2002
+# * Original filename is only at offset 10 if "extra field" absent
+# * Produce shorter output - notably, only report compression methods
+# other than 8 ("deflate", the only method defined in RFC 1952).
0 string \037\213 gzip compressed data
->2 byte <8 \b, reserved method,
->2 byte 8 \b, deflated,
->3 byte &0x01 ASCII,
->3 byte &0x02 continuation,
->3 byte &0x04 extra field,
->3 byte &0x08 original filename,
->3 byte &0x10 comment,
->3 byte &0x20 encrypted,
->4 ledate x last modified: %s,
->8 byte 2 max compression,
->8 byte 4 max speed,
->9 byte =0x00 os: MS-DOS
->9 byte =0x01 os: Amiga
->9 byte =0x02 os: VMS
->9 byte =0x03 os: Unix
->9 byte =0x05 os: Atari
->9 byte =0x06 os: OS/2
->9 byte =0x07 os: MacOS
->9 byte =0x0A os: Tops/20
->9 byte =0x0B os: Win/32
+>2 byte <8 \b, reserved method
+>2 byte >8 \b, unknown method
+>3 byte &0x01 \b, ASCII
+>3 byte &0x02 \b, continuation
+>3 byte &0x04 \b, extra field
+>3 byte&0xC =0x08
+>>10 string x \b, was "%s"
+>9 byte =0x00 \b, from MS-DOS
+>9 byte =0x01 \b, from Amiga
+>9 byte =0x02 \b, from VMS
+>9 byte =0x03 \b, from Unix
+>9 byte =0x05 \b, from Atari
+>9 byte =0x06 \b, from OS/2
+>9 byte =0x07 \b, from MacOS
+>9 byte =0x0A \b, from Tops/20
+>9 byte =0x0B \b, from Win/32
+>3 byte &0x10 \b, comment
+>3 byte &0x20 \b, encrypted
+### >4 ledate x last modified: %s,
+>8 byte 2 \b, max compression
+>8 byte 4 \b, max speed
# packed data, Huffman (minimum redundancy) codes on a byte-by-byte basis
0 string \037\036 packed data
>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?
@@ -55,13 +59,18 @@
0 string \377\037 compacted data
0 short 0145405 huf output
-# Squeeze and Crunch...
-# These numbers were gleaned from the Unix versions of the programs to
-# handle these formats. Note that I can only uncrunch, not crunch, and
-# I didn't have a crunched file handy, so the crunch number is untested.
-# Keith Waclena <keith@cerberus.uchicago.edu>
-0 leshort 0x76FF squeezed data (CP/M, DOS)
-0 leshort 0x76FE crunched data (CP/M, DOS)
+# bzip2
+0 string BZh bzip2 compressed data
+>3 byte >47 \b, block size = %c00k
+
+# squeeze and crunch
+# Michael Haardt <michael@cantor.informatik.rwth-aachen.de>
+0 beshort 0x76FF squeezed data,
+>4 string x original name %s
+0 beshort 0x76FE crunched data,
+>2 string x original name %s
+0 beshort 0x76FD LZH compressed data,
+>2 string x original name %s
# Freeze
0 string \037\237 frozen file 2.1
@@ -85,8 +94,80 @@
#>99 byte&0xF0 0xd0
#>132 byte&0xF0 0xd0 GSM 06.10 compressed audio
-# Bzip from ulmo@Q.Net
-0 string BZ bzip compressed data,
->2 byte x format v. %c,
->3 byte x block size indicator %c
+# bzip a block-sorting file compressor
+# by Julian Seward <sewardj@cs.man.ac.uk> and others
+#
+0 string BZ bzip compressed data
+>2 byte x \b, version: %c
+>3 string =1 \b, compression block size 100k
+>3 string =2 \b, compression block size 200k
+>3 string =3 \b, compression block size 300k
+>3 string =4 \b, compression block size 400k
+>3 string =5 \b, compression block size 500k
+>3 string =6 \b, compression block size 600k
+>3 string =7 \b, compression block size 700k
+>3 string =8 \b, compression block size 800k
+>3 string =9 \b, compression block size 900k
+
+# lzop from <markus.oberhumer@jk.uni-linz.ac.at>
+0 string \x89\x4c\x5a\x4f\x00\x0d\x0a\x1a\x0a lzop compressed data
+>9 beshort <0x0940
+>>9 byte&0xf0 =0x00 - version 0.
+>>9 beshort&0x0fff x \b%03x,
+>>13 byte 1 LZO1X-1,
+>>13 byte 2 LZO1X-1(15),
+>>13 byte 3 LZO1X-999,
+## >>22 bedate >0 last modified: %s,
+>>14 byte =0x00 os: MS-DOS
+>>14 byte =0x01 os: Amiga
+>>14 byte =0x02 os: VMS
+>>14 byte =0x03 os: Unix
+>>14 byte =0x05 os: Atari
+>>14 byte =0x06 os: OS/2
+>>14 byte =0x07 os: MacOS
+>>14 byte =0x0A os: Tops/20
+>>14 byte =0x0B os: WinNT
+>>14 byte =0x0E os: Win32
+>9 beshort >0x0939
+>>9 byte&0xf0 =0x00 - version 0.
+>>9 byte&0xf0 =0x10 - version 1.
+>>9 byte&0xf0 =0x20 - version 2.
+>>9 beshort&0x0fff x \b%03x,
+>>15 byte 1 LZO1X-1,
+>>15 byte 2 LZO1X-1(15),
+>>15 byte 3 LZO1X-999,
+## >>25 bedate >0 last modified: %s,
+>>17 byte =0x00 os: MS-DOS
+>>17 byte =0x01 os: Amiga
+>>17 byte =0x02 os: VMS
+>>17 byte =0x03 os: Unix
+>>17 byte =0x05 os: Atari
+>>17 byte =0x06 os: OS/2
+>>17 byte =0x07 os: MacOS
+>>17 byte =0x0A os: Tops/20
+>>17 byte =0x0B os: WinNT
+>>17 byte =0x0E os: Win32
+
+# 4.3BSD-Quasijarus Strong Compression
+# http://minnie.tuhs.org/Quasijarus/compress.html
+0 string \037\241 Quasijarus strong compressed data
+
+# From: Cory Dikkers <cdikkers@swbell.net>
+0 string XPKF Amiga xpkf.library compressed data
+0 string PP11 Power Packer 1.1 compressed data
+0 string PP20 Power Packer 2.0 compressed data,
+>4 belong 0x09090909 fast compression
+>4 belong 0x090A0A0A mediocre compression
+>4 belong 0x090A0B0B good compression
+>4 belong 0x090A0C0C very good compression
+>4 belong 0x090A0C0D best compression
+
+# 7z archiver, from Thomas Klausner (wiz@danbala.tuwien.ac.at)
+# http://www.7-zip.org or DOC/7zFormat.txt
+#
+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/usr.bin/file/magdir/console b/usr.bin/file/magdir/console
new file mode 100644
index 00000000000..07bf9527cb6
--- /dev/null
+++ b/usr.bin/file/magdir/console
@@ -0,0 +1,157 @@
+# $OpenBSD: console,v 1.1 2004/06/03 03:14:19 tedu Exp $
+
+#------------------------------------------------------------------------------
+# Console game magic
+# Toby Deshane <hac@shoelace.digivill.net>
+# ines: file(1) magic for Marat's iNES Nintendo Entertainment System
+# ROM dump format
+
+0 string NES\032 iNES ROM dump,
+>4 byte x %dx16k PRG
+>5 byte x \b, %dx8k CHR
+>6 byte&0x01 =0x1 \b, [Vert.]
+>6 byte&0x01 =0x0 \b, [Horiz.]
+>6 byte&0x02 =0x2 \b, [SRAM]
+>6 byte&0x04 =0x4 \b, [Trainer]
+>6 byte&0x04 =0x8 \b, [4-Scr]
+
+#------------------------------------------------------------------------------
+# gameboy: file(1) magic for the Nintendo (Color) Gameboy raw ROM format
+#
+0x104 belong 0xCEED6666 Gameboy ROM:
+>0x134 string >\0 "%.16s"
+>0x146 byte 0x03 \b,[SGB]
+>0x147 byte 0x00 \b, [ROM ONLY]
+>0x147 byte 0x01 \b, [ROM+MBC1]
+>0x147 byte 0x02 \b, [ROM+MBC1+RAM]
+>0x147 byte 0x03 \b, [ROM+MBC1+RAM+BATT]
+>0x147 byte 0x05 \b, [ROM+MBC2]
+>0x147 byte 0x06 \b, [ROM+MBC2+BATTERY]
+>0x147 byte 0x08 \b, [ROM+RAM]
+>0x147 byte 0x09 \b, [ROM+RAM+BATTERY]
+>0x147 byte 0x0B \b, [ROM+MMM01]
+>0x147 byte 0x0C \b, [ROM+MMM01+SRAM]
+>0x147 byte 0x0D \b, [ROM+MMM01+SRAM+BATT]
+>0x147 byte 0x0F \b, [ROM+MBC3+TIMER+BATT]
+>0x147 byte 0x10 \b, [ROM+MBC3+TIMER+RAM+BATT]
+>0x147 byte 0x11 \b, [ROM+MBC3]
+>0x147 byte 0x12 \b, [ROM+MBC3+RAM]
+>0x147 byte 0x13 \b, [ROM+MBC3+RAM+BATT]
+>0x147 byte 0x19 \b, [ROM+MBC5]
+>0x147 byte 0x1A \b, [ROM+MBC5+RAM]
+>0x147 byte 0x1B \b, [ROM+MBC5+RAM+BATT]
+>0x147 byte 0x1C \b, [ROM+MBC5+RUMBLE]
+>0x147 byte 0x1D \b, [ROM+MBC5+RUMBLE+SRAM]
+>0x147 byte 0x1E \b, [ROM+MBC5+RUMBLE+SRAM+BATT]
+>0x147 byte 0x1F \b, [Pocket Camera]
+>0x147 byte 0xFD \b, [Bandai TAMA5]
+>0x147 byte 0xFE \b, [Hudson HuC-3]
+>0x147 byte 0xFF \b, [Hudson HuC-1]
+
+>0x148 byte 0 \b, ROM: 256Kbit
+>0x148 byte 1 \b, ROM: 512Kbit
+>0x148 byte 2 \b, ROM: 1Mbit
+>0x148 byte 3 \b, ROM: 2Mbit
+>0x148 byte 4 \b, ROM: 4Mbit
+>0x148 byte 5 \b, ROM: 8Mbit
+>0x148 byte 6 \b, ROM: 16Mbit
+>0x148 byte 0x52 \b, ROM: 9Mbit
+>0x148 byte 0x53 \b, ROM: 10Mbit
+>0x148 byte 0x54 \b, ROM: 12Mbit
+
+>0x149 byte 1 \b, RAM: 16Kbit
+>0x149 byte 2 \b, RAM: 64Kbit
+>0x149 byte 3 \b, RAM: 128Kbit
+>0x149 byte 4 \b, RAM: 1Mbit
+
+#>0x14e long x \b, CRC: %x
+
+#------------------------------------------------------------------------------
+# genesis: file(1) magic for the Sega MegaDrive/Genesis raw ROM format
+#
+0x100 string SEGA Sega MegaDrive/Genesis raw ROM dump
+>0x120 string >\0 Name: "%.16s"
+>0x110 string >\0 %.16s
+>0x1B0 string RA with SRAM
+
+#------------------------------------------------------------------------------
+# genesis: file(1) magic for the Super MegaDrive ROM dump format
+#
+0x280 string EAGN Super MagicDrive ROM dump
+>0 byte x %dx16k blocks
+>2 byte 0 \b, last in series or standalone
+>2 byte >0 \b, split ROM
+>8 byte 0xAA
+>9 byte 0xBB
+
+#------------------------------------------------------------------------------
+# genesis: file(1) alternate magic for the Super MegaDrive ROM dump format
+#
+0x280 string EAMG Super MagicDrive ROM dump
+>0 byte x %dx16k blocks
+>2 byte x \b, last in series or standalone
+>8 byte 0xAA
+>9 byte 0xBB
+
+#------------------------------------------------------------------------------
+# smsgg: file(1) magic for Sega Master System and Game Gear ROM dumps
+#
+# Does not detect all images. Very preliminary guesswork. Need more data
+# on format.
+#
+# FIXME: need a little more info...;P
+#
+#0 byte 0xF3
+#>1 byte 0xED Sega Master System/Game Gear ROM dump
+#>1 byte 0x31 Sega Master System/Game Gear ROM dump
+#>1 byte 0xDB Sega Master System/Game Gear ROM dump
+#>1 byte 0xAF Sega Master System/Game Gear ROM dump
+#>1 byte 0xC3 Sega Master System/Game Gear ROM dump
+
+#------------------------------------------------------------------------------
+# dreamcast: file(1) uncertain magic for the Sega Dreamcast VMU image format
+#
+0 belong 0x21068028 Sega Dreamcast VMU game image
+0 string LCDi Dream Animator file
+
+#------------------------------------------------------------------------------
+# v64: file(1) uncertain magic for the V64 format N64 ROM dumps
+#
+0 belong 0x37804012 V64 Nintendo 64 ROM dump
+
+#------------------------------------------------------------------------------
+# msx: file(1) magic for MSX game cartridge dumps
+# 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/usr.bin/file/magdir/convex b/usr.bin/file/magdir/convex
index 565ba61ba6c..d4bd34d8590 100644
--- a/usr.bin/file/magdir/convex
+++ b/usr.bin/file/magdir/convex
@@ -1,4 +1,4 @@
-# $OpenBSD: convex,v 1.3 2001/01/29 01:57:57 niklas Exp $
+# $OpenBSD: convex,v 1.4 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# convex: file(1) magic for Convex boxes
diff --git a/usr.bin/file/magdir/ctags b/usr.bin/file/magdir/ctags
new file mode 100644
index 00000000000..f32a3e420ae
--- /dev/null
+++ b/usr.bin/file/magdir/ctags
@@ -0,0 +1,6 @@
+# $OpenBSD: ctags,v 1.1 2004/06/03 03:14:19 tedu Exp $
+
+# ----------------------------------------------------------------------------
+# ctags: file (1) magic for Exuberant Ctags files
+# From: Alexander Mai <mai@migdal.ikp.physik.tu-darmstadt.de>
+0 string !_TAG Exuberant Ctags tag file text
diff --git a/usr.bin/file/magdir/dact b/usr.bin/file/magdir/dact
new file mode 100644
index 00000000000..721aaae03b7
--- /dev/null
+++ b/usr.bin/file/magdir/dact
@@ -0,0 +1,11 @@
+# $OpenBSD: dact,v 1.1 2004/06/03 03:14:19 tedu Exp $
+
+#------------------------------------------------------------------------------
+# 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/usr.bin/file/magdir/database b/usr.bin/file/magdir/database
index 146c3108e1e..f5545ece640 100644
--- a/usr.bin/file/magdir/database
+++ b/usr.bin/file/magdir/database
@@ -1,3 +1,4 @@
+# $OpenBSD: database,v 1.4 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# database: file(1) magic for various databases
@@ -12,27 +13,192 @@
0 lelong 0x13579ace GNU dbm 1.x or ndbm database, little endian
0 string GDBM GNU dbm 2.x database
#
-0 belong 0x061561 Berkeley DB Hash file
->4 belong >0 (Version %d,
->8 belong 1234 Little Endian,
->8 belong 4321 Big Endian,
->12 belong x Bucket Size %d,
->16 belong x Bucket Shift %d,
->20 belong x Directory Size %d,
->24 belong x Segment Size %d,
->28 belong x Segment Shift %d,
->32 belong x Overflow Point %d,
->36 belong x Last Freed %d,
->40 belong x Max Bucket %d,
->44 belong x High Mask 0x%x,
->48 belong x Low Mask 0x%x,
->52 belong x Fill Factor %d,
->56 belong x Number of Keys %d)
-#
-#
-0 belong 0x053162 Berkeley DB Btree file
->4 belong >0 (Version %d,
->8 belong x Page Size %d,
->12 belong x Free Page %d,
->16 belong x Number of Records %d,
->20 belong x Flags 0x%x)
+# Berkeley DB
+#
+# Ian Darwin's file /etc/magic files: big/little-endian version.
+#
+# Hash 1.85/1.86 databases store metadata in network byte order.
+# Btree 1.85/1.86 databases store the metadata in host byte order.
+# Hash and Btree 2.X and later databases store the metadata in host byte order.
+
+0 long 0x00061561 Berkeley DB
+>8 belong 4321
+>>4 belong >2 1.86
+>>4 belong <3 1.85
+>>4 belong >0 (Hash, version %d, native byte-order)
+>8 belong 1234
+>>4 belong >2 1.86
+>>4 belong <3 1.85
+>>4 belong >0 (Hash, version %d, little-endian)
+
+0 belong 0x00061561 Berkeley DB
+>8 belong 4321
+>>4 belong >2 1.86
+>>4 belong <3 1.85
+>>4 belong >0 (Hash, version %d, big-endian)
+>8 belong 1234
+>>4 belong >2 1.86
+>>4 belong <3 1.85
+>>4 belong >0 (Hash, version %d, native byte-order)
+
+0 long 0x00053162 Berkeley DB 1.85/1.86
+>4 long >0 (Btree, version %d, native byte-order)
+0 belong 0x00053162 Berkeley DB 1.85/1.86
+>4 belong >0 (Btree, version %d, big-endian)
+0 lelong 0x00053162 Berkeley DB 1.85/1.86
+>4 lelong >0 (Btree, version %d, little-endian)
+
+12 long 0x00061561 Berkeley DB
+>16 long >0 (Hash, version %d, native byte-order)
+12 belong 0x00061561 Berkeley DB
+>16 belong >0 (Hash, version %d, big-endian)
+12 lelong 0x00061561 Berkeley DB
+>16 lelong >0 (Hash, version %d, little-endian)
+
+12 long 0x00053162 Berkeley DB
+>16 long >0 (Btree, version %d, native byte-order)
+12 belong 0x00053162 Berkeley DB
+>16 belong >0 (Btree, version %d, big-endian)
+12 lelong 0x00053162 Berkeley DB
+>16 lelong >0 (Btree, version %d, little-endian)
+
+12 long 0x00042253 Berkeley DB
+>16 long >0 (Queue, version %d, native byte-order)
+12 belong 0x00042253 Berkeley DB
+>16 belong >0 (Queue, version %d, big-endian)
+12 lelong 0x00042253 Berkeley DB
+>16 lelong >0 (Queue, version %d, little-endian)
+#
+#
+# Round Robin Database Tool by Tobias Oetiker <oetiker@ee.ethz.ch>
+0 string RRD RRDTool DB
+>4 string x version %s
+#----------------------------------------------------------------------
+# ROOT: file(1) magic for ROOT databases
+#
+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/usr.bin/file/magdir/diamond b/usr.bin/file/magdir/diamond
index 1abd01e0300..8dddb846385 100644
--- a/usr.bin/file/magdir/diamond
+++ b/usr.bin/file/magdir/diamond
@@ -1,3 +1,4 @@
+# $OpenBSD: diamond,v 1.2 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# diamond: file(1) magic for Diamond system
diff --git a/usr.bin/file/magdir/diff b/usr.bin/file/magdir/diff
index 9e651465efd..61c4359ce95 100644
--- a/usr.bin/file/magdir/diff
+++ b/usr.bin/file/magdir/diff
@@ -1,3 +1,4 @@
+# $OpenBSD: diff,v 1.2 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# diff: file(1) magic for diff(1) output
diff --git a/usr.bin/file/magdir/digital b/usr.bin/file/magdir/digital
index ce1da4c824d..3686aaf163d 100644
--- a/usr.bin/file/magdir/digital
+++ b/usr.bin/file/magdir/digital
@@ -1,4 +1,4 @@
-# $OpenBSD: digital,v 1.2 2001/01/29 01:57:57 niklas Exp $
+# $OpenBSD: digital,v 1.3 2004/06/03 03:14:19 tedu Exp $
# Digital UNIX - Info
#
diff --git a/usr.bin/file/magdir/dolby b/usr.bin/file/magdir/dolby
new file mode 100644
index 00000000000..1ed9e4ed737
--- /dev/null
+++ b/usr.bin/file/magdir/dolby
@@ -0,0 +1,59 @@
+# $OpenBSD: dolby,v 1.1 2004/06/03 03:14:19 tedu Exp $
+
+# ATSC A/53 aka AC-3 aka Dolby Digital <ashitaka@gmx.at>
+# from http://www.atsc.org/standards/a_52a.pdf
+# corrections, additions, etc. are always welcome!
+#
+# syncword
+0 beshort 0x0b77 ATSC A/52 aka AC-3 aka Dolby Digital stream,
+# fscod
+>4 byte&0xc0 0x00 48 kHz,
+>4 byte&0xc0 0x40 44.1 kHz,
+>4 byte&0xc0 0x80 32 kHz,
+# is this one used for 96 kHz?
+>4 byte&0xc0 0xc0 reserved frequency,
+#
+>5 byte&7 = 0 \b, complete main (CM)
+>5 byte&7 = 1 \b, music and effects (ME)
+>5 byte&7 = 2 \b, visually impaired (VI)
+>5 byte&7 = 3 \b, hearing impaired (HI)
+>5 byte&7 = 4 \b, dialogue (D)
+>5 byte&7 = 5 \b, commentary (C)
+>5 byte&7 = 6 \b, emergency (E)
+# acmod
+>6 byte&0xe0 0x00 1+1 front,
+>6 byte&0xe0 0x20 1 front/0 rear,
+>6 byte&0xe0 0x40 2 front/0 rear,
+>6 byte&0xe0 0x60 3 front/0 rear,
+>6 byte&0xe0 0x80 2 front/1 rear,
+>6 byte&0xe0 0xa0 3 front/1 rear,
+>6 byte&0xe0 0xc0 2 front/2 rear,
+>6 byte&0xe0 0xe0 3 front/2 rear,
+# lfeon (these may be incorrect)
+>7 byte&0x40 0x00 LFE off,
+>7 byte&0x40 0x40 LFE on,
+#
+>4 byte&0x3e = 0x00 \b, 32 kbit/s
+>4 byte&0x3e = 0x02 \b, 40 kbit/s
+>4 byte&0x3e = 0x04 \b, 48 kbit/s
+>4 byte&0x3e = 0x06 \b, 56 kbit/s
+>4 byte&0x3e = 0x08 \b, 64 kbit/s
+>4 byte&0x3e = 0x0a \b, 80 kbit/s
+>4 byte&0x3e = 0x0c \b, 96 kbit/s
+>4 byte&0x3e = 0x0e \b, 112 kbit/s
+>4 byte&0x3e = 0x10 \b, 128 kbit/s
+>4 byte&0x3e = 0x12 \b, 160 kbit/s
+>4 byte&0x3e = 0x14 \b, 192 kbit/s
+>4 byte&0x3e = 0x16 \b, 224 kbit/s
+>4 byte&0x3e = 0x18 \b, 256 kbit/s
+>4 byte&0x3e = 0x1a \b, 320 kbit/s
+>4 byte&0x3e = 0x1c \b, 384 kbit/s
+>4 byte&0x3e = 0x1e \b, 448 kbit/s
+>4 byte&0x3e = 0x20 \b, 512 kbit/s
+>4 byte&0x3e = 0x22 \b, 576 kbit/s
+>4 byte&0x3e = 0x24 \b, 640 kbit/s
+# dsurmod (these may be incorrect)
+>6 beshort&0x0180 0x0000 Dolby Surround not indicated
+>6 beshort&0x0180 0x0080 not Dolby Surround encoded
+>6 beshort&0x0180 0x0100 Dolby Surround encoded
+>6 beshort&0x0180 0x0180 reserved Dolby Surround mode
diff --git a/usr.bin/file/magdir/dump b/usr.bin/file/magdir/dump
index 628ead86c61..763007c4551 100644
--- a/usr.bin/file/magdir/dump
+++ b/usr.bin/file/magdir/dump
@@ -1,3 +1,4 @@
+# $OpenBSD: dump,v 1.3 2004/06/03 03:14:19 tedu Exp $
#------------------------------------------------------------------------------
# dump: file(1) magic for dump file format--for new and old dump filesystems
diff --git a/usr.bin/file/magdir/dyadic b/usr.bin/file/magdir/dyadic
new file mode 100644
index 00000000000..f73c7a35238
--- /dev/null
+++ b/usr.bin/file/magdir/dyadic
@@ -0,0 +1,13 @@
+# $OpenBSD: dyadic,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# Dyadic: file(1) magic for Dyalog APL.
+#
+0 byte 0xaa
+>1 byte <4 Dyalog APL
+>>1 byte 0x00 incomplete workspace
+>>1 byte 0x01 component file
+>>1 byte 0x02 external variable
+>>1 byte 0x03 workspace
+>>2 byte x version %d
+>>3 byte x .%d
diff --git a/usr.bin/file/magdir/editors b/usr.bin/file/magdir/editors
new file mode 100644
index 00000000000..21b23f09204
--- /dev/null
+++ b/usr.bin/file/magdir/editors
@@ -0,0 +1,14 @@
+# $OpenBSD: editors,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# T602 editor documents
+# by David Necas <yeti@physics.muni.cz>
+0 string @CT\ T602 document data,
+>4 string 0 Kamenicky
+>4 string 1 CP 852
+>4 string 2 KOI8-CS
+>4 string >2 unknown encoding
+
+# Vi IMproved Encrypted file
+# by David Necas <yeti@physics.muni.cz>
+0 string VimCrypt~ Vim encrypted file data
diff --git a/usr.bin/file/magdir/elf b/usr.bin/file/magdir/elf
index a87cce1c9d2..5f2200f4850 100644
--- a/usr.bin/file/magdir/elf
+++ b/usr.bin/file/magdir/elf
@@ -1,3 +1,4 @@
+# $OpenBSD: elf,v 1.10 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# elf: file(1) magic for ELF executables
diff --git a/usr.bin/file/magdir/encore b/usr.bin/file/magdir/encore
index 63cb5d4f9f4..8186e36f634 100644
--- a/usr.bin/file/magdir/encore
+++ b/usr.bin/file/magdir/encore
@@ -1,3 +1,4 @@
+# $OpenBSD: encore,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# encore: file(1) magic for Encore machines
diff --git a/usr.bin/file/magdir/epoc b/usr.bin/file/magdir/epoc
new file mode 100644
index 00000000000..a9ed74d2eed
--- /dev/null
+++ b/usr.bin/file/magdir/epoc
@@ -0,0 +1,11 @@
+# $OpenBSD: epoc,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# Epoc 32 : file(1) magic for Epoc Documents [psion/osaris
+# Stefan Praszalowicz (hpicollo@worldnet.fr)
+#0 lelong 0x10000037 Epoc32
+>4 lelong 0x1000006D
+>>8 lelong 0x1000007F Word
+>>8 lelong 0x10000088 Sheet
+>>8 lelong 0x1000007D Sketch
+>>8 lelong 0x10000085 TextEd
diff --git a/usr.bin/file/magdir/fcs b/usr.bin/file/magdir/fcs
new file mode 100644
index 00000000000..e83f403037b
--- /dev/null
+++ b/usr.bin/file/magdir/fcs
@@ -0,0 +1,9 @@
+# $OpenBSD: fcs,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# 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/usr.bin/file/magdir/filesystems b/usr.bin/file/magdir/filesystems
index 125250d9b6d..41ecbb09100 100644
--- a/usr.bin/file/magdir/filesystems
+++ b/usr.bin/file/magdir/filesystems
@@ -1,6 +1,338 @@
+# $OpenBSD: filesystems,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# filesystems: file(1) magic for different filesystems
#
-0x438 leshort 0xEF53 Linux/i386 ext2 filesystem
0 string \366\366\366\366 PC formatted floppy with no filesystem
+# Sun disk labels
+# From /usr/include/sun/dklabel.h:
+0774 beshort 0xdabe Sun disk label
+>0 string x '%s
+>>31 string >\0 \b%s
+>>>63 string >\0 \b%s
+>>>>95 string >\0 \b%s
+>0 string x \b'
+>0734 short >0 %d rpm,
+>0736 short >0 %d phys cys,
+>0740 short >0 %d alts/cyl,
+>0746 short >0 %d interleave,
+>0750 short >0 %d data cyls,
+>0752 short >0 %d alt cyls,
+>0754 short >0 %d heads/partition,
+>0756 short >0 %d sectors/track,
+>0764 long >0 start cyl %ld,
+>0770 long x %ld blocks
+# Is there a boot block written 1 sector in?
+>512 belong&077777777 0600407 \b, boot block present
+0x1FE leshort 0xAA55 x86 boot sector
+>2 string OSBS \b, OS/BS MBR
+# J\xf6rg Jenderek <joerg.jenderek@gmx.net>
+>0x8C string Invalid\ partition\ table \b, MS-DOS MBR
+>0x9D string Invalid\ partition\ table \b, DR-DOS MBR, version 7.01 to 7.03
+>0x10F string Ung\201ltige\ Partitionstabelle \b, MS-DOS MBR, german version 4.10.1998, 4.10.2222
+>0x8B string Ung\201ltige\ Partitionstabelle \b, MS-DOS MBR, german version 5.00 to 4.00.950
+>0x145 string Default:\ F \b, FREE-DOS MBR
+>0 string \0\0\0\0 \b, extended partition table
+# JuMP short bootcodeoffset NOP assembler instructions will usually be EB xx 90
+# older drives may use E9 xx xx
+>0 lelong&0x009000EB 0x009000EB
+>0 lelong&0x000000E9 0x000000E9
+>>1 ubyte >37 \b, code offset 0x%x
+# mtools-3.9.8/msdos.h
+# usual values are marked with comments to get only informations of strange FAT systems
+# valid sectorsize are from 32 to 2048
+>>>11 uleshort <2049
+>>>>11 uleshort >31
+>>>>>3 string >\0 \b, OEM-ID "%8.8s"
+>>>>>11 uleshort >512 \b, Bytes/sector %u
+#>>>>>11 uleshort =512 \b, Bytes/sector %u=512 (usual)
+>>>>>11 uleshort <512 \b, Bytes/sector %u
+>>>>>13 ubyte >1 \b, sectors/cluster %u
+#>>>>>13 ubyte =1 \b, sectors/cluster %u (usual on Floppies)
+>>>>>14 uleshort >32 \b, reserved sectors %u
+#>>>>>14 uleshort =32 \b, reserved sectors %u (usual Fat32)
+#>>>>>14 uleshort >1 \b, reserved sectors %u
+#>>>>>14 uleshort =1 \b, reserved sectors %u (usual FAT12,FAT16)
+>>>>>14 uleshort <1 \b, reserved sectors %u
+>>>>>16 ubyte >2 \b, FATs %u
+#>>>>>16 ubyte =2 \b, FATs %u (usual)
+>>>>>16 ubyte =1 \b, FAT %u
+>>>>>16 ubyte >0
+>>>>>17 uleshort >0 \b, root entries %u
+#>>>>>17 uleshort =0 \b, root entries %u=0 (usual Fat32)
+>>>>>19 uleshort >0 \b, sectors %u (volumes <=32 MB)
+#>>>>>19 uleshort =0 \b, sectors %u=0 (usual Fat32)
+>>>>>21 ubyte >0xF0 \b, Media descriptor 0x%x
+#>>>>>21 ubyte =0xF0 \b, Media descriptor 0x%x (usual floppy)
+>>>>>21 ubyte <0xF0 \b, Media descriptor 0x%x
+>>>>>22 uleshort >0 \b, sectors/FAT %u
+#>>>>>22 uleshort =0 \b, sectors/FAT %u=0 (usual Fat32)
+>>>>>26 ubyte >2 \b, heads %u
+#>>>>>26 ubyte =2 \b, heads %u (usual floppy)
+>>>>>26 ubyte =1 \b, heads %u
+>>>>>28 ulelong >0 \b, hidden sectors %u
+#>>>>>28 ulelong =0 \b, hidden sectors %u (usual floppy)
+>>>>>32 ulelong >0 \b, sectors %u (volumes > 32 MB)
+#>>>>>32 ulelong =0 \b, sectors %u (volumes > 32 MB)
+# FAT<32 specific
+# NOT le FAT3=NOT 3TAF=0xCCABBEB9
+>>>>>82 ulelong&0xCCABBEB9 >0
+>>>>>>36 ubyte >0x80 \b, physical drive 0x%x
+#>>>>>>36 ubyte =0x80 \b, physical drive 0x%x=0x80 (usual harddisk)
+>>>>>>36 ubyte&0x7F >0 \b, physical drive 0x%x
+#>>>>>>36 ubyte =0 \b, physical drive 0x%x=0 (usual floppy)
+>>>>>>37 ubyte >0 \b, reserved 0x%x
+#>>>>>>37 ubyte =0 \b, reserved 0x%x
+>>>>>>38 ubyte >0x29 \b, dos < 4.0 BootSector (0x%x)
+>>>>>>38 ubyte <0x29 \b, dos < 4.0 BootSector (0x%x)
+>>>>>>38 ubyte =0x29
+>>>>>>>39 ulelong x \b, serial number 0x%x
+>>>>>>>43 string <NO\ NAME \b, label: "%11.11s"
+>>>>>>>43 string >NO\ NAME \b, label: "%11.11s"
+>>>>>>>43 string =NO\ NAME \b, unlabeled
+>>>>>>54 string FAT1 \b, FAT
+>>>>>>>54 string FAT12 \b (12 bit)
+>>>>>>>54 string FAT16 \b (16 bit)
+# FAT32 specific
+>>>>>82 string FAT32 \b, FAT (32 bit)
+>>>>>>36 ulelong x \b, sectors/FAT %u
+>>>>>>40 uleshort >0 \b, extension flags %u
+#>>>>>>40 uleshort =0 \b, extension flags %u
+>>>>>>42 uleshort >0 \b, fsVersion %u
+#>>>>>>42 uleshort =0 \b, fsVersion %u (usual)
+>>>>>>44 ulelong >2 \b, rootdir cluster %u
+#>>>>>>44 ulelong =2 \b, rootdir cluster %u
+#>>>>>>44 ulelong =1 \b, rootdir cluster %u
+>>>>>>48 uleshort >1 \b, infoSector %u
+#>>>>>>48 uleshort =1 \b, infoSector %u (usual)
+>>>>>>48 uleshort <1 \b, infoSector %u
+>>>>>>50 uleshort >6 \b, Backup boot sector %u
+#>>>>>>50 uleshort =6 \b, Backup boot sector %u (usual)
+>>>>>>50 uleshort <6 \b, Backup boot sector %u
+>>>>>>54 ulelong >0 \b, reserved1 0x%x
+>>>>>>58 ulelong >0 \b, reserved2 0x%x
+>>>>>>62 ulelong >0 \b, reserved3 0x%x
+# same structure as FAT1X
+>>>>>>64 ubyte >0x80 \b, physical drive 0x%x
+#>>>>>>64 ubyte =0x80 \b, physical drive 0x%x=80 (usual harddisk)
+>>>>>>64 ubyte&0x7F >0 \b, physical drive 0x%x
+#>>>>>>64 ubyte =0 \b, physical drive 0x%x=0 (usual floppy)
+>>>>>>65 ubyte >0 \b, reserved 0x%x
+>>>>>>66 ubyte >0x29 \b, dos < 4.0 BootSector (0x%x)
+>>>>>>66 ubyte <0x29 \b, dos < 4.0 BootSector (0x%x)
+>>>>>>66 ubyte =0x29
+>>>>>>>67 ulelong x \b, serial number 0x%x
+>>>>>>>71 string <NO\ NAME \b, label: "%11.11s"
+>>>>>>71 string >NO\ NAME \b, label: "%11.11s"
+>>>>>>71 string =NO\ NAME \b, unlabeled
+### FATs end
+>0x200 lelong 0x82564557 \b, BSD disklabel
+
+# Minix filesystems - Juan Cespedes <cespedes@debian.org>
+0x410 leshort 0x137f Minix filesystem
+0x410 beshort 0x137f Minix filesystem (big endian),
+>0x402 beshort !0 \b, %d zones
+>0x1e string minix \b, bootable
+0x410 leshort 0x138f Minix filesystem, 30 char names
+0x410 leshort 0x2468 Minix filesystem, version 2
+0x410 leshort 0x2478 Minix filesystem, version 2, 30 char names
+
+# romfs filesystems - Juan Cespedes <cespedes@debian.org>
+0 string -rom1fs-\0 romfs filesystem, version 1
+>8 belong x %d bytes,
+>16 string x named %s.
+
+# netboot image - Juan Cespedes <cespedes@debian.org>
+0 lelong 0x1b031336L Netboot image,
+>4 lelong&0xFFFFFF00 0
+>>4 lelong&0x100 0x000 mode 2
+>>4 lelong&0x100 0x100 mode 3
+>4 lelong&0xFFFFFF00 !0 unknown mode
+
+0x18b string OS/2 OS/2 Boot Manager
+
+9564 lelong 0x00011954 Unix Fast File system (little-endian),
+>8404 string x last mounted on %s,
+#>9504 ledate x last checked at %s,
+>8224 ledate x last written at %s,
+>8401 byte x clean flag %d,
+>8228 lelong x number of blocks %d,
+>8232 lelong x number of data blocks %d,
+>8236 lelong x number of cylinder groups %d,
+>8240 lelong x block size %d,
+>8244 lelong x fragment size %d,
+>8252 lelong x minimum percentage of free blocks %d,
+>8256 lelong x rotational delay %dms,
+>8260 lelong x disk rotational speed %drps,
+>8320 lelong 0 TIME optimization
+>8320 lelong 1 SPACE optimization
+
+9564 belong 0x00011954 Unix Fast File system (big-endian),
+>7168 long 0x4c41424c Apple UFS Volume
+>>7186 string x named %s,
+>>7176 belong x volume label version %d,
+>>7180 bedate x created on %s,
+>8404 string x last mounted on %s,
+#>9504 bedate x last checked at %s,
+>8224 bedate x last written at %s,
+>8401 byte x clean flag %d,
+>8228 belong x number of blocks %d,
+>8232 belong x number of data blocks %d,
+>8236 belong x number of cylinder groups %d,
+>8240 belong x block size %d,
+>8244 belong x fragment size %d,
+>8252 belong x minimum percentage of free blocks %d,
+>8256 belong x rotational delay %dms,
+>8260 belong x disk rotational speed %drps,
+>8320 belong 0 TIME optimization
+>8320 belong 1 SPACE optimization
+
+# ext2/ext3 filesystems - Andreas Dilger <adilger@turbolabs.com>
+0x438 leshort 0xEF53 Linux
+>0x44c lelong x rev %d
+>0x43e leshort x \b.%d
+>0x45c lelong ^0x0000004 ext2 filesystem data
+>>0x43a leshort ^0x0000001 (mounted or unclean)
+>0x45c lelong &0x0000004 ext3 filesystem data
+>>0x460 lelong &0x0000004 (needs journal recovery)
+>0x43a leshort &0x0000002 (errors)
+>0x460 lelong &0x0000001 (compressed)
+#>0x460 lelong &0x0000002 (filetype)
+#>0x464 lelong &0x0000001 (sparse_super)
+>0x464 lelong &0x0000002 (large files)
+
+# SGI disk labels - Nathan Scott <nathans@debian.org>
+0 belong 0x0BE5A941 SGI disk label (volume header)
+
+# SGI XFS filesystem - Nathan Scott <nathans@debian.org>
+0 belong 0x58465342 SGI XFS filesystem data
+>0x4 belong x (blksz %d,
+>0x68 beshort x inosz %d,
+>0x64 beshort ^0x2004 v1 dirs)
+>0x64 beshort &0x2004 v2 dirs)
+
+############################################################################
+# Minix-ST kernel floppy
+0x800 belong 0x46fc2700 Atari-ST Minix kernel image
+>19 string \240\5\371\5\0\011\0\2\0 \b, 720k floppy
+>19 string \320\2\370\5\0\011\0\1\0 \b, 360k floppy
+
+############################################################################
+# Hmmm, is this a better way of detecting _standard_ floppy images ?
+19 string \320\2\360\3\0\011\0\1\0 DOS floppy 360k
+>0x1FE leshort 0xAA55 \b, x86 hard disk boot sector
+19 string \240\5\371\3\0\011\0\2\0 DOS floppy 720k
+>0x1FE leshort 0xAA55 \b, x86 hard disk boot sector
+19 string \100\013\360\011\0\022\0\2\0 DOS floppy 1440k
+>0x1FE leshort 0xAA55 \b, x86 hard disk boot sector
+
+19 string \240\5\371\5\0\011\0\2\0 DOS floppy 720k, IBM
+>0x1FE leshort 0xAA55 \b, x86 hard disk boot sector
+19 string \100\013\371\5\0\011\0\2\0 DOS floppy 1440k, mkdosfs
+>0x1FE leshort 0xAA55 \b, x86 hard disk boot sector
+
+19 string \320\2\370\5\0\011\0\1\0 Atari-ST floppy 360k
+19 string \240\5\371\5\0\011\0\2\0 Atari-ST floppy 720k
+
+# Valid media descriptor bytes for MS-DOS:
+#
+# Byte Capacity Media Size and Type
+# -------------------------------------------------
+#
+# F0 2.88 MB 3.5-inch, 2-sided, 36-sector
+# F0 1.44 MB 3.5-inch, 2-sided, 18-sector
+# F9 720K 3.5-inch, 2-sided, 9-sector
+# F9 1.2 MB 5.25-inch, 2-sided, 15-sector
+# FD 360K 5.25-inch, 2-sided, 9-sector
+# FF 320K 5.25-inch, 2-sided, 8-sector
+# FC 180K 5.25-inch, 1-sided, 9-sector
+# FE 160K 5.25-inch, 1-sided, 8-sector
+# FE 250K 8-inch, 1-sided, single-density
+# FD 500K 8-inch, 2-sided, single-density
+# FE 1.2 MB 8-inch, 2-sided, double-density
+# F8 ----- Fixed disk
+#
+# FC xxxK Apricot 70x1x9 boot disk.
+#
+# Originally a bitmap:
+# xxxxxxx0 Not two sided
+# xxxxxxx1 Double sided
+# xxxxxx0x Not 8 SPT
+# xxxxxx1x 8 SPT
+# xxxxx0xx Not Removable drive
+# xxxxx1xx Removable drive
+# 11111xxx Must be one.
+#
+# But now it's rather random:
+# 111111xx Low density disk
+# 00 SS, Not 8 SPT
+# 01 DS, Not 8 SPT
+# 10 SS, 8 SPT
+# 11 DS, 8 SPT
+#
+# 11111001 Double density 3½ floppy disk, high density 5¼
+# 11110000 High density 3½ floppy disk
+# 11111000 Hard disk any format
+#
+
+# 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/usr.bin/file/magdir/flash b/usr.bin/file/magdir/flash
new file mode 100644
index 00000000000..7d76df55110
--- /dev/null
+++ b/usr.bin/file/magdir/flash
@@ -0,0 +1,16 @@
+# $OpenBSD: flash,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# flash: file(1) magic for Macromedia Flash file format
+#
+# See
+#
+# http://www.macromedia.com/software/flash/open/
+#
+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/usr.bin/file/magdir/fonts b/usr.bin/file/magdir/fonts
index dd7907f812b..f38e5f93ccf 100644
--- a/usr.bin/file/magdir/fonts
+++ b/usr.bin/file/magdir/fonts
@@ -1,3 +1,4 @@
+# $OpenBSD: fonts,v 1.3 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# fonts: file(1) magic for font data
@@ -7,9 +8,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
@@ -24,3 +25,38 @@
>12 byte 0x02 \b, LSB first
>12 byte 0x0a \b, MSB first
0 string D1.0\015 X11 Speedo font data
+
+#------------------------------------------------------------------------------
+# FIGlet fonts and controlfiles
+# From figmagic supplied with Figlet version 2.2
+# "David E. O'Brien" <obrien@FreeBSD.ORG>
+0 string flf FIGlet font
+>3 string >2a version %-2.2s
+0 string flc FIGlet controlfile
+>3 string >2a version %-2.2s
+
+# libGrx graphics lib fonts, from Albert Cahalan (acahalan@cs.uml.edu)
+# Used with djgpp (DOS Gnu C++), sometimes Linux or Turbo C++
+0 belong 0x14025919 libGrx font data,
+>8 leshort x %dx
+>10 leshort x \b%d
+>40 string x %s
+# Misc. DOS VGA fonts, from Albert Cahalan (acahalan@cs.uml.edu)
+0 belong 0xff464f4e DOS code page font data collection
+7 belong 0x00454741 DOS code page font data
+7 belong 0x00564944 DOS code page font data (from Linux?)
+4098 string DOSFONT DOSFONT2 encrypted font data
+
+# 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/usr.bin/file/magdir/frame b/usr.bin/file/magdir/frame
index 47e48979d54..4b3405a3657 100644
--- a/usr.bin/file/magdir/frame
+++ b/usr.bin/file/magdir/frame
@@ -1,3 +1,4 @@
+# $OpenBSD: frame,v 1.3 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# frame: file(1) magic for FrameMaker files
@@ -6,6 +7,8 @@
# copyright, but this file is "published" as witness the following:
#
0 string \<MakerFile FrameMaker document
+>11 string 5.5 (5.5
+>11 string 5.0 (5.0
>11 string 4.0 (4.0
>11 string 3.0 (3.0
>11 string 2.0 (2.0
diff --git a/usr.bin/file/magdir/freebsd b/usr.bin/file/magdir/freebsd
index 2370c257841..eab028b6e56 100644
--- a/usr.bin/file/magdir/freebsd
+++ b/usr.bin/file/magdir/freebsd
@@ -1,3 +1,4 @@
+# $OpenBSD: freebsd,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# freebsd: file(1) magic for FreeBSD objects
@@ -126,5 +127,18 @@
# /var/run/ld.so.hints
# What are you laughing about?
-0 lelong 011421044151 ld.so hints file
->4 lelong >0 (version %d)
+0 lelong 011421044151 ld.so hints file (Little Endian
+>4 lelong >0 \b, version %d)
+>4 belong <=0 \b)
+0 belong 011421044151 ld.so hints file (Big Endian
+>4 belong >0 \b, version %d)
+>4 belong <=0 \b)
+
+#
+# Files generated by FreeBSD scrshot(1)/vidcontrol(1) utilities
+#
+0 string SCRSHOT_ scrshot(1) screenshot,
+>8 byte x version %d,
+>9 byte 2 %d bytes in header,
+>>10 byte x %d chars wide by
+>>11 byte x %d chars high
diff --git a/usr.bin/file/magdir/fsav b/usr.bin/file/magdir/fsav
new file mode 100644
index 00000000000..92eb5e078e1
--- /dev/null
+++ b/usr.bin/file/magdir/fsav
@@ -0,0 +1,28 @@
+# $OpenBSD: fsav,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# fsav: file(1) magic for datafellows fsav virus definition files
+# Anthon van der Neut (anthon@mnt.org)
+0 beshort 0x1575 fsav (linux) macro virus
+>8 leshort >0 (%d-
+>11 byte >0 \b%02d-
+>10 byte >0 \b%02d)
+
+# comment this out for now because it regognizes every file where
+# the eighth character is \n
+#8 byte 0x0a
+#>12 byte 0x07
+#>11 leshort >0 fsav (linux) virus (%d-
+#>10 byte 0 \b01-
+#>10 byte 1 \b02-
+#>10 byte 2 \b03-
+#>10 byte 3 \b04-
+#>10 byte 4 \b05-
+#>10 byte 5 \b06-
+#>10 byte 6 \b07-
+#>10 byte 7 \b08-
+#>10 byte 8 \b08-
+#>10 byte 9 \b10-
+#>10 byte 10 \b11-
+#>10 byte 11 \b12-
+#>9 byte >0 \b%02d)
diff --git a/usr.bin/file/magdir/games b/usr.bin/file/magdir/games
new file mode 100644
index 00000000000..aff8cef4c9e
--- /dev/null
+++ b/usr.bin/file/magdir/games
@@ -0,0 +1,159 @@
+# $OpenBSD: games,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# 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/usr.bin/file/magdir/gcc b/usr.bin/file/magdir/gcc
new file mode 100644
index 00000000000..f2c72541200
--- /dev/null
+++ b/usr.bin/file/magdir/gcc
@@ -0,0 +1,17 @@
+# $OpenBSD: gcc,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# 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/usr.bin/file/magdir/gimp b/usr.bin/file/magdir/gimp
new file mode 100644
index 00000000000..a9b7a58d54c
--- /dev/null
+++ b/usr.bin/file/magdir/gimp
@@ -0,0 +1,38 @@
+# $OpenBSD: gimp,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# GIMP Gradient: file(1) magic for the GIMP's gradient data files
+# by Federico Mena <federico@nuclecu.unam.mx>
+
+0 string GIMP\ Gradient GIMP gradient data
+
+#------------------------------------------------------------------------------
+# XCF: file(1) magic for the XCF image format used in the GIMP developed
+# by Spencer Kimball and Peter Mattis
+# ('Bucky' LaDieu, nega@vt.edu)
+
+0 string gimp\ xcf GIMP XCF image data,
+>9 string file version 0,
+>9 string v version
+>>10 string >\0 %s,
+>14 belong x %lu x
+>18 belong x %lu,
+>22 belong 0 RGB Color
+>22 belong 1 Greyscale
+>22 belong 2 Indexed Color
+>22 belong >2 Unknown Image Type.
+
+#------------------------------------------------------------------------------
+# XCF: file(1) magic for the patterns used in the GIMP, developed
+# by Spencer Kimball and Peter Mattis
+# ('Bucky' LaDieu, nega@vt.edu)
+
+20 string GPAT GIMP pattern data,
+>24 string x %s
+
+#------------------------------------------------------------------------------
+# XCF: file(1) magic for the brushes used in the GIMP, developed
+# by Spencer Kimball and Peter Mattis
+# ('Bucky' LaDieu, nega@vt.edu)
+
+20 string GIMP GIMP brush data
diff --git a/usr.bin/file/magdir/gnu b/usr.bin/file/magdir/gnu
new file mode 100644
index 00000000000..e7a19e3101c
--- /dev/null
+++ b/usr.bin/file/magdir/gnu
@@ -0,0 +1,44 @@
+# $OpenBSD: gnu,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#
+# GNU nlsutils message catalog file format
+#
+0 string \336\22\4\225 GNU message catalog (little endian),
+>4 lelong x revision %d,
+>8 lelong x %d messages
+0 string \225\4\22\336 GNU message catalog (big endian),
+>4 belong x revision %d,
+>8 belong x %d messages
+# 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
+
+#------------------------------------------------------------------------------
+# 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/usr.bin/file/magdir/grace b/usr.bin/file/magdir/grace
new file mode 100644
index 00000000000..3d5a6774deb
--- /dev/null
+++ b/usr.bin/file/magdir/grace
@@ -0,0 +1,21 @@
+# $OpenBSD: grace,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# ACE/gr and Grace type files - PLEASE DO NOT REMOVE THIS LINE
+#
+# ACE/gr binary
+0 string \000\000\0001\000\000\0000\000\000\0000\000\000\0002\000\000\0000\000\000\0000\000\000\0003 old ACE/gr binary file
+>39 byte >0 - version %c
+# ACE/gr ascii
+0 string #\ xvgr\ parameter\ file ACE/gr ascii file
+0 string #\ xmgr\ parameter\ file ACE/gr ascii file
+0 string #\ ACE/gr\ parameter\ file ACE/gr ascii file
+# Grace projects
+0 string #\ Grace\ project\ file Grace project file
+>23 string @version\ (version
+>>32 byte >0 %c
+>>33 string >\0 \b.%.2s
+>>35 string >\0 \b.%.2s)
+# ACE/gr fit description files
+0 string #\ ACE/gr\ fit\ description\ ACE/gr fit description file
+# end of ACE/gr and Grace type files - PLEASE DO NOT REMOVE THIS LINE
diff --git a/usr.bin/file/magdir/gringotts b/usr.bin/file/magdir/gringotts
new file mode 100644
index 00000000000..17da9a7765d
--- /dev/null
+++ b/usr.bin/file/magdir/gringotts
@@ -0,0 +1,48 @@
+# $OpenBSD: gringotts,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# gringotts: file(1) magic for Gringotts
+# http://devel.pluto.linux.it/projects/Gringotts/
+# author: Germano Rizzo <mano@pluto.linux.it>
+#GRG3????Y
+0 string GRG Gringotts data file
+#file format 1
+>3 string 1 v.1, MCRYPT S2K, SERPENT crypt, SHA-256 hash, ZLib lvl.9
+#file format 2
+>3 string 2 v.2, MCRYPT S2K,
+>>8 byte&0x70 0x00 RIJNDAEL-128 crypt,
+>>8 byte&0x70 0x10 SERPENT crypt,
+>>8 byte&0x70 0x20 TWOFISH crypt,
+>>8 byte&0x70 0x30 CAST-256 crypt,
+>>8 byte&0x70 0x40 SAFER+ crypt,
+>>8 byte&0x70 0x50 LOKI97 crypt,
+>>8 byte&0x70 0x60 3DES crypt,
+>>8 byte&0x70 0x70 RIJNDAEL-256 crypt,
+>>8 byte&0x08 0x00 SHA1 hash,
+>>8 byte&0x08 0x08 RIPEMD-160 hash,
+>>8 byte&0x04 0x00 ZLib
+>>8 byte&0x04 0x04 BZip2
+>>8 byte&0x03 0x00 lvl.0
+>>8 byte&0x03 0x01 lvl.3
+>>8 byte&0x03 0x02 lvl.6
+>>8 byte&0x03 0x03 lvl.9
+#file format 3
+>3 string 3 v.3, OpenPGP S2K,
+>>8 byte&0x70 0x00 RIJNDAEL-128 crypt,
+>>8 byte&0x70 0x10 SERPENT crypt,
+>>8 byte&0x70 0x20 TWOFISH crypt,
+>>8 byte&0x70 0x30 CAST-256 crypt,
+>>8 byte&0x70 0x40 SAFER+ crypt,
+>>8 byte&0x70 0x50 LOKI97 crypt,
+>>8 byte&0x70 0x60 3DES crypt,
+>>8 byte&0x70 0x70 RIJNDAEL-256 crypt,
+>>8 byte&0x08 0x00 SHA1 hash,
+>>8 byte&0x08 0x08 RIPEMD-160 hash,
+>>8 byte&0x04 0x00 ZLib
+>>8 byte&0x04 0x04 BZip2
+>>8 byte&0x03 0x00 lvl.0
+>>8 byte&0x03 0x01 lvl.3
+>>8 byte&0x03 0x02 lvl.6
+>>8 byte&0x03 0x03 lvl.9
+#file format >3
+>3 string >3 v.%.1s (unknown details)
diff --git a/usr.bin/file/magdir/hdf b/usr.bin/file/magdir/hdf
new file mode 100644
index 00000000000..d93cdf4296b
--- /dev/null
+++ b/usr.bin/file/magdir/hdf
@@ -0,0 +1,8 @@
+# $OpenBSD: hdf,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# Hierarchical Data Format, used to facilitate scientific data exchange
+# specifications at http://hdf.ncsa.uiuc.edu/
+
+0 belong 0x0e031301 Hierarchical Data Format (version 4) data
+0 string \211HDF\r\n\032 Hierarchical Data Format (version 5) data
diff --git a/usr.bin/file/magdir/hitachi-sh b/usr.bin/file/magdir/hitachi-sh
new file mode 100644
index 00000000000..d2176fedbeb
--- /dev/null
+++ b/usr.bin/file/magdir/hitachi-sh
@@ -0,0 +1,19 @@
+# $OpenBSD: hitachi-sh,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# hitach-sh: file(1) magic for Hitachi Super-H
+#
+# Super-H COFF
+#
+0 beshort 0x0500 Hitachi SH big-endian COFF
+>18 beshort&0x0002 =0x0000 object
+>18 beshort&0x0002 =0x0002 executable
+>18 beshort&0x0008 =0x0008 \b, stripped
+>18 beshort&0x0008 =0x0000 \b, not stripped
+#
+0 leshort 0x0550 Hitachi SH little-endian COFF
+>18 leshort&0x0002 =0x0000 object
+>18 leshort&0x0002 =0x0002 executable
+>18 leshort&0x0008 =0x0008 \b, stripped
+>18 leshort&0x0008 =0x0000 \b, not stripped
+
diff --git a/usr.bin/file/magdir/hp b/usr.bin/file/magdir/hp
index 933f3dab38a..d5ab72db6a6 100644
--- a/usr.bin/file/magdir/hp
+++ b/usr.bin/file/magdir/hp
@@ -1,3 +1,4 @@
+# $OpenBSD: hp,v 1.5 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# hp: file(1) magic for Hewlett Packard machines (see also "printer")
diff --git a/usr.bin/file/magdir/human68k b/usr.bin/file/magdir/human68k
new file mode 100644
index 00000000000..e74a0411d0c
--- /dev/null
+++ b/usr.bin/file/magdir/human68k
@@ -0,0 +1,26 @@
+# $OpenBSD: human68k,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# human68k: file(1) magic for Human68k (X680x0 DOS) binary formats
+# 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/usr.bin/file/magdir/ibm370 b/usr.bin/file/magdir/ibm370
index 8cd9da27ae6..c160ef642ca 100644
--- a/usr.bin/file/magdir/ibm370
+++ b/usr.bin/file/magdir/ibm370
@@ -1,3 +1,4 @@
+# $OpenBSD: ibm370,v 1.4 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# ibm370: file(1) magic for IBM 370 and compatibles.
diff --git a/usr.bin/file/magdir/ibm6000 b/usr.bin/file/magdir/ibm6000
index 8e1077b9b8c..44680226cea 100644
--- a/usr.bin/file/magdir/ibm6000
+++ b/usr.bin/file/magdir/ibm6000
@@ -1,3 +1,4 @@
+# $OpenBSD: ibm6000,v 1.4 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# ibm6000: file(1) magic for RS/6000 and the RT PC.
@@ -15,3 +16,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/usr.bin/file/magdir/iff b/usr.bin/file/magdir/iff
index 68d1b79bd86..ec9f60c8f4f 100644
--- a/usr.bin/file/magdir/iff
+++ b/usr.bin/file/magdir/iff
@@ -1,3 +1,4 @@
+# $OpenBSD: iff,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# iff: file(1) magic for Interchange File Format (see also "audio" & "images")
@@ -16,6 +17,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
diff --git a/usr.bin/file/magdir/images b/usr.bin/file/magdir/images
index bb5d98f9d3d..7c580803c3f 100644
--- a/usr.bin/file/magdir/images
+++ b/usr.bin/file/magdir/images
@@ -1,3 +1,4 @@
+# $OpenBSD: images,v 1.7 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# images: file(1) magic for image formats (see also "iff")
@@ -17,10 +18,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 +165,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
@@ -207,9 +215,10 @@
#>28 belong >0 colormap is %d bytes long
# SGI image file format, from Daniel Quinlan (quinlan@yggdrasil.com)
-# See:
+#
+# See
# http://reality.sgi.com/grafica/sgiimage.html
-# ftp://ftp.sgi.com/graphics/SGIIMAGESPEC
+#
0 beshort 474 SGI image data
#>2 byte 0 \b, verbatim
>2 byte 1 \b, RLE
@@ -268,11 +277,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
@@ -358,3 +367,151 @@
>>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
+
diff --git a/usr.bin/file/magdir/intel b/usr.bin/file/magdir/intel
index d450e266169..d1fc1142228 100644
--- a/usr.bin/file/magdir/intel
+++ b/usr.bin/file/magdir/intel
@@ -1,3 +1,4 @@
+# $OpenBSD: intel,v 1.3 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# intel: file(1) magic for x86 Unix
@@ -33,3 +34,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/usr.bin/file/magdir/interleaf b/usr.bin/file/magdir/interleaf
index 3eea3cff269..ea0eb5fca26 100644
--- a/usr.bin/file/magdir/interleaf
+++ b/usr.bin/file/magdir/interleaf
@@ -1,3 +1,4 @@
+# $OpenBSD: interleaf,v 1.3 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# interleaf: file(1) magic for InterLeaf TPS:
diff --git a/usr.bin/file/magdir/island b/usr.bin/file/magdir/island
new file mode 100644
index 00000000000..bbffa3bc3af
--- /dev/null
+++ b/usr.bin/file/magdir/island
@@ -0,0 +1,10 @@
+# $OpenBSD: island,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# island: file(1) magic for IslandWite/IslandDraw, from SunOS 5.5.1
+# "/etc/magic":
+# From: guy@netapp.com (Guy Harris)
+#
+4 string pgscriptver IslandWrite document
+13 string DrawFile IslandDraw document
+
diff --git a/usr.bin/file/magdir/ispell b/usr.bin/file/magdir/ispell
index 3c6bcdc883a..4ea8d5cb6d8 100644
--- a/usr.bin/file/magdir/ispell
+++ b/usr.bin/file/magdir/ispell
@@ -1,3 +1,4 @@
+# $OpenBSD: ispell,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# ispell: file(1) magic for ispell
@@ -52,3 +53,11 @@
>2 beshort 0x0E 8-bit, capitalization, 256 flags
>2 beshort 0x0F 7-bit, capitalization, 256 flags
>4 beshort >0 and %d string characters
+# ispell 4.0 hash files kromJx <kromJx@crosswinds.net>
+# Ispell 4.0
+0 string ISPL ispell
+>4 long x hash file version %d,
+>8 long x lexletters %d,
+>12 long x lexsize %d,
+>16 long x hashsize %d,
+>20 long x stblsize %d
diff --git a/usr.bin/file/magdir/java b/usr.bin/file/magdir/java
index 0b75e7cb720..125754196ba 100644
--- a/usr.bin/file/magdir/java
+++ b/usr.bin/file/magdir/java
@@ -1,7 +1,13 @@
-# $OpenBSD: java,v 1.2 2001/01/29 01:57:57 niklas Exp $
+# $OpenBSD: java,v 1.3 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------
# Java ByteCode
# From Larry Schwimmer (schwim@cs.stanford.edu)
-0 belong 0xcafebabe
->4 belong 0x0003002d Java bytecode
+0 belong 0xcafebabe compiled Java class data,
+>6 beshort x version %d.
+>4 beshort x \b%d
+#------------------------------------------------------------
+# Java serialization
+# From Martin Pool (m.pool@pharos.com.au)
+0 beshort 0xaced Java serialization data
+>2 beshort >0x0004 \b, version %d
diff --git a/usr.bin/file/magdir/jpeg b/usr.bin/file/magdir/jpeg
index bedc6c99952..b4ce7676bb2 100644
--- a/usr.bin/file/magdir/jpeg
+++ b/usr.bin/file/magdir/jpeg
@@ -1,3 +1,4 @@
+# $OpenBSD: jpeg,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# JPEG images
@@ -19,9 +20,9 @@
>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)
+#>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
@@ -54,8 +55,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/usr.bin/file/magdir/karma b/usr.bin/file/magdir/karma
index e256abfd05a..4a39844142b 100644
--- a/usr.bin/file/magdir/karma
+++ b/usr.bin/file/magdir/karma
@@ -1,3 +1,4 @@
+# $OpenBSD: karma,v 1.4 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# karma: file(1) magic for Karma data files
@@ -5,4 +6,4 @@
# From <rgooch@atnf.csiro.au>
0 string KarmaRHD Version Karma Data Structure Version
->16 long x %lu
+>16 belong x %lu
diff --git a/usr.bin/file/magdir/lecter b/usr.bin/file/magdir/lecter
new file mode 100644
index 00000000000..c5081d8e468
--- /dev/null
+++ b/usr.bin/file/magdir/lecter
@@ -0,0 +1,6 @@
+# $OpenBSD: lecter,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# DEC SRC Virtual Paper: Lectern files
+# Karl M. Hegbloom <karlheg@inetarena.com>
+0 string lect DEC SRC Virtual Paper Lectern file
diff --git a/usr.bin/file/magdir/lex b/usr.bin/file/magdir/lex
index 7b6d0f74a40..c881e1e2b71 100644
--- a/usr.bin/file/magdir/lex
+++ b/usr.bin/file/magdir/lex
@@ -1,3 +1,4 @@
+# $OpenBSD: lex,v 1.3 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# lex: file(1) magic for lex
diff --git a/usr.bin/file/magdir/lif b/usr.bin/file/magdir/lif
index 7b430a4c553..b8cc01c9013 100644
--- a/usr.bin/file/magdir/lif
+++ b/usr.bin/file/magdir/lif
@@ -1,7 +1,8 @@
+# $OpenBSD: lif,v 1.3 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# lif: file(1) magic for lif
#
-# XXX - byte order? (Probably beshort, Daniel Quinlan <quinlan@yggdrasil.com>)
+# (Daniel Quinlan <quinlan@yggdrasil.com>)
#
0 beshort 0x8000 lif file
diff --git a/usr.bin/file/magdir/linux b/usr.bin/file/magdir/linux
index 75a2a2b98b6..c69a9cce985 100644
--- a/usr.bin/file/magdir/linux
+++ b/usr.bin/file/magdir/linux
@@ -1,3 +1,4 @@
+# $OpenBSD: linux,v 1.4 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# linux: file(1) magic for Linux files
@@ -23,9 +24,18 @@
#
0 string \007\001\000 Linux/i386 object file
>20 lelong >0x1020 \b, DLL library
-# message catalogs, from Mitchum DSouza <m.dsouza@mrc-apu.cam.ac.uk>
-0 string *nazgul* Linux compiled message catalog
->8 lelong >0 \b, version %ld
+# Linux-8086 stuff:
+0 string \01\03\020\04 Linux-8086 impure executable
+>28 long !0 not stripped
+0 string \01\03\040\04 Linux-8086 executable
+>28 long !0 not stripped
+#
+0 string \243\206\001\0 Linux-8086 object file
+#
+0 string \01\03\020\20 Minix-386 impure executable
+>28 long !0 not stripped
+0 string \01\03\040\20 Minix-386 executable
+>28 long !0 not stripped
# core dump file, from Bill Reynolds <bill@goshawk.lanl.gov>
216 lelong 0421 Linux/i386 core file
>220 string >\0 of '%s'
@@ -35,11 +45,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 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,
@@ -49,6 +54,10 @@
>3 byte >0 8x%d
# Linux swap file, from Daniel Quinlan <quinlan@yggdrasil.com>
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
@@ -63,11 +72,104 @@
>8 long >0 not stripped
>8 long 0 stripped
>23 leshort >0 - version %ld.
-# linux Kernel images version 1.3.80 - ?
-# from Axel Kohlmeyer <akohlmey@rincewind.chemie.uni-ulm.de>
-0 belong 0xb8c0078e Linux/x86 kernel image,
->0x048c byte 0x31
->>0x048c string x version %s
->0x0493 byte 0x31
->>0x0493 string x version %s
#
+# Linux kernel boot images, from Albert Cahalan <acahalan@cs.uml.edu>
+# 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
+# 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
+
+# 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
+
+0 string \xb8\xc0\x07\x8e\xd8\xb8\x00\x90 Linux
+>497 leshort 0 x86 boot sector
+>>514 belong 0x8e of a kernel from the dawn of time!
+>>514 belong 0x908ed8b4 version 0.99-1.1.42
+>>514 belong 0x908ed8b8 for memtest86
+
+>497 leshort !0 x86 kernel
+>>504 leshort >0 RAMdisksize=%u KB
+>>502 leshort >0 swap=0x%X
+>>508 leshort >0 root=0x%X
+>>>498 leshort 1 \b-ro
+>>>498 leshort 0 \b-rw
+>>506 leshort 0xFFFF vga=normal
+>>506 leshort 0xFFFE vga=extended
+>>506 leshort 0xFFFD vga=ask
+>>506 leshort >0 vga=%d
+>>514 belong 0x908ed881 version 1.1.43-1.1.45
+>>514 belong 0x15b281cd
+>>>0xa8e belong 0x55AA5a5a version 1.1.46-1.2.13,1.3.0
+>>>0xa99 belong 0x55AA5a5a version 1.3.1,2
+>>>0xaa3 belong 0x55AA5a5a version 1.3.3-1.3.30
+>>>0xaa6 belong 0x55AA5a5a version 1.3.31-1.3.41
+>>>0xb2b belong 0x55AA5a5a version 1.3.42-1.3.45
+>>>0xaf7 belong 0x55AA5a5a version 1.3.46-1.3.72
+>>514 string HdrS
+>>>518 leshort >0x1FF
+>>>>529 byte 0 \b, zImage
+>>>>529 byte 1 \b, bzImage
+>>>>(526.s+0x200) string >\0 \b, version %s
+
+# Linux boot sector thefts.
+0 belong 0xb8c0078e Linux
+>0x1e6 belong 0x454c4b53 ELKS Kernel
+>0x1e6 belong !0x454c4b53 style boot sector
+
+############################################################################
+# Linux 8086 executable
+0 lelong&0xFF0000FF 0xC30000E9 Linux-Dev86 executable, headerless
+>5 string .
+>>4 string >\0 \b, libc version %s
+
+0 lelong&0xFF00FFFF 0x4000301 Linux-8086 executable
+>2 byte&0x01 !0 \b, unmapped zero page
+>2 byte&0x20 0 \b, impure
+>2 byte&0x20 !0
+>>2 byte&0x10 !0 \b, A_EXEC
+>2 byte&0x02 !0 \b, A_PAL
+>2 byte&0x04 !0 \b, A_NSYM
+>2 byte&0x08 !0 \b, A_STAND
+>2 byte&0x40 !0 \b, A_PURE
+>2 byte&0x80 !0 \b, A_TOVLY
+>28 long !0 \b, not stripped
+>37 string .
+>>36 string >\0 \b, libc version %s
+
+# 0 lelong&0xFF00FFFF 0x10000301 ld86 I80386 executable
+# 0 lelong&0xFF00FFFF 0xB000301 ld86 M68K executable
+# 0 lelong&0xFF00FFFF 0xC000301 ld86 NS16K executable
+# 0 lelong&0xFF00FFFF 0x17000301 ld86 SPARC executable
+
diff --git a/usr.bin/file/magdir/lisp b/usr.bin/file/magdir/lisp
index 736e327297e..e4eb5805cfb 100644
--- a/usr.bin/file/magdir/lisp
+++ b/usr.bin/file/magdir/lisp
@@ -1,14 +1,33 @@
+# $OpenBSD: lisp,v 1.3 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# lisp: file(1) magic for lisp programs
#
# various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com)
+
+# This is a guess, but a good one.
0 string ;; Lisp/Scheme program text
+
# Emacs 18 - this is always correct, but not very magical.
-0 string \012( byte-compiled Emacs-Lisp program data
-# Emacs 19
-0 string ;ELC\023\000\000\000 byte-compiled Emacs-Lisp program data
-# clisp types, from Jim Wise (jimw@fornost.turner.com)
+0 string \012( Emacs v18 byte-compiled Lisp data
+# Emacs 19+ - ver. recognition added by Ian Springer
+# Also applies to XEmacs 19+ .elc files; could tell them apart if we had regexp
+# support or similar - Chris Chittleborough <cchittleborough@yahoo.com.au>
+0 string ;ELC
+>4 byte >19
+>4 byte <32 Emacs/XEmacs v%d byte-compiled Lisp data
+
+# Files produced by CLISP Common Lisp From: Bruno Haible <haible@ilog.fr>
0 string (SYSTEM::VERSION\040' CLISP byte-compiled Lisp program text
0 long 0x70768BD2 CLISP memory image data
-0 long 0xD28B7670 CLISP memory image data, other
+0 long 0xD28B7670 CLISP memory image data, other endian
+
+# Files produced by GNU gettext
+0 long 0xDE120495 GNU-format message catalog data
+0 long 0x950412DE GNU-format message catalog data
+
+#.com and .bin for MIT scheme
+0 string \372\372\372\372 MIT scheme (library?)
+
+# From: David Allouche <david@allouche.net>
+0 string \<TeXmacs| TeXmacs document text
diff --git a/usr.bin/file/magdir/mach b/usr.bin/file/magdir/mach
index 0c55fdabf00..2d671c0570c 100644
--- a/usr.bin/file/magdir/mach
+++ b/usr.bin/file/magdir/mach
@@ -1,20 +1,23 @@
-# $OpenBSD: mach,v 1.2 2001/01/29 01:57:57 niklas Exp $
+# $OpenBSD: mach,v 1.3 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# mach file description
#
-0 belong 0xcafebabe mach-o fat file
+0 belong 0xcafebabe Mach-O fat file
>4 belong 1 with 1 architecture
>4 belong >1
>>4 belong x with %ld architectures
#
-0 belong 0xfeedface mach-o
+0 belong 0xfeedface Mach-O
>12 belong 1 object
>12 belong 2 executable
>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
@@ -24,6 +27,11 @@
>4 belong 4 ns32032
>4 belong 5 ns32332
>4 belong 6 for m68k architecture
+# from NeXTstep 3.0 <mach/machine.h>
+# i.e. mc680x0_all, ignore
+# >>8 belong 1 (mc68030)
+>>8 belong 2 (mc68040)
+>>8 belong 3 (mc68030 only)
>4 belong 7 i386
>4 belong 8 mips
>4 belong 9 ns32532
@@ -35,6 +43,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/usr.bin/file/magdir/macintosh b/usr.bin/file/magdir/macintosh
index d2503831bad..e021398d791 100644
--- a/usr.bin/file/magdir/macintosh
+++ b/usr.bin/file/magdir/macintosh
@@ -1,3 +1,4 @@
+# $OpenBSD: macintosh,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# macintosh: file(1) magic for Apple Macintosh file formats
diff --git a/usr.bin/file/magdir/magic b/usr.bin/file/magdir/magic
index 4a639c6579c..9818e522b9a 100644
--- a/usr.bin/file/magdir/magic
+++ b/usr.bin/file/magdir/magic
@@ -1,3 +1,4 @@
+# $OpenBSD: magic,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# magic: file(1) magic for magic files
diff --git a/usr.bin/file/magdir/mail.news b/usr.bin/file/magdir/mail.news
index bd3fd2de43a..8ac7cbfff69 100644
--- a/usr.bin/file/magdir/mail.news
+++ b/usr.bin/file/magdir/mail.news
@@ -1,3 +1,4 @@
+# $OpenBSD: mail.news,v 1.4 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# mail.news: file(1) magic for mail and news
@@ -18,4 +19,23 @@
0 string BABYL Emacs RMAIL text
0 string Received: RFC 822 mail text
0 string MIME-Version: MIME entity text
-0 string Content- MIME entity text
+#0 string Content- MIME entity text
+
+# TNEF files...
+0 lelong 0x223E9F78 Transport Neutral Encapsulation Format
+
+# 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/usr.bin/file/magdir/maple b/usr.bin/file/magdir/maple
new file mode 100644
index 00000000000..7290c27035f
--- /dev/null
+++ b/usr.bin/file/magdir/maple
@@ -0,0 +1,58 @@
+# $OpenBSD: maple,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# maple: file(1) magic for maple files
+# "H. Nanosecond" <aldomel@ix.netcom.com>
+# Maple V release 4, a multi-purpose math program
+#
+
+# maple library .lib
+0 string \000MVR4\nI MapleVr4 library
+
+# .ind
+# no magic for these :-(
+# they are compiled indexes for maple files
+
+# .hdb
+0 string \000\004\000\000 Maple help database
+
+# .mhp
+# this has the form <PACKAGE=name>
+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 #\ daub Maple help file, old style
+#0 string #=========== Maple help file, old style
+
+# .mws
+0 string \000\000\001\044\000\221 Maple worksheet
+#this is anomalous
+0 string WriteNow\000\002\000\001\000\000\000\000\100\000\000\000\000\000 Maple worksheet, but weird
+# this has the form {VERSION 2 3 "IBM INTEL NT" "2.3" }\n
+# that is {VERSION major_version miunor_version computer_type version_string}
+0 string {VERSION\ Maple worksheet
+>9 string >\0 version %.1s.
+>>10 string
+>>>11 string >\0 %.1s
+
+# .mps
+0 string \0\0\001$ Maple something
+# from byte 4 it is either 'nul E' or 'soh R'
+# I think 'nul E' means a file that was saved as a different name
+# a sort of revision marking
+# 'soh R' means new
+>4 string \000\105 An old revision
+>4 string \001\122 The latest save
+
+# .mpl
+# some of these are the same as .mps above
+#0000000 000 000 001 044 000 105 same as .mps
+#0000000 000 000 001 044 001 122 same as .mps
+
+0 string #\n##\ <SHAREFILE= Maple something
+0 string \n#\n##\ <SHAREFILE= Maple something
+0 string ##\ <SHAREFILE= Maple something
+0 string #\r##\ <SHAREFILE= Maple something
+0 string \r#\r##\ <SHAREFILE= Maple something
+0 string #\ \r##\ <DESCRIBE> Maple something anomalous.
diff --git a/usr.bin/file/magdir/mathematica b/usr.bin/file/magdir/mathematica
new file mode 100644
index 00000000000..8cf58d2cfff
--- /dev/null
+++ b/usr.bin/file/magdir/mathematica
@@ -0,0 +1,69 @@
+# $OpenBSD: mathematica,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# mathematica: file(1) magic for mathematica files
+# "H. Nanosecond" <aldomel@ix.netcom.com>
+# Mathematica a multi-purpose math program
+# versions 2.2 and 3.0
+
+#mathematica .mb
+0 string \064\024\012\000\035\000\000\000 Mathematica version 2 notebook
+0 string \064\024\011\000\035\000\000\000 Mathematica version 2 notebook
+
+# .ma
+# multiple possibilites:
+
+0 string (*^\n\n::[\011frontEndVersion\ =\ Mathematica notebook
+#>41 string >\0 %s
+
+#0 string (*^\n\n::[\011palette Mathematica notebook version 2.x
+
+#0 string (*^\n\n::[\011Information Mathematica notebook version 2.x
+#>675 string >\0 %s #doesn't work well
+
+# there may be 'cr' instread of 'nl' in some does this matter?
+
+# generic:
+0 string (*^\r\r::[\011 Mathematica notebook version 2.x
+0 string \(\*\^\r\n\r\n\:\:\[\011 Mathematica notebook version 2.x
+0 string (*^\015 Mathematica notebook version 2.x
+0 string (*^\n\r\n\r::[\011 Mathematica notebook version 2.x
+0 string (*^\r::[\011 Mathematica notebook version 2.x
+0 string (*^\r\n::[\011 Mathematica notebook version 2.x
+0 string (*^\n\n::[\011 Mathematica notebook version 2.x
+0 string (*^\n::[\011 Mathematica notebook version 2.x
+
+
+# Mathematica .mx files
+
+#0 string (*This\ is\ a\ Mathematica\ binary\ dump\ file.\ It\ can\ be\ loaded\ with\ Get.*) Mathematica binary file
+0 string (*This\ is\ a\ Mathematica\ binary\ Mathematica binary file
+#>71 string \000\010\010\010\010\000\000\000\000\000\000\010\100\010\000\000\000
+# >71... is optional
+>88 string >\0 from %s
+
+
+# Mathematica files PBF:
+# 115 115 101 120 102 106 000 001 000 000 000 203 000 001 000
+0 string MMAPBF\000\001\000\000\000\203\000\001\000 Mathematica PBF (fonts I think)
+
+# .ml files These are menu resources I think
+# these start with "[0-9][0-9][0-9]\ A~[0-9][0-9][0-9]\
+# how to put that into a magic rule?
+4 string \ A~ MAthematica .ml file
+
+# .nb files
+#too long 0 string (***********************************************************************\n\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Mathematica-Compatible Notebook Mathematica 3.0 notebook
+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 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/usr.bin/file/magdir/mcrypt b/usr.bin/file/magdir/mcrypt
new file mode 100644
index 00000000000..963798a27c1
--- /dev/null
+++ b/usr.bin/file/magdir/mcrypt
@@ -0,0 +1,38 @@
+# $OpenBSD: mcrypt,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# Mavroyanopoulos Nikos <nmav@hellug.gr>
+# mcrypt: file(1) magic for mcrypt 2.2.x;
+0 string \0m\3 mcrypt 2.5 encrypted data,
+>4 string >\0 algorithm: %s,
+>>&1 leshort >0 keysize: %d bytes,
+>>>&0 string >\0 mode: %s,
+
+0 string \0m\2 mcrypt 2.2 encrypted data,
+>3 byte 0 algorithm: blowfish-448,
+>3 byte 1 algorithm: DES,
+>3 byte 2 algorithm: 3DES,
+>3 byte 3 algorithm: 3-WAY,
+>3 byte 4 algorithm: GOST,
+>3 byte 6 algorithm: SAFER-SK64,
+>3 byte 7 algorithm: SAFER-SK128,
+>3 byte 8 algorithm: CAST-128,
+>3 byte 9 algorithm: xTEA,
+>3 byte 10 algorithm: TWOFISH-128,
+>3 byte 11 algorithm: RC2,
+>3 byte 12 algorithm: TWOFISH-192,
+>3 byte 13 algorithm: TWOFISH-256,
+>3 byte 14 algorithm: blowfish-128,
+>3 byte 15 algorithm: blowfish-192,
+>3 byte 16 algorithm: blowfish-256,
+>3 byte 100 algorithm: RC6,
+>3 byte 101 algorithm: IDEA,
+>4 byte 0 mode: CBC,
+>4 byte 1 mode: ECB,
+>4 byte 2 mode: CFB,
+>4 byte 3 mode: OFB,
+>4 byte 4 mode: nOFB,
+>5 byte 0 keymode: 8bit
+>5 byte 1 keymode: 4bit
+>5 byte 2 keymode: SHA-1 hash
+>5 byte 3 keymode: MD5 hash
diff --git a/usr.bin/file/magdir/mime b/usr.bin/file/magdir/mime
new file mode 100644
index 00000000000..3a082c4e052
--- /dev/null
+++ b/usr.bin/file/magdir/mime
@@ -0,0 +1,9 @@
+# $OpenBSD: mime,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# mime: file(1) magic for MIME encoded files
+#
+0 string Content-Type:\
+>14 string >\0 %s
+0 string Content-Type:
+>13 string >\0 %s
diff --git a/usr.bin/file/magdir/mirage b/usr.bin/file/magdir/mirage
index 73c3747bb7f..14887dd470a 100644
--- a/usr.bin/file/magdir/mirage
+++ b/usr.bin/file/magdir/mirage
@@ -1,3 +1,4 @@
+# $OpenBSD: mirage,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# mirage: file(1) magic for Mirage executables
diff --git a/usr.bin/file/magdir/misctools b/usr.bin/file/magdir/misctools
new file mode 100644
index 00000000000..f72ed5cf768
--- /dev/null
+++ b/usr.bin/file/magdir/misctools
@@ -0,0 +1,7 @@
+# $OpenBSD: misctools,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#-----------------------------------------------------------------------------
+# 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/usr.bin/file/magdir/mkid b/usr.bin/file/magdir/mkid
index dfb2d93f438..d6a4219988e 100644
--- a/usr.bin/file/magdir/mkid
+++ b/usr.bin/file/magdir/mkid
@@ -1,3 +1,4 @@
+# $OpenBSD: mkid,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# mkid: file(1) magic for mkid(1) databases
diff --git a/usr.bin/file/magdir/mlssa b/usr.bin/file/magdir/mlssa
new file mode 100644
index 00000000000..1355c010c8b
--- /dev/null
+++ b/usr.bin/file/magdir/mlssa
@@ -0,0 +1,8 @@
+# $OpenBSD: mlssa,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# mlssa: file(1) magic for MLSSA datafiles
+#
+0 lelong 0xffffabcd MLSSA datafile,
+>4 leshort x algorithm %d,
+>10 lelong x %d samples
diff --git a/usr.bin/file/magdir/mmdf b/usr.bin/file/magdir/mmdf
index 72cd9f32581..165e20ded31 100644
--- a/usr.bin/file/magdir/mmdf
+++ b/usr.bin/file/magdir/mmdf
@@ -1,3 +1,4 @@
+# $OpenBSD: mmdf,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# mmdf: file(1) magic for MMDF mail files
diff --git a/usr.bin/file/magdir/modem b/usr.bin/file/magdir/modem
new file mode 100644
index 00000000000..0905d9a9ce6
--- /dev/null
+++ b/usr.bin/file/magdir/modem
@@ -0,0 +1,35 @@
+# $OpenBSD: modem,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# modem: file(1) magic for modem programs
+#
+# From: Florian La Roche <florian@knorke.saar.de>
+4 string Research, Digifax-G3-File
+>29 byte 1 , fine resolution
+>29 byte 0 , normal resolution
+
+0 short 0x0100 raw G3 data, byte-padded
+0 short 0x1400 raw G3 data
+#
+# Magic data for vgetty voice formats
+# (Martin Seine & Marc Eberhard)
+
+#
+# raw modem data version 1
+#
+0 string RMD1 raw modem data
+>4 string >\0 (%s /
+>20 short >0 compression type 0x%04x)
+
+#
+# portable voice format 1
+#
+0 string PVF1\n portable voice format
+>5 string >\0 (binary %s)
+
+#
+# portable voice format 2
+#
+0 string PVF2\n portable voice format
+>5 string >\0 (ascii %s)
+
diff --git a/usr.bin/file/magdir/motorola b/usr.bin/file/magdir/motorola
index efed159746e..28b9c33a0a3 100644
--- a/usr.bin/file/magdir/motorola
+++ b/usr.bin/file/magdir/motorola
@@ -1,3 +1,4 @@
+# $OpenBSD: motorola,v 1.3 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# motorola: file(1) magic for Motorola 68K and 88K binaries
@@ -30,3 +31,41 @@
#
# Motorola S-Records, from Gerd Truschinski <gt@freebsd.first.gmd.de>
0 string S0 Motorola S-Record; binary data in text format
+
+# ATARI ST relocatable PRG
+#
+# from Oskar Schirmer <schirmer@scara.com> Feb 3, 2001
+# (according to Roland Waldi, Oct 21, 1987)
+# besides the magic 0x601a, the text segment size is checked to be
+# not larger than 1 MB (which is a lot on ST).
+# The additional 0x601b distinction I took from Doug Lee's magic.
+0 belong&0xFFFFFFF0 0x601A0000 Atari ST M68K contiguous executable
+>2 belong x (txt=%ld,
+>6 belong x dat=%ld,
+>10 belong x bss=%ld,
+>14 belong x sym=%ld)
+0 belong&0xFFFFFFF0 0x601B0000 Atari ST M68K non-contig executable
+>2 belong x (txt=%ld,
+>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/usr.bin/file/magdir/msdos b/usr.bin/file/magdir/msdos
index db2c03edfe0..9f57979e958 100644
--- a/usr.bin/file/magdir/msdos
+++ b/usr.bin/file/magdir/msdos
@@ -1,3 +1,4 @@
+# $OpenBSD: msdos,v 1.3 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# msdos: file(1) magic for MS-DOS files
diff --git a/usr.bin/file/magdir/msvc b/usr.bin/file/magdir/msvc
new file mode 100644
index 00000000000..c2e8f0b98f7
--- /dev/null
+++ b/usr.bin/file/magdir/msvc
@@ -0,0 +1,45 @@
+# $OpenBSD: msvc,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# msvc: file(1) magic for msvc
+# "H. Nanosecond" <aldomel@ix.netcom.com>
+# Microsoft visual C
+#
+# I have version 1.0
+
+# .aps
+0 string HWB\000\377\001\000\000\000 Microsoft Visual C .APS file
+
+# .ide
+#too long 0 string \102\157\162\154\141\156\144\040\103\053\053\040\120\162\157\152\145\143\164\040\106\151\154\145\012\000\032\000\002\000\262\000\272\276\372\316 MSVC .ide
+0 string \102\157\162\154\141\156\144\040\103\053\053\040\120\162\157 MSVC .ide
+
+# .res
+0 string \000\000\000\000\040\000\000\000\377 MSVC .res
+0 string \377\003\000\377\001\000\020\020\350 MSVC .res
+0 string \377\003\000\377\001\000\060\020\350 MSVC .res
+
+#.lib
+0 string \360\015\000\000 Microsoft Visual C library
+0 string \360\075\000\000 Microsoft Visual C library
+0 string \360\175\000\000 Microsoft Visual C library
+
+#.pch
+0 string DTJPCH0\000\022\103\006\200 Microsoft Visual C .pch
+
+# .pdb
+# too long 0 string Microsoft\ C/C++\ program\ database\
+0 string Microsoft\ C/C++\ MSVC program database
+>18 string program\ database\
+>33 string >\0 ver %s
+
+#.sbr
+0 string \000\002\000\007\000 MSVC .sbr
+>5 string >\0 %s
+
+#.bsc
+0 string \002\000\002\001 MSVC .bsc
+
+#.wsp
+0 string 1.00\ .0000.0000\000\003 MSVC .wsp version 1.0000.0000
+# these seem to start with the version and contain menus
diff --git a/usr.bin/file/magdir/natinst b/usr.bin/file/magdir/natinst
new file mode 100644
index 00000000000..913b332d9a1
--- /dev/null
+++ b/usr.bin/file/magdir/natinst
@@ -0,0 +1,24 @@
+# $OpenBSD: natinst,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#-----------------------------------------------------------------------------
+# natinst: file(1) magic for National Instruments Code Files
+
+#
+# From <egamez@fcfm.buap.mx> Enrique Gámez-Flores
+# version 1
+# Many formats still missing, we use, for the moment LabVIEW
+# We guess VXI format file. VISA, LabWindowsCVI, BridgeVIEW, etc, are missing
+#
+0 string RSRC National Instruments,
+# Check if it's a LabVIEW File
+>8 string LV LabVIEW File,
+# Check wich kind of file is
+>>10 string SB Code Resource File, data
+>>10 string IN Virtual Instrument Program, data
+>>10 string AR VI Library, data
+# This is for Menu Libraries
+>8 string LMNULBVW Portable File Names, data
+# This is for General Resources
+>8 string rsc Resources File, data
+# This is for VXI Package
+0 string VMAP National Instruments, VXI File, data
diff --git a/usr.bin/file/magdir/ncr b/usr.bin/file/magdir/ncr
index 987c94e4a84..1c2117a03af 100644
--- a/usr.bin/file/magdir/ncr
+++ b/usr.bin/file/magdir/ncr
@@ -1,3 +1,4 @@
+# $OpenBSD: ncr,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# ncr: file(1) magic for NCR Tower objects
diff --git a/usr.bin/file/magdir/netscape b/usr.bin/file/magdir/netscape
new file mode 100644
index 00000000000..5d7e77f9642
--- /dev/null
+++ b/usr.bin/file/magdir/netscape
@@ -0,0 +1,25 @@
+# $OpenBSD: netscape,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# netscape: file(1) magic for Netscape files
+# "H. Nanosecond" <aldomel@ix.netcom.com>
+# version 3 and 4 I think
+#
+
+# 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
+# .n2p
+# Net 2 Phone
+#0 string 123\130\071\066\061\071\071\071\060\070\061\060\061\063\060
+0 string SX961999 Net2phone
+
+#
+#This is files ending in .art, FIXME add more rules
+0 string JG\004\016\0\0\0\0 ART
diff --git a/usr.bin/file/magdir/news b/usr.bin/file/magdir/news
index 0ac4fa26974..95efd07f32c 100644
--- a/usr.bin/file/magdir/news
+++ b/usr.bin/file/magdir/news
@@ -1,3 +1,4 @@
+# $OpenBSD: news,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# news: file(1) magic for SunOS NeWS fonts (not "news" as in "netnews")
diff --git a/usr.bin/file/magdir/nitpicker b/usr.bin/file/magdir/nitpicker
new file mode 100644
index 00000000000..6e525fbc5e7
--- /dev/null
+++ b/usr.bin/file/magdir/nitpicker
@@ -0,0 +1,14 @@
+# $OpenBSD: nitpicker,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# nitpicker: file(1) magic for Flowfiles.
+# From: Christian Jachmann <C.Jachmann@gmx.net> http://www.nitpicker.de
+0 string NPFF NItpicker Flow File
+>4 byte x V%d.
+>5 byte x %d
+>6 bedate x started: %s
+>10 bedate x stopped: %s
+>14 belong x Bytes: %u
+>18 belong x Bytes1: %u
+>22 belong x Flows: %u
+>26 belong x Pkts: %u
diff --git a/usr.bin/file/magdir/ocaml b/usr.bin/file/magdir/ocaml
new file mode 100644
index 00000000000..9f135a1192d
--- /dev/null
+++ b/usr.bin/file/magdir/ocaml
@@ -0,0 +1,14 @@
+# $OpenBSD: ocaml,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# 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/usr.bin/file/magdir/octave b/usr.bin/file/magdir/octave
new file mode 100644
index 00000000000..7037e9bc120
--- /dev/null
+++ b/usr.bin/file/magdir/octave
@@ -0,0 +1,6 @@
+# $OpenBSD: octave,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# octave binary data file(1) magic, from Dirk Eddelbuettel <edd@debian.org>
+0 string Octave-1-L Octave binary data (little endian)
+0 string Octave-1-B Octave binary data (big endian)
diff --git a/usr.bin/file/magdir/olf b/usr.bin/file/magdir/olf
index 0a9c2cc9ad1..b691ff3c38e 100644
--- a/usr.bin/file/magdir/olf
+++ b/usr.bin/file/magdir/olf
@@ -1,3 +1,4 @@
+# $OpenBSD: olf,v 1.6 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# olf: file(1) magic for OLF executables
diff --git a/usr.bin/file/magdir/os2 b/usr.bin/file/magdir/os2
new file mode 100644
index 00000000000..f2a269050c1
--- /dev/null
+++ b/usr.bin/file/magdir/os2
@@ -0,0 +1,48 @@
+# $OpenBSD: os2,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# os2: file(1) magic for OS/2 files
+#
+
+# Provided 1998/08/22 by
+# David Mediavilla <davidme.news@REMOVEIFNOTSPAMusa.net>
+1 string InternetShortcut MS Windows 95 Internet shortcut text
+>24 string >\ (URL=<%s>)
+
+# 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>
+
+# >>>>> OS/2 INF/HLP <<<<< (source: Daniel Dissett ddissett@netcom.com)
+# Carl Hauser (chauser.parc@xerox.com) and
+# Marcus Groeber (marcusg@ph-cip.uni-koeln.de)
+# list the following header format in inf02a.doc:
+#
+# int16 ID; // ID magic word (5348h = "HS")
+# int8 unknown1; // unknown purpose, could be third letter of ID
+# int8 flags; // probably a flag word...
+# // bit 0: set if INF style file
+# // bit 4: set if HLP style file
+# // patching this byte allows reading HLP files
+# // using the VIEW command, while help files
+# // seem to work with INF settings here as well.
+# int16 hdrsize; // total size of header
+# int16 unknown2; // unknown purpose
+#
+0 string HSP\x01\x9b\x00 OS/2 INF
+>107 string >0 (%s)
+0 string HSP\x10\x9b\x00 OS/2 HLP
+>107 string >0 (%s)
+
+# OS/2 INI (this is a guess)
+0 string \xff\xff\xff\xff\x14\0\0\0 OS/2 INI
diff --git a/usr.bin/file/magdir/os9 b/usr.bin/file/magdir/os9
index b92a1cbb25b..8522babcfc9 100644
--- a/usr.bin/file/magdir/os9
+++ b/usr.bin/file/magdir/os9
@@ -1,5 +1,5 @@
-#
-# $OpenBSD: os9,v 1.2 1996/06/26 05:33:04 deraadt Exp $
+# $OpenBSD: os9,v 1.3 2004/06/03 03:14:20 tedu Exp $
+
# $NetBSD: os9,v 1.1 1996/05/06 18:24:01 is Exp $
#
# Copyright (c) 1996 Ignatios Souvatzis. All rights reserved.
diff --git a/usr.bin/file/magdir/parix b/usr.bin/file/magdir/parix
new file mode 100644
index 00000000000..76dfb9e316b
--- /dev/null
+++ b/usr.bin/file/magdir/parix
@@ -0,0 +1,13 @@
+# $OpenBSD: parix,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+#
+# Parix COFF executables
+# From: Ignatios Souvatzis <ignatios@cs.uni-bonn.de>
+#
+0 beshort&0xfff 0xACE PARIX
+>0 byte&0xf0 0x80 T800
+>0 byte&0xf0 0x90 T9000
+>19 byte&0x02 0x02 executable
+>19 byte&0x02 0x00 object
+>19 byte&0x0c 0x00 not stripped
diff --git a/usr.bin/file/magdir/pbm b/usr.bin/file/magdir/pbm
index 98c15f79485..1565aec58b6 100644
--- a/usr.bin/file/magdir/pbm
+++ b/usr.bin/file/magdir/pbm
@@ -1,3 +1,4 @@
+# $OpenBSD: pbm,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# pbm: file(1) magic for Portable Bitmap files
diff --git a/usr.bin/file/magdir/pdp b/usr.bin/file/magdir/pdp
index 201dede3551..06770630e25 100644
--- a/usr.bin/file/magdir/pdp
+++ b/usr.bin/file/magdir/pdp
@@ -1,3 +1,4 @@
+# $OpenBSD: pdp,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# pdp: file(1) magic for PDP-11 executable/object and APL workspace
@@ -23,3 +24,13 @@
>15 byte >0 - version %ld
0 leshort 0437 PDP-11 kernel overlay
+
+# These last three are derived from 2.11BSD file(1)
+0 leshort 0413 PDP-11 demand-paged pure executable
+>8 leshort >0 not stripped
+
+0 leshort 0430 PDP-11 overlaid pure executable
+>8 leshort >0 not stripped
+
+0 leshort 0431 PDP-11 overlaid separate executable
+>8 leshort >0 not stripped
diff --git a/usr.bin/file/magdir/pgp b/usr.bin/file/magdir/pgp
index 038d098ee4a..e07fcdb4ced 100644
--- a/usr.bin/file/magdir/pgp
+++ b/usr.bin/file/magdir/pgp
@@ -1,3 +1,4 @@
+# $OpenBSD: pgp,v 1.4 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# pgp: file(1) magic for Pretty Good Privacy
diff --git a/usr.bin/file/magdir/pkgadd b/usr.bin/file/magdir/pkgadd
index dc8ef5d93ab..cd029422b70 100644
--- a/usr.bin/file/magdir/pkgadd
+++ b/usr.bin/file/magdir/pkgadd
@@ -1,3 +1,4 @@
+# $OpenBSD: pkgadd,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# pkgadd: file(1) magic for SysV R4 PKG Datastreams
diff --git a/usr.bin/file/magdir/plan9 b/usr.bin/file/magdir/plan9
new file mode 100644
index 00000000000..e77e9389593
--- /dev/null
+++ b/usr.bin/file/magdir/plan9
@@ -0,0 +1,6 @@
+# $OpenBSD: plan9,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# plan9: file(1) magic for AT&T Bell Labs' Plan 9 executables
+#
+0 belong 0x000001EB Plan 9 executable
diff --git a/usr.bin/file/magdir/plus5 b/usr.bin/file/magdir/plus5
index acf3bf4037b..689fa447bb4 100644
--- a/usr.bin/file/magdir/plus5
+++ b/usr.bin/file/magdir/plus5
@@ -1,3 +1,4 @@
+# $OpenBSD: plus5,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# plus5: file(1) magic for Plus Five's UNIX MUMPS
diff --git a/usr.bin/file/magdir/printer b/usr.bin/file/magdir/printer
index d03067e42ce..9d5b51c63dc 100644
--- a/usr.bin/file/magdir/printer
+++ b/usr.bin/file/magdir/printer
@@ -1,3 +1,4 @@
+# $OpenBSD: printer,v 1.5 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# printer: file(1) magic for printer-formatted files
diff --git a/usr.bin/file/magdir/project b/usr.bin/file/magdir/project
new file mode 100644
index 00000000000..73af7ffe584
--- /dev/null
+++ b/usr.bin/file/magdir/project
@@ -0,0 +1,10 @@
+# $OpenBSD: project,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# project: file(1) magic for Project management
+#
+# Magic strings for ftnchek project files. Alexander Mai
+0 string FTNCHEK_\ P project file for ftnchek
+>10 string 1 version 2.7
+>10 string 2 version 2.8 to 2.10
+>10 string 3 version 2.11 or later
diff --git a/usr.bin/file/magdir/psdbms b/usr.bin/file/magdir/psdbms
index f36121fcbcd..a06c0c574c3 100644
--- a/usr.bin/file/magdir/psdbms
+++ b/usr.bin/file/magdir/psdbms
@@ -1,3 +1,4 @@
+# $OpenBSD: psdbms,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# psdbms: file(1) magic for psdatabase
diff --git a/usr.bin/file/magdir/psion b/usr.bin/file/magdir/psion
new file mode 100644
index 00000000000..01e5509a42d
--- /dev/null
+++ b/usr.bin/file/magdir/psion
@@ -0,0 +1,44 @@
+# $OpenBSD: psion,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# 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/usr.bin/file/magdir/pulsar b/usr.bin/file/magdir/pulsar
new file mode 100644
index 00000000000..94eaa98e623
--- /dev/null
+++ b/usr.bin/file/magdir/pulsar
@@ -0,0 +1,13 @@
+# $OpenBSD: pulsar,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# pulsar: file(1) magic for Pulsar POP3 daemon binary files
+#
+# http://pulsar.sourceforge.net
+# mailto:rok.papez@lugos.si
+#
+
+0 belong 0x1ee7f11e Pulsar POP3 daemon mailbox cache file.
+>4 ubelong x Version: %d.
+>8 ubelong x \b%d
+
diff --git a/usr.bin/file/magdir/pyramid b/usr.bin/file/magdir/pyramid
index fe16608436b..7dcc927ab6c 100644
--- a/usr.bin/file/magdir/pyramid
+++ b/usr.bin/file/magdir/pyramid
@@ -1,3 +1,4 @@
+# $OpenBSD: pyramid,v 1.3 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# pyramid: file(1) magic for Pyramids
diff --git a/usr.bin/file/magdir/python b/usr.bin/file/magdir/python
new file mode 100644
index 00000000000..129309a4ef2
--- /dev/null
+++ b/usr.bin/file/magdir/python
@@ -0,0 +1,15 @@
+# $OpenBSD: python,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# python: file(1) magic for python
+#
+# From: David Necas <yeti@physics.muni.cz>
+# often the module starts with a multiline string
+0 string """ a python script text executable
+# MAGIC as specified in Python/import.c (1.5 to 2.3.0a)
+# 20121 ( YEAR - 1995 ) + MONTH + DAY (little endian followed by "\r\n"
+0 belong 0x994e0d0a python 1.5/1.6 byte-compiled
+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 0x3bf20d0a python 2.3 byte-compiled
diff --git a/usr.bin/file/magdir/revision b/usr.bin/file/magdir/revision
new file mode 100644
index 00000000000..0333c8ef7ab
--- /dev/null
+++ b/usr.bin/file/magdir/revision
@@ -0,0 +1,6 @@
+# $OpenBSD: revision,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# file(1) magic for revision control files
+# From Hendrik Scholz <hendrik@scholz.net>
+0 string /1\ :pserver: cvs password text file
diff --git a/usr.bin/file/magdir/rpm b/usr.bin/file/magdir/rpm
index 94d6343be6f..eb87b23ea48 100644
--- a/usr.bin/file/magdir/rpm
+++ b/usr.bin/file/magdir/rpm
@@ -1,10 +1,10 @@
-# $OpenBSD: rpm,v 1.4 2001/01/29 01:57:58 niklas Exp $
+# $OpenBSD: rpm,v 1.5 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
#
# 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
@@ -15,5 +15,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/usr.bin/file/magdir/rtf b/usr.bin/file/magdir/rtf
index 8e2d4166fa5..d4c4014cea3 100644
--- a/usr.bin/file/magdir/rtf
+++ b/usr.bin/file/magdir/rtf
@@ -1,3 +1,4 @@
+# $OpenBSD: rtf,v 1.3 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# rtf: file(1) magic for Rich Text Format (RTF)
diff --git a/usr.bin/file/magdir/sc b/usr.bin/file/magdir/sc
index 98599f26478..23b0f710a7c 100644
--- a/usr.bin/file/magdir/sc
+++ b/usr.bin/file/magdir/sc
@@ -1,3 +1,4 @@
+# $OpenBSD: sc,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# sc: file(1) magic for "sc" spreadsheet
diff --git a/usr.bin/file/magdir/sccs b/usr.bin/file/magdir/sccs
index 11d50b23c00..c810a950c60 100644
--- a/usr.bin/file/magdir/sccs
+++ b/usr.bin/file/magdir/sccs
@@ -1,3 +1,4 @@
+# $OpenBSD: sccs,v 1.3 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# sccs: file(1) magic for SCCS archives
diff --git a/usr.bin/file/magdir/sendmail b/usr.bin/file/magdir/sendmail
index 503ef8967ad..500a1ef79ff 100644
--- a/usr.bin/file/magdir/sendmail
+++ b/usr.bin/file/magdir/sendmail
@@ -1,3 +1,4 @@
+# $OpenBSD: sendmail,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# sendmail: file(1) magic for sendmail config files
@@ -8,3 +9,12 @@
>16 string >\0 - version %s
0 short 0x271c Sendmail frozen configuration
>16 string >\0 - version %s
+
+#------------------------------------------------------------------------------
+# sendmail: file(1) magic for sendmail m4(1) files
+#
+# From Hendrik Scholz <hendrik@scholz.net>
+# i.e. files in /usr/share/sendmail/cf/
+#
+0 string divert(-1)\n sendmail m4 text file
+
diff --git a/usr.bin/file/magdir/sequent b/usr.bin/file/magdir/sequent
index e6f7b52aacb..9ef4012e5a6 100644
--- a/usr.bin/file/magdir/sequent
+++ b/usr.bin/file/magdir/sequent
@@ -1,3 +1,4 @@
+# $OpenBSD: sequent,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# sequent: file(1) magic for Sequent machines
diff --git a/usr.bin/file/magdir/sgi b/usr.bin/file/magdir/sgi
index ce9dbc8b274..2d7780e7063 100644
--- a/usr.bin/file/magdir/sgi
+++ b/usr.bin/file/magdir/sgi
@@ -1,3 +1,4 @@
+# $OpenBSD: sgi,v 1.3 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# sgi: file(1) magic for Silicon Graphics (MIPS, IRIS, IRIX, etc.)
diff --git a/usr.bin/file/magdir/sgml b/usr.bin/file/magdir/sgml
index 985bbeca21e..de91e2ec1fb 100644
--- a/usr.bin/file/magdir/sgml
+++ b/usr.bin/file/magdir/sgml
@@ -1,21 +1,35 @@
+# $OpenBSD: sgml,v 1.3 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# sgml: file(1) magic for Standard Generalized Markup Language
-
# HyperText Markup Language (HTML) is an SGML document type,
# from Daniel Quinlan (quinlan@yggdrasil.com)
-0 string \<!DOCTYPE\ HTML HTML document text
-0 string \<!doctype\ html HTML document text
-0 string \<HEAD HTML document text
-0 string \<head HTML document text
-0 string \<TITLE HTML document text
-0 string \<title HTML document text
-0 string \<html HTML document text
-0 string \<HTML HTML document text
+# adapted to string extenstions by Anthon van der Neut <anthon@mnt.org)
+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 \<?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
-0 string \<!DOCTYPE exported SGML document text
-0 string \<!doctype exported SGML document text
-0 string \<!SUBDOC exported SGML subdocument text
-0 string \<!subdoc exported SGML subdocument text
-0 string \<!-- exported SGML document text
+0 string/cb \<!doctype exported SGML document text
+0 string/cb \<!subdoc exported SGML subdocument text
+0 string/cb \<!-- exported SGML document text
+
+# Web browser cookie files
+# (Mozilla, Galeon, Netscape 4, Konqueror..)
+# Ulf Harnhammar <ulfh@update.uu.se>
+0 string #\ HTTP\ Cookie\ File Web browser cookie text
+0 string #\ Netscape\ HTTP\ Cookie\ File Netscape cookie text
+0 string #\ KDE\ Cookie\ File Konqueror cookie text
diff --git a/usr.bin/file/magdir/sharc b/usr.bin/file/magdir/sharc
new file mode 100644
index 00000000000..6ffe807a553
--- /dev/null
+++ b/usr.bin/file/magdir/sharc
@@ -0,0 +1,23 @@
+# $OpenBSD: sharc,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------
+# file(1) magic for sharc files
+#
+# SHARC DSP, MIDI SysEx and RiscOS filetype definitions added by
+# FutureGroove Music (dsp@futuregroove.de)
+
+#------------------------------------------------------------------------
+0 string Draw RiscOS Drawfile
+0 string PACK RiscOS PackdDir archive
+
+#------------------------------------------------------------------------
+# SHARC DSP stuff (based on the FGM SHARC DSP SDK)
+
+0 string ! Assembler source
+0 string Analog ADi asm listing file
+0 string .SYSTEM SHARC architecture file
+0 string .system SHARC architecture file
+
+0 leshort 0x521C SHARC COFF binary
+>2 leshort >1 , %hd sections
+>>12 lelong >0 , not stripped
diff --git a/usr.bin/file/magdir/sinclair b/usr.bin/file/magdir/sinclair
new file mode 100644
index 00000000000..6eb92e0b8ef
--- /dev/null
+++ b/usr.bin/file/magdir/sinclair
@@ -0,0 +1,127 @@
+# $OpenBSD: sinclair,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# 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/usr.bin/file/magdir/sketch b/usr.bin/file/magdir/sketch
new file mode 100644
index 00000000000..6addb7fa046
--- /dev/null
+++ b/usr.bin/file/magdir/sketch
@@ -0,0 +1,6 @@
+# $OpenBSD: sketch,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# Sketch Drawings: http://sketch.sourceforge.net/
+# From: Edwin Mons <e@ik.nu>
+0 string ##Sketch Sketch document text
diff --git a/usr.bin/file/magdir/smalltalk b/usr.bin/file/magdir/smalltalk
new file mode 100644
index 00000000000..1d360197adf
--- /dev/null
+++ b/usr.bin/file/magdir/smalltalk
@@ -0,0 +1,25 @@
+# $OpenBSD: smalltalk,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#-----------------------------------------------
+# GNU Smalltalk image, starting at version 1.6.2
+# From: catull_us@yahoo.com
+#
+0 string GSTIm\0\0 GNU SmallTalk
+# little-endian
+>7 byte&1 =0 LE image version
+>>10 byte x %d.
+>>9 byte x \b%d.
+>>8 byte x \b%d
+#>>12 lelong x , data: %ld
+#>>16 lelong x , table: %ld
+#>>20 lelong x , memory: %ld
+# big-endian
+>7 byte&1 =1 BE image version
+>>8 byte x %d.
+>>9 byte x \b%d.
+>>10 byte x \b%d
+#>>12 belong x , data: %ld
+#>>16 belong x , table: %ld
+#>>20 belong x , memory: %ld
+
+
diff --git a/usr.bin/file/magdir/sniffer b/usr.bin/file/magdir/sniffer
index b1958d2a9ee..de9599c76b3 100644
--- a/usr.bin/file/magdir/sniffer
+++ b/usr.bin/file/magdir/sniffer
@@ -1,33 +1,75 @@
+# $OpenBSD: sniffer,v 1.3 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
-# sniffer: file(1) magic for packet captured files
+# sniffer: file(1) magic for packet capture files
#
-# From: guy@netapp.com (Guy Harris)
+# From: guy@alum.mit.edu (Guy Harris)
#
-# Microsoft NetMon (packet capture/display program) capture files.
+
+#
+# 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
+>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.
+# Sorry, make that "Network Associates Sniffer capture files."
#
0 string TRSNIFF\ data\ \ \ \ \032 Sniffer capture file
+>33 byte 2 (compressed)
>23 leshort x - version %d
>25 leshort x \b.%d
->33 byte x (Format %d,
->32 byte 0 Token ring)
->32 byte 1 Ethernet)
->32 byte 2 ARCnet)
->32 byte 3 StarLAN)
->32 byte 4 PC Network broadband)
->32 byte 5 LocalTalk)
->32 byte 6 Znet)
+>32 byte 0 (Token Ring)
+>32 byte 1 (Ethernet)
+>32 byte 2 (ARCNET)
+>32 byte 3 (StarLAN)
+>32 byte 4 (PC Network broadband)
+>32 byte 5 (LocalTalk)
+>32 byte 6 (Znet)
+>32 byte 7 (Internetwork Analyzer)
+>32 byte 9 (FDDI)
+>32 byte 10 (ATM)
+
+#
+# Cinco Networks NetXRay capture files.
+# Sorry, make that "Network General Sniffer Basic capture files."
+# Sorry, make that "Network Associates Sniffer Basic capture files."
+# Sorry, make that "Network Associates Sniffer Basic, and Windows
+# Sniffer Pro", capture files."
+#
+0 string XCP\0 NetXRay capture file
+>4 string >\0 - version %s
+>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.
# (We call them "tcpdump capture file(s)" for now, as "tcpdump" is
-# the main program that uses that format, but there's also "tcpview",
-# and there may be others in the future.)
+# the main program that uses that format, but there are other programs
+# that use "libpcap", or that use the same capture file format.)
#
0 ubelong 0xa1b2c3d4 tcpdump capture file (big-endian)
>4 beshort x - version %d
@@ -36,23 +78,41 @@
>20 belong 1 (Ethernet
>20 belong 2 (3Mb Ethernet
>20 belong 3 (AX.25
->20 belong 4 (ProNet
->20 belong 5 (Chaos
->20 belong 6 (IEEE 802.x network
->20 belong 7 (ARCnet
+>20 belong 4 (ProNET
+>20 belong 5 (CHAOS
+>20 belong 6 (Token Ring
+>20 belong 7 (BSD ARCNET
>20 belong 8 (SLIP
>20 belong 9 (PPP
>20 belong 10 (FDDI
>20 belong 11 (RFC 1483 ATM
->20 belong 12 (Loopback
->20 belong 13 (IPSec Enc
->20 belong 14 (Raw IP
->20 belong 15 (BSD/OS SLIP
->20 belong 16 (BSD/OS PPP
->20 belong 17 (Old PF Log
->20 belong 18 (PFSync
->20 belong 105 (IEEE 802.11 wireless
->20 belong 117 (PF Log
+>20 belong 12 (raw IP
+>20 belong 13 (BSD/OS SLIP
+>20 belong 14 (BSD/OS PPP
+>20 belong 50 (PPP or Cisco HDLC
+>20 belong 51 (PPP-over-Ethernet
+>20 belong 100 (RFC 1483 ATM
+>20 belong 101 (raw IP
+>20 belong 102 (BSD/OS SLIP
+>20 belong 103 (BSD/OS PPP
+>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 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
@@ -61,21 +121,114 @@
>20 lelong 1 (Ethernet
>20 lelong 2 (3Mb Ethernet
>20 lelong 3 (AX.25
->20 lelong 4 (ProNet
->20 lelong 5 (Chaos
->20 lelong 6 (IEEE 802.x network
->20 lelong 7 (ARCnet
+>20 lelong 4 (ProNET
+>20 lelong 5 (CHAOS
+>20 lelong 6 (Token Ring
+>20 lelong 7 (ARCNET
>20 lelong 8 (SLIP
>20 lelong 9 (PPP
>20 lelong 10 (FDDI
>20 lelong 11 (RFC 1483 ATM
->20 lelong 12 (Loopback
->20 lelong 13 (IPSec Enc
->20 lelong 14 (Raw IP
->20 lelong 15 (BSD/OS SLIP
->20 lelong 16 (BSD/OS PPP
->20 lelong 17 (Old PF Log
->20 lelong 18 (PFSync
->20 lelong 105 (IEEE 802.11 wireless
->20 lelong 117 (PF Log
+>20 lelong 12 (raw IP
+>20 lelong 13 (BSD/OS SLIP
+>20 lelong 14 (BSD/OS PPP
+>20 lelong 50 (PPP or Cisco HDLC
+>20 lelong 51 (PPP-over-Ethernet
+>20 lelong 100 (RFC 1483 ATM
+>20 lelong 101 (raw IP
+>20 lelong 102 (BSD/OS SLIP
+>20 lelong 103 (BSD/OS PPP
+>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)
+
+#
+# "libpcap"-with-Alexey-Kuznetsov's-patches capture files.
+# (We call them "tcpdump capture file(s)" for now, as "tcpdump" is
+# the main program that uses that format, but there are other programs
+# that use "libpcap", or that use the same capture file format.)
+#
+0 ubelong 0xa1b2cd34 extended tcpdump capture file (big-endian)
+>4 beshort x - version %d
+>6 beshort x \b.%d
+>20 belong 0 (No link-layer encapsulation
+>20 belong 1 (Ethernet
+>20 belong 2 (3Mb Ethernet
+>20 belong 3 (AX.25
+>20 belong 4 (ProNET
+>20 belong 5 (CHAOS
+>20 belong 6 (Token Ring
+>20 belong 7 (ARCNET
+>20 belong 8 (SLIP
+>20 belong 9 (PPP
+>20 belong 10 (FDDI
+>20 belong 11 (RFC 1483 ATM
+>20 belong 12 (raw IP
+>20 belong 13 (BSD/OS SLIP
+>20 belong 14 (BSD/OS PPP
+>16 belong x \b, capture length %d)
+0 ulelong 0xa1b2cd34 extended tcpdump capture file (little-endian)
+>4 leshort x - version %d
+>6 leshort x \b.%d
+>20 lelong 0 (No link-layer encapsulation
+>20 lelong 1 (Ethernet
+>20 lelong 2 (3Mb Ethernet
+>20 lelong 3 (AX.25
+>20 lelong 4 (ProNET
+>20 lelong 5 (CHAOS
+>20 lelong 6 (Token Ring
+>20 lelong 7 (ARCNET
+>20 lelong 8 (SLIP
+>20 lelong 9 (PPP
+>20 lelong 10 (FDDI
+>20 lelong 11 (RFC 1483 ATM
+>20 lelong 12 (raw IP
+>20 lelong 13 (BSD/OS SLIP
+>20 lelong 14 (BSD/OS PPP
+>16 lelong x \b, capture length %d)
+
+#
+# AIX "iptrace" capture files.
+#
+0 string iptrace\ 1.0 "iptrace" capture file
+0 string iptrace\ 2.0 "iptrace" capture file
+
+#
+# Novell LANalyzer capture files.
+#
+0 leshort 0x1001 LANalyzer capture file
+0 leshort 0x1007 LANalyzer capture file
+
+#
+# HP-UX "nettl" capture files.
+#
+0 string \x54\x52\x00\x64\x00 "nettl" capture file
+
+#
+# RADCOM WAN/LAN Analyzer capture files.
+#
+0 string \x42\xd2\x00\x34\x12\x66\x22\x88 RADCOM WAN/LAN Analyzer capture file
+
+#
+# NetStumbler log files. Not really packets, per se, but about as
+# close as you can get. These are log files from NetStumbler, a
+# Windows program, that scans for 802.11b networks.
+#
+0 string NetS NetStumbler log file
+>8 lelong x \b, %d stations found
diff --git a/usr.bin/file/magdir/softquad b/usr.bin/file/magdir/softquad
index bbb6661e6b5..76e0b31a1e5 100644
--- a/usr.bin/file/magdir/softquad
+++ b/usr.bin/file/magdir/softquad
@@ -1,4 +1,4 @@
-# $OpenBSD: softquad,v 1.3 1996/06/26 05:33:05 deraadt Exp $
+# $OpenBSD: softquad,v 1.4 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# softquad: file(1) magic for SoftQuad Publishing Software
diff --git a/usr.bin/file/magdir/spectrum b/usr.bin/file/magdir/spectrum
new file mode 100644
index 00000000000..1b27ca24c43
--- /dev/null
+++ b/usr.bin/file/magdir/spectrum
@@ -0,0 +1,45 @@
+# $OpenBSD: spectrum,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# spectrum: file(1) magic for Spectrum emulator files.
+#
+# John Elliott <jce@seasip.demon.co.uk>
+
+#
+# Spectrum +3DOS header
+#
+0 string PLUS3DOS\032 Spectrum +3 data
+>15 byte 0 - BASIC program
+>15 byte 1 - number array
+>15 byte 2 - character array
+>15 byte 3 - memory block
+>>16 belong 0x001B0040 (screen)
+>15 byte 4 - Tasword document
+>15 string TAPEFILE - ZXT tapefile
+#
+# Tape file. This assumes the .TAP starts with a Spectrum-format header,
+# which nearly all will.
+#
+0 string \023\000\000 Spectrum .TAP data
+>4 string x "%-10.10s"
+>3 byte 0 - BASIC program
+>3 byte 1 - number array
+>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/usr.bin/file/magdir/sql b/usr.bin/file/magdir/sql
new file mode 100644
index 00000000000..39126705895
--- /dev/null
+++ b/usr.bin/file/magdir/sql
@@ -0,0 +1,19 @@
+# $OpenBSD: sql,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# sql: file(1) magic for SQL files
+#
+# From: "Marty Leisner" <mleisner@eng.mc.xerox.com>
+# Recognize some MySQL files.
+#
+0 beshort 0xfe01 MySQL table definition file
+>2 byte x Version %d
+0 belong&0xffffff00 0xfefe0300 MySQL MISAM index file
+>3 byte x Version %d
+0 belong&0xffffff00 0xfefe0700 MySQL MISAM compressed data file
+>3 byte x Version %d
+0 belong&0xffffff00 0xfefe0500 MySQL ISAM index file
+>3 byte x Version %d
+0 belong&0xffffff00 0xfefe0600 MySQL ISAM compressed data file
+>3 byte x Version %d
+0 string \376bin MySQL replication log
diff --git a/usr.bin/file/magdir/sun b/usr.bin/file/magdir/sun
index 2f0336a91b8..1e4b36c8fbd 100644
--- a/usr.bin/file/magdir/sun
+++ b/usr.bin/file/magdir/sun
@@ -1,3 +1,4 @@
+# $OpenBSD: sun,v 1.3 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# sun: file(1) magic for Sun machines
@@ -87,24 +88,37 @@
# Sun SunPC
0 long 0xfa33c08e SunPC 4.0 Hard Disk
0 string #SUNPC_CONFIG SunPC 4.0 Properties Values
-# Sun snoop
-#
-# XXX - are numbers stored in big-endian format, or in host byte order?
-# They're the same on SPARC, but not the same on x86.
+# Sun snoop (see RFC 1761, which describes the capture file format).
#
0 string snoop Snoop capture file
->8 long >0 - version %ld
->12 long 0 (IEEE 802.3)
->12 long 1 (IEEE 802.4)
->12 long 2 (IEEE 802.5)
->12 long 3 (IEEE 802.6)
->12 long 4 (Ethernet)
->12 long 5 (HDLC)
->12 long 6 (Character synchronous)
->12 long 7 (IBM channel-to-channel adapter)
->12 long 8 (FDDI)
->12 long 9 (Unknown)
+>8 belong >0 - version %ld
+>12 belong 0 (IEEE 802.3)
+>12 belong 1 (IEEE 802.4)
+>12 belong 2 (IEEE 802.5)
+>12 belong 3 (IEEE 802.6)
+>12 belong 4 (Ethernet)
+>12 belong 5 (HDLC)
+>12 belong 6 (Character synchronous)
+>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/usr.bin/file/magdir/sysex b/usr.bin/file/magdir/sysex
new file mode 100644
index 00000000000..27afebe38e1
--- /dev/null
+++ b/usr.bin/file/magdir/sysex
@@ -0,0 +1,195 @@
+# $OpenBSD: sysex,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------
+# sysex: file(1) magic for MIDI sysex files
+#
+#
+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
+>>3 byte 0x14 D-50
+>>3 byte 0x2b U-220
+>>3 byte 0x02 TR-707
+
+>1 byte 0x42 Korg
+>>3 byte 0x19 M1
+
+>1 byte 0x43 Yamaha
+>1 byte 0x44 Casio
+>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
+>1 byte 0x50 Matsushita
+>1 byte 0x51 Fostex
+>1 byte 0x52 Zoom
+>1 byte 0x54 Matsushita
+>1 byte 0x57 Acoustic tech. lab.
+
+>1 belong&0xffffff00 0x00007400 Ta Horng
+>1 belong&0xffffff00 0x00007500 e-Tek
+>1 belong&0xffffff00 0x00007600 E-Voice
+>1 belong&0xffffff00 0x00007700 Midisoft
+>1 belong&0xffffff00 0x00007800 Q-Sound
+>1 belong&0xffffff00 0x00007900 Westrex
+>1 belong&0xffffff00 0x00007a00 Nvidia*
+>1 belong&0xffffff00 0x00007b00 ESS
+>1 belong&0xffffff00 0x00007c00 Mediatrix
+>1 belong&0xffffff00 0x00007d00 Brooktree
+>1 belong&0xffffff00 0x00007e00 Otari
+>1 belong&0xffffff00 0x00007f00 Key Electronics
+>1 belong&0xffffff00 0x00010000 Shure
+>1 belong&0xffffff00 0x00010100 AuraSound
+>1 belong&0xffffff00 0x00010200 Crystal
+>1 belong&0xffffff00 0x00010300 Rockwell
+>1 belong&0xffffff00 0x00010400 Silicon Graphics
+>1 belong&0xffffff00 0x00010500 Midiman
+>1 belong&0xffffff00 0x00010600 PreSonus
+>1 belong&0xffffff00 0x00010800 Topaz
+>1 belong&0xffffff00 0x00010900 Cast Lightning
+>1 belong&0xffffff00 0x00010a00 Microsoft
+>1 belong&0xffffff00 0x00010b00 Sonic Foundry
+>1 belong&0xffffff00 0x00010c00 Line 6
+>1 belong&0xffffff00 0x00010d00 Beatnik Inc.
+>1 belong&0xffffff00 0x00010e00 Van Koerving
+>1 belong&0xffffff00 0x00010f00 Altech Systems
+>1 belong&0xffffff00 0x00011000 S & S Research
+>1 belong&0xffffff00 0x00011100 VLSI Technology
+>1 belong&0xffffff00 0x00011200 Chromatic
+>1 belong&0xffffff00 0x00011300 Sapphire
+>1 belong&0xffffff00 0x00011400 IDRC
+>1 belong&0xffffff00 0x00011500 Justonic Tuning
+>1 belong&0xffffff00 0x00011600 TorComp
+>1 belong&0xffffff00 0x00011700 Newtek Inc.
+>1 belong&0xffffff00 0x00011800 Sound Sculpture
+>1 belong&0xffffff00 0x00011900 Walker Technical
+>1 belong&0xffffff00 0x00011a00 Digital Harmony
+>1 belong&0xffffff00 0x00011b00 InVision
+>1 belong&0xffffff00 0x00011c00 T-Square
+>1 belong&0xffffff00 0x00011d00 Nemesys
+>1 belong&0xffffff00 0x00011e00 DBX
+>1 belong&0xffffff00 0x00011f00 Syndyne
+>1 belong&0xffffff00 0x00012000 Bitheadz
+>1 belong&0xffffff00 0x00012100 Cakewalk
+>1 belong&0xffffff00 0x00012200 Staccato
+>1 belong&0xffffff00 0x00012300 National Semicon.
+>1 belong&0xffffff00 0x00012400 Boom Theory
+>1 belong&0xffffff00 0x00012500 Virtual DSP Corp
+>1 belong&0xffffff00 0x00012600 Antares
+>1 belong&0xffffff00 0x00012700 Angel Software
+>1 belong&0xffffff00 0x00012800 St Louis Music
+>1 belong&0xffffff00 0x00012900 Lyrrus dba G-VOX
+>1 belong&0xffffff00 0x00012a00 Ashley Audio
+>1 belong&0xffffff00 0x00012b00 Vari-Lite
+>1 belong&0xffffff00 0x00012c00 Summit Audio
+>1 belong&0xffffff00 0x00012d00 Aureal Semicon.
+>1 belong&0xffffff00 0x00012e00 SeaSound
+>1 belong&0xffffff00 0x00012f00 U.S. Robotics
+>1 belong&0xffffff00 0x00013000 Aurisis
+>1 belong&0xffffff00 0x00013100 Nearfield Multimedia
+>1 belong&0xffffff00 0x00013200 FM7 Inc.
+>1 belong&0xffffff00 0x00013300 Swivel Systems
+>1 belong&0xffffff00 0x00013400 Hyperactive
+>1 belong&0xffffff00 0x00013500 MidiLite
+>1 belong&0xffffff00 0x00013600 Radical
+>1 belong&0xffffff00 0x00013700 Roger Linn
+>1 belong&0xffffff00 0x00013800 Helicon
+>1 belong&0xffffff00 0x00013900 Event
+>1 belong&0xffffff00 0x00013a00 Sonic Network
+>1 belong&0xffffff00 0x00013b00 Realtime Music
+>1 belong&0xffffff00 0x00013c00 Apogee Digital
+
+>1 belong&0xffffff00 0x00202b00 Medeli Electronics
+>1 belong&0xffffff00 0x00202c00 Charlie Lab
+>1 belong&0xffffff00 0x00202d00 Blue Chip Music
+>1 belong&0xffffff00 0x00202e00 BEE OH Corp
+>1 belong&0xffffff00 0x00202f00 LG Semicon America
+>1 belong&0xffffff00 0x00203000 TESI
+>1 belong&0xffffff00 0x00203100 EMAGIC
+>1 belong&0xffffff00 0x00203200 Behringer
+>1 belong&0xffffff00 0x00203300 Access Music
+>1 belong&0xffffff00 0x00203400 Synoptic
+>1 belong&0xffffff00 0x00203500 Hanmesoft Corp
+>1 belong&0xffffff00 0x00203600 Terratec
+>1 belong&0xffffff00 0x00203700 Proel SpA
+>1 belong&0xffffff00 0x00203800 IBK MIDI
+>1 belong&0xffffff00 0x00203900 IRCAM
+>1 belong&0xffffff00 0x00203a00 Propellerhead Software
+>1 belong&0xffffff00 0x00203b00 Red Sound Systems
+>1 belong&0xffffff00 0x00203c00 Electron ESI AB
+>1 belong&0xffffff00 0x00203d00 Sintefex Audio
+>1 belong&0xffffff00 0x00203e00 Music and More
+>1 belong&0xffffff00 0x00203f00 Amsaro
+>1 belong&0xffffff00 0x00204000 CDS Advanced Technology
+>1 belong&0xffffff00 0x00204100 Touched by Sound
+>1 belong&0xffffff00 0x00204200 DSP Arts
+>1 belong&0xffffff00 0x00204300 Phil Rees Music
+>1 belong&0xffffff00 0x00204400 Stamer Musikanlagen GmbH
+>1 belong&0xffffff00 0x00204500 Soundart
+>1 belong&0xffffff00 0x00204600 C-Mexx Software
+>1 belong&0xffffff00 0x00204700 Klavis Tech.
+>1 belong&0xffffff00 0x00204800 Noteheads AB
+
+0 string T707 Roland TR-707 Data
diff --git a/usr.bin/file/magdir/teapot b/usr.bin/file/magdir/teapot
new file mode 100644
index 00000000000..9ba9d0973c9
--- /dev/null
+++ b/usr.bin/file/magdir/teapot
@@ -0,0 +1,6 @@
+# $OpenBSD: teapot,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# teapot: file(1) magic for "teapot" spreadsheet
+#
+0 string #!teapot\012xdr teapot work sheet (XDR format)
diff --git a/usr.bin/file/magdir/terminfo b/usr.bin/file/magdir/terminfo
index 2226ce8cee5..ae5140343ea 100644
--- a/usr.bin/file/magdir/terminfo
+++ b/usr.bin/file/magdir/terminfo
@@ -1,3 +1,4 @@
+# $OpenBSD: terminfo,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# terminfo: file(1) magic for terminfo
diff --git a/usr.bin/file/magdir/tex b/usr.bin/file/magdir/tex
index 5126be8c800..c5af1069b5b 100644
--- a/usr.bin/file/magdir/tex
+++ b/usr.bin/file/magdir/tex
@@ -1,3 +1,4 @@
+# $OpenBSD: tex,v 1.3 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# tex: file(1) magic for TeX files
@@ -34,3 +35,70 @@
0 string \\setlength LaTeX document text
0 string \\documentstyle LaTeX document text
0 string \\chapter LaTeX document text
+0 string \\documentclass LaTeX 2e document text
+0 string \\relax LaTeX auxiliary file
+0 string \\contentsline LaTeX table of contents
+0 string %\ -*-latex-*- LaTeX document text
+
+# Tex document, from Hendrik Scholz <hendrik@scholz.net>
+0 string \\ifx TeX document text
+
+# Index and glossary files
+0 string \\indexentry LaTeX raw index file
+0 string \\begin{theindex} LaTeX sorted index
+0 string \\glossaryentry LaTeX raw glossary
+0 string \\begin{theglossary} LaTeX sorted glossary
+0 string This\ is\ makeindex Makeindex log file
+
+# End of TeX
+
+#------------------------------------------------------------------------------
+# file(1) magic for BibTex text files
+# From Hendrik Scholz <hendrik@scholz.net>
+
+0 string @article{ BibTex text file
+0 string @book{ BibTex text file
+0 string @inbook{ BibTex text file
+0 string @incollection{ BibTex text file
+0 string @inproceedings{ BibTex text file
+0 string @manual{ BibTex text file
+0 string @misc{ BibTex text file
+0 string @preamble{ BibTex text file
+0 string @phdthesis{ BibTex text file
+0 string @techreport{ BibTex text file
+0 string @unpublished{ BibTex text file
+
+0 string @Article{ BibTex text file
+0 string @Book{ BibTex text file
+0 string @Inbook{ BibTex text file
+0 string @Incollection{ BibTex text file
+0 string @Inproceedings{ BibTex text file
+0 string @Manual{ BibTex text file
+0 string @Misc{ BibTex text file
+0 string @Preamble{ BibTex text file
+0 string @Phdthesis{ BibTex text file
+0 string @Techreport{ BibTex text file
+0 string @Unpublished{ BibTex text file
+
+0 string @ARTICLE{ BibTex text file
+0 string @BOOK{ BibTex text file
+0 string @INBOOK{ BibTex text file
+0 string @INCOLLECTION{ BibTex text file
+0 string @INPROCEEDINGS{ BibTex text file
+0 string @MANUAL{ BibTex text file
+0 string @MISC{ BibTex text file
+0 string @PREAMBLE{ BibTex text file
+0 string @PHDTHESIS{ BibTex text file
+0 string @TECHREPORT{ BibTex text file
+0 string @UNPUBLISHED{ BibTex text file
+
+73 string %%%\ \ BibTeX-file{ BibTex text file (with full header)
+
+73 string %%%\ \ @BibTeX-style-file{ BibTeX style text file (with full header)
+
+0 string %\ BibTeX\ standard\ bibliography\ BibTeX standard bibliography style text file
+
+0 string %\ BibTeX\ ` BibTeX custom bibliography style text file
+
+0 string @c\ @mapfile{ TeX font aliases text file
+
diff --git a/usr.bin/file/magdir/ti-8x b/usr.bin/file/magdir/ti-8x
new file mode 100644
index 00000000000..515b0021b9e
--- /dev/null
+++ b/usr.bin/file/magdir/ti-8x
@@ -0,0 +1,239 @@
+# $OpenBSD: ti-8x,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+# ------------------------------------------------------------------------
+# 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
+>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
+>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
+>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
+>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/usr.bin/file/magdir/timezone b/usr.bin/file/magdir/timezone
index 63ab0f7c548..297fbfd1c86 100644
--- a/usr.bin/file/magdir/timezone
+++ b/usr.bin/file/magdir/timezone
@@ -1,14 +1,15 @@
+# $OpenBSD: timezone,v 1.4 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# timezone: file(1) magic for timezone data
#
-# zic
-0 string TZif timezone information file
# from Daniel Quinlan (quinlan@yggdrasil.com)
# this should work on Linux, SunOS, and maybe others
-0 string \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0 timezone data
-0 string \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0 timezone data
-0 string \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0 timezone data
-0 string \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0 timezone data
-0 string \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0 timezone data
-0 string \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6\0 timezone data
+# Added new official magic number for recent versions of the Olson code
+0 string TZif timezone data
+0 string \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0 old timezone data
+0 string \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0 old timezone data
+0 string \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\3\0 old timezone data
+0 string \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\4\0 old timezone data
+0 string \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\5\0 old timezone data
+0 string \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6\0 old timezone data
diff --git a/usr.bin/file/magdir/troff b/usr.bin/file/magdir/troff
index ea75e8516db..ddab8345c5d 100644
--- a/usr.bin/file/magdir/troff
+++ b/usr.bin/file/magdir/troff
@@ -1,3 +1,4 @@
+# $OpenBSD: troff,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# troff: file(1) magic for *roff
diff --git a/usr.bin/file/magdir/tuxedo b/usr.bin/file/magdir/tuxedo
new file mode 100644
index 00000000000..9d039925411
--- /dev/null
+++ b/usr.bin/file/magdir/tuxedo
@@ -0,0 +1,8 @@
+# $OpenBSD: tuxedo,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# tuxedo: file(1) magic for BEA TUXEDO data files
+#
+# from Ian Springer <ispringer@hotmail.com>
+#
+0 string \0\0\1\236\0\0\0\0\0\0\0\0\0\0\0\0 BEA TUXEDO DES mask data
diff --git a/usr.bin/file/magdir/typeset b/usr.bin/file/magdir/typeset
index 2eda7c3e413..8a9b91ed330 100644
--- a/usr.bin/file/magdir/typeset
+++ b/usr.bin/file/magdir/typeset
@@ -1,3 +1,4 @@
+# $OpenBSD: typeset,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# typeset: file(1) magic for other typesetting
diff --git a/usr.bin/file/magdir/unknown b/usr.bin/file/magdir/unknown
index 910cea48e07..86176e85033 100644
--- a/usr.bin/file/magdir/unknown
+++ b/usr.bin/file/magdir/unknown
@@ -1,3 +1,4 @@
+# $OpenBSD: unknown,v 1.3 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# unknown: file(1) magic for unknown machines
diff --git a/usr.bin/file/magdir/uuencode b/usr.bin/file/magdir/uuencode
index 7e88619d5ca..aab736b5ce7 100644
--- a/usr.bin/file/magdir/uuencode
+++ b/usr.bin/file/magdir/uuencode
@@ -1,3 +1,4 @@
+# $OpenBSD: uuencode,v 1.3 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# uuencode: file(1) magic for ASCII-encoded files
diff --git a/usr.bin/file/magdir/varied.out b/usr.bin/file/magdir/varied.out
index 9245cfcbcc3..14c74eeca38 100644
--- a/usr.bin/file/magdir/varied.out
+++ b/usr.bin/file/magdir/varied.out
@@ -1,3 +1,4 @@
+# $OpenBSD: varied.out,v 1.4 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# varied.out: file(1) magic for various USG systems
@@ -15,4 +16,21 @@
6 beshort 0407 unicos (cray) executable
# Ultrix 4.3
596 string \130\337\377\377 Ultrix core file
->600 string >\0 '%s'
+>600 string >\0 from '%s'
+# BeOS and MAcOS PEF executables
+# From: hplus@zilker.net (Jon Watte)
+0 string Joy!peffpwpc header for PowerPC PEF executable
+#
+# ava assembler/linker Uros Platise <uros.platise@ijs.si>
+0 string avaobj AVR assembler object code
+>7 string >\0 version '%s'
+# gnu gmon magic From: Eugen Dedu <dedu@ese-metz.fr>
+0 string gmon GNU prof performance data
+>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
+
+# From: "Stefan A. Haubenthal" <polluks@web.de>
+0 belong 0x000001EB Plan 9 executable
diff --git a/usr.bin/file/magdir/vax b/usr.bin/file/magdir/vax
index 7dd86ccf53e..c1df0a1b06e 100644
--- a/usr.bin/file/magdir/vax
+++ b/usr.bin/file/magdir/vax
@@ -1,3 +1,4 @@
+# $OpenBSD: vax,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# vax: file(1) magic for VAX executable/object and APL workspace
diff --git a/usr.bin/file/magdir/visx b/usr.bin/file/magdir/visx
index 49199642609..916e1931592 100644
--- a/usr.bin/file/magdir/visx
+++ b/usr.bin/file/magdir/visx
@@ -1,3 +1,4 @@
+# $OpenBSD: visx,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# visx: file(1) magic for Visx format files
diff --git a/usr.bin/file/magdir/vms b/usr.bin/file/magdir/vms
index c91186f68c3..292bac27200 100644
--- a/usr.bin/file/magdir/vms
+++ b/usr.bin/file/magdir/vms
@@ -1,3 +1,4 @@
+# $OpenBSD: vms,v 1.3 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# vms: file(1) magic for VMS executables (experimental)
diff --git a/usr.bin/file/magdir/vmware b/usr.bin/file/magdir/vmware
new file mode 100644
index 00000000000..72ec38ebfaa
--- /dev/null
+++ b/usr.bin/file/magdir/vmware
@@ -0,0 +1,13 @@
+# $OpenBSD: vmware,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+# -----------------------------------------------------------
+# 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 VMware
+>4 byte 3 virtual disk
+>>32 lelong x (%d/
+>>36 lelong x \b%d/
+>>40 lelong x \b%d)
+>4 byte 2 undoable disk
+>>32 string >\0 (%s)
diff --git a/usr.bin/file/magdir/vxl b/usr.bin/file/magdir/vxl
new file mode 100644
index 00000000000..a3ca455aa09
--- /dev/null
+++ b/usr.bin/file/magdir/vxl
@@ -0,0 +1,14 @@
+# $OpenBSD: vxl,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# VXL: file(1) magic for VXL binary IO data files
+#
+# from Ian Scott <scottim@sf.net>
+#
+# VXL is a collection of C++ libraries for Computer Vision.
+# See the vsl chapter in the VXL Book for more info
+# http://www.isbe.man.ac.uk/public_vxl_doc/books/vxl/book.html
+# http:/vxl.sf.net
+
+2 lelong 0x472b2c4e VXL data file,
+>0 leshort >0 schema version no %d
diff --git a/usr.bin/file/magdir/xdelta b/usr.bin/file/magdir/xdelta
new file mode 100644
index 00000000000..3146ace088b
--- /dev/null
+++ b/usr.bin/file/magdir/xdelta
@@ -0,0 +1,11 @@
+# $OpenBSD: xdelta,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# file(1) magic(5) data for xdelta Josh MacDonald <jmacd@CS.Berkeley.EDU>
+#
+0 string %XDELTA% XDelta binary patch file 0.14
+0 string %XDZ000% XDelta binary patch file 0.18
+0 string %XDZ001% XDelta binary patch file 0.20
+0 string %XDZ002% XDelta binary patch file 1.0
+0 string %XDZ003% XDelta binary patch file 1.0.4
+0 string %XDZ004% XDelta binary patch file 1.1
diff --git a/usr.bin/file/magdir/xenix b/usr.bin/file/magdir/xenix
index 1acadec62a0..debf2a2a824 100644
--- a/usr.bin/file/magdir/xenix
+++ b/usr.bin/file/magdir/xenix
@@ -1,3 +1,4 @@
+# $OpenBSD: xenix,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# xenix: file(1) magic for Microsoft Xenix
diff --git a/usr.bin/file/magdir/xwindows b/usr.bin/file/magdir/xwindows
new file mode 100644
index 00000000000..aae84e9ce33
--- /dev/null
+++ b/usr.bin/file/magdir/xwindows
@@ -0,0 +1,26 @@
+# $OpenBSD: xwindows,v 1.1 2004/06/03 03:14:20 tedu Exp $
+
+#------------------------------------------------------------------------------
+# 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]
diff --git a/usr.bin/file/magdir/zilog b/usr.bin/file/magdir/zilog
index b746e204f5b..2964a81df73 100644
--- a/usr.bin/file/magdir/zilog
+++ b/usr.bin/file/magdir/zilog
@@ -1,3 +1,4 @@
+# $OpenBSD: zilog,v 1.4 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# zilog: file(1) magic for Zilog Z8000.
diff --git a/usr.bin/file/magdir/zyxel b/usr.bin/file/magdir/zyxel
index 12a6abd5de8..cd53515556e 100644
--- a/usr.bin/file/magdir/zyxel
+++ b/usr.bin/file/magdir/zyxel
@@ -1,3 +1,4 @@
+# $OpenBSD: zyxel,v 1.2 2004/06/03 03:14:20 tedu Exp $
#------------------------------------------------------------------------------
# zyxel: file(1) magic for ZyXEL modems