summaryrefslogtreecommitdiff
path: root/usr.bin/file/Magdir
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/file/Magdir')
-rw-r--r--usr.bin/file/Magdir/Header5
-rw-r--r--usr.bin/file/Magdir/Localstuff3
-rw-r--r--usr.bin/file/Magdir/alliant15
-rw-r--r--usr.bin/file/Magdir/apl4
-rw-r--r--usr.bin/file/Magdir/apple10
-rw-r--r--usr.bin/file/Magdir/ar104
-rw-r--r--usr.bin/file/Magdir/arc3
-rw-r--r--usr.bin/file/Magdir/archive15
-rw-r--r--usr.bin/file/Magdir/att3b38
-rw-r--r--usr.bin/file/Magdir/audio43
-rw-r--r--usr.bin/file/Magdir/blit16
-rw-r--r--usr.bin/file/Magdir/bsdi2
-rw-r--r--usr.bin/file/Magdir/c-lang3
-rw-r--r--usr.bin/file/Magdir/chi4
-rw-r--r--usr.bin/file/Magdir/clipper63
-rw-r--r--usr.bin/file/Magdir/commands40
-rw-r--r--usr.bin/file/Magdir/compress40
-rw-r--r--usr.bin/file/Magdir/convex4
-rw-r--r--usr.bin/file/Magdir/cpio16
-rw-r--r--usr.bin/file/Magdir/diamond8
-rw-r--r--usr.bin/file/Magdir/diff6
-rw-r--r--usr.bin/file/Magdir/ditroff4
-rw-r--r--usr.bin/file/Magdir/dump80
-rw-r--r--usr.bin/file/Magdir/elf44
-rw-r--r--usr.bin/file/Magdir/encore20
-rw-r--r--usr.bin/file/Magdir/floppy.raw1
-rw-r--r--usr.bin/file/Magdir/fonts3
-rw-r--r--usr.bin/file/Magdir/frame28
-rw-r--r--usr.bin/file/Magdir/gzip21
-rw-r--r--usr.bin/file/Magdir/hp191
-rw-r--r--usr.bin/file/Magdir/ibm37019
-rw-r--r--usr.bin/file/Magdir/ibm600017
-rw-r--r--usr.bin/file/Magdir/iff5
-rw-r--r--usr.bin/file/Magdir/imagen14
-rw-r--r--usr.bin/file/Magdir/images69
-rw-r--r--usr.bin/file/Magdir/intel31
-rw-r--r--usr.bin/file/Magdir/interleaf7
-rw-r--r--usr.bin/file/Magdir/iris57
-rw-r--r--usr.bin/file/Magdir/ispell23
-rw-r--r--usr.bin/file/Magdir/lex3
-rw-r--r--usr.bin/file/Magdir/lif6
-rw-r--r--usr.bin/file/Magdir/linux11
-rw-r--r--usr.bin/file/Magdir/magic1
-rw-r--r--usr.bin/file/Magdir/mail.news13
-rw-r--r--usr.bin/file/Magdir/microsoft68
-rw-r--r--usr.bin/file/Magdir/mips8
-rw-r--r--usr.bin/file/Magdir/mirage4
-rw-r--r--usr.bin/file/Magdir/mkid7
-rw-r--r--usr.bin/file/Magdir/mmdf1
-rw-r--r--usr.bin/file/Magdir/motorola28
-rw-r--r--usr.bin/file/Magdir/ms-dos8
-rw-r--r--usr.bin/file/Magdir/ncr47
-rw-r--r--usr.bin/file/Magdir/netbsd117
-rw-r--r--usr.bin/file/Magdir/news5
-rw-r--r--usr.bin/file/Magdir/pbm4
-rw-r--r--usr.bin/file/Magdir/pdp22
-rw-r--r--usr.bin/file/Magdir/pgp10
-rw-r--r--usr.bin/file/Magdir/pkgadd4
-rw-r--r--usr.bin/file/Magdir/plus516
-rw-r--r--usr.bin/file/Magdir/postscript17
-rw-r--r--usr.bin/file/Magdir/psdbms6
-rw-r--r--usr.bin/file/Magdir/pyramid10
-rw-r--r--usr.bin/file/Magdir/rle19
-rw-r--r--usr.bin/file/Magdir/sc2
-rw-r--r--usr.bin/file/Magdir/sccs17
-rw-r--r--usr.bin/file/Magdir/sendmail9
-rw-r--r--usr.bin/file/Magdir/sequent30
-rw-r--r--usr.bin/file/Magdir/sgml6
-rw-r--r--usr.bin/file/Magdir/softquad27
-rw-r--r--usr.bin/file/Magdir/sun84
-rw-r--r--usr.bin/file/Magdir/sunraster12
-rw-r--r--usr.bin/file/Magdir/terminfo8
-rw-r--r--usr.bin/file/Magdir/tex25
-rw-r--r--usr.bin/file/Magdir/troff6
-rw-r--r--usr.bin/file/Magdir/typeset5
-rw-r--r--usr.bin/file/Magdir/unknown35
-rw-r--r--usr.bin/file/Magdir/uuencode3
-rw-r--r--usr.bin/file/Magdir/varied.out5
-rw-r--r--usr.bin/file/Magdir/vax33
-rw-r--r--usr.bin/file/Magdir/visx30
-rw-r--r--usr.bin/file/Magdir/x119
-rw-r--r--usr.bin/file/Magdir/zilog11
-rw-r--r--usr.bin/file/Magdir/zyxel9
83 files changed, 1877 insertions, 0 deletions
diff --git a/usr.bin/file/Magdir/Header b/usr.bin/file/Magdir/Header
new file mode 100644
index 0000000000000..0c97baede0ccb
--- /dev/null
+++ b/usr.bin/file/Magdir/Header
@@ -0,0 +1,5 @@
+#! file
+# Magic data for file(1) command.
+# Machine-genererated from src/cmd/file/magdir/*; edit there only!
+# Format is described in magic(files), where:
+# files is 4 on V7 and BSD, 4 on SV, and ?? in the SVID.
diff --git a/usr.bin/file/Magdir/Localstuff b/usr.bin/file/Magdir/Localstuff
new file mode 100644
index 0000000000000..224940b946e1d
--- /dev/null
+++ b/usr.bin/file/Magdir/Localstuff
@@ -0,0 +1,3 @@
+# $Id: Localstuff,v 1.2 1993/01/05 13:22:25 ian 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/alliant b/usr.bin/file/Magdir/alliant
new file mode 100644
index 0000000000000..52ed628db2939
--- /dev/null
+++ b/usr.bin/file/Magdir/alliant
@@ -0,0 +1,15 @@
+#
+# Alliant FX series a.out files:
+# If the FX series is the one that had a processor with a 68K-derived
+# instruction set, the "short" should probably become "beshort" and the
+# "long" should probably become "belong".
+# If it's the i860-based one, they should probably become either the
+# big-endian or little-endian versions, depending on the mode they ran
+# the 860 in....
+#
+0 short 0420 0420 Alliant virtual executable
+>2 short &0x0020 common library
+>16 long >0 not stripped
+0 short 0421 0421 Alliant compact executable
+>2 short &0x0020 common library
+>16 long >0 not stripped
diff --git a/usr.bin/file/Magdir/apl b/usr.bin/file/Magdir/apl
new file mode 100644
index 0000000000000..6ede926af3783
--- /dev/null
+++ b/usr.bin/file/Magdir/apl
@@ -0,0 +1,4 @@
+#
+# magic.apl:
+#
+0 long 0100554 APL workspace (Ken's original?)
diff --git a/usr.bin/file/Magdir/apple b/usr.bin/file/Magdir/apple
new file mode 100644
index 0000000000000..eb48673cc0ed6
--- /dev/null
+++ b/usr.bin/file/Magdir/apple
@@ -0,0 +1,10 @@
+#
+# Apple II file formats
+#
+0 string FiLeStArTfIlEsTaRt binscii (apple ][) text
+0 string \x0aGL Binary II (apple ][) data
+0 string \x76\xff Squeezed (apple ][) data
+0 string SIT! StuffIt (macintosh) text
+0 string NuFile NuFile archive (apple ][) data
+0 string N\xf5F\xe9l\xe5 NuFile archive (apple ][) data
+
diff --git a/usr.bin/file/Magdir/ar b/usr.bin/file/Magdir/ar
new file mode 100644
index 0000000000000..583ec30cf9b3f
--- /dev/null
+++ b/usr.bin/file/Magdir/ar
@@ -0,0 +1,104 @@
+#
+# "ar", for all kinds of archives.
+#
+# XXX - why are there multiple <ar> thingies? Note that 0x213c6172 is
+# "!<ar", so, for new-style (4.xBSD/SVR2andup) archives, we have:
+#
+# 0 string !<arch> current ar archive
+# 0 long 0x213c6172 archive file
+#
+# and for SVR3.1 archives, we have:
+#
+# 0 string \<ar> System V Release 1 ar archive
+# 0 string =<ar> archive
+# 0 string =<ar> archive
+#
+# XXX - did Aegis really store shared libraries, breakpointed modules,
+# and absolute code program modules in the same format as new-style
+# "ar" archives?
+#
+0 string !<arch> current ar archive
+>8 string __.SYMDEF random library
+>0 belong =65538 - pre SR9.5
+>0 belong =65539 - post SR9.5
+>0 beshort 2 - object archive
+>0 beshort 3 - shared library module
+>0 beshort 4 - debug break-pointed module
+>0 beshort 5 - absolute code program module
+0 string \<ar> System V Release 1 ar archive
+0 string =<ar> archive
+#
+# XXX - from "vax", which appears to collect a bunch of byte-swapped
+# thingies, to help you recognize VAX files on big-endian machines;
+# with "leshort", "lelong", and "string", that's no longer necessary....
+#
+# 0 long 0x3c61723e VAX 5.0 archive
+#
+0 long 0x213c6172 archive file
+0 lelong 0177555 very old VAX archive
+0 leshort 0177555 very old PDP-11 archive
+#
+# XXX - "pdp" claims that 0177545 can have an __.SYMDEF member and thus
+# be a random library (it said 0xff65 rather than 0177545).
+#
+0 lelong 0177545 old VAX archive
+>8 string __.SYMDEF random library
+0 leshort 0177545 old PDP-11 archive
+>8 string __.SYMDEF random library
+#
+0 string =<ar> archive
+#
+# From "pdp":
+#
+0 lelong 0x39bed PDP-11 old archive
+0 lelong 0x39bee PDP-11 4.0 archive
+#
+0 string -h- Software Tools format archive text
+# "arc" archiver
+0 byte 26 'arc' archive
+>1 byte 0 (empty)
+>1 byte 1 (old format)
+# Rahul Dhesi's zoo archive format, from keith@cerberus.uchicago.edu.
+20 long 0xdca7c4fd Rahul Dhesi's "zoo" archive
+# ZIP archiver
+0 string PK zip archive file
+>4 byte x - version
+>4 byte 10 1.0
+>4 byte 20 2.0
+
+2 string -lh LHarc archive data
+>6 byte x type %c
+>20 byte x - header level %d
+
+# From: <u31b3hs@pool.informatik.rwth-aachen.de> (Michael Haardt)
+2 string -lh0- Lharc 1.x archive
+2 string -lh1- Lharc 1.x archive
+2 string -lz4- Lharc 1.x archive
+2 string -lz5- Lharc 1.x archive
+2 string -lzs- LHa 2.x? archive [lzs]
+2 string -lh - LHa 2.x? archive [lh ]
+2 string -lhd- LHa 2.x? archive [lhd]
+2 string -lh2- LHa 2.x? archive [lh2]
+2 string -lh3- LHa 2.x? archive [lh3]
+2 string -lh4- LHa 2.x? archive [lh4]
+2 string -lh5- LHa (2.x) archive
+
+# ARJ archive data from jason@jarthur.Claremont.EDU
+0 leshort 0xea60 ARJ archive data
+>5 byte x - version %d,
+>8 byte >0 flags:
+>>8 byte &0x04 multi-volume,
+>>8 byte &0x10 slash switched,
+>>8 byte &0x20 backup,
+>34 string x original name: %s,
+>7 byte 0 os: MS/DOS
+>7 byte 1 os: PRIMOS
+>7 byte 2 os: UNIX
+>7 byte 3 os: Amiga
+>7 byte 4 os: Macintosh
+>7 byte 5 os: OS/2
+>7 byte 6 os: Apple ][ GS
+>7 byte 7 os: Atari ST
+>7 byte 8 os: NeXT
+>7 byte 9 os: VAX/VMS
+>3 byte >0 %d]
diff --git a/usr.bin/file/Magdir/arc b/usr.bin/file/Magdir/arc
new file mode 100644
index 0000000000000..1ebb260162e25
--- /dev/null
+++ b/usr.bin/file/Magdir/arc
@@ -0,0 +1,3 @@
+0 byte 26 'arc' archive
+>1 byte 0 (empty)
+>1 byte 1 (old format)
diff --git a/usr.bin/file/Magdir/archive b/usr.bin/file/Magdir/archive
new file mode 100644
index 0000000000000..8999c2f497e56
--- /dev/null
+++ b/usr.bin/file/Magdir/archive
@@ -0,0 +1,15 @@
+# A collection of various "ar" and "cpio" archive formats.
+# "Tar" archives are handled in the C code.
+0 short 070707 cpio archive
+0 string 070707 ASCII cpio archive
+0 long 0177555 very old archive
+0 short 0177555 very old PDP-11 archive
+0 long 0177545 old archive
+0 short 0177545 old PDP-11 archive
+0 long 0100554 apl workspace
+0 string =<ar> archive
+0 string !<arch> archive
+>8 string __.SYMDEF random library
+0 string -h- Software Tools format archive text
+# Rahul Dhesi's zoo archive format, from keith@cerberus.uchicago.edu.
+20 long 0xdca7c4fd Rahul Dhesi's "zoo" archive
diff --git a/usr.bin/file/Magdir/att3b b/usr.bin/file/Magdir/att3b
new file mode 100644
index 0000000000000..c1e9e39fdde20
--- /dev/null
+++ b/usr.bin/file/Magdir/att3b
@@ -0,0 +1,38 @@
+#
+# AT&T 3B machines
+#
+# The `versions' should be un-commented if they work for you.
+# (Was the problem just one of endianness?)
+#
+# 3B20
+#
+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
+#>22 beshort >0 - version %ld
+#
+# WE32K
+#
+0 beshort 0560 WE32000 COFF
+>18 beshort ^00000020 object
+>18 beshort &00000020 executable
+>12 belong >0 not stripped
+>18 beshort ^00010000 N/A on 3b2/300 w/paging
+>18 beshort &00020000 32100 required
+>18 beshort &00040000 and mau hardware required
+>20 beshort 0407 (impure)
+>20 beshort 0410 (pure)
+>20 beshort 0413 (demand paged)
+>20 beshort 0443 (target shared library)
+>22 beshort >0 - version %ld
+0 beshort 0561 WE32000 COFF executable (TV)
+>12 belong >0 not stripped
+#>18 beshort &00020000 - 32100 required
+#>18 beshort &00040000 and mau hardware required
+#>22 beshort >0 - version %ld
+#
+# core file for 3b2
+0 string \000\004\036\212\200 3b2 core file
+>364 string >\0 of '%s'
diff --git a/usr.bin/file/Magdir/audio b/usr.bin/file/Magdir/audio
new file mode 100644
index 0000000000000..6b4cb364532c8
--- /dev/null
+++ b/usr.bin/file/Magdir/audio
@@ -0,0 +1,43 @@
+#
+# Sound formats, from Jan Nicolai Langfeldt <janl@ifi.uio.no>,
+#
+
+# Sun/NeXT audio data
+0 string .snd audio data:
+>12 belong 1 8-bit u-law,
+>12 belong 2 8-bit linear PCM,
+>12 belong 3 16-bit linear PCM,
+>12 belong 4 24-bit linear PCM,
+>12 belong 5 32-bit linear PCM,
+>12 belong 6 32-bit floating point,
+>12 belong 7 64-bit floating point,
+>12 belong 23 compressed (G.721 ADPCM),
+>20 belong 1 mono,
+>20 belong 2 stereo,
+>20 belong 4 quad,
+>16 belong x %d Hz
+# DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format
+# that uses little-endian encoding and has a different magic number
+# (0x0064732E in little-endian encoding).
+0 lelong 0x0064732E DEC audio data:
+>12 lelong 1 8-bit u-law,
+>12 lelong 2 8-bit linear PCM,
+>12 lelong 3 16-bit linear PCM,
+>12 lelong 4 24-bit linear PCM,
+>12 lelong 5 32-bit linear PCM,
+>12 lelong 6 32-bit floating point,
+>12 lelong 7 64-bit floating point,
+>12 lelong 23 compressed (G.721 ADPCM),
+>20 lelong 1 mono,
+>20 lelong 2 stereo,
+>20 lelong 4 quad,
+>16 lelong x %d Hz
+# Bytes 0-3 of AIFF, AIFF-C, & 8SVX audio files are "FORM"
+8 string AIFF AIFF audio data
+8 string AIFC AIFF-C audio data
+8 string 8SVX IFF/8SVX audio data
+# Bytes 0-3 of Waveform (*.wav) audio files are "RIFF"
+8 string WAVE Waveform audio data
+0 string Creative\ Voice\ File Soundblaster audio data
+0 long 0x4e54524b MultiTrack sound data file
+>4 long x - version %ld
diff --git a/usr.bin/file/Magdir/blit b/usr.bin/file/Magdir/blit
new file mode 100644
index 0000000000000..0f4804da8c023
--- /dev/null
+++ b/usr.bin/file/Magdir/blit
@@ -0,0 +1,16 @@
+# 68K Blit stuff as seen from 680x0 machine
+# Note that this 0407 conflicts with several other a.out formats...
+#
+# XXX - should this be redone with "be" and "le", so that it works on
+# little-endian machines as well? If so, what's the deal with
+# "VAX-order" and "VAX-order2"?
+#
+#0 long 0407 68K Blit (standalone) executable
+#0 short 0407 VAX-order2 68K Blit (standalone) executable
+0 short 03401 VAX-order 68K Blit (standalone) executable
+0 long 0406 68k Blit mpx/mux executable
+0 short 0406 VAX-order2 68k Blit mpx/mux executable
+0 short 03001 VAX-order 68k Blit mpx/mux executable
+# Need more values for WE32 DMD executables.
+# Note that 0520 is the same as COFF
+#0 short 0520 tty630 layers executable
diff --git a/usr.bin/file/Magdir/bsdi b/usr.bin/file/Magdir/bsdi
new file mode 100644
index 0000000000000..faf0a60392723
--- /dev/null
+++ b/usr.bin/file/Magdir/bsdi
@@ -0,0 +1,2 @@
+# BSDI BSD/386
+0 long 0314 BSD/386 demand paged (first page unmapped) pure executable
diff --git a/usr.bin/file/Magdir/c-lang b/usr.bin/file/Magdir/c-lang
new file mode 100644
index 0000000000000..79b2254bc699d
--- /dev/null
+++ b/usr.bin/file/Magdir/c-lang
@@ -0,0 +1,3 @@
+# 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 program text
diff --git a/usr.bin/file/Magdir/chi b/usr.bin/file/Magdir/chi
new file mode 100644
index 0000000000000..2dfbfcfced27f
--- /dev/null
+++ b/usr.bin/file/Magdir/chi
@@ -0,0 +1,4 @@
+# ChiWriter files
+0 string \\1cw\ ChiWriter file
+>5 string >\0 version %s
+0 string \\1cw ChiWriter file
diff --git a/usr.bin/file/Magdir/clipper b/usr.bin/file/Magdir/clipper
new file mode 100644
index 0000000000000..f4e9fa73cbce4
--- /dev/null
+++ b/usr.bin/file/Magdir/clipper
@@ -0,0 +1,63 @@
+#
+# Intergraph, formerly Fairchild, Clipper.
+#
+# XXX - what byte order does the Clipper use?
+#
+# XXX - what's the "!" stuff:
+#
+# >18 short !074000,000000 C1 R1
+# >18 short !074000,004000 C2 R1
+# >18 short !074000,010000 C3 R1
+# >18 short !074000,074000 TEST
+#
+# I shall assume it's ANDing the field with the first value and
+# comparing it with the second, and rewrite it as:
+#
+# >18 short&074000 000000 C1 R1
+# >18 short&074000 004000 C2 R1
+# >18 short&074000 010000 C3 R1
+# >18 short&074000 074000 TEST
+#
+# as SVR3.1's "file" doesn't support anything of the "!074000,000000"
+# sort, nor does SunOS 4.x, so either it's something Intergraph added
+# in CLIX, or something AT&T added in SVR3.2 or later, or something
+# somebody else thought was a good idea; it's not documented in the
+# man page for this version of "magic", nor does it appear to be
+# implemented (at least not after I blew off the bogus code to turn
+# old-style "&"s into new-style "&"s, which just didn't work at all).
+#
+0 short 0575 CLIPPER COFF executable (VAX #)
+>20 short 0407 (impure)
+>20 short 0410 (5.2 compatible)
+>20 short 0411 (pure)
+>20 short 0413 (demand paged)
+>20 short 0443 (target shared library)
+>12 long >0 not stripped
+>22 short >0 - version %ld
+0 short 0577 CLIPPER COFF executable
+>18 short&074000 000000 C1 R1
+>18 short&074000 004000 C2 R1
+>18 short&074000 010000 C3 R1
+>18 short&074000 074000 TEST
+>20 short 0407 (impure)
+>20 short 0410 (pure)
+>20 short 0411 (separate I&D)
+>20 short 0413 (paged)
+>20 short 0443 (target shared library)
+>12 long >0 not stripped
+>22 short >0 - version %ld
+>48 long&01 01 alignment trap enabled
+>52 byte 1 -Ctnc
+>52 byte 2 -Ctsw
+>52 byte 3 -Ctpw
+>52 byte 4 -Ctcb
+>53 byte 1 -Cdnc
+>53 byte 2 -Cdsw
+>53 byte 3 -Cdpw
+>53 byte 4 -Cdcb
+>54 byte 1 -Csnc
+>54 byte 2 -Cssw
+>54 byte 3 -Cspw
+>54 byte 4 -Cscb
+4 string pipe CLIPPER instruction trace
+4 string prof CLIPPER instruction profile
diff --git a/usr.bin/file/Magdir/commands b/usr.bin/file/Magdir/commands
new file mode 100644
index 0000000000000..d7c04c1a40aca
--- /dev/null
+++ b/usr.bin/file/Magdir/commands
@@ -0,0 +1,40 @@
+#
+# "Commands": stuff for various shells and interpreters.
+#
+0 string :\ shell archive or commands for antique kernel text
+0 string #!/bin/sh Bourne Shell script text
+0 string #!\ /bin/sh Bourne Shell script text
+0 string #!/bin/csh C Shell script text
+0 string #!\ /bin/csh C Shell script text
+# korn shell magic, sent by George Wu, gwu@clyde.att.com
+0 string #!/bin/ksh Korn Shell script text
+0 string #!\ /bin/ksh Korn Shell script text
+0 string #!/bin/tcsh Tenex C Shell script text
+0 string #!\ /bin/tcsh Tenex C Shell script text
+0 string #!/usr/local/tcsh Tenex C Shell script text
+0 string #!\ /usr/local/tcsh Tenex C Shell script text
+0 string #!/usr/local/bin/tcsh Tenex C Shell script text
+0 string #!\ /usr/local/bin/tcsh Tenex C Shell script text
+0 string #!/bin/awk Awk Commands text
+0 string #!\ /bin/awk Awk Commands text
+0 string #!\ / a
+>3 string >\0 %s script text
+0 string #!/ a
+>2 string >\0 %s script text
+0 string #!\ commands text
+>3 string >\0 for %s
+
+# For Larry Wall's perl language. The ``eval'' line recognizes an
+# outrageously clever hack for USG systems.
+# Keith Waclena <keith@cerberus.uchicago.edu>
+0 string #!/bin/perl perl commands text
+0 string #!\ /bin/perl perl commands text
+0 string eval\ "exec\ /bin/perl perl commands text
+0 string #!/usr/bin/perl perl commands text
+0 string #!\ /usr/bin/perl perl commands text
+0 string eval\ "exec\ /usr/bin/perl perl commands text
+0 string #!/usr/local/bin/perl perl commands text
+0 string #!\ /usr/local/bin/perl perl commands text
+0 string eval\ "exec\ /usr/local/bin/perl perl commands text
+0 string #!/bin/rc Plan 9 rc Shell script text
+0 string #!\ /bin/rc Plan 9 rc Shell script text
diff --git a/usr.bin/file/Magdir/compress b/usr.bin/file/Magdir/compress
new file mode 100644
index 0000000000000..6309c18061a1b
--- /dev/null
+++ b/usr.bin/file/Magdir/compress
@@ -0,0 +1,40 @@
+#
+# Formats for various forms of compressed data
+# Formats for "compress" proper have been moved into "compress.c",
+# because it tries to uncompress it to figure out what's inside.
+
+# According to gzip.h, this is the correct byte order for packed data.
+#
+0 string \037\036 packed data
+
+#
+# This magic number is byte-order-independent.
+#
+0 short 017437 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?
+#
+0 short 0x1fff compacted data
+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)
+# Freeze
+0 string \037\237 Frozen file 2.1
+0 string \037\236 Frozen file 1.0 (or gzip 0.5)
+#
+# Standard unix compress
+#
+0 string \037\235 compressed data
+>2 byte&0x80 >0 block compressed
+>2 byte&0x1f x %d bits
+
+0 string \037\240 LZH compressed data
diff --git a/usr.bin/file/Magdir/convex b/usr.bin/file/Magdir/convex
new file mode 100644
index 0000000000000..0220a81473683
--- /dev/null
+++ b/usr.bin/file/Magdir/convex
@@ -0,0 +1,4 @@
+#
+# XXX - what byte order does a Convex use?
+#
+0 long 0513 Convex executable
diff --git a/usr.bin/file/Magdir/cpio b/usr.bin/file/Magdir/cpio
new file mode 100644
index 0000000000000..d1805cc171f1c
--- /dev/null
+++ b/usr.bin/file/Magdir/cpio
@@ -0,0 +1,16 @@
+#
+# Yes, the two "cpio archive" formats *are* supposed to just be "short".
+# The idea is to indicate archives produced on machines with the same
+# byte order as the machine running "file" with "cpio archive", and
+# to indicate archives produced on machines with the opposite byte order
+# from the machine running "file" with "byte-swapped cpio archive".
+#
+# The SVR4 "cpio(4)" hints that there are additional formats, but they
+# are defined as "short"s; I think all the new formats are
+# character-header formats, and thus are strings not numbers.
+#
+0 short 070707 cpio archive
+0 short 0143561 byte-swapped cpio archive
+0 string 070707 ASCII cpio archive (pre-SVR4 or odc)
+0 string 070701 ASCII cpio archive (SVR4 with no CRC)
+0 string 070702 ASCII cpio archive (SVR4 with CRC)
diff --git a/usr.bin/file/Magdir/diamond b/usr.bin/file/Magdir/diamond
new file mode 100644
index 0000000000000..d515d61fe9a17
--- /dev/null
+++ b/usr.bin/file/Magdir/diamond
@@ -0,0 +1,8 @@
+#
+# ... diamond is a multi-media mail and electronic conferencing system....
+#
+# XXX - I think it was either renamed Slate, or replaced by Slate....
+#
+# The full deal is too long...
+#0 string <list>\n<protocol\ bbn-multimedia-format> Diamond Multimedia Document
+0 string =<list>\n<protocol\ bbn-m Diamond Multimedia Document
diff --git a/usr.bin/file/Magdir/diff b/usr.bin/file/Magdir/diff
new file mode 100644
index 0000000000000..abf1b87c72117
--- /dev/null
+++ b/usr.bin/file/Magdir/diff
@@ -0,0 +1,6 @@
+#
+# magic file lines for output from "diff"...
+0 string diff\ 'diff' output text
+0 string ***\ 'diff' output text
+0 string Only\ in\ 'diff' output text
+0 string Common\ subdirectories:\ 'diff' output text
diff --git a/usr.bin/file/Magdir/ditroff b/usr.bin/file/Magdir/ditroff
new file mode 100644
index 0000000000000..1fff1783639be
--- /dev/null
+++ b/usr.bin/file/Magdir/ditroff
@@ -0,0 +1,4 @@
+# Magic numbers for ditroff intermediate language
+0 string x\ T\ cat titroff output for the C/A/T text
+0 string x\ T\ ps titroff output for PostScript
+0 string x\ T titroff output text
diff --git a/usr.bin/file/Magdir/dump b/usr.bin/file/Magdir/dump
new file mode 100644
index 0000000000000..d641747f38d42
--- /dev/null
+++ b/usr.bin/file/Magdir/dump
@@ -0,0 +1,80 @@
+#
+# magic.dump, dump file format. For new and old dump filesystems
+#
+# We specify both byte orders in order to recognize byte-swapped dumps.
+#
+24 belong 60012 new-fs dump file (big endian),
+>4 bedate x Previous dump %s,
+>8 bedate x This dump %s,
+>12 belong >0 Volume %ld,
+>692 belong 0 Level zero, type:
+>692 belong >0 Level %d, type:
+>0 belong 1 tape header,
+>0 belong 2 beginning of file record,
+>0 belong 3 map of inodes on tape,
+>0 belong 4 continuation of file record,
+>0 belong 5 end of volume,
+>0 belong 6 map of inodes deleted,
+>0 belong 7 end of medium (for floppy),
+>676 string >\0 Label %s,
+>696 string >\0 Filesystem %s,
+>760 string >\0 Device %s,
+>824 string >\0 Host %s,
+>888 belong >0 Flags %x
+
+24 belong 60011 old-fs dump file (big endian),
+#>4 bedate x Previous dump %s,
+#>8 bedate x This dump %s,
+>12 belong >0 Volume %ld,
+>692 belong 0 Level zero, type:
+>692 belong >0 Level %d, type:
+>0 belong 1 tape header,
+>0 belong 2 beginning of file record,
+>0 belong 3 map of inodes on tape,
+>0 belong 4 continuation of file record,
+>0 belong 5 end of volume,
+>0 belong 6 map of inodes deleted,
+>0 belong 7 end of medium (for floppy),
+>676 string >\0 Label %s,
+>696 string >\0 Filesystem %s,
+>760 string >\0 Device %s,
+>824 string >\0 Host %s,
+>888 belong >0 Flags %x
+
+24 lelong 60012 new-fs dump file (little endian),
+>4 ledate x Previous dump %s,
+>8 ledate x This dump %s,
+>12 lelong >0 Volume %ld,
+>692 lelong 0 Level zero, type:
+>692 lelong >0 Level %d, type:
+>0 lelong 1 tape header,
+>0 lelong 2 beginning of file record,
+>0 lelong 3 map of inodes on tape,
+>0 lelong 4 continuation of file record,
+>0 lelong 5 end of volume,
+>0 lelong 6 map of inodes deleted,
+>0 lelong 7 end of medium (for floppy),
+>676 string >\0 Label %s,
+>696 string >\0 Filesystem %s,
+>760 string >\0 Device %s,
+>824 string >\0 Host %s,
+>888 lelong >0 Flags %x
+
+24 lelong 60011 old-fs dump file (little endian),
+#>4 ledate x Previous dump %s,
+#>8 ledate x This dump %s,
+>12 lelong >0 Volume %ld,
+>692 lelong 0 Level zero, type:
+>692 lelong >0 Level %d, type:
+>0 lelong 1 tape header,
+>0 lelong 2 beginning of file record,
+>0 lelong 3 map of inodes on tape,
+>0 lelong 4 continuation of file record,
+>0 lelong 5 end of volume,
+>0 lelong 6 map of inodes deleted,
+>0 lelong 7 end of medium (for floppy),
+>676 string >\0 Label %s,
+>696 string >\0 Filesystem %s,
+>760 string >\0 Device %s,
+>824 string >\0 Host %s,
+>888 lelong >0 Flags %x
diff --git a/usr.bin/file/Magdir/elf b/usr.bin/file/Magdir/elf
new file mode 100644
index 0000000000000..e34332dc1c700
--- /dev/null
+++ b/usr.bin/file/Magdir/elf
@@ -0,0 +1,44 @@
+#
+# ELF
+# Missing MIPS image type and flags
+#
+# Question marks on processor types flag "should not happen because the
+# byte order is wrong". We have to check the byte order flag to see what
+# byte order all the other stuff in the header is in.
+#
+0 string \177ELF ELF
+>4 byte 0 invalid class
+>4 byte 1 32-bit
+>4 byte 2 64-bit
+>5 byte 0 invalid byte order
+>5 byte 1 LSB
+>>16 leshort 0 unknown type
+>>16 leshort 1 relocatable
+>>16 leshort 2 executable
+>>16 leshort 3 dynamic lib
+>>16 leshort 4 core file
+>>18 leshort 0 unknown machine
+>>18 leshort 1 WE32100 and up
+>>18 leshort 2 SPARC?
+>>18 leshort 3 i386 (386 and up)
+>>18 leshort 4 M68000?
+>>18 leshort 5 M88000?
+>>18 leshort 7 i860
+>>20 lelong 1 Version 1
+>>36 lelong 1 MathCoPro/FPU/MAU Required
+>5 byte 2 MSB
+>>16 beshort 0 unknown type
+>>16 beshort 1 relocatable
+>>16 beshort 2 executable
+>>16 beshort 3 dynamic lib
+>>16 beshort 4 core file
+>>18 beshort 0 unknown machine
+>>18 beshort 1 WE32100 and up
+>>18 beshort 2 SPARC
+>>18 beshort 3 i386 (386 and up)?
+>>18 beshort 4 M68000
+>>18 beshort 5 M88000
+>>18 beshort 7 i860
+>>20 belong 1 Version 1
+>>36 belong 1 MathCoPro/FPU/MAU Required
+
diff --git a/usr.bin/file/Magdir/encore b/usr.bin/file/Magdir/encore
new file mode 100644
index 0000000000000..7244f87a9110c
--- /dev/null
+++ b/usr.bin/file/Magdir/encore
@@ -0,0 +1,20 @@
+#
+# magic.encore: Recognize encore machines
+#
+# XXX - needs to have the byte order specified (NS32K was little-endian,
+# dunno whether they run the 88K in little-endian mode or not).
+#
+0 short 0x154 Encore
+>20 short 0x107 executable
+>20 short 0x108 pure executable
+>20 short 0x10b demand-paged executable
+>20 short 0x10f unsupported executable
+>12 long >0 not stripped
+>22 short >0 - version %ld
+>22 short 0 -
+#>4 date x stamp %s
+0 short 0x155 Encore unsupported executable
+>12 long >0 not stripped
+>22 short >0 - version %ld
+>22 short 0 -
+#>4 date x stamp %s
diff --git a/usr.bin/file/Magdir/floppy.raw b/usr.bin/file/Magdir/floppy.raw
new file mode 100644
index 0000000000000..75091b9b55808
--- /dev/null
+++ b/usr.bin/file/Magdir/floppy.raw
@@ -0,0 +1 @@
+0 string \366\366\366\366 Formatted floppy w/ no filesystem data
diff --git a/usr.bin/file/Magdir/fonts b/usr.bin/file/Magdir/fonts
new file mode 100644
index 0000000000000..594db76d91f00
--- /dev/null
+++ b/usr.bin/file/Magdir/fonts
@@ -0,0 +1,3 @@
+0 string FONT ASCII vfont text
+0 short 0436 Berkeley vfont data
+0 short 017001 byte-swapped Berkeley vfont data
diff --git a/usr.bin/file/Magdir/frame b/usr.bin/file/Magdir/frame
new file mode 100644
index 0000000000000..46e8648fddc66
--- /dev/null
+++ b/usr.bin/file/Magdir/frame
@@ -0,0 +1,28 @@
+#
+# Magic number for FrameMaker files
+# This stuff came on a FrameMaker demo tape, most of which is
+# copyright, but this file is "published" as witness the following:
+#
+0 string \<MakerFile FrameMaker document
+>11 string 3.0 (3.0
+>11 string 2.0 (2.0
+>11 string 1.0 (1.0
+>14 byte x %c)
+0 string \<MIFFile FrameMaker MIF file
+>9 string 3.0 (3.0)
+>9 string 2.0 (2.0)
+>9 string 1.0 (1.x)
+0 string \<MakerDictionary FraneMaker Dictionary text
+>17 string 3.0 (3.0)
+>17 string 2.0 (2.0)
+>17 string 1.0 (1.x)
+0 string \<MakerScreenFon FrameMaker Font file
+>17 string 1.01 (%s)
+0 string \<MML FrameMaker MML file
+0 string \<Book FrameMaker Book file
+>10 string 3.0 (3.0
+>10 string 2.0 (2.0
+>10 string 1.0 (1.0
+>13 byte x %c)
+0 string \<Maker Intermediate Print File FrameMaker IPL file
+0 string \<MakerDictionary FraneMaker Dictionary text
diff --git a/usr.bin/file/Magdir/gzip b/usr.bin/file/Magdir/gzip
new file mode 100644
index 0000000000000..a19a6546ef439
--- /dev/null
+++ b/usr.bin/file/Magdir/gzip
@@ -0,0 +1,21 @@
+0 string \037\213 gzip compressed data
+>2 byte <8 - reserved method
+>2 byte 8 - deflate method
+>3 byte &0x01 , ascii
+>3 byte &0x02 , continuation
+>3 byte &0x04 , extra field
+>3 byte &0x08 , original file name
+>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
diff --git a/usr.bin/file/Magdir/hp b/usr.bin/file/Magdir/hp
new file mode 100644
index 0000000000000..db02e54bd5974
--- /dev/null
+++ b/usr.bin/file/Magdir/hp
@@ -0,0 +1,191 @@
+#
+# magic.hp: Hewlett Packard Magic
+#
+# XXX - somebody should figure out whether any byte order needs to be
+# applied to the "TML" stuff; I'm assuming the Apollo stuff is
+# big-endian as it was mostly 68K-based.
+#
+# HP-PA is big-endian, so it (and "800", which is *also* HP-PA-based; I
+# assume "HPPA-RISC1.1" really means "HP-PA Version 1.1", which first
+# showed up in the 700 series, although later 800 series machines are,
+# I think, based on the PA7100 which implements HP-PA 1.1) are flagged
+# as big-endian.
+#
+# I think the 500 series was the old stack-based machines, running a
+# UNIX environment atop the "SUN kernel"; dunno whether it was
+# big-endian or little-endian.
+#
+# I'm guessing that the 200 series was 68K-based; the 300 and 400 series
+# are.
+#
+# The "misc" stuff needs a byte order; the archives look suspiciously
+# like the old 177545 archives (0xff65 = 0177545).
+#
+#### Old Apollo stuff
+0 beshort 0627 Apollo m68k COFF executable
+>18 beshort ^040000 not stripped
+>22 beshort >0 - version %ld
+0 beshort 0624 apollo a88k COFF executable
+>18 beshort ^040000 not stripped
+>22 beshort >0 - version %ld
+0 long 01203604016 TML 0123 byte-order format
+0 long 01702407010 TML 1032 byte-order format
+0 long 01003405017 TML 2301 byte-order format
+0 long 01602007412 TML 3210 byte-order format
+#### HPPA
+0 belong 0x02100106 HPPA-RISC1.1 relocatable object
+0 belong 0x02100107 HPPA-RISC1.1 executable
+>(144) belong 0x054ef630 dynamically linked
+>96 belong >0 -not stripped
+
+0 belong 0x02100108 HPPA-RISC1.1 shared executable
+>(144) belong 0x054ef630 dynamically linked
+>96 belong >0 -not stripped
+
+0 belong 0x0210010b HPPA-RISC1.1 demand-load executable
+>(144) belong 0x054ef630 dynamically linked
+>96 belong >0 -not stripped
+
+0 belong 0x0210010e HPPA-RISC1.1 shared library
+>96 belong >0 -not stripped
+
+0 belong 0x0210010d HPPA-RISC1.1 dynamic load library
+>96 belong >0 -not stripped
+
+#### 800
+0 belong 0x020b0106 HP s800 relocatable object
+
+0 belong 0x020b0107 HP s800 executable
+>(144) belong 0x054ef630 dynamically linked
+>96 belong >0 -not stripped
+
+0 belong 0x020b0108 HP s800 shared executable
+>(144) belong 0x054ef630 dynamically linked
+>96 belong >0 -not stripped
+
+0 belong 0x020b010b HP s800 demand-load executable
+>(144) belong 0x054ef630 dynamically linked
+>96 belong >0 -not stripped
+
+0 belong 0x020b010e HP s800 shared library
+>96 belong >0 -not stripped
+
+0 belong 0x020b010d HP s800 dynamic load library
+>96 belong >0 -not stripped
+
+0 belong 0x213c6172 archive file
+>68 belong 0x020b0619 -HP s800 relocatable library
+
+#### 500
+0 long 0x02080106 HP s500 relocatable executable
+>16 long >0 -version %ld
+
+0 long 0x02080107 HP s500 executable
+>16 long >0 -version %ld
+
+0 long 0x02080108 HP s500 pure executable
+>16 long >0 -version %ld
+
+#### 200
+0 belong 0x020c0108 HP s200 pure executable
+>4 beshort >0 -version %ld
+>8 belong &0x80000000 save fp regs
+>8 belong &0x40000000 dynamically linked
+>8 belong &0x20000000 debuggable
+>36 belong >0 not stripped
+
+0 belong 0x020c0107 HP s200 executable
+>4 beshort >0 -version %ld
+>8 belong &0x80000000 save fp regs
+>8 belong &0x40000000 dynamically linked
+>8 belong &0x20000000 debuggable
+>36 belong >0 not stripped
+
+0 belong 0x020c010b HP s200 demand-load executable
+>4 beshort >0 -version %ld
+>8 belong &0x80000000 save fp regs
+>8 belong &0x40000000 dynamically linked
+>8 belong &0x20000000 debuggable
+>36 belong >0 not stripped
+
+0 belong 0x020c0106 HP s200 relocatable executable
+>4 beshort >0 -version %ld
+>6 beshort >0 -highwater %d
+>8 belong &0x80000000 save fp regs
+>8 belong &0x20000000 debuggable
+>8 belong &0x10000000 PIC
+
+0 belong 0x020a0108 HP s200 (2.x release) pure executable
+>4 beshort >0 -version %ld
+>36 belong >0 not stripped
+
+0 belong 0x020a0107 HP s200 (2.x release) executable
+>4 beshort >0 -version %ld
+>36 belong >0 not stripped
+
+0 belong 0x020c010e HP s200 shared library
+>4 beshort >0 -version %ld
+>6 beshort >0 -highwater %d
+>36 belong >0 not stripped
+
+0 belong 0x020c010d HP s200 dynamic load library
+>4 beshort >0 -version %ld
+>6 beshort >0 -highwater %d
+>36 belong >0 not stripped
+
+#### MISC
+0 long 0x0000ff65 HP old archive
+0 long 0x020aff65 HP s200 old archive
+0 long 0x020cff65 HP s200 old archive
+0 long 0x0208ff65 HP s500 old archive
+
+0 long 0x015821a6 HP core file
+
+0 long 0x4da7eee8 HP-WINDOWS font
+>8 byte >0 -version %ld
+0 string Bitmapfile HP Bitmapfile
+
+0 string IMGfile CIS compimg HP Bitmapfile
+0 short 0x8000 lif file
+0 long 0x020c010c compiled Lisp
+
+0 string msgcat01 HP NLS message catalog,
+>8 long >0 %d messages
+
+# addendum to /etc/magic with HP-48sx file-types by phk@data.fls.dk 1jan92
+0 string HPHP48- HP48 binary
+>7 byte >0 - Rev %c
+>8 short 0x1129 (ADR)
+>8 short 0x3329 (REAL)
+>8 short 0x5529 (LREAL)
+>8 short 0x7729 (COMPLX)
+>8 short 0x9d29 (LCOMPLX)
+>8 short 0xbf29 (CHAR)
+>8 short 0xe829 (ARRAY)
+>8 short 0x0a2a (LNKARRAY)
+>8 short 0x2c2a (STRING)
+>8 short 0x4e2a (HXS)
+>8 short 0x742a (LIST)
+>8 short 0x962a (DIR)
+>8 short 0xb82a (ALG)
+>8 short 0xda2a (UNIT)
+>8 short 0xfc2a (TAGGED)
+>8 short 0x1e2b (GROB)
+>8 short 0x402b (LIB)
+>8 short 0x622b (BACKUP)
+>8 short 0x882b (LIBDATA)
+>8 short 0x9d2d (PROG)
+>8 short 0xcc2d (CODE)
+>8 short 0x482e (GNAME)
+>8 short 0x6d2e (LNAME)
+>8 short 0x922e (XLIB)
+0 string %%HP: HP48 text
+>6 string T(0) - T(0)
+>6 string T(1) - T(1)
+>6 string T(2) - T(2)
+>6 string T(3) - T(3)
+>10 string A(D) A(D)
+>10 string A(R) A(R)
+>10 string A(G) A(G)
+>14 string F(.) F(.);
+>14 string F(,) F(,);
diff --git a/usr.bin/file/Magdir/ibm370 b/usr.bin/file/Magdir/ibm370
new file mode 100644
index 0000000000000..b40fbf4208872
--- /dev/null
+++ b/usr.bin/file/Magdir/ibm370
@@ -0,0 +1,19 @@
+#
+# IBM 370 and compatibles.
+#
+# "ibm370" said that 0x15d == 0535 was "ibm 370 pure executable".
+# What the heck *is* "USS/370"?
+#
+0 beshort 0531 SVR2 executable (Amdahl-UTS)
+>12 belong >0 not stripped
+>24 belong >0 - version %ld
+0 beshort 0534 SVR2 pure executable (Amdahl-UTS)
+>12 belong >0 not stripped
+>24 belong >0 - version %ld
+0 beshort 0530 SVR2 pure executable (USS/370)
+>12 belong >0 not stripped
+>24 belong >0 - version %ld
+0 beshort 0535 SVR2 executable (USS/370)
+>12 belong >0 not stripped
+>24 belong >0 - version %ld
+
diff --git a/usr.bin/file/Magdir/ibm6000 b/usr.bin/file/Magdir/ibm6000
new file mode 100644
index 0000000000000..e4d73df4ec7af
--- /dev/null
+++ b/usr.bin/file/Magdir/ibm6000
@@ -0,0 +1,17 @@
+#
+# magic.rs6000:
+#
+# RS/6000 and the RT PC.
+#
+0 beshort 0x01df executable (RISC System/6000 V3.1) or obj module
+>12 belong >0 not stripped
+# Breaks sun4 statically linked execs.
+#0 beshort 0x0103 executable (RT Version 2) or obj module
+#>2 byte 0x50 pure
+#>28 belong >0 not stripped
+#>6 beshort >0 - version %ld
+0 beshort 0x0104 shared library
+0 beshort 0x0105 ctab data
+0 beshort 0xfe04 structured file
+0 string 0xabcdef message catalog
+#0 string <aiaff> archive
diff --git a/usr.bin/file/Magdir/iff b/usr.bin/file/Magdir/iff
new file mode 100644
index 0000000000000..2d2f95bba0b6d
--- /dev/null
+++ b/usr.bin/file/Magdir/iff
@@ -0,0 +1,5 @@
+# image file format
+# From Robert Potter, potter@cs.rochester.edu
+0 string Imagefile\ version- iff image data
+# this adds the whole header (inc. version number), informative but longish
+>10 string >\0 %s
diff --git a/usr.bin/file/Magdir/imagen b/usr.bin/file/Magdir/imagen
new file mode 100644
index 0000000000000..5fa4f6c319511
--- /dev/null
+++ b/usr.bin/file/Magdir/imagen
@@ -0,0 +1,14 @@
+# Tell file about magic for IMAGEN printer-ready files:
+0 string @document( Imagen printer
+# this only works if "language xxx" is first item in Imagen header.
+>10 string language\ impress (imPRESS data)
+>10 string language\ daisy (daisywheel text)
+>10 string language\ diablo (daisywheel text)
+>10 string language\ printer (line printer emulation)
+>10 string language\ tektronix (Tektronix 4014 emulation)
+# Add any other languages that your Imagen uses - remember
+# to keep the word `text' if the file is human-readable.
+#
+# Now magic for IMAGEN font files...
+0 string Rast RST-format raster font data
+>45 string >0 face %
diff --git a/usr.bin/file/Magdir/images b/usr.bin/file/Magdir/images
new file mode 100644
index 0000000000000..074c743e65c72
--- /dev/null
+++ b/usr.bin/file/Magdir/images
@@ -0,0 +1,69 @@
+# image formats, originally from jef@helios.ee.lbl.gov (Jef Poskanzer),
+# additions by janl@ifi.uio.no as well as others. Jan also suggested
+# merging several one- and two-line files into here.
+#
+# XXX - byte order for GIF and TIFF fields?
+#
+
+0 string xbtoa btoa'd file
+
+# PBMPLUS
+0 string P1 PBM file
+0 string P2 PGM file
+0 string P3 PPM file
+0 string P4 PBM "rawbits" file
+0 string P5 PGM "rawbits" file
+0 string P6 PPM "rawbits" file
+
+# TIFF and friends
+0 string \115\115 TIFF file, big-endian
+>2 short >0 version %d
+0 string \111\111 TIFF file, little-endian
+>2 short >0 version %d
+#
+# NIFF (Navy Interchange File Format, a modification of TIFF)
+0 string IIN1 NIFF raster data
+
+# GIF
+0 string GIF GIF picture
+>3 string 87a - version %s
+>3 string 89a - version %s
+>6 leshort >0 %hd x
+>8 leshort >0 %hd,
+>10 byte &0x40 interlaced,
+>10 byte&0x07 =0x00 2 colors
+>10 byte&0x07 =0x01 4 colors
+>10 byte&0x07 =0x02 8 colors
+>10 byte&0x07 =0x03 16 colors
+>10 byte&0x07 =0x04 32 colors
+>10 byte&0x07 =0x05 64 colors
+>10 byte&0x07 =0x06 128 colors
+>10 byte&0x07 =0x07 256 colors
+
+# Miscellany
+0 long 1123028772 Artisan image file
+>4 long 1 rectangular 24-bit image
+>4 long 2 rectangular 8-bit image with colormap
+>4 long 3 rectangular 32-bit image (24-bit with matte)
+0 string \361\0\100\273 CMU window manager bitmap
+0 string #FIG FIG graphics savefile text
+>6 string 2.1 Version 2.1
+>6 string 2.0 Version 2.0
+0 string GKSM GKS Metafile
+8 string ILBM IFF ILBM file
+6 string JFIF JPEG picture
+0 string ARF_BEGARF PHIGS clear text archive
+
+# From: <u31b3hs@pool.informatik.rwth-aachen.de> (Michael Haardt)
+0 string yz MGR bitmap, modern format, 8 bit aligned
+0 string zz MGR bitmap, old format, 1 bit deep, 16 bit aligned
+0 string xz MGR bitmap, old format, 1 bit deep, 32 bit aligned
+0 string yx MGR bitmap, modern format, squeezed
+
+0 string %bitmap FBM pixmap
+>30 long 0x31 (mono)
+>30 long 0x33 (color)
+
+4 string Research, Digifax-G3-File
+>29 byte 1 , fine resolution
+>29 byte 0 , normal resolution
diff --git a/usr.bin/file/Magdir/intel b/usr.bin/file/Magdir/intel
new file mode 100644
index 0000000000000..3f7ade796204b
--- /dev/null
+++ b/usr.bin/file/Magdir/intel
@@ -0,0 +1,31 @@
+#
+# Various flavors of x86 UNIX executable/object (other than Xenix, which
+# is in "microsoft"). DOS is in "ms-dos"; the ambitious soul can do
+# Windows as well.
+#
+# Windows NT belongs elsewhere, as you need x86 and MIPS and Alpha and
+# whatever comes next (HP-PA Hummingbird?). OS/2 may also go elsewhere
+# as well, if, as, and when IBM makes it portable.
+#
+# The `versions' should be un-commented if they work for you.
+# (Was the problem just one of endianness?)
+#
+0 leshort 0502 basic-16 executable
+>12 lelong >0 not stripped
+#>22 leshort >0 - version %ld
+0 leshort 0503 basic-16 executable (TV)
+>12 lelong >0 not stripped
+#>22 leshort >0 - version %ld
+0 leshort 0510 x86 executable
+>12 lelong >0 not stripped
+0 leshort 0511 x86 executable (TV)
+>12 lelong >0 not stripped
+0 leshort =0512 iAPX 286 executable small model (COFF)
+>12 lelong >0 not stripped
+#>22 leshort >0 - version %ld
+0 leshort =0522 iAPX 286 executable large model (COFF)
+>12 lelong >0 not stripped
+#>22 leshort >0 - version %ld
+0 leshort =0514 80386 COFF executable
+>12 lelong >0 not stripped
+>22 leshort >0 - version %ld
diff --git a/usr.bin/file/Magdir/interleaf b/usr.bin/file/Magdir/interleaf
new file mode 100644
index 0000000000000..ab5f3c654f620
--- /dev/null
+++ b/usr.bin/file/Magdir/interleaf
@@ -0,0 +1,7 @@
+#
+# magic for InterLeaf TPS:
+0 string =\210OPS Interleaf saved data
+0 string =<!OPS Interleaf document text
+>5 string ,\ Version\ (version
+>>14 string >\0 %s)
+
diff --git a/usr.bin/file/Magdir/iris b/usr.bin/file/Magdir/iris
new file mode 100644
index 0000000000000..952a5f19789f0
--- /dev/null
+++ b/usr.bin/file/Magdir/iris
@@ -0,0 +1,57 @@
+#
+# magic.iris: Magic for mips from an iris4d
+#
+# Dunno what byte-order munging is needed; all of SGI's *current*
+# machines and OSes run in big-endian mode on the MIPS machines,
+# as far as I know, but they do have the MIPSEB and MIPSEL stuff
+# here....
+#
+0 short 0x0160 mipseb
+>20 short 0407 executable
+>20 short 0410 pure
+>20 short 0413 demand paged
+>8 long >0 not stripped
+>8 long 0 stripped
+>22 byte >0 - version %ld.
+>23 byte >0 %ld
+0 short 0x0162 mipsel
+>20 short 0407 executable
+>20 short 0410 pure
+>20 short 0413 demand paged
+>8 long >0 not stripped
+>8 long 0 stripped
+>23 byte >0 - version %ld.
+>22 byte >0 %ld
+0 short 0x6001 swapped mipseb
+>20 short 03401 executable
+>20 short 04001 pure
+>20 short 05401 demand paged
+>8 long >0 not stripped
+>8 long 0 stripped
+>22 byte >0 - version %ld.
+>23 byte >0 %ld
+0 short 0x6201 swapped mipsel
+>20 short 03401 executable
+>20 short 04001 pure
+>20 short 05401 demand paged
+>8 long >0 not stripped
+>8 long 0 stripped
+>22 byte >0 - version %ld.
+>23 byte >0 %ld
+0 short 0x180 mipseb ucode
+0 short 0x182 mipsel ucode
+#
+# IRIX core format version 1 (from /usr/include/core.out.h)
+0 long 0xdeadadb0 IRIX core dump
+>4 long 1 of
+>16 string >\0 '%s'
+#
+# Archives - This handles archive subtypes
+#
+0 string !<arch>\n__________E MIPS archive
+>20 string U with mipsucode members
+>21 string L with mipsel members
+>21 string B with mipseb members
+>19 string L and a EL hash table
+>19 string B and a EB hash table
+>22 string X -- out of date
diff --git a/usr.bin/file/Magdir/ispell b/usr.bin/file/Magdir/ispell
new file mode 100644
index 0000000000000..04814b8f19381
--- /dev/null
+++ b/usr.bin/file/Magdir/ispell
@@ -0,0 +1,23 @@
+#
+# magic.ispell
+#
+# XXX - byte order?
+#
+0 short 0xffff9601 ispell hash file
+>2 short 0x00 - 8-bit, no capitalization, 26 flags
+>2 short 0x01 - 7-bit, no capitalization, 26 flags
+>2 short 0x02 - 8-bit, capitalization, 26 flags
+>2 short 0x03 - 7-bit, capitalization, 26 flags
+>2 short 0x04 - 8-bit, no capitalization, 52 flags
+>2 short 0x05 - 7-bit, no capitalization, 52 flags
+>2 short 0x06 - 8-bit, capitalization, 52 flags
+>2 short 0x07 - 7-bit, capitalization, 52 flags
+>2 short 0x08 - 8-bit, no capitalization, 128 flags
+>2 short 0x09 - 7-bit, no capitalization, 128 flags
+>2 short 0x0A - 8-bit, capitalization, 128 flags
+>2 short 0x0B - 7-bit, capitalization, 128 flags
+>2 short 0x0C - 8-bit, no capitalization, 256 flags
+>2 short 0x0D - 7-bit, no capitalization, 256 flags
+>2 short 0x0E - 8-bit, capitalization, 256 flags
+>2 short 0x0F - 7-bit, capitalization, 256 flags
+>4 short >0 and %d string characters
diff --git a/usr.bin/file/Magdir/lex b/usr.bin/file/Magdir/lex
new file mode 100644
index 0000000000000..929e68dd67e56
--- /dev/null
+++ b/usr.bin/file/Magdir/lex
@@ -0,0 +1,3 @@
+# derived empirically, your offsets may vary!
+53 string yyprevious c program text (from lex)
+>3 string >\0 for %s
diff --git a/usr.bin/file/Magdir/lif b/usr.bin/file/Magdir/lif
new file mode 100644
index 0000000000000..9ac80b9c1b86e
--- /dev/null
+++ b/usr.bin/file/Magdir/lif
@@ -0,0 +1,6 @@
+#
+# magic.lif:
+#
+# XXX - byte order?
+#
+0 short 0x8000 lif file
diff --git a/usr.bin/file/Magdir/linux b/usr.bin/file/Magdir/linux
new file mode 100644
index 0000000000000..7c2855ee59082
--- /dev/null
+++ b/usr.bin/file/Magdir/linux
@@ -0,0 +1,11 @@
+# Values for Linux/i386 binaries, From: Rik Faith <faith@cs.unc.edu>
+2 leshort 100 Linux/i386
+>0 leshort 0407 executable or impure executable (OMAGIC)
+>0 leshort 0410 pure executable (NMAGIC)
+>0 leshort 0413 demand-paged executable (ZMAGIC)
+>0 leshort 0314 demand-paged executable (QMAGIC)
+>16 lelong >0 not stripped
+>0 string Jump jump
+# core dump file
+216 lelong 0421 core file (Linux)
+>220 string >\0 core file (Linux) of %s
diff --git a/usr.bin/file/Magdir/magic b/usr.bin/file/Magdir/magic
new file mode 100644
index 0000000000000..20ee340a03053
--- /dev/null
+++ b/usr.bin/file/Magdir/magic
@@ -0,0 +1 @@
+0 string #\ Magic magic text file for file(1) cmd
diff --git a/usr.bin/file/Magdir/mail.news b/usr.bin/file/Magdir/mail.news
new file mode 100644
index 0000000000000..d55b108a9621f
--- /dev/null
+++ b/usr.bin/file/Magdir/mail.news
@@ -0,0 +1,13 @@
+# Unfortunately, saved netnews also has From line added in some news software.
+#0 string From mail text
+# There are tests to ascmagic.c to cope with mail and news.
+0 string Relay-Version: old news text
+0 string #!\ rnews batched news text
+0 string N#!\ rnews mailed, batched news text
+0 string Forward\ to mail forwarding text
+0 string Pipe\ to mail piping text
+0 string Return-Path: smtp mail text
+0 string Path: news text
+0 string Xref: news text
+0 string From: news or mail text
+0 string Article saved news text
diff --git a/usr.bin/file/Magdir/microsoft b/usr.bin/file/Magdir/microsoft
new file mode 100644
index 0000000000000..72bb0df4af4f3
--- /dev/null
+++ b/usr.bin/file/Magdir/microsoft
@@ -0,0 +1,68 @@
+#
+# Microsoft (Xenix, not DOS)
+#
+# "Middle model" stuff, and "Xenix 8086 relocatable or 80286 small
+# model" lifted from "magic.xenix", with comment "derived empirically;
+# treat as folklore until proven"
+#
+# "small model", "large model", "huge model" stuff lifted from XXX
+#
+# XXX - "x.out" collides with PDP-11 archives....
+#
+0 string core core file (Xenix)
+0 byte 0x80 8086 relocatable (Microsoft)
+0 leshort 0xff65 x.out
+>2 string __.SYMDEF randomized
+>0 byte x archive
+0 leshort 0x206 Microsoft a.out
+>8 leshort 1 Middle model
+>0x1e leshort &0x10 overlay
+>0x1e leshort &0x2 separate
+>0x1e leshort &0x4 pure
+>0x1e leshort &0x800 segmented
+>0x1e leshort &0x400 standalone
+>0x1e leshort &0x8 fixed-stack
+>0x1c byte &0x80 byte-swapped
+>0x1c byte &0x40 word-swapped
+>0x10 lelong >0 not-stripped
+>0x1e leshort ^0xc000 pre-SysV
+>0x1c byte &0x4 86
+>0x1c byte &0x9 286
+>0x1c byte &0xa 386
+>0x1f byte <0x040 small model
+>0x1f byte =0x048 large model
+>0x1f byte =0x049 huge model
+>0x1e leshort &0x1 executable
+>0x1e leshort ^0x1 object file
+>0x1e leshort &0x40 Large Text
+>0x1e leshort &0x20 Large Data
+>0x1e leshort &0x120 Huge Objects Enabled
+>0x10 lelong >0 not stripped
+
+0 leshort 0x140 old Microsoft 8086 x.out
+>0x3 byte &0x4 separate
+>0x3 byte &0x2 pure
+>0 byte &0x1 executable
+>0 byte ^0x1 relocatable
+>0x14 lelong >0 not stripped
+
+0 lelong 0x206 b.out
+>0x1e leshort &0x10 overlay
+>0x1e leshort &0x2 separate
+>0x1e leshort &0x4 pure
+>0x1e leshort &0x800 segmented
+>0x1e leshort &0x400 standalone
+>0x1e leshort &0x1 executable
+>0x1e leshort ^0x1 object file
+>0x1e leshort &0x4000 V2.3
+>0x1e leshort &0x8000 V3.0
+>0x1c byte &0x4 86
+>0x1c byte &0xb 186
+>0x1c byte &0x9 286
+>0x1c byte &0x29 286
+>0x1c byte &0xa 386
+>0x1e leshort &0x4 Large Text
+>0x1e leshort &0x2 Large Data
+>0x1e leshort &0x102 Huge Objects Enabled
+
+0 leshort 0x580 XENIX 8086 relocatable or 80286 small model
diff --git a/usr.bin/file/Magdir/mips b/usr.bin/file/Magdir/mips
new file mode 100644
index 0000000000000..ae17cbda2cdb8
--- /dev/null
+++ b/usr.bin/file/Magdir/mips
@@ -0,0 +1,8 @@
+#
+# RISC MIPS decstation
+# Should this be "leshort", given that DEC ran the DECstations in
+# little-endian mode?
+#
+# Where is the non-SGI, non-DEC MIPS stuff?
+#
+0 short 0x6201 MIPS executable
diff --git a/usr.bin/file/Magdir/mirage b/usr.bin/file/Magdir/mirage
new file mode 100644
index 0000000000000..8a2dbcbe83740
--- /dev/null
+++ b/usr.bin/file/Magdir/mirage
@@ -0,0 +1,4 @@
+#
+# XXX - byte order?
+#
+0 long 31415 Mirage Assembler m.out executable
diff --git a/usr.bin/file/Magdir/mkid b/usr.bin/file/Magdir/mkid
new file mode 100644
index 0000000000000..cd2cf864421ff
--- /dev/null
+++ b/usr.bin/file/Magdir/mkid
@@ -0,0 +1,7 @@
+#
+# ID is the binary tags database produced by mkid(1).
+#
+# XXX - byte order?
+#
+0 string \311\304 ID tags data
+>2 short >0 version %d
diff --git a/usr.bin/file/Magdir/mmdf b/usr.bin/file/Magdir/mmdf
new file mode 100644
index 0000000000000..236c721409029
--- /dev/null
+++ b/usr.bin/file/Magdir/mmdf
@@ -0,0 +1 @@
+0 string \001\001\001\001 MMDF mailbox
diff --git a/usr.bin/file/Magdir/motorola b/usr.bin/file/Magdir/motorola
new file mode 100644
index 0000000000000..b89279468fdb0
--- /dev/null
+++ b/usr.bin/file/Magdir/motorola
@@ -0,0 +1,28 @@
+#
+# Motorola
+#
+# 68K
+#
+0 beshort 0520 mc68k COFF
+>18 beshort ^00000020 object
+>18 beshort &00000020 executable
+>12 belong >0 not stripped
+>168 string .lowmem Apple toolbox
+>20 beshort 0407 (impure)
+>20 beshort 0410 (pure)
+>20 beshort 0413 (demand paged)
+>20 beshort 0421 (standalone)
+0 beshort 0521 mc68k executable (shared)
+>12 belong >0 not stripped
+0 beshort 0522 mc68k executable (shared demand paged)
+>12 belong >0 not stripped
+#
+# Motorola/UniSoft 68K Binary Compatibility Standard (BCS)
+#
+0 beshort 0554 68K BCS executable
+#
+# 88K
+#
+# Motorola/88Open BCS
+#
+0 beshort 0555 88K BCS executable
diff --git a/usr.bin/file/Magdir/ms-dos b/usr.bin/file/Magdir/ms-dos
new file mode 100644
index 0000000000000..830493aef993a
--- /dev/null
+++ b/usr.bin/file/Magdir/ms-dos
@@ -0,0 +1,8 @@
+#
+# Various MS-DOS magic numbers
+#
+0 string MZ DOS executable (EXE)
+0 string LZ DOS executable (built-in)
+0 byte 0xe9 DOS executable (COM)
+0 byte 0xeb DOS executable (COM)
+0 byte 0xf0 MS-DOS program library
diff --git a/usr.bin/file/Magdir/ncr b/usr.bin/file/Magdir/ncr
new file mode 100644
index 0000000000000..89df75058d6b5
--- /dev/null
+++ b/usr.bin/file/Magdir/ncr
@@ -0,0 +1,47 @@
+#
+# magic.tower:
+#
+# NCR Tower objects, contributed by
+# Michael R. Wayne *** TMC & Associates *** INTERNET: wayne@ford-vax.arpa
+# uucp: {philabs | pyramid} !fmsrl7!wayne OR wayne@fmsrl7.UUCP
+#
+0 beshort 000610 Tower/XP rel 2 object
+>12 belong >0 not stripped
+>20 beshort 0407 executable
+>20 beshort 0410 pure executable
+>22 beshort >0 - version %ld
+0 beshort 000615 Tower/XP rel 2 object
+>12 belong >0 not stripped
+>20 beshort 0407 executable
+>20 beshort 0410 pure executable
+>22 beshort >0 - version %ld
+0 beshort 000620 Tower/XP rel 3 object
+>12 belong >0 not stripped
+>20 beshort 0407 executable
+>20 beshort 0410 pure executable
+>22 beshort >0 - version %ld
+0 beshort 000625 Tower/XP rel 3 object
+>12 belong >0 not stripped
+>20 beshort 0407 executable
+>20 beshort 0410 pure executable
+>22 beshort >0 - version %ld
+0 beshort 000630 Tower32/600/400 68020 object
+>12 belong >0 not stripped
+>20 beshort 0407 executable
+>20 beshort 0410 pure executable
+>22 beshort >0 - version %ld
+0 beshort 000640 Tower32/800 68020
+>18 beshort &020000 w/68881 object
+>18 beshort &040000 compatible object
+>18 beshort &~060000 object
+>20 beshort 0407 executable
+>20 beshort 0413 pure executable
+>12 belong >0 not stripped
+>22 beshort >0 - version %ld
+0 beshort 000645 Tower32/800 68010
+>18 beshort &040000 compatible object
+>18 beshort &~060000 object
+>20 beshort 0407 executable
+>20 beshort 0413 pure executable
+>12 belong >0 not stripped
+>22 beshort >0 - version %ld
diff --git a/usr.bin/file/Magdir/netbsd b/usr.bin/file/Magdir/netbsd
new file mode 100644
index 0000000000000..c89f6fa7d0740
--- /dev/null
+++ b/usr.bin/file/Magdir/netbsd
@@ -0,0 +1,117 @@
+#
+# All new-style magic numbers are in network byte order.
+#
+0 lelong 000000413 386BSD demand paged executable
+>16 lelong >0 not stripped
+0 lelong 000000314 BSDI demand paged executable
+>16 lelong >0 not stripped
+
+0 lelong 000000407 NetBSD little-endian object file
+>16 lelong >0 not stripped
+0 belong 000000407 NetBSD big-endian object file
+>16 belong >0 not stripped
+
+0 belong&0377777777 041400413 NetBSD/i386 demand paged
+>0 byte &0x80
+>>20 lelong <4096 shared library
+>>20 lelong =4096 dynamically linked executable
+>>20 lelong >4096 dynamically linked executable
+>0 byte ^0x80 executable
+>16 lelong >0 not stripped
+0 belong&0377777777 041400410 NetBSD/i386 pure
+>0 byte &0x80 dynamically linked executable
+>0 byte ^0x80 executable
+>16 lelong >0 not stripped
+0 belong&0377777777 041400407 NetBSD/i386
+>0 byte &0x80 dynamically linked executable
+>0 byte ^0x80
+>>20 lelong !0 executable
+>>20 lelong =0 object file
+>16 lelong >0 not stripped
+
+0 belong&0377777777 041600413 NetBSD/m68k demand paged
+>0 byte &0x80
+>>20 belong <8192 shared library
+>>20 belong =8192 dynamically linked executable
+>>20 belong >8192 dynamically linked executable
+>0 byte ^0x80 executable
+>16 belong >0 not stripped
+0 belong&0377777777 041600410 NetBSD/m68k pure
+>0 byte &0x80 dynamically linked executable
+>0 byte ^0x80 executable
+>16 belong >0 not stripped
+0 belong&0377777777 041600407 NetBSD/m68k
+>0 byte &0x80 dynamically linked executable
+>0 byte ^0x80
+>>20 belong !0 executable
+>>20 belong =0 object file
+>16 belong >0 not stripped
+
+0 belong&0377777777 042000413 NetBSD/m68k4k demand paged
+>0 byte &0x80
+>>20 belong <4096 shared library
+>>20 belong =4096 dynamically linked executable
+>>20 belong >4096 dynamically linked executable
+>0 byte ^0x80 executable
+>16 belong >0 not stripped
+0 belong&0377777777 042000410 NetBSD/m68k4k pure
+>0 byte &0x80 dynamically linked executable
+>0 byte ^0x80 executable
+>16 belong >0 not stripped
+0 belong&0377777777 042000407 NetBSD/m68k4k
+>0 byte &0x80 dynamically linked executable
+>0 byte ^0x80
+>>20 belong !0 executable
+>>20 belong =0 object file
+>16 belong >0 not stripped
+
+0 belong&0377777777 042200413 NetBSD/ns32532 demand paged
+>0 byte &0x80
+>>20 lelong <4096 shared library
+>>20 lelong =4096 dynamically linked executable
+>>20 lelong >4096 dynamically linked executable
+>0 byte ^0x80 executable
+>16 lelong >0 not stripped
+0 belong&0377777777 042200410 NetBSD/ns32532 pure
+>0 byte &0x80 dynamically linked executable
+>0 byte ^0x80 executable
+>16 lelong >0 not stripped
+0 belong&0377777777 042200407 NetBSD/ns32532
+>0 byte &0x80 dynamically linked executable
+>0 byte ^0x80
+>>20 lelong !0 executable
+>>20 lelong =0 object file
+>16 lelong >0 not stripped
+
+0 belong&0377777777 042400413 NetBSD/sparc demand paged
+>0 byte &0x80
+>>20 belong <8192 shared library
+>>20 belong =8192 dynamically linked executable
+>>20 belong >8192 dynamically linked executable
+>0 byte ^0x80 executable
+>16 belong >0 not stripped
+0 belong&0377777777 042400410 NetBSD/sparc pure
+>0 byte &0x80 dynamically linked executable
+>0 byte ^0x80 executable
+>16 belong >0 not stripped
+0 belong&0377777777 042400407 NetBSD/sparc
+>0 byte &0x80 dynamically linked executable
+>0 byte ^0x80
+>>20 belong !0 executable
+>>20 belong =0 object file
+>16 belong >0 not stripped
+
+0 belong&0377777777 041400507 NetBSD/i386 core
+>12 string >\0 from '%s'
+
+0 belong&0377777777 041600507 NetBSD/m68k core
+>12 string >\0 from '%s'
+
+0 belong&0377777777 042000507 NetBSD/m68k4k core
+>12 string >\0 from '%s'
+
+0 belong&0377777777 042200507 NetBSD/ns32532 core
+>12 string >\0 from '%s'
+
+0 belong&0377777777 042400507 NetBSD/sparc core
+>12 string >\0 from '%s'
diff --git a/usr.bin/file/Magdir/news b/usr.bin/file/Magdir/news
new file mode 100644
index 0000000000000..df7b6599c5dd0
--- /dev/null
+++ b/usr.bin/file/Magdir/news
@@ -0,0 +1,5 @@
+# NeWS, not "news" as in "netnews"
+0 string StartFontMetrics ASCII font metrics
+0 string StartFont ASCII font bits
+0 long 0x137A2944 NeWS bitmap font
+0 long 0x137A2947 NeWS font family
diff --git a/usr.bin/file/Magdir/pbm b/usr.bin/file/Magdir/pbm
new file mode 100644
index 0000000000000..bed702e66079c
--- /dev/null
+++ b/usr.bin/file/Magdir/pbm
@@ -0,0 +1,4 @@
+#
+# XXX - byte order?
+#
+0 short 0x2a17 "compact bitmap" format (Poskanzer)
diff --git a/usr.bin/file/Magdir/pdp b/usr.bin/file/Magdir/pdp
new file mode 100644
index 0000000000000..cf1129dbc3b66
--- /dev/null
+++ b/usr.bin/file/Magdir/pdp
@@ -0,0 +1,22 @@
+#
+# magic.pdp: PDP-11 executable/object and APL workspace
+#
+0 lelong 0101555 PDP-11 single precision APL workspace
+0 lelong 0101554 PDP-11 double precision APL workspace
+
+#
+# PDP-11 a.out
+#
+0 leshort 0407 PDP-11 executable
+>8 leshort >0 not stripped
+
+0 leshort 0401 PDP-11 UNIX/RT ldp
+0 leshort 0405 PDP-11 old overlay
+
+0 leshort 0410 PDP-11 pure executable
+>8 leshort >0 not stripped
+
+0 leshort 0411 PDP-11 separate I&D executable
+>8 leshort >0 not stripped
+
+0 leshort 0437 PDP-11 kernel overlay
diff --git a/usr.bin/file/Magdir/pgp b/usr.bin/file/Magdir/pgp
new file mode 100644
index 0000000000000..3965553879294
--- /dev/null
+++ b/usr.bin/file/Magdir/pgp
@@ -0,0 +1,10 @@
+#
+# pgp (pretty good protection)
+0 beshort 0x9900 pgp key public ring
+0 beshort 0x9501 pgp key security ring
+0 beshort 0x9500 pgp key security ring
+0 string -----BEGIN\040PGP pgp armored data
+>15 string PUBLIC\040KEY\040BLOCK- public key blocK
+>15 string MESSAGE- message
+>15 string SIGNED\040MESSAGE- signed message
+>15 string PGP\040SIGNATURE- signature
diff --git a/usr.bin/file/Magdir/pkgadd b/usr.bin/file/Magdir/pkgadd
new file mode 100644
index 0000000000000..2cdb5e57f322e
--- /dev/null
+++ b/usr.bin/file/Magdir/pkgadd
@@ -0,0 +1,4 @@
+#
+# SysV R4 PKG Datastreams:
+#
+0 string #\ PaCkAgE\ DaTaStReAm pkg Datastream (SVR4)
diff --git a/usr.bin/file/Magdir/plus5 b/usr.bin/file/Magdir/plus5
new file mode 100644
index 0000000000000..a5fa4e7dcceda
--- /dev/null
+++ b/usr.bin/file/Magdir/plus5
@@ -0,0 +1,16 @@
+#
+#/etc/magic entries for Plus Five's UNIX MUMPS
+#
+# XXX - byte order? Paging Hokey....
+#
+0 short 0x259 mumps avl global
+>2 byte >0 (V%d)
+>6 byte >0 with %d byte name
+>7 byte >0 and %d byte data cells
+0 short 0x25a mumps blt global
+>2 byte >0 (V%d)
+>8 short >0 - %d byte blocks
+>15 byte 0x00 - P/D format
+>15 byte 0x01 - P/K/D format
+>15 byte 0x02 - K/D format
+>15 byte >0x02 - Bad Flags
diff --git a/usr.bin/file/Magdir/postscript b/usr.bin/file/Magdir/postscript
new file mode 100644
index 0000000000000..dcd8f65507118
--- /dev/null
+++ b/usr.bin/file/Magdir/postscript
@@ -0,0 +1,17 @@
+#
+# magic.postscript: Magic for postscript files
+#
+# XXX - should we match only versions 1.0 and 2.0, or should we wildcard
+# it?
+#
+0 string %! PostScript document
+>2 string PS-Adobe- conforming
+>>11 string 1.0 at level %s
+>>11 string 2.0 at level %s
+>>11 string 3.0 at level %s
+# Some pc's have the annoying habit of adding a ^D
+0 string \004%! PostScript document
+>3 string PS-Adobe- conforming
+>>12 string 1.0 at level %s
+>>12 string 2.0 at level %s
+>>12 string 3.0 at level %s
diff --git a/usr.bin/file/Magdir/psdbms b/usr.bin/file/Magdir/psdbms
new file mode 100644
index 0000000000000..b1fc2e18d4bc5
--- /dev/null
+++ b/usr.bin/file/Magdir/psdbms
@@ -0,0 +1,6 @@
+#
+# magic.ps: psdatabase magic
+#
+0 belong&0xff00ffff 0x56000000 ps database
+>1 string >\0 version %s
+>4 string >\0 from kernel %s
diff --git a/usr.bin/file/Magdir/pyramid b/usr.bin/file/Magdir/pyramid
new file mode 100644
index 0000000000000..b9c9e56cc8f02
--- /dev/null
+++ b/usr.bin/file/Magdir/pyramid
@@ -0,0 +1,10 @@
+#
+# magic.pyramid: Magic for pyramids
+#
+# XXX - byte order?
+#
+0 long 0x50900107 Pyramid 90x family executable
+0 long 0x50900108 Pyramid 90x family pure executable
+>16 long >0 not stripped
+0 long 0x5090010b Pyramid 90x family demand paged pure executable
+>16 long >0 not stripped
diff --git a/usr.bin/file/Magdir/rle b/usr.bin/file/Magdir/rle
new file mode 100644
index 0000000000000..f45605ba7890d
--- /dev/null
+++ b/usr.bin/file/Magdir/rle
@@ -0,0 +1,19 @@
+# From <janl@ifi.uio.no>
+# I made this with the help of the man page for rle(5). Ihey missing
+# from the magic numbers I have:
+
+#
+# rle
+#
+0 short 0xcc52 Utah Raster Toolkit RLE
+>2 short >0 lower left corner: %d
+>4 short >0 lower right corner: %d
+>6 short >0 %d x
+>8 short >0 %d
+>10 byte&0x1 =0x1 CLEARFIRST
+>10 byte&0x2 =0x2 NO_BACKGROUND
+>10 byte&0x4 =0x4 ALPHA
+>10 byte&0x8 =0x8 COMMENT
+>11 byte >0 %d colour channels
+>12 byte >0 %d bits pr. pixel
+>13 byte >0 %d colour map channels
diff --git a/usr.bin/file/Magdir/sc b/usr.bin/file/Magdir/sc
new file mode 100644
index 0000000000000..9bc91998e1f59
--- /dev/null
+++ b/usr.bin/file/Magdir/sc
@@ -0,0 +1,2 @@
+# for SC
+38 string Spreadsheet sc file
diff --git a/usr.bin/file/Magdir/sccs b/usr.bin/file/Magdir/sccs
new file mode 100644
index 0000000000000..d27c5a70d9256
--- /dev/null
+++ b/usr.bin/file/Magdir/sccs
@@ -0,0 +1,17 @@
+# SCCS archive structure:
+# \001h01207
+# \001s 00276/00000/00000
+# \001d D 1.1 87/09/23 08:09:20 ian 1 0
+# \001c date and time created 87/09/23 08:09:20 by ian
+# \001e
+# \001u
+# \001U
+# ... etc.
+# Now '\001h' happens to be the same as the 3B20's a.out magic number (0550).
+# *Sigh*. And these both came from various parts of the USG.
+# Maybe we should just switch everybody from SCCS to RCS!
+# Further, you can't just say '\001h0', because the five-digit number
+# is a checksum that could (presumably) have any leading digit,
+# and we don't have regular expression matching yet.
+# Hence the following official kludge:
+8 string \001s\ SCCS archive.
diff --git a/usr.bin/file/Magdir/sendmail b/usr.bin/file/Magdir/sendmail
new file mode 100644
index 0000000000000..7eea31d217fb9
--- /dev/null
+++ b/usr.bin/file/Magdir/sendmail
@@ -0,0 +1,9 @@
+#
+# magic.sendmail:
+#
+# XXX - byte order?
+#
+0 byte 046 Sendmail frozen configuration
+>16 string >\0 - version %s
+0 short 0x271c Sendmail frozen configuration
+>16 string >\0 - version %s
diff --git a/usr.bin/file/Magdir/sequent b/usr.bin/file/Magdir/sequent
new file mode 100644
index 0000000000000..bcb7061577f87
--- /dev/null
+++ b/usr.bin/file/Magdir/sequent
@@ -0,0 +1,30 @@
+# Sequent information updated by Don Dwiggins <atsun!dwiggins>.
+# For Sequent's multiprocessor systems (incomplete).
+0 lelong 0x00ea BALANCE NS32000 .o
+>16 lelong >0 not stripped
+>124 lelong >0 version %ld
+0 lelong 0x10ea BALANCE NS32000 executable (0 @ 0)
+>16 lelong >0 not stripped
+>124 lelong >0 version %ld
+0 lelong 0x20ea BALANCE NS32000 executable (invalid @ 0)
+>16 lelong >0 not stripped
+>124 lelong >0 version %ld
+0 lelong 0x30ea BALANCE NS32000 standalone executable
+>16 lelong >0 not stripped
+>124 lelong >0 version %ld
+#
+# Symmetry information added by Jason Merrill <jason@jarthur.claremont.edu>.
+# Symmetry magic nums will not be reached if DOS COM comes before them;
+# byte 0xeb is matched before these get a chance.
+0 leshort 0x12eb SYMMETRY i386 .o
+>16 lelong >0 not stripped
+>124 lelong >0 version %ld
+0 leshort 0x22eb SYMMETRY i386 executable (0 @ 0)
+>16 lelong >0 not stripped
+>124 lelong >0 version %ld
+0 leshort 0x32eb SYMMETRY i386 executable (invalid @ 0)
+>16 lelong >0 not stripped
+>124 lelong >0 version %ld
+0 leshort 0x42eb SYMMETRY i386 standalone executable
+>16 lelong >0 not stripped
+>124 lelong >0 version %ld
diff --git a/usr.bin/file/Magdir/sgml b/usr.bin/file/Magdir/sgml
new file mode 100644
index 0000000000000..bb8b5dd43d19e
--- /dev/null
+++ b/usr.bin/file/Magdir/sgml
@@ -0,0 +1,6 @@
+# $Id: sgml,v 1.3 1993/01/05 12:52:44 ian Exp $
+# SGML goop, mostly from rph@sq.
+0 string \<!DOCTYPE Exported SGML document
+0 string \<!doctype Exported SGML document
+0 string \<!SUBDOC Exported SGML subdocument
+0 string \<!subdoc Exported SGML subdocument
diff --git a/usr.bin/file/Magdir/softquad b/usr.bin/file/Magdir/softquad
new file mode 100644
index 0000000000000..e49d052ee7cbe
--- /dev/null
+++ b/usr.bin/file/Magdir/softquad
@@ -0,0 +1,27 @@
+# SoftQuad Publishing Software magic numbers
+# $Id: softquad,v 1.8 1993/02/19 14:36:43 ian Exp $
+# Author/Editor and RulesBuilder
+#
+# XXX - byte order?
+#
+0 string \<!SQ\ DTD> Compiled SGML rules file
+>9 string >\0 Type %s
+0 string \<!SQ\ A/E> A/E SGML Document binary
+>9 string >\0 Type %s
+0 string \<!SQ\ STS> A/E SGML binary styles file
+>9 string >\0 Type %s
+0 short 0xc0de Compiled PSI (v1) data
+0 short 0xc0da Compiled PSI (v2) data
+>3 string >\0 (%s)
+# Binary sqtroff font/desc files...
+0 short 0125252 SoftQuad DESC or font file binary
+>2 short >0 - version %d
+# Bitmaps...
+0 string SQ\ BITMAP1 SoftQuad Raster Format text
+#0 string SQ\ BITMAP2 SoftQuad Raster Format data
+# sqtroff intermediate language (replacement for ditroff int. lang.)
+0 string X\ SoftQuad troff Context intermediate
+>2 string 495 for AT&T 495 laser printer
+>2 string hp for Hewlett-Packard LaserJet
+>2 string impr for IMAGEN imPRESS
+>2 string ps for PostScript
diff --git a/usr.bin/file/Magdir/sun b/usr.bin/file/Magdir/sun
new file mode 100644
index 0000000000000..d6ce8093175c9
--- /dev/null
+++ b/usr.bin/file/Magdir/sun
@@ -0,0 +1,84 @@
+#
+# Values for big-endian Sun (MC680x0, SPARC) binaries on pre-5.x
+# releases.
+# (5.x uses ELF.)
+#
+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
+0 belong&077777777 0600410 sparc pure
+>0 byte &0x80 dynamically linked executable
+>0 byte ^0x80 executable
+>16 belong >0 not stripped
+0 belong&077777777 0600407 sparc
+>0 byte &0x80 dynamically linked executable
+>0 byte ^0x80 executable
+>16 belong >0 not stripped
+
+0 belong&077777777 0400413 mc68020 demand paged
+>0 byte &0x80
+>>20 belong <4096 shared library
+>>20 belong =4096 dynamically linked executable
+>>20 belong >4096 dynamically linked executable
+>16 belong >0 not stripped
+0 belong&077777777 0400410 mc68020 pure
+>0 byte &0x80 dynamically linked executable
+>0 byte ^0x80 executable
+>16 belong >0 not stripped
+0 belong&077777777 0400407 mc68020
+>0 byte &0x80 dynamically linked executable
+>0 byte ^0x80 executable
+>16 belong >0 not stripped
+
+0 belong&077777777 0200413 mc68010 demand paged
+>0 byte &0x80
+>>20 belong <4096 shared library
+>>20 belong =4096 dynamically linked executable
+>>20 belong >4096 dynamically linked executable
+>16 belong >0 not stripped
+0 belong&077777777 0200410 mc68010 pure
+>0 byte &0x80 dynamically linked executable
+>0 byte ^0x80 executable
+>16 belong >0 not stripped
+0 belong&077777777 0200407 mc68010
+>0 byte &0x80 dynamically linked executable
+>0 byte ^0x80 executable
+>16 belong >0 not stripped
+
+# reworked these to avoid anything beginning with zero becoming "old sun-2"
+0 belong 0407 old sun-2 executable
+>16 belong >0 not stripped
+0 belong 0410 old sun-2 pure executable
+>16 belong >0 not stripped
+0 belong 0413 old sun-2 demand paged executable
+>16 belong >0 not stripped
+
+#
+# Core files. "SPARC 4.x BCP" means "core file from a SunOS 4.x SPARC
+# binary executed in compatibility mode under SunOS 5.x".
+#
+0 belong 0x080456 SunOS core file
+>4 belong 432 (SPARC)
+>>132 string >\0 from '%s'
+>>116 belong =3 (quit)
+>>116 belong =4 (illegal instruction)
+>>116 belong =5 (trace trap)
+>>116 belong =6 (abort)
+>>116 belong =7 (emulator trap)
+>>116 belong =8 (arithmetic exception)
+>>116 belong =9 (kill)
+>>116 belong =10 (bus error)
+>>116 belong =11 (segmentation violation)
+>>116 belong =12 (bad argument to system call)
+>>116 belong =29 (resource lost)
+>>120 belong x (T=%dK,
+>>124 belong x D=%dK,
+>>128 belong x S=%dK)
+>4 belong 826 (68K)
+>>128 string >\0 from '%s'
+>4 belong 456 (SPARC 4.x BCP)
+>>152 string >\0 from '%s'
diff --git a/usr.bin/file/Magdir/sunraster b/usr.bin/file/Magdir/sunraster
new file mode 100644
index 0000000000000..39db3a3115ed9
--- /dev/null
+++ b/usr.bin/file/Magdir/sunraster
@@ -0,0 +1,12 @@
+#
+# Sun rasterfiles
+#
+# XXX - byte order? What about the 386i?
+#
+0 string \x59\xa6\x6a\x95 rasterfile
+>4 belong >0 %d
+>8 belong >0 x %d
+>12 belong >0 x %d
+>20 belong 0 old format
+>20 belong 2 compressed
+>24 belong 1 with color map
diff --git a/usr.bin/file/Magdir/terminfo b/usr.bin/file/Magdir/terminfo
new file mode 100644
index 0000000000000..76e171d84db61
--- /dev/null
+++ b/usr.bin/file/Magdir/terminfo
@@ -0,0 +1,8 @@
+#
+# Terminfo
+#
+# XXX - byte order for screen images?
+#
+0 string \032\001 Compiled terminfo entry
+0 short 0433 Curses screen image
+0 short 0434 Curses screen image
diff --git a/usr.bin/file/Magdir/tex b/usr.bin/file/Magdir/tex
new file mode 100644
index 0000000000000..734bedd5a8e81
--- /dev/null
+++ b/usr.bin/file/Magdir/tex
@@ -0,0 +1,25 @@
+#
+# magic.tex:
+#
+# XXX - needs byte-endian stuff (big-endian and little-endian DVI?)
+#
+# From <conklin@talisman.kaleida.com>
+
+# Although we may know the offset of certain text fields in TeX DVI
+# and font files, we can't use them reliably because they are not
+# zero terminated. [but we do anyway, christos]
+0 string \367\002 TeX DVI file
+>16 string >\0 (%s)
+0 string \367\203 TeX generic font data
+0 string \367\131 TeX packed font data
+>4 string >\0 (%s)
+0 string \367\312 TeX virtual font data
+0 string This\ is\ TeX, TeX transcript text
+0 string This\ is\ METAFONT, METAFONT transcript text
+
+# There is no way to detect TeX Font Metric (*.tfm) files without
+# breaking them apart and reading the data. The following patterns
+# match most *.tfm files generated by METAFONT or afm2tfm.
+2 string \000\021 TeX font metric data
+2 string \000\022 TeX font metric data
+>34 string >\0 (%s)
diff --git a/usr.bin/file/Magdir/troff b/usr.bin/file/Magdir/troff
new file mode 100644
index 0000000000000..d414c16493225
--- /dev/null
+++ b/usr.bin/file/Magdir/troff
@@ -0,0 +1,6 @@
+#
+# magic.troff:
+#
+0 string \100\357 very old (C/A/T) troff output data
+0 string ' [nt]roff, tbl, or eqn input text
+
diff --git a/usr.bin/file/Magdir/typeset b/usr.bin/file/Magdir/typeset
new file mode 100644
index 0000000000000..506456350c182
--- /dev/null
+++ b/usr.bin/file/Magdir/typeset
@@ -0,0 +1,5 @@
+# other typesetting magic
+0 string \100\357 very old (C/A/T) troff output data
+0 string Interpress/Xerox Xerox InterPress data
+>16 string / (version
+>>17 string >\0 %s)
diff --git a/usr.bin/file/Magdir/unknown b/usr.bin/file/Magdir/unknown
new file mode 100644
index 0000000000000..1ea5f066d6ff2
--- /dev/null
+++ b/usr.bin/file/Magdir/unknown
@@ -0,0 +1,35 @@
+#
+# magic.unknown: Unknown machine magic
+#
+# XXX - this probably should be pruned, as it'll match PDP-11 and
+# VAX image formats.
+#
+# 0x107 is 0407; 0x108 is 0410; both are PDP-11 (executable and pure,
+# respectively).
+#
+# 0x109 is 0411; that's PDP-11 split I&D, but the PDP-11 version doesn't
+# have the "version %ld", which may be a bogus COFFism (I don't think
+# there ever was COFF for the PDP-11).
+#
+# 0x10B is 0413; that's VAX demand-paged, but this is a short, not a
+# long, as it would be on a VAX.
+#
+# 0x10C is 0414, 0x10D is 0415, and 0x10E is 416; those *are* unknown.
+#
+0 short 0x107 unknown machine executable
+>8 short >0 not stripped
+>15 byte >0 - version %ld
+0 short 0x108 unknown pure executable
+>8 short >0 not stripped
+>15 byte >0 - version %ld
+0 short 0x109 PDP-11 separate I&D
+>8 short >0 not stripped
+>15 byte >0 - version %ld
+0 short 0x10b unknown pure executable
+>8 short >0 not stripped
+>15 byte >0 - version %ld
+0 long 0x10c unknown demand paged pure executable
+>16 long >0 not stripped
+0 long 0x10d unknown demand paged pure executable
+>16 long >0 not stripped
+0 long 0x10e unknown readable demand paged pure executable
diff --git a/usr.bin/file/Magdir/uuencode b/usr.bin/file/Magdir/uuencode
new file mode 100644
index 0000000000000..add48a8c3276d
--- /dev/null
+++ b/usr.bin/file/Magdir/uuencode
@@ -0,0 +1,3 @@
+0 string begin uuencoded mail text
+# Btoa(1) is an alternative to uuencode that requires less space.
+0 string xbtoa\ Begin btoa'd text
diff --git a/usr.bin/file/Magdir/varied.out b/usr.bin/file/Magdir/varied.out
new file mode 100644
index 0000000000000..3a997d1c57119
--- /dev/null
+++ b/usr.bin/file/Magdir/varied.out
@@ -0,0 +1,5 @@
+# Herewith many of the object file formats used by USG systems.
+# Most have been moved to files for a particular processor,
+# and deleted if they duplicate other entries.
+#
+0 short 0610 Perkin-Elmer executable
diff --git a/usr.bin/file/Magdir/vax b/usr.bin/file/Magdir/vax
new file mode 100644
index 0000000000000..af665fa8a8f30
--- /dev/null
+++ b/usr.bin/file/Magdir/vax
@@ -0,0 +1,33 @@
+#
+# magic.pdp: VAX executable/object and APL workspace
+#
+0 lelong 0101557 VAX single precision APL workspace
+0 lelong 0101556 VAX double precision APL workspace
+
+#
+# VAX a.out (32V, BSD)
+#
+0 lelong 0407 VAX executable
+>16 lelong >0 not stripped
+
+0 lelong 0410 VAX pure executable
+>16 lelong >0 not stripped
+
+0 lelong 0413 VAX demand paged pure executable
+>16 lelong >0 not stripped
+
+0 lelong 0420 VAX demand paged (first page unmapped) pure executable
+>16 lelong >0 not stripped
+
+#
+# VAX COFF
+#
+# The `versions' should be un-commented if they work for you.
+# (Was the problem just one of endianness?)
+#
+0 leshort 0570 VAX COFF executable
+>12 lelong >0 not stripped
+>22 leshort >0 - version %ld
+0 leshort 0575 VAX COFF pure executable
+>12 lelong >0 not stripped
+>22 leshort >0 - version %ld
diff --git a/usr.bin/file/Magdir/visx b/usr.bin/file/Magdir/visx
new file mode 100644
index 0000000000000..e95cc5ee6ea00
--- /dev/null
+++ b/usr.bin/file/Magdir/visx
@@ -0,0 +1,30 @@
+#
+# magic.visx: Visx format file
+#
+0 short 0x5555 VISX image file
+>2 byte 0 (zero)
+>2 byte 1 (unsigned char)
+>2 byte 2 (short integer)
+>2 byte 3 (float 32)
+>2 byte 4 (float 64)
+>2 byte 5 (signed char)
+>2 byte 6 (bit-plane)
+>2 byte 7 (classes)
+>2 byte 8 (statistics)
+>2 byte 10 (ascii text)
+>2 byte 15 (image segments)
+>2 byte 100 (image set)
+>2 byte 101 (unsigned char vector)
+>2 byte 102 (short integer vector)
+>2 byte 103 (float 32 vector)
+>2 byte 104 (float 64 vector)
+>2 byte 105 (signed char vector)
+>2 byte 106 (bit plane vector)
+>2 byte 121 (feature vector)
+>2 byte 122 (feature vector library)
+>2 byte 124 (chain code)
+>2 byte 126 (bit vector)
+>2 byte 130 (graph)
+>2 byte 131 (adjacency graph)
+>2 byte 132 (adjacency graph library)
+>2 string .VISIX (ascii text)
diff --git a/usr.bin/file/Magdir/x11 b/usr.bin/file/Magdir/x11
new file mode 100644
index 0000000000000..ed0ff440e401e
--- /dev/null
+++ b/usr.bin/file/Magdir/x11
@@ -0,0 +1,9 @@
+#
+# magic.x11
+#
+# I think this is byte-order-dependent; if so, it should become:
+#
+# 0 belong 00000004 X11 big-endian snf font
+# 0 lelong 00000004 X11 little-endian snf font
+#
+0 long 00000004 X11 snf font
diff --git a/usr.bin/file/Magdir/zilog b/usr.bin/file/Magdir/zilog
new file mode 100644
index 0000000000000..c7503cddd5d1b
--- /dev/null
+++ b/usr.bin/file/Magdir/zilog
@@ -0,0 +1,11 @@
+#
+# Zilog Z8000.
+#
+# Was it big-endian or little-endian? My Product Specification doesn't
+# say.
+#
+0 long 0xe807 object file (z8000 a.out)
+0 long 0xe808 pure object file (z8000 a.out)
+0 long 0xe809 separate object file (z8000 a.out)
+0 long 0xe805 overlay object file (z8000 a.out)
+
diff --git a/usr.bin/file/Magdir/zyxel b/usr.bin/file/Magdir/zyxel
new file mode 100644
index 0000000000000..dfb48bfad6ae2
--- /dev/null
+++ b/usr.bin/file/Magdir/zyxel
@@ -0,0 +1,9 @@
+# From <rob@pe1chl.ampr.org>
+# These are the /etc/magic entries to decode datafiles as used for the
+# ZyXEL U-1496E DATA/FAX/VOICE modems. (This header conforms to a
+# ZyXEL-defined standard)
+
+0 string ZyXEL\002 ZyXEL voice data
+>10 byte 0 - CELP encoding
+>10 byte 1 - ADPCM2 encoding
+>10 byte 2 - ADPCM3 encoding