Index: vendor/file/3.19/usr.bin/file/Magdir/Localstuff =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/Localstuff (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/Localstuff (revision 13586) @@ -0,0 +1,7 @@ + +#------------------------------------------------------------------------------ +# Localstuff: file(1) magic for locally observed files +# +# $Id: Localstuff,v 1.3 1995/01/21 21:09:00 christos Exp $ +# Add any locally observed files here. Remember: +# text if readable, executable if runnable binary, data if unreadable. Property changes on: vendor/file/3.19/usr.bin/file/Magdir/Localstuff ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/alliant =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/alliant (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/alliant (revision 13586) @@ -0,0 +1,17 @@ + +#------------------------------------------------------------------------------ +# alliant: file(1) magic for 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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/alliant ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/animation =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/animation (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/animation (revision 13586) @@ -0,0 +1,54 @@ + +#------------------------------------------------------------------------------ +# animation: file(1) magic for animation/movie formats +# +# animation formats +# MPEG, FLI, DL originally from vax@ccwf.cc.utexas.edu (VaX#n8) +# FLC, SGI, Apple originally from Daniel Quinlan (quinlan@yggdrasil.com) + +# MPEG animation format +0 string \000\000\001\263 MPEG file + +# FLI animation format +4 leshort 0xAF11 FLI file +>6 leshort x - %d frames, +>8 leshort x width=%d pixels, +>10 leshort x height=%d pixels, +>12 leshort x depth=%d, +>16 leshort x ticks/frame=%d +# FLC animation format +4 leshort 0xAF12 FLC file +>6 leshort x - %d frames +>8 leshort x width=%d pixels, +>10 leshort x height=%d pixels, +>12 leshort x depth=%d, +>16 leshort x ticks/frame=%d + +# DL animation format +# XXX - collision with most `mips' magic +# +# I couldn't find a real magic number for these, however, this +# -appears- to work. Note that it might catch other files, too, so be +# careful! +# +# Note that title and author appear in the two 20-byte chunks +# at decimal offsets 2 and 22, respectively, but they are XOR'ed with +# 255 (hex FF)! The DL format is really bad. +# +#0 byte 1 DL version 1, medium format (160x100, 4 images/screen) +#>42 byte x - %d screens, +#>43 byte x %d commands +#0 byte 2 DL version 2 +#>1 byte 1 - large format (320x200,1 image/screen), +#>1 byte 2 - medium format (160x100,4 images/screen), +#>1 byte >2 - unknown format, +#>42 byte x %d screens, +#>43 byte x %d commands +# Based on empirical evidence, DL version 3 have several nulls following the +# \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 +0 string MOVI Silicon Graphics movie file +4 string moov Apple QuickTime movie file (moov) +4 string mdat Apple QuickTime movie file (mdat) Property changes on: vendor/file/3.19/usr.bin/file/Magdir/animation ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/apl =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/apl (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/apl (revision 13586) @@ -0,0 +1,6 @@ + +#------------------------------------------------------------------------------ +# apl: file(1) magic for APL (see also "pdp" and "vax" for other APL +# workspaces) +# +0 long 0100554 APL workspace (Ken's original?) Property changes on: vendor/file/3.19/usr.bin/file/Magdir/apl ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/apple =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/apple (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/apple (revision 13586) @@ -0,0 +1,10 @@ + +#------------------------------------------------------------------------------ +# apple: file(1) magic for 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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/apple ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/archive =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/archive (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/archive (revision 13586) @@ -0,0 +1,215 @@ + +#------------------------------------------------------------------------------ +# archive: file(1) magic for archive formats (see also "msdos" for self- +# extracting compressed archives) +# +# cpio, ar, arc, arj, hpack, lha/lharc, rar, squish, uc2, zip, zoo, etc. +# pre-POSIX "tar" archives are handled in the C code. + +# POSIX tar archives +257 string ustar\0 POSIX tar archive +257 string ustar\040\040\0 GNU tar archive + +# cpio archives +# +# Yes, the top 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) + +# other archives +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 = archive + +# MIPS archive (needs to go first) +# +0 string !\n__________E MIPS archive +>20 string U with MIPS Ucode members +>21 string L with MIPSEL members +>21 string B with MIPSEB members +>19 string L and an EL hash table +>19 string B and an EB hash table +>22 string X -- out of date + +0 string ! archive +>8 string __.SYMDEF random library +0 string -h- Software Tools format archive text + +# +# XXX - why are there multiple thingies? Note that 0x213c6172 is +# "! current ar archive +# 0 long 0x213c6172 archive file +# +# and for SVR3.1 archives, we have: +# +# 0 string \ System V Release 1 ar archive +# 0 string = archive +# 0 string = 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 ! 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 \ System V Release 1 ar archive +0 string = 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 belong 0x65ff0000 VAX 3.0 archive +0 belong 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 = 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, from Daniel Quinlan (quinlan@yggdrasil.com) +# +# The first byte is the magic (0x1a), byte 2 is the compression type for +# the first file (0x01 through 0x09), and bytes 3 to 15 are the MS-DOS +# filename of the first file (null terminated). Since some types collide +# we only test some types on basis of frequency: 0x08 (83%), 0x09 (5%), +# 0x02 (5%), 0x03 (3%), 0x04 (2%), 0x06 (2%). 0x01 collides with terminfo. +0 lelong&0x8080ffff 0x0000081a ARC archive data, dynamic LZW +0 lelong&0x8080ffff 0x0000091a ARC archive data, squashed +0 lelong&0x8080ffff 0x0000021a ARC archive data, uncompressed +0 lelong&0x8080ffff 0x0000031a ARC archive data, packed +0 lelong&0x8080ffff 0x0000041a ARC archive data, squeezed +0 lelong&0x8080ffff 0x0000061a ARC archive data, crunched + +# Acorn archive formats (Disaster prone simpleton, m91dps@ecs.ox.ac.uk) +# I can't create either SPARK or ArcFS archives so I have not tested this stuff +# [GRR: the original entries collide with ARC, above; replaced with combined +# version (not tested)] +#0 byte 0x1a RISC OS archive +#>1 string archive (ArcFS format) +0 string \032archive RISC OS archive (ArcFS format) + +# ARJ archiver (jason@jarthur.Claremont.EDU) +0 leshort 0xea60 ARJ archive data +>5 byte x \b, v%d, +>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] + +# HA archiver (Greg Roelofs, newt@uchicago.edu) +# This is a really bad format. A file containing HAWAII will match this... +#0 string HA HA archive data, +#>2 leshort =1 1 file, +#>2 leshort >1 %u files, +#>4 byte&0x0f =0 first is type CPY +#>4 byte&0x0f =1 first is type ASC +#>4 byte&0x0f =2 first is type HSC +#>4 byte&0x0f =0x0e first is type DIR +#>4 byte&0x0f =0x0f first is type SPECIAL + +# HPACK archiver (Peter Gutmann, pgut1@cs.aukuni.ac.nz) +0 string HPAK HPACK archive data + +# JAM Archive volume format, by Dmitry.Kohmanyuk@UA.net +0 string \351,\001JAM\ JAM archive, +>7 string >\0 version %.4s +>0x26 byte =0x27 - +>>0x2b string >\0 label %.11s, +>>0x27 lelong x serial %08x, +>>0x36 string >\0 fstype %.8s + +# LHARC/LHA archiver (Greg Roelofs, newt@uchicago.edu) +2 string -lh0- LHarc 1.x archive data [lh0] +2 string -lh1- LHarc 1.x archive data [lh1] +2 string -lz4- LHarc 1.x archive data [lz4] +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 -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] +>20 byte x - header level %d + +# RAR archiver (Greg Roelofs, newt@uchicago.edu) +0 string Rar! RAR archive data + +# SQUISH archiver (Greg Roelofs, newt@uchicago.edu) +0 string SQSH squished archive data (Acorn RISCOS) + +# UC2 archiver (Greg Roelofs, newt@uchicago.edu) +# I can't figure out the self-extracting form of these buggers... +0 string UC2\x1a UC2 archive data + +# ZIP archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu) +0 string PK\003\004 Zip archive data +>4 byte 0x09 \b, at least v0.9 to extract +>4 byte 0x0a \b, at least v1.0 to extract +>4 byte 0x0b \b, at least v1.1 to extract +>4 byte 0x14 \b, at least v2.0 to extract + +# Zoo archiver +20 lelong 0xfdc4a7dc Zoo archive data +>4 byte >48 \b, v%c. +>>6 byte >47 \b%c +>>>7 byte >47 \b%c +>32 byte >0 \b, modify: v%d +>>33 byte x \b.%d+ +>42 lelong 0xfdc4a7dc \b, +>>70 byte >0 extract: v%d +>>>71 byte x \b.%d+ + +# Shell archives +10 string #\ This\ is\ a\ shell\ archive shell archive text Property changes on: vendor/file/3.19/usr.bin/file/Magdir/archive ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/att3b =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/att3b (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/att3b (revision 13586) @@ -0,0 +1,39 @@ + +#------------------------------------------------------------------------------ +# att3b: file(1) magic for 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' Property changes on: vendor/file/3.19/usr.bin/file/Magdir/att3b ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/audio =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/audio (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/audio (revision 13586) @@ -0,0 +1,73 @@ + +#------------------------------------------------------------------------------ +# audio: file(1) magic for sound formats (see also "iff") +# +# Jan Nicolai Langfeldt (janl@ifi.uio.no), Dan Quinlan (quinlan@yggdrasil.com), +# and others +# + +# Sun/NeXT audio data +0 string .snd Sun/NeXT audio data: +>12 belong 1 8-bit ISDN u-law, +>12 belong 2 8-bit linear PCM [REF-PCM], +>12 belong 3 16-bit linear PCM, +>12 belong 4 24-bit linear PCM, +>12 belong 5 32-bit linear PCM, +>12 belong 6 32-bit IEEE floating point, +>12 belong 7 64-bit IEEE floating point, +>12 belong 23 8-bit ISDN u-law compressed (CCITT G.721 ADPCM voice data encoding), +>20 belong 1 mono, +>20 belong 2 stereo, +>20 belong 4 quad, +>16 belong >0 %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 +0 lelong 0x0064732E DEC audio data: +>12 lelong 1 8-bit ISDN u-law, +>12 lelong 2 8-bit linear PCM [REF-PCM], +>12 lelong 3 16-bit linear PCM, +>12 lelong 4 24-bit linear PCM, +>12 lelong 5 32-bit linear PCM, +>12 lelong 6 32-bit IEEE floating point, +>12 lelong 7 64-bit IEEE floating point, +>12 lelong 23 8-bit ISDN u-law compressed (CCITT G.721 ADPCM voice data encoding), +>20 lelong 1 mono, +>20 lelong 2 stereo, +>20 lelong 4 quad, +>16 lelong >0 %d Hz + +# Creative Labs AUDIO stuff +0 string MThd Standard MIDI data +>9 byte >0 (format %d) +>11 byte >1 using %d channels +0 string CTMF Creative Music (CMF) data +0 string SBI SoundBlaster instrument data +0 string Creative\ Voice\ File Creative Labs voice data +# is this next line right? it came this way... +>19 byte 0x1A +>23 byte >0 - version %d +>22 byte >0 \b.%d + +# first entry is also the string "NTRK" +0 belong 0x4e54524b MultiTrack sound data +>4 belong x - version %ld + +# Microsoft WAVE format (*.wav) +# [GRR 950115: probably all of the shorts and longs should be leshort/lelong] +0 string RIFF Microsoft RIFF +>8 string WAVE \b, WAVE audio data +>34 short >0 \b, %d bit +>22 short =1 \b, mono +>22 short =2 \b, stereo +>22 short >2 \b, %d channels +>24 long >0 %d Hz + +# Extended MOD format (*.emd) (Greg Roelofs, newt@uchicago.edu); NOT TESTED +# [based on posting 940824 by "Dirk/Elastik", husberg@lehtori.cc.tut.fi] +0 string EMOD Extended MOD sound data, +>4 byte&0xf0 x version %d +>4 byte&0x0f x \b.%d, +>45 byte x %d instruments +>83 byte 0 (module) +>83 byte 1 (song) Property changes on: vendor/file/3.19/usr.bin/file/Magdir/audio ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/blit =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/blit (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/blit (revision 13586) @@ -0,0 +1,19 @@ + +#------------------------------------------------------------------------------ +# blit: file(1) magic for 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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/blit ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/c-lang =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/c-lang (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/c-lang (revision 13586) @@ -0,0 +1,13 @@ + +#------------------------------------------------------------------------------ +# c-lang: file(1) magic for C programs (or REXX) +# + +# XPM icons (Greg Roelofs, newt@uchicago.edu) +# if you uncomment "/*" for C/REXX below, also uncomment this entry +#0 string /*\ XPM\ */ X pixmap image data + +# 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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/c-lang ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/chi =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/chi (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/chi (revision 13586) @@ -0,0 +1,7 @@ + +#------------------------------------------------------------------------------ +# chi: file(1) magic for ChiWriter files +# +0 string \\1cw\ ChiWriter file +>5 string >\0 version %s +0 string \\1cw ChiWriter file Property changes on: vendor/file/3.19/usr.bin/file/Magdir/chi ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/clipper =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/clipper (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/clipper (revision 13586) @@ -0,0 +1,64 @@ + +#------------------------------------------------------------------------------ +# clipper: file(1) magic for 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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/clipper ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/commands =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/commands (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/commands (revision 13586) @@ -0,0 +1,75 @@ + +#------------------------------------------------------------------------------ +# commands: file(1) magic 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 +# +# zsh/ash/ae/nawk/gawk magic from cameron@cs.unsw.oz.au (Cameron Simpson) +0 string #!/usr/local/bin/zsh Paul Falstad's zsh +0 string #!\ /usr/local/bin/zsh Paul Falstad's zsh +0 string #!/usr/local/bin/ash Neil Brown's ash +0 string #!\ /usr/local/bin/ash Neil Brown's ash +0 string #!/usr/local/bin/ae Neil Brown's ae +0 string #!\ /usr/local/bin/ae Neil Brown's ae +0 string #!/bin/nawk new awk script text +0 string #!\ /bin/nawk new awk script text +0 string #!/usr/bin/nawk new awk script text +0 string #!\ /usr/bin/nawk new awk script text +0 string #!/usr/local/bin/nawk new awk script text +0 string #!\ /usr/local/bin/nawk new awk script text +0 string #!/bin/gawk GNU awk script text +0 string #!\ /bin/gawk GNU awk script text +0 string #!/usr/bin/gawk GNU awk script text +0 string #!\ /usr/bin/gawk GNU awk script text +0 string #!/usr/local/bin/gawk GNU awk script text +0 string #!\ /usr/local/bin/gawk GNU awk script text +# +0 string #!/bin/awk awk commands text +0 string #!\ /bin/awk awk commands text +0 string #!/usr/bin/awk awk commands text +0 string #!\ /usr/bin/awk awk commands text +0 string BEGIN awk commands text + +# For Larry Wall's perl language. The ``eval'' line recognizes an +# outrageously clever hack for USG systems. +# Keith Waclena +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 + +# AT&T Bell Labs' Plan 9 shell +0 string #!/bin/rc Plan 9 rc shell script text +0 string #!\ /bin/rc Plan 9 rc shell script text + +# bash shell magic, from Peter Tobias (tobias@server.et-inf.fho-emden.de) +0 string #!/bin/bash Bourne-Again shell script text +0 string #!\ /bin/bash Bourne-Again shell script text +0 string #!/usr/local/bin/bash Bourne-Again shell script text +0 string #!\ /usr/local/bin/bash Bourne-Again shell script text + +# generic shell magic +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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/commands ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/compress =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/compress (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/compress (revision 13586) @@ -0,0 +1,86 @@ + +#------------------------------------------------------------------------------ +# compress: file(1) magic for pure-compression formats (no archives) +# +# compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, etc. +# +# 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. + +# standard unix compress +0 string \037\235 compress'd data +>2 byte&0x80 >0 block compressed +>2 byte&0x1f x %d bits + +# gzip (GNU zip, not to be confused with Info-ZIP or PKWARE zip archiver) +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 + +# 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 + +# 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 +# This string is valid for SunOS (BE) and a matching "short" is listed +# in the Ultrix (LE) magic file. +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 +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) + +# SCO compress -H (LZH) +0 string \037\240 SCO compress -H (LZH) data + +# European GSM 06.10 is a provisional standard for full-rate speech +# transcoding, prI-ETS 300 036, which uses RPE/LTP (residual pulse +# excitation/long term prediction) coding at 13 kbit/s. +# +# There's only a magic nibble (4 bits); that nibble repeats every 33 +# bytes. This isn't suited for use, but maybe we can use it someday. +# +# This will cause very short GSM files to be declared as data and +# mismatches to be declared as data too! +#0 byte&0xF0 0xd0 data +#>33 byte&0xF0 0xd0 +#>66 byte&0xF0 0xd0 +#>99 byte&0xF0 0xd0 +#>132 byte&0xF0 0xd0 GSM 06.10 compressed audio Property changes on: vendor/file/3.19/usr.bin/file/Magdir/compress ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/convex =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/convex (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/convex (revision 13586) @@ -0,0 +1,7 @@ + +#------------------------------------------------------------------------------ +# convex: file(1) magic for Convex boxes +# +# Convexes are big-endian. +# +0 long 0513 Convex executable Property changes on: vendor/file/3.19/usr.bin/file/Magdir/convex ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/database =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/database (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/database (revision 13586) @@ -0,0 +1,36 @@ + +#------------------------------------------------------------------------------ +# database: file(1) magic for various databases +# +# extracted from header/code files by Graeme Wilford (eep2gw@ee.surrey.ac.uk) +# +# +# GDBM magic numbers +# Will be maintained as part of the GDBM distribution in the future. +# +0 belong 0x13579ace GNU dbm 1.x or ndbm database, big endian +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 Directory Size %d, +>20 belong x Segment Size %d, +>24 belong x Segment Shift %d, +>28 belong x Overflow Point %d, +>32 belong x Last Freed %d, +>36 belong x Max Bucket %d, +>40 belong x High Mask 0x%x, +>44 belong x Low Mask 0x%x, +>48 belong x Fill Factor %d, +>52 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) Property changes on: vendor/file/3.19/usr.bin/file/Magdir/database ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/diamond =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/diamond (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/diamond (revision 13586) @@ -0,0 +1,11 @@ + +#------------------------------------------------------------------------------ +# diamond: file(1) magic for Diamond system +# +# ... 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 \n Diamond Multimedia Document +0 string =\n4 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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/dump ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/elf =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/elf (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/elf (revision 13586) @@ -0,0 +1,56 @@ + +#------------------------------------------------------------------------------ +# elf: file(1) magic for ELF executables +# +# We have to check the byte order flag to see what byte order all the +# other stuff in the header is in. +# +# Byte order is probably big-endian for MIPS RS3000 and Amdahl. +# MIPS RS3000 may also be for MIPS RS2000. +# +# updated by Daniel Quinlan (quinlan@yggdrasil.com) +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 no file type, +>>16 leshort 1 relocatable, +>>16 leshort 2 executable, +>>16 leshort 3 shared object, +>>16 leshort 4 core file, +>>16 leshort &0xff00 processor-specific, +>>18 leshort 0 no machine, +>>18 leshort 1 AT&T WE32100 - invalid byte order, +>>18 leshort 2 SPARC - invalid byte order, +>>18 leshort 3 Intel 80386, +>>18 leshort 4 Motorola 68000 - invalid byte order, +>>18 leshort 5 Motorola 88000 - invalid byte order, +>>18 leshort 6 Intel 80486, +>>18 leshort 7 Intel 80860, +>>18 leshort 8 MIPS RS3000, +>>18 leshort 9 Amdahl, +>>20 lelong 0 invalid version +>>20 lelong 1 version 1 +>>36 lelong 1 MathCoPro/FPU/MAU Required +>5 byte 2 MSB +>>16 beshort 0 no file type, +>>16 beshort 1 relocatable, +>>16 beshort 2 executable, +>>16 beshort 3 shared object, +>>16 beshort 4 core file, +>>16 beshort &0xff00 processor-specific, +>>18 beshort 0 no machine, +>>18 beshort 1 AT&T WE32100, +>>18 beshort 2 SPARC, +>>18 beshort 3 Intel 80386 - invalid byte order, +>>18 beshort 4 Motorola 68000, +>>18 beshort 5 Motorola 88000, +>>18 beshort 6 Intel 80486 - invalid byte order, +>>18 beshort 7 Intel 80860, +>>18 beshort 8 MIPS RS3000, +>>18 leshort 9 Amdahl, +>>20 belong 0 invalid version +>>20 belong 1 version 1 +>>36 belong 1 MathCoPro/FPU/MAU Required Property changes on: vendor/file/3.19/usr.bin/file/Magdir/elf ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/encore =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/encore (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/encore (revision 13586) @@ -0,0 +1,21 @@ + +#------------------------------------------------------------------------------ +# encore: file(1) magic for 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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/encore ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/filesystems =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/filesystems (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/filesystems (revision 13586) @@ -0,0 +1,6 @@ + +#------------------------------------------------------------------------------ +# 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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/filesystems ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/fonts =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/fonts (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/fonts (revision 13586) @@ -0,0 +1,26 @@ + +#------------------------------------------------------------------------------ +# fonts: file(1) magic for font data +# +0 string FONT ASCII vfont text +0 short 0436 Berkeley vfont data +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 +>20 string >\0 (%s) +6 string %!PS-AdobeFont-1.0 PostScript Type 1 font program data + +# X11 font files in SNF (Server Natural Format) format +0 belong 00000004 X11 SNF font data, MSB first +0 lelong 00000004 X11 SNF font data, LSB first + +# X11 Bitmap Distribution Format, from Daniel Quinlan (quinlan@yggdrasil.com) +0 string STARTFONT\040 X11 BDF font text + +# X11 fonts, from Daniel Quinlan (quinlan@yggdrasil.com) +# PCF must come before SGI additions ("MIPSEL MIPS-II COFF" collides) +0 string \001fcp X11 Portable Compiled Font data +>12 byte 0x02 \b, LSB first +>12 byte 0x0a \b, MSB first +0 string D1.0\015 X11 Speedo font data Property changes on: vendor/file/3.19/usr.bin/file/Magdir/fonts ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/frame =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/frame (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/frame (revision 13586) @@ -0,0 +1,36 @@ + +#------------------------------------------------------------------------------ +# frame: file(1) magic 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 \11 string 4.0 (4.0 +>11 string 3.0 (3.0 +>11 string 2.0 (2.0 +>11 string 1.0 (1.0 +>14 byte x %c) +0 string \9 string 4.0 (4.0) +>9 string 3.0 (3.0) +>9 string 2.0 (2.0) +>9 string 1.0 (1.x) +0 string \17 string 3.0 (3.0) +>17 string 2.0 (2.0) +>17 string 1.0 (1.x) +0 string \17 string 1.01 (%s) +0 string \10 string 3.0 (3.0 +>10 string 2.0 (2.0 +>10 string 1.0 (1.0 +>13 byte x %c) +# XXX - this book entry should be verified, if you find one, uncomment this +#0 string \6 string 3.0 (3.0) +#>6 string 2.0 (2.0) +#>6 string 1.0 (1.0) +0 string \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 +# XXX - see "lif" +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(,); + +# hpBSD magic numbers +0 beshort 200 hp200 (68010) BSD +>2 beshort 0407 impure binary +>2 beshort 0410 read-only binary +>2 beshort 0413 demand paged binary +0 beshort 300 hp300 (68020+68881) BSD +>2 beshort 0407 impure binary +>2 beshort 0410 read-only binary +>2 beshort 0413 demand paged binary + Property changes on: vendor/file/3.19/usr.bin/file/Magdir/hp ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/ibm370 =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/ibm370 (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/ibm370 (revision 13586) @@ -0,0 +1,19 @@ + +#------------------------------------------------------------------------------ +# ibm370: file(1) magic for 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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/ibm370 ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/ibm6000 =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/ibm6000 (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/ibm6000 (revision 13586) @@ -0,0 +1,16 @@ + +#------------------------------------------------------------------------------ +# ibm6000: file(1) magic for 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 archive Property changes on: vendor/file/3.19/usr.bin/file/Magdir/ibm6000 ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/iff =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/iff (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/iff (revision 13586) @@ -0,0 +1,28 @@ + +#------------------------------------------------------------------------------ +# iff: file(1) magic for Interchange File Format (see also "audio" & "images") +# +# Daniel Quinlan (quinlan@yggdrasil.com) -- IFF was designed by Electronic +# Arts for file interchange. It has also been used by Apple, SGI, and +# especially Commodore-Amiga. +# +# IFF files begin with an 8 byte FORM header, followed by a 4 character +# FORM type, which is followed by the first chunk in the FORM. + +0 string FORM IFF data +#>4 belong x \b, FORM is %d bytes long +# audio formats +>8 string AIFF \b, AIFF audio +>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 +# image formats +>8 string ILBMBMHD \b, ILBM interleaved image +>>20 beshort x \b, %d x +>>22 beshort x %d +>8 string RGBN \b, RGBN 12-bit RGB image +>8 string RGB8 \b, RGB8 24-bit RGB image +>8 string DR2D \b, DR2D 2-D object +>8 string TDDD \b, TDDD 3-D rendering +# other formats +>8 string FTXT \b, FTXT formatted text Property changes on: vendor/file/3.19/usr.bin/file/Magdir/iff ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/images =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/images (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/images (revision 13586) @@ -0,0 +1,224 @@ + +#------------------------------------------------------------------------------ +# images: file(1) magic for image formats (see also "iff") +# +# 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. +# +# little magic: PCX (first byte is 0x0a) +# no magic: Targa + +# PBMPLUS images +# The next byte following the magic is always whitespace. +0 string P1 PBM image text +0 string P2 PGM image text +0 string P3 PPM image text +0 string P4 PBM "rawbits" image data +0 string P5 PGM "rawbits" image data +0 string P6 PPM "rawbits" image data + +# NIFF (Navy Interchange File Format, a modification of TIFF) images +0 string IIN1 NIFF image data + +# Tag Image File Format, from Daniel Quinlan (quinlan@yggdrasil.com) +# The second word of TIFF files is the TIFF version number, 42, which has +# never changed. The TIFF specification recommends testing for it. +0 string MM\x00\x2a TIFF image data, big-endian +0 string II\x2a\x00 TIFF image data, little-endian + +# PNG [Portable Network Graphics, or "PNG's Not GIF"] images +# (Greg Roelofs, newt@uchicago.edu) +# +# 137 P N G \r \n ^Z \n [4-byte length] H E A D [HEAD data] [HEAD crc] ... +# +0 string \x89PNG PNG image data, +>4 belong !0x0d0a1a0a CORRUPTED, +>16 belong x %ld x +>20 belong x %ld, +>24 byte x %d-bit +>25 byte 0 grayscale, +>25 byte 2 \b/color RGB, +>25 byte 3 colormap, +>25 byte 4 gray+alpha, +>25 byte 6 \b/color RGBA, +#>26 byte 0 deflate/32K, +>28 byte 0 non-interlaced +>28 byte 1 interlaced + +# GIF +0 string GIF8 GIF image data +>4 string 7a \b, version 8%s, +>4 string 9a \b, version 8%s, +>6 leshort >0 %hd x +>8 leshort >0 %hd, +#>10 byte &0x80 color mapped, +>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 + +# ITC (CMU WM) raster files. It is essentially a byte-reversed Sun raster, +# 1 plane, no encoding. +0 string \361\0\100\273 CMU window manager raster image data +>4 lelong >0 %d x +>8 lelong >0 %d, +>12 lelong >0 %d-bit + +# Magick Image File Format +0 string id=ImageMagick MIFF image data + +# Artisan +0 long 1123028772 Artisan image data +>4 long 1 \b, rectangular 24-bit +>4 long 2 \b, rectangular 8-bit with colormap +>4 long 3 \b, rectangular 32-bit (24-bit with matte) + +# FIG (Facility for Interactive Generation of figures), an object-based format +0 string #FIG FIG image text +>5 string x \b, version %.3s + +# PHIGS +0 string ARF_BEGARF PHIGS clear text archive +0 string @(#)SunPHIGS SunPHIGS +# version number follows, in the form m.n +>40 string SunBin binary +>32 string archive archive + +# GKS (Graphics Kernel System) +0 string GKSM GKS Metafile +>24 string SunGKS \b, SunGKS + +# CGM image files +0 string BEGMF clear text Computer Graphics Metafile +# XXX - questionable magic +0 beshort&0xffe0 0x0020 binary Computer Graphics Metafile +0 beshort 0x3020 character Computer Graphics Metafile + +# MGR bitmaps (Michael Haardt, u31b3hs@pool.informatik.rwth-aachen.de) +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 + +# Fuzzy Bitmap (FBM) images +0 string %bitmap\0 FBM image data +>30 long 0x31 \b, mono +>30 long 0x33 \b, color + +# facsimile data +1 string PC\ Research,\ Inc group 3 fax data +>29 byte 0 \b, normal resolution (204x98 DPI) +>29 byte 1 \b, fine resolution (204x196 DPI) + +# JPEG images +0 beshort 0xffd8 JPEG image data +>6 string JFIF \b, JFIF standard +# HSI is Handmade Software's proprietary JPEG encoding scheme +0 string hsi1 JPEG image data, HSI proprietary + +# PC bitmaps (OS/2, Windoze BMP files) (Greg Roelofs, newt@uchicago.edu) +0 string BM PC bitmap data +>14 leshort 12 \b, OS/2 1.x format +>>18 leshort x \b, %d x +>>20 leshort x %d +>14 leshort 64 \b, OS/2 2.x format +>>18 leshort x \b, %d x +>>20 leshort x %d +>14 leshort 40 \b, Windows 3.x format +>>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 +# Conflicts with other entries [BABYL] +#0 string BA PC bitmap array data + +# XPM icons (Greg Roelofs, newt@uchicago.edu) +# note possible collision with C/REXX entry in c-lang; currently commented out +0 string /*\ XPM\ */ X pixmap image text + +# Utah Raster Toolkit RLE images (janl@ifi.uio.no) +0 leshort 0xcc52 RLE image data, +>6 leshort x %d x +>8 leshort x %d +>2 leshort >0 \b, lower left corner: %d +>4 leshort >0 \b, lower right corner: %d +>10 byte&0x1 =0x1 \b, clear first +>10 byte&0x2 =0x2 \b, no background +>10 byte&0x4 =0x4 \b, alpha channel +>10 byte&0x8 =0x8 \b, comment +>11 byte >0 \b, %d color channels +>12 byte >0 \b, %d bits per pixel +>13 byte >0 \b, %d color map channels + +# image file format (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 + +# Sun raster images, from Daniel Quinlan (quinlan@yggdrasil.com) +0 belong 0x59a66a95 Sun raster image data +>4 belong >0 \b, %d x +>8 belong >0 %d, +>12 belong >0 %d-bit, +#>16 belong >0 %d bytes long, +>20 belong 0 old format, +#>20 belong 1 standard, +>20 belong 2 compressed, +>20 belong 3 RGB, +>20 belong 4 TIFF, +>20 belong 5 IFF, +>20 belong 0xffff reserved for testing, +>24 belong 0 no colormap +>24 belong 1 RGB colormap +>24 belong 2 raw colormap +#>28 belong >0 colormap is %d bytes long + +# SGI image file format, from Daniel Quinlan (quinlan@yggdrasil.com) +# file://sgi.com/graphics/SGIIMAGESPEC +0 beshort 474 SGI image data +#>2 byte 0 \b, verbatim +>2 byte 1 \b, RLE +#>3 byte 1 \b, normal precision +>3 byte 2 \b, high precision +>4 beshort x \b, %d-D +>6 beshort x \b, %d x +>8 beshort x %d +>10 beshort x \b, %d channel +>10 beshort !1 \bs +>80 string >0 \b, "%s" + +0 string IT01 FIT image data +>4 belong x \b, %d x +>8 belong x %d x +>12 belong x %d +# +0 string IT02 FIT image data +>4 belong x \b, %d x +>8 belong x %d x +>12 belong x %d +# +2048 string PCD_IPI Kodak Photo CD image pack file +0 string PCD_OPA Kodak Photo CD overview pack file + +# FITS format. Jeff Uphoff +# FITS is the Flexible Image Transport System, the de facto standard for +# data and image transfer, storage, etc., for the astronomical community. +# (FITS floating point formats are big-endian.) +0 string SIMPLE\ \ = FITS image data +>109 string 8 \b, 8-bit, character or unsigned binary integer +>108 string 16 \b, 16-bit, two's complement binary integer +>107 string \ 32 \b, 32-bit, two's complement binary integer +>107 string -32 \b, 32-bit, floating point, single precision +>107 string -64 \b, 64-bit, floating point, double precision + +# other images +0 string This\ is\ a\ BitMap\ file Lisp Machine bit-array-file +0 string !! Bennet Yee's "face" format Property changes on: vendor/file/3.19/usr.bin/file/Magdir/images ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/intel =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/intel (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/intel (revision 13586) @@ -0,0 +1,35 @@ + +#------------------------------------------------------------------------------ +# intel: file(1) magic for x86 Unix +# +# Various flavors of x86 UNIX executable/object (other than Xenix, which +# is in "microsoft"). DOS is in "msdos"; 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 +# SGI labeled the next entry as "iAPX 386 executable" --Dan Quinlan +0 leshort =0514 80386 COFF executable +>12 lelong >0 not stripped +>22 leshort >0 - version %ld Property changes on: vendor/file/3.19/usr.bin/file/Magdir/intel ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/interleaf =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/interleaf (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/interleaf (revision 13586) @@ -0,0 +1,8 @@ + +#------------------------------------------------------------------------------ +# interleaf: file(1) magic for InterLeaf TPS: +# +0 string =\210OPS Interleaf saved data +0 string =5 string ,\ Version\ = \b, version +>>17 string >\0 %.3s Property changes on: vendor/file/3.19/usr.bin/file/Magdir/interleaf ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/ispell =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/ispell (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/ispell (revision 13586) @@ -0,0 +1,54 @@ + +#------------------------------------------------------------------------------ +# ispell: file(1) magic for ispell +# +# Ispell 3.0 has a magic of 0x9601 and ispell 3.1 has 0x9602. This magic +# will match 0x9600 through 0x9603 in *both* little endian and big endian. +# (No other current magic entries collide.) +# +# Updated by Daniel Quinlan (quinlan@yggdrasil.com) +# +0 leshort&0xFFFC 0x9600 little endian ispell +>0 byte 0 hash file (?), +>0 byte 1 3.0 hash file, +>0 byte 2 3.1 hash file, +>0 byte 3 hash file (?), +>2 leshort 0x00 8-bit, no capitalization, 26 flags +>2 leshort 0x01 7-bit, no capitalization, 26 flags +>2 leshort 0x02 8-bit, capitalization, 26 flags +>2 leshort 0x03 7-bit, capitalization, 26 flags +>2 leshort 0x04 8-bit, no capitalization, 52 flags +>2 leshort 0x05 7-bit, no capitalization, 52 flags +>2 leshort 0x06 8-bit, capitalization, 52 flags +>2 leshort 0x07 7-bit, capitalization, 52 flags +>2 leshort 0x08 8-bit, no capitalization, 128 flags +>2 leshort 0x09 7-bit, no capitalization, 128 flags +>2 leshort 0x0A 8-bit, capitalization, 128 flags +>2 leshort 0x0B 7-bit, capitalization, 128 flags +>2 leshort 0x0C 8-bit, no capitalization, 256 flags +>2 leshort 0x0D 7-bit, no capitalization, 256 flags +>2 leshort 0x0E 8-bit, capitalization, 256 flags +>2 leshort 0x0F 7-bit, capitalization, 256 flags +>4 leshort >0 and %d string characters +0 beshort&0xFFFC 0x9600 big endian ispell +>1 byte 0 hash file (?), +>1 byte 1 3.0 hash file, +>1 byte 2 3.1 hash file, +>1 byte 3 hash file (?), +>2 beshort 0x00 8-bit, no capitalization, 26 flags +>2 beshort 0x01 7-bit, no capitalization, 26 flags +>2 beshort 0x02 8-bit, capitalization, 26 flags +>2 beshort 0x03 7-bit, capitalization, 26 flags +>2 beshort 0x04 8-bit, no capitalization, 52 flags +>2 beshort 0x05 7-bit, no capitalization, 52 flags +>2 beshort 0x06 8-bit, capitalization, 52 flags +>2 beshort 0x07 7-bit, capitalization, 52 flags +>2 beshort 0x08 8-bit, no capitalization, 128 flags +>2 beshort 0x09 7-bit, no capitalization, 128 flags +>2 beshort 0x0A 8-bit, capitalization, 128 flags +>2 beshort 0x0B 7-bit, capitalization, 128 flags +>2 beshort 0x0C 8-bit, no capitalization, 256 flags +>2 beshort 0x0D 7-bit, no capitalization, 256 flags +>2 beshort 0x0E 8-bit, capitalization, 256 flags +>2 beshort 0x0F 7-bit, capitalization, 256 flags +>4 beshort >0 and %d string characters Property changes on: vendor/file/3.19/usr.bin/file/Magdir/ispell ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/karma =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/karma (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/karma (revision 13586) @@ -0,0 +1,8 @@ + +#------------------------------------------------------------------------------ +# karma: file(1) magic for Karma data files +# +# From + +0 string KarmaRHD Version Karma Data Structure Version +>16 long x %lu Property changes on: vendor/file/3.19/usr.bin/file/Magdir/karma ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/lex =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/lex (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/lex (revision 13586) @@ -0,0 +1,11 @@ + +#------------------------------------------------------------------------------ +# lex: file(1) magic for lex +# +# derived empirically, your offsets may vary! +53 string yyprevious C program text (from lex) +>3 string >\0 for %s +# C program text from GNU flex, from Daniel Quinlan +21 string generated\ by\ flex C program text (from flex) +# lex description file, from Daniel Quinlan +0 string %{ lex description text Property changes on: vendor/file/3.19/usr.bin/file/Magdir/lex ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/lif =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/lif (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/lif (revision 13586) @@ -0,0 +1,7 @@ + +#------------------------------------------------------------------------------ +# lif: file(1) magic for lif +# +# XXX - byte order? (Probably beshort, Daniel Quinlan ) +# +0 short 0x8000 lif file Property changes on: vendor/file/3.19/usr.bin/file/Magdir/lif ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/linux =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/linux (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/linux (revision 13586) @@ -0,0 +1,55 @@ + +#------------------------------------------------------------------------------ +# linux: file(1) magic for Linux files +# +# Values for Linux/i386 binaries, from Daniel Quinlan +# The following basic Linux magic is useful for reference, but using +# "long" magic is a better practice in order to avoid collisions. +# +# 2 leshort 100 Linux/i386 +# >0 leshort 0407 impure executable (OMAGIC) +# >0 leshort 0410 pure executable (NMAGIC) +# >0 leshort 0413 demand-paged executable (ZMAGIC) +# >0 leshort 0314 demand-paged executable (QMAGIC) +# +0 lelong 0x00640107 Linux/i386 impure executable (OMAGIC) +>16 lelong 0 \b, stripped +0 lelong 0x00640108 Linux/i386 pure executable (NMAGIC) +>16 lelong 0 \b, stripped +0 lelong 0x0064010b Linux/i386 demand-paged executable (ZMAGIC) +>16 lelong 0 \b, stripped +0 lelong 0x006400cc Linux/i386 demand-paged executable (QMAGIC) +>16 lelong 0 \b, stripped +# +0 string \007\001\000 Linux/i386 object file +>20 lelong >0x1020 \b, DLL library +# message catalogs, from Mitchum DSouza +0 string *nazgul* compiled message catalog +>8 lelong >0 \b, version %ld +# core dump file, from Bill Reynolds +216 lelong 0421 Linux/i386 core file +>220 string >\0 of '%s' +>200 lelong >0 (signal %d) +# +# LILO boot/chain loaders, from Daniel Quinlan +# this can be overridden by the DOS executable (COM) entry +2 string LILO Linux/i386 LILO boot/chain loader +# +# Debian Packages, from Peter Tobias +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 +0 leshort 0x0436 Linux/i386 PC Screen Font data, +>2 byte 0 256 characters, no directory, +>2 byte 1 512 characters, no directory, +>2 byte 2 256 characters, Unicode directory, +>2 byte 3 512 characters, Unicode directory, +>3 byte >0 8x%d +# Linux swap file, from Daniel Quinlan +4086 string SWAP-SPACE Linux/i386 swap file +# From: Erik Troan +0 leshort 0x00070183 ECOFF (Linux/OSF) Alpha binary +>10 leshort 0x0001 not stripped +>10 leshort 0x0000 stripped Property changes on: vendor/file/3.19/usr.bin/file/Magdir/linux ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/lisp =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/lisp (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/lisp (revision 13586) @@ -0,0 +1,10 @@ + +#------------------------------------------------------------------------------ +# lisp: file(1) magic for lisp programs +# +# various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com) +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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/lisp ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/magic =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/magic (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/magic (revision 13586) @@ -0,0 +1,5 @@ + +#------------------------------------------------------------------------------ +# magic: file(1) magic for magic files +# +0 string #\ Magic magic text file for file(1) cmd Property changes on: vendor/file/3.19/usr.bin/file/Magdir/magic ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/mail.news =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/mail.news (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/mail.news (revision 13586) @@ -0,0 +1,18 @@ + +#------------------------------------------------------------------------------ +# mail.news: file(1) magic for mail and news +# +# 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 +0 string BABYL Emacs RMAIL text Property changes on: vendor/file/3.19/usr.bin/file/Magdir/mail.news ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/microsoft =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/microsoft (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/microsoft (revision 13586) @@ -0,0 +1,72 @@ + +#------------------------------------------------------------------------------ +# microsoft: file(1) magic for Microsoft Xenix +# +# "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 +>0x1e leshort &0x4000 V2.3 +>0x1e leshort &0x8000 V3.0 +>0x1c byte &0x4 86 +>0x1c byte &0xb 186 +>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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/microsoft ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/mirage =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/mirage (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/mirage (revision 13586) @@ -0,0 +1,7 @@ + +#------------------------------------------------------------------------------ +# mirage: file(1) magic for Mirage executables +# +# XXX - byte order? +# +0 long 31415 Mirage Assembler m.out executable Property changes on: vendor/file/3.19/usr.bin/file/Magdir/mirage ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/mkid =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/mkid (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/mkid (revision 13586) @@ -0,0 +1,10 @@ + +#------------------------------------------------------------------------------ +# mkid: file(1) magic for mkid(1) databases +# +# 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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/mkid ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/mmdf =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/mmdf (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/mmdf (revision 13586) @@ -0,0 +1,5 @@ + +#------------------------------------------------------------------------------ +# mmdf: file(1) magic for MMDF mail files +# +0 string \001\001\001\001 MMDF mailbox Property changes on: vendor/file/3.19/usr.bin/file/Magdir/mmdf ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/motorola =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/motorola (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/motorola (revision 13586) @@ -0,0 +1,29 @@ + +#------------------------------------------------------------------------------ +# motorola: file(1) magic for Motorola 68K and 88K binaries +# +# 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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/motorola ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/ms-dos =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/ms-dos (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/ms-dos (revision 13586) @@ -0,0 +1,73 @@ + +#------------------------------------------------------------------------------ +# msdos: file(1) magic for MS-DOS files +# + +# .BAT files (Daniel Quinlan, quinlan@yggdrasil.com) +0 string @echo\ off MS-DOS batch file text + +# .EXE formats (Greg Roelofs, newt@uchicago.edu) +# +0 string MZ MS-DOS executable (EXE) +>24 string @ \b, OS/2 or Windows +>1638 string -lh5- \b, LHa SFX archive v2.13S +>7195 string Rar! \b, RAR self-extracting archive +# +# [GRR 950118: file 3.15 has a buffer-size limitation; offsets bigger than +# 8161 bytes are ignored. To make the following entries work, increase +# HOWMANY in file.h to 32K at least, and maybe to 70K or more for OS/2, +# NT/Win32 and VMS.] +# [GRR: some company sells a self-extractor/displayer for image data(!)] +# +>11696 string PK\003\004 \b, PKZIP SFX archive v1.1 +>13297 string PK\003\004 \b, PKZIP SFX archive v1.93a +>15588 string PK\003\004 \b, PKZIP2 SFX archive v1.09 +>15770 string PK\003\004 \b, PKZIP SFX archive v2.04g +>28374 string PK\003\004 \b, PKZIP2 SFX archive v1.02 +# +# Info-ZIP self-extractors +# these are the DOS versions: +>25115 string PK\003\004 \b, Info-ZIP SFX archive v5.12 +>26331 string PK\003\004 \b, Info-ZIP SFX archive v5.12 w/decryption +# these are the OS/2 versions (OS/2 is flagged above): +>47031 string PK\003\004 \b, Info-ZIP SFX archive v5.12 +>49845 string PK\003\004 \b, Info-ZIP SFX archive v5.12 w/decryption +# this is the NT/Win32 version: +>69120 string PK\003\004 \b, Info-ZIP NT SFX archive v5.12 w/decryption +# +# TELVOX Teleinformatica CODEC self-extractor for OS/2: +>49801 string \x79\xff\x80\xff\x76\xff \b, CODEC archive v3.21 +>>49824 leshort =1 \b, 1 file +>>49824 leshort >1 \b, %u files + +# .COM formats (Daniel Quinlan, quinlan@yggdrasil.com) +# Uncommenting only the first two lines will cover about 2/3 of COM files, +# but it isn't feasible to match all COM files since there must be at least +# two dozen different one-byte "magics". +#0 byte 0xe9 MS-DOS executable (COM) +#0 byte 0x8c MS-DOS executable (COM) +# 0xeb conflicts with "sequent" magic +#0 byte 0xeb MS-DOS executable (COM) +#0 byte 0xb8 MS-DOS executable (COM) + +# miscellaneous formats +0 string LZ MS-DOS executable (built-in) +#0 byte 0xf0 MS-DOS program library data +# + +# Popular applications +2080 string Microsoft\ Word\ 6.0\ Document %s +# +0 belong 0x31be0000 Microsoft Word Document +# +2080 string Microsoft\ Excel\ 5.0\ Worksheet %s +# +0 belong 0x00001a00 Lotus 1-2-3 +>4 belong 0x00100400 wk3 document +>4 belong 0x02100400 wk4 document +>4 belong 0x07800100 fm3 or fmb document +>4 belong 0x07800000 fm3 or fmb document +# +0 belong 0x00000200 Lotus 1-2-3 +>4 belong 0x06040600 wk1 document +>4 belong 0x06800200 fmt document Property changes on: vendor/file/3.19/usr.bin/file/Magdir/ms-dos ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/ncr =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/ncr (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/ncr (revision 13586) @@ -0,0 +1,48 @@ + +#------------------------------------------------------------------------------ +# ncr: file(1) magic for 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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/ncr ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/netbsd =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/netbsd (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/netbsd (revision 13586) @@ -0,0 +1,185 @@ + +#------------------------------------------------------------------------------ +# netbsd: file(1) magic for NetBSD objects +# +# 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 +>32 byte 0x6a (uses shared libs) + + +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 +>>0 byte &0x40 position independent +>>20 lelong !0 executable +>>20 lelong =0 object file +>16 lelong >0 not stripped +0 belong&0377777777 041400507 NetBSD/i386 core +>12 string >\0 from '%s' + +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 +>>0 byte &0x40 position independent +>>20 belong !0 executable +>>20 belong =0 object file +>16 belong >0 not stripped +0 belong&0377777777 041600507 NetBSD/m68k core +>12 string >\0 from '%s' + +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 +>>0 byte &0x40 position independent +>>20 belong !0 executable +>>20 belong =0 object file +>16 belong >0 not stripped +0 belong&0377777777 042000507 NetBSD/m68k4k core +>12 string >\0 from '%s' + +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 +>>0 byte &0x40 position independent +>>20 lelong !0 executable +>>20 lelong =0 object file +>16 lelong >0 not stripped +0 belong&0377777777 042200507 NetBSD/ns32532 core +>12 string >\0 from '%s' + +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 +>>0 byte &0x40 position independent +>>20 belong !0 executable +>>20 belong =0 object file +>16 belong >0 not stripped +0 belong&0377777777 042400507 NetBSD/sparc core +>12 string >\0 from '%s' + +0 belong&0377777777 042600413 NetBSD/pmax demand paged +>0 byte &0x80 +>>20 lelong <4096 shared library +>>20 lelong =4096 dynamically linked executable +>>20 lelong >4096 dynamically linked executable +>0 byte ^0x80 executable +>16 lelong >0 not stripped +0 belong&0377777777 042600410 NetBSD/pmax pure +>0 byte &0x80 dynamically linked executable +>0 byte ^0x80 executable +>16 lelong >0 not stripped +0 belong&0377777777 042600407 NetBSD/pmax +>0 byte &0x80 dynamically linked executable +>0 byte ^0x80 +>>0 byte &0x40 position independent +>>20 lelong !0 executable +>>20 lelong =0 object file +>16 lelong >0 not stripped +0 belong&0377777777 042600507 NetBSD/pmax core +>12 string >\0 from '%s' + +0 belong&0377777777 043000413 NetBSD/vax demand paged +>0 byte &0x80 +>>20 lelong <4096 shared library +>>20 lelong =4096 dynamically linked executable +>>20 lelong >4096 dynamically linked executable +>0 byte ^0x80 executable +>16 lelong >0 not stripped +0 belong&0377777777 043000410 NetBSD/vax pure +>0 byte &0x80 dynamically linked executable +>0 byte ^0x80 executable +>16 lelong >0 not stripped +0 belong&0377777777 043000407 NetBSD/vax +>0 byte &0x80 dynamically linked executable +>0 byte ^0x80 +>>0 byte &0x40 position independent +>>20 lelong !0 executable +>>20 lelong =0 object file +>16 lelong >0 not stripped +0 belong&0377777777 043000507 NetBSD/vax core +>12 string >\0 from '%s' + +0 belong&0377777777 043400413 NetBSD/mips demand paged +>0 byte &0x80 +>>20 belong <8192 shared library +>>20 belong =8192 dynamically linked executable +>>20 belong >8192 dynamically linked executable +>0 byte ^0x80 executable +>16 belong >0 not stripped +0 belong&0377777777 043400410 NetBSD/mips pure +>0 byte &0x80 dynamically linked executable +>0 byte ^0x80 executable +>16 belong >0 not stripped +0 belong&0377777777 043400407 NetBSD/mips +>0 byte &0x80 dynamically linked executable +>0 byte ^0x80 +>>0 byte &0x40 position independent +>>20 belong !0 executable +>>20 belong =0 object file +>16 belong >0 not stripped +0 belong&0377777777 043400507 NetBSD/mips core +>12 string >\0 from '%s' Property changes on: vendor/file/3.19/usr.bin/file/Magdir/netbsd ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/news =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/news (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/news (revision 13586) @@ -0,0 +1,12 @@ + +#------------------------------------------------------------------------------ +# news: file(1) magic for SunOS NeWS fonts (not "news" as in "netnews") +# +0 string StartFontMetrics ASCII font metrics +0 string StartFont ASCII font bits +0 belong 0x137A2944 NeWS bitmap font +0 belong 0x137A2947 NeWS font family +0 belong 0x137A2950 scalable OpenFont binary +0 belong 0x137A2951 encrypted scalable OpenFont binary +8 belong 0x137A2B45 X11/NeWS bitmap font +8 belong 0x137A2B48 X11/NeWS font family Property changes on: vendor/file/3.19/usr.bin/file/Magdir/news ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/pbm =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/pbm (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/pbm (revision 13586) @@ -0,0 +1,7 @@ + +#------------------------------------------------------------------------------ +# pbm: file(1) magic for Portable Bitmap files +# +# XXX - byte order? +# +0 short 0x2a17 "compact bitmap" format (Poskanzer) Property changes on: vendor/file/3.19/usr.bin/file/Magdir/pbm ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/pdf =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/pdf (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/pdf (revision 13586) @@ -0,0 +1,7 @@ + +#------------------------------------------------------------------------------ +# pdf: file(1) magic for Portable Document Format +# + +0 string %PDF- PDF document +>5 string x \b, version %.3s Property changes on: vendor/file/3.19/usr.bin/file/Magdir/pdf ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/pdp =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/pdp (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/pdp (revision 13586) @@ -0,0 +1,25 @@ + +#------------------------------------------------------------------------------ +# pdp: file(1) magic for 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 +>15 byte >0 - version %ld + +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 +>15 byte >0 - version %ld + +0 leshort 0411 PDP-11 separate I&D executable +>8 leshort >0 not stripped +>15 byte >0 - version %ld + +0 leshort 0437 PDP-11 kernel overlay Property changes on: vendor/file/3.19/usr.bin/file/Magdir/pdp ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/pgp =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/pgp (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/pgp (revision 13586) @@ -0,0 +1,12 @@ + +#------------------------------------------------------------------------------ +# pgp: file(1) magic for Pretty Good Privacy +# +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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/pgp ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/pkgadd =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/pkgadd (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/pkgadd (revision 13586) @@ -0,0 +1,5 @@ + +#------------------------------------------------------------------------------ +# pkgadd: file(1) magic for SysV R4 PKG Datastreams +# +0 string #\ PaCkAgE\ DaTaStReAm pkg Datastream (SVR4) Property changes on: vendor/file/3.19/usr.bin/file/Magdir/pkgadd ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/plus5 =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/plus5 (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/plus5 (revision 13586) @@ -0,0 +1,17 @@ + +#------------------------------------------------------------------------------ +# plus5: file(1) magic 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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/plus5 ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/printer =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/printer (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/printer (revision 13586) @@ -0,0 +1,55 @@ + +#------------------------------------------------------------------------------ +# printer: file(1) magic for printer-formatted files +# + +# PostScript, updated by Daniel Quinlan (quinlan@yggdrasil.com) +0 string %! PostScript document text +>2 string PS-Adobe- conforming +>>11 string >\0 at level %.3s +>>>15 string EPS - type %s +>>>15 string Query - type %s +>>>15 string ExitServer - type %s +# Some PCs have the annoying habit of adding a ^D as a document separator +0 string \004%! PostScript document text +>3 string PS-Adobe- conforming +>>12 string >\0 at level %.3s +>>>16 string EPS - type %s +>>>16 string Query - type %s +>>>16 string ExitServer - type %s + +# HP Printer Job Language +0 string \033%-12345X@PJL HP Printer Job Language data +>15 string \ ENTER\ LANGUAGE\ = +>31 string PostScript Postscript + +# HP Printer Control Language, Daniel Quinlan (quinlan@yggdrasil.com) +0 string \033E\033 HP PCL printer data +>3 string \&l0A - default page size +>3 string \&l1A - US executive page size +>3 string \&l2A - US letter page size +>3 string \&l3A - US legal page size +>3 string \&l26A - A4 page size +>3 string \&l80A - Monarch envelope size +>3 string \&l81A - No. 10 envelope size +>3 string \&l90A - Intl. DL envelope size +>3 string \&l91A - Intl. C5 envelope size +>3 string \&l100A - Intl. B5 envelope size +>3 string \&l-81A - No. 10 envelope size (landscape) +>3 string \&l-90A - Intl. DL envelope size (landscape) + +# 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. +# [GRR 950115: missing "postscript" or "ultrascript" (whatever it was called)] +# +# Now magic for IMAGEN font files... +0 string Rast RST-format raster font data +>45 string >0 face % Property changes on: vendor/file/3.19/usr.bin/file/Magdir/printer ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/psdbms =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/psdbms (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/psdbms (revision 13586) @@ -0,0 +1,7 @@ + +#------------------------------------------------------------------------------ +# psdbms: file(1) magic for psdatabase +# +0 belong&0xff00ffff 0x56000000 ps database +>1 string >\0 version %s +>4 string >\0 from kernel %s Property changes on: vendor/file/3.19/usr.bin/file/Magdir/psdbms ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/pyramid =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/pyramid (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/pyramid (revision 13586) @@ -0,0 +1,11 @@ + +#------------------------------------------------------------------------------ +# pyramid: file(1) 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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/pyramid ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/rpm =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/rpm (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/rpm (revision 13586) @@ -0,0 +1,14 @@ +#------------------------------------------------------------------------------ +# +# RPM: file(1) magic for Red Hat Packages Erik Troan (ewt@redhat.com) +# +0 beshort 0xedab +>2 beshort 0xeedb RPM +>>4 byte x v%d +>>6 beshort 0 bin +>>6 beshort 1 src +>>8 beshort 1 i386 +>>8 beshort 2 Alpha +>>8 beshort 3 PowerPC +>>8 beshort 4 Sparc +>>10 string x %s Property changes on: vendor/file/3.19/usr.bin/file/Magdir/rpm ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/rtf =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/rtf (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/rtf (revision 13586) @@ -0,0 +1,12 @@ + +#------------------------------------------------------------------------------ +# rtf: file(1) magic for Rich Text Format (RTF) +# +# Duncan P. Simpson, D.P.Simpson@dcs.warwick.ac.uk +# +0 string {\\rtf Rich Text Format data, +>5 byte x version %c, +>6 string \\ansi ANSI +>6 string \\mac Apple Macintosh +>6 string \\pc IBM PC, code page 437 +>6 string \\pca IBM PS/2, code page 850 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/rtf ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/sc =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/sc (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/sc (revision 13586) @@ -0,0 +1,5 @@ + +#------------------------------------------------------------------------------ +# sc: file(1) magic for "sc" spreadsheet +# +38 string Spreadsheet sc spreadsheet file Property changes on: vendor/file/3.19/usr.bin/file/Magdir/sc ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/sccs =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/sccs (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/sccs (revision 13586) @@ -0,0 +1,21 @@ + +#------------------------------------------------------------------------------ +# sccs: file(1) magic for SCCS archives +# +# 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 data Property changes on: vendor/file/3.19/usr.bin/file/Magdir/sccs ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/sendmail =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/sendmail (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/sendmail (revision 13586) @@ -0,0 +1,10 @@ + +#------------------------------------------------------------------------------ +# sendmail: file(1) magic for sendmail config files +# +# 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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/sendmail ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/sequent =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/sequent (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/sequent (revision 13586) @@ -0,0 +1,34 @@ + +#------------------------------------------------------------------------------ +# sequent: file(1) magic for Sequent machines +# +# Sequent information updated by Don 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 . +# 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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/sequent ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/sgi =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/sgi (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/sgi (revision 13586) @@ -0,0 +1,165 @@ + +#------------------------------------------------------------------------------ +# sgi: file(1) magic for Silicon Graphics (MIPS, IRIS, IRIX, etc.) +# +# all of SGI's *current* machines and OSes run in big-endian mode on the +# MIPS machines, as far as I know. +# +# XXX - what is the blank "-" line? +# +0 belong 0407 old SGI 68020 executable +0 belong 0410 old SGI 68020 pure executable +0 beshort 0x8765 disk quotas file +0 beshort 0x0506 IRIS Showcase file +>2 byte 0x49 - +>3 byte x - version %ld +0 beshort 0x0226 IRIS Showcase template +>2 byte 0x63 - +>3 byte x - version %ld +0 belong 0x5343464d IRIS Showcase file +>4 byte x - version %ld +0 belong 0x5443464d IRIS Showcase template +>4 byte x - version %ld +0 belong 0xdeadbabe IRIX Parallel Arena +>8 belong >0 - version %ld +# +0 beshort 0x0160 MIPSEB COFF executable +>20 beshort 0407 (impure) +>20 beshort 0410 (swapped) +>20 beshort 0413 (paged) +>8 belong >0 not stripped +>8 belong 0 stripped +>22 byte x - version %ld +>23 byte x .%ld +# +0 beshort 0x0162 MIPSEL COFF executable +>20 beshort 0407 (impure) +>20 beshort 0410 (swapped) +>20 beshort 0413 (paged) +>8 belong >0 not stripped +>8 belong 0 stripped +>23 byte x - version %d +>22 byte x .%ld +# +0 beshort 0x6001 MIPSEB-LE COFF executable +>20 beshort 03401 (impure) +>20 beshort 04001 (swapped) +>20 beshort 05401 (paged) +>8 belong >0 not stripped +>8 belong 0 stripped +>22 byte x - version %d +>23 byte x .%ld +# +0 beshort 0x6201 MIPSEL-LE COFF executable +>20 beshort 03401 (impure) +>20 beshort 04001 (swapped) +>20 beshort 05401 (paged) +>8 belong >0 not stripped +>8 belong 0 stripped +>22 byte x - version %ld +>23 byte x .%ld +# +# MIPS 2 additions +# +0 beshort 0x0163 MIPSEB MIPS-II COFF executable +>20 beshort 0407 (impure) +>20 beshort 0410 (swapped) +>20 beshort 0413 (paged) +>8 belong >0 not stripped +>8 belong 0 stripped +>22 byte x - version %ld +>23 byte x .%ld +# +0 beshort 0x0166 MIPSEL MIPS-II COFF executable +>20 beshort 0407 (impure) +>20 beshort 0410 (swapped) +>20 beshort 0413 (paged) +>8 belong >0 not stripped +>8 belong 0 stripped +>22 byte x - version %ld +>23 byte x .%ld +# +0 beshort 0x6301 MIPSEB-LE MIPS-II COFF executable +>20 beshort 03401 (impure) +>20 beshort 04001 (swapped) +>20 beshort 05401 (paged) +>8 belong >0 not stripped +>8 belong 0 stripped +>23 byte x - version %ld +>23 byte x .%ld +# +0 beshort 0x6601 MIPSEL-LE MIPS-II COFF executable +>20 beshort 03401 (impure) +>20 beshort 04001 (swapped) +>20 beshort 05401 (paged) +>8 belong >0 not stripped +>8 belong 0 stripped +>23 byte x - version %ld +>23 byte x .%ld +# +# MIPS 3 additions +# +0 beshort 0x0140 MIPSEB MIPS-III COFF executable +>20 beshort 0407 (impure) +>20 beshort 0410 (swapped) +>20 beshort 0413 (paged) +>8 belong >0 not stripped +>8 belong 0 stripped +>22 byte x - version %ld +>23 byte x .%ld +# +0 beshort 0x0142 MIPSEL MIPS-III COFF executable +>20 beshort 0407 (impure) +>20 beshort 0410 (swapped) +>20 beshort 0413 (paged) +>8 belong >0 not stripped +>8 belong 0 stripped +>22 byte x - version %ld +>23 byte x .%ld +# +0 beshort 0x4001 MIPSEB-LE MIPS-III COFF executable +>20 beshort 03401 (impure) +>20 beshort 04001 (swapped) +>20 beshort 05401 (paged) +>8 belong >0 not stripped +>8 belong 0 stripped +>23 byte x - version %ld +>23 byte x .%ld +# +0 beshort 0x4201 MIPSEL-LE MIPS-III COFF executable +>20 beshort 03401 (impure) +>20 beshort 04001 (swapped) +>20 beshort 05401 (paged) +>8 belong >0 not stripped +>8 belong 0 stripped +>23 byte x - version %ld +>23 byte x .%ld +# +0 beshort 0x180 MIPSEB Ucode +0 beshort 0x182 MIPSEL Ucode +# 32bit core file +0 belong 0xdeadadb0 IRIX core dump +>4 belong 1 of +>16 string >\0 '%s' +# 64bit core file +0 belong 0xdeadad40 IRIX 64-bit core dump +>4 belong 1 of +>16 string >\0 '%s' +# New style crash dump file +0 string \x43\x72\x73\x68\x44\x75\x6d\x70 IRIX vmcore dump of +>36 string >\0 '%s' +# Trusted IRIX info +0 string SGIAUDIT SGI Audit file +>8 byte x - version %d +>9 byte x .%ld +# Are these three SGI-based file types or general ones? +0 string WNGZWZSC Wingz compiled script +0 string WNGZWZSS Wingz spreadsheet +0 string WNGZWZHP Wingz help file +# +0 string \#Inventor V IRIS Inventor file +# XXX - I don't know what next thing is! It is likely to be an image +# (or movie) format +0 string glfHeadMagic(); GLF_TEXT +4 belong 0x41010000 GLF_BINARY_LSB_FIRST +4 belong 0x00000141 GLF_BINARY_MSB_FIRST Property changes on: vendor/file/3.19/usr.bin/file/Magdir/sgi ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/sgml =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/sgml (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/sgml (revision 13586) @@ -0,0 +1,21 @@ + +#------------------------------------------------------------------------------ +# 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 \ Compiled SGML rules file +>9 string >\0 Type %s +0 string \ A/E SGML Document binary +>9 string >\0 Type %s +0 string \ 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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/softquad ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/sun =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/sun (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/sun (revision 13586) @@ -0,0 +1,86 @@ + +#------------------------------------------------------------------------------ +# sun: file(1) magic for Sun machines +# +# 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' Property changes on: vendor/file/3.19/usr.bin/file/Magdir/sun ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/terminfo =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/terminfo (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/terminfo (revision 13586) @@ -0,0 +1,9 @@ + +#------------------------------------------------------------------------------ +# terminfo: file(1) magic for 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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/terminfo ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/tex =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/tex (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/tex (revision 13586) @@ -0,0 +1,36 @@ + +#------------------------------------------------------------------------------ +# tex: file(1) magic for TeX files +# +# From + +# 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 +>3 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 +>33 string >\0 (%s) +2 string \000\022 TeX font metric data +>33 string >\0 (%s) + +# Texinfo and GNU Info, from Daniel Quinlan (quinlan@yggdrasil.com) +0 string \\input\ texinfo Texinfo source text +0 string This\ is\ Info\ file GNU Info text + +# TeX documents, from Daniel Quinlan (quinlan@yggdrasil.com) +0 string \\input TeX document text +0 string \\section LaTeX document text +0 string \\setlength LaTeX document text +0 string \\documentstyle LaTeX document text +0 string \\chapter LaTeX document text Property changes on: vendor/file/3.19/usr.bin/file/Magdir/tex ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/timezone =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/timezone (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/timezone (revision 13586) @@ -0,0 +1,12 @@ + +#------------------------------------------------------------------------------ +# timezone: file(1) magic for timezone data +# +# 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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/timezone ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/troff =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/troff (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/troff (revision 13586) @@ -0,0 +1,27 @@ + +#------------------------------------------------------------------------------ +# troff: file(1) magic for *roff +# +# updated by Daniel Quinlan (quinlan@yggdrasil.com) + +# troff input +0 string .\\" troff or preprocessor input text +0 string '\\" troff or preprocessor input text +0 string '.\\" troff or preprocessor input text +0 string \\" troff or preprocessor input text + +# ditroff intermediate output text +0 string x\ T ditroff text +>4 string cat for the C/A/T phototypesetter +>4 string ps for PostScript +>4 string dvi for DVI +>4 string ascii for ASCII +>4 string lj4 for LaserJet 4 +>4 string latin1 for ISO 8859-1 (Latin 1) +>4 string X75 for xditview at 75dpi +>>7 string -12 (12pt) +>4 string X100 for xditview at 100dpi +>>8 string -12 (12pt) + +# output data formats +0 string \100\357 very old (C/A/T) troff output data Property changes on: vendor/file/3.19/usr.bin/file/Magdir/troff ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/typeset =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/typeset (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/typeset (revision 13586) @@ -0,0 +1,7 @@ + +#------------------------------------------------------------------------------ +# typeset: file(1) magic for other typesetting +# +0 string Interpress/Xerox Xerox InterPress data +>16 string / (version +>>17 string >\0 %s) Property changes on: vendor/file/3.19/usr.bin/file/Magdir/typeset ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/unknown =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/unknown (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/unknown (revision 13586) @@ -0,0 +1,36 @@ + +#------------------------------------------------------------------------------ +# unknown: file(1) magic for unknown machines +# +# 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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/unknown ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/uuencode =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/uuencode (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/uuencode (revision 13586) @@ -0,0 +1,30 @@ + +#------------------------------------------------------------------------------ +# uuencode: file(1) magic for ASCII-encoded files +# + +# GRR: the first line of xxencoded files is identical to that in uuencoded +# files, but the first character in most subsequent lines is 'h' instead of +# 'M'. (xxencoding uses lowercase letters in place of most of uuencode's +# punctuation and survives BITNET gateways better.) If regular expressions +# were supported, this entry could possibly be split into two with +# "begin\040\.\*\012M" or "begin\040\.\*\012h" (where \. and \* are REs). +0 string begin\040 uuencoded or xxencoded text + +# btoa(1) is an alternative to uuencode that requires less space. +0 string xbtoa\ Begin btoa'd text + +# ship(1) is another, much cooler alternative to uuencode. +# Greg Roelofs, newt@uchicago.edu +0 string $\012ship ship'd binary text + +# bencode(8) is used to encode compressed news batches (Bnews/Cnews only?) +# Greg Roelofs, newt@uchicago.edu +0 string Decode\ the\ following\ with\ bdeco bencoded News text + +# BinHex is the Macintosh ASCII-encoded file format (see also "apple") +# Daniel Quinlan, quinlan@yggdrasil.com +11 string must\ be\ converted\ with\ BinHex BinHex binary text +>41 string x \b, version %.3s + +# GRR: is MIME BASE64 encoding handled somewhere? Property changes on: vendor/file/3.19/usr.bin/file/Magdir/uuencode ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/varied.out =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/varied.out (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/varied.out (revision 13586) @@ -0,0 +1,15 @@ + +#------------------------------------------------------------------------------ +# varied.out: file(1) magic for various USG systems +# +# 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 +# AMD 29K +0 beshort 0572 amd 29k coff noprebar executable +0 beshort 01572 amd 29k coff prebar executable +0 beshort 0160007 amd 29k coff archive +# Cray +6 beshort 0407 unicos (cray) executable Property changes on: vendor/file/3.19/usr.bin/file/Magdir/varied.out ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/vax =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/vax (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/vax (revision 13586) @@ -0,0 +1,34 @@ + +#------------------------------------------------------------------------------ +# vax: file(1) magic for 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 Property changes on: vendor/file/3.19/usr.bin/file/Magdir/vax ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/visx =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/visx (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/visx (revision 13586) @@ -0,0 +1,31 @@ + +#------------------------------------------------------------------------------ +# visx: file(1) magic for Visx format files +# +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) Property changes on: vendor/file/3.19/usr.bin/file/Magdir/visx ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/vms =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/vms (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/vms (revision 13586) @@ -0,0 +1,27 @@ + +#------------------------------------------------------------------------------ +# vms: file(1) magic for VMS executables (experimental) +# +# VMS .exe formats, both VAX and AXP (Greg Roelofs, newt@uchicago.edu) + +# GRR 950122: I'm just guessing on these, based on inspection of the headers +# of three executables each for Alpha and VAX architectures. The VAX files +# all had headers similar to this: +# +# 00000 b0 00 30 00 44 00 60 00 00 00 00 00 30 32 30 35 ..0.D.`.....0205 +# 00010 01 01 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 ................ +# +0 string \xb0\0\x30\0 VMS VAX executable +>44032 string PK\003\004 \b, Info-ZIP SFX archive v5.12 w/decryption +# +# The AXP files all looked like this, except that the byte at offset 0x22 +# was 06 in some of them and 07 in others: +# +# 00000 03 00 00 00 00 00 00 00 ec 02 00 00 10 01 00 00 ................ +# 00010 68 00 00 00 98 00 00 00 b8 00 00 00 00 00 00 00 h............... +# 00020 00 00 07 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ +# 00030 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ................ +# 00040 00 00 00 00 ff ff ff ff ff ff ff ff 02 00 00 00 ................ +# +0 belong 0x03000000 VMS Alpha executable +>75264 string PK\003\004 \b, Info-ZIP SFX archive v5.12 w/decryption Property changes on: vendor/file/3.19/usr.bin/file/Magdir/vms ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/zilog =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/zilog (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/zilog (revision 13586) @@ -0,0 +1,11 @@ + +#------------------------------------------------------------------------------ +# zilog: file(1) magic for 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) Property changes on: vendor/file/3.19/usr.bin/file/Magdir/zilog ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/zyxel =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/zyxel (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/zyxel (revision 13586) @@ -0,0 +1,16 @@ + +#------------------------------------------------------------------------------ +# zyxel: file(1) magic for ZyXEL modems +# +# From +# 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&0x0B 1 - ADPCM2 encoding +>10 byte&0x0B 2 - ADPCM3 encoding +>10 byte&0x0B 3 - ADPCM4 encoding +>10 byte&0x0B 8 - New ADPCM3 encoding +>10 byte&0x04 4 with resync Property changes on: vendor/file/3.19/usr.bin/file/Magdir/zyxel ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Magdir/Header =================================================================== --- vendor/file/3.19/usr.bin/file/Magdir/Header (nonexistent) +++ vendor/file/3.19/usr.bin/file/Magdir/Header (revision 13586) @@ -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. Property changes on: vendor/file/3.19/usr.bin/file/Magdir/Header ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/LEGAL.NOTICE =================================================================== --- vendor/file/3.19/usr.bin/file/LEGAL.NOTICE (nonexistent) +++ vendor/file/3.19/usr.bin/file/LEGAL.NOTICE (revision 13586) @@ -0,0 +1,31 @@ +Copyright (c) Ian F. Darwin 1986, 1987, 1989, 1990, 1991, 1992, 1994, 1995. +Software written by Ian F. Darwin and others; maintained by Christos Zoulas. +$Id: LEGAL.NOTICE,v 1.9 1995/10/27 23:14:20 christos Exp $ + +This software (or derivative software) may not be made subject to any +license which denies anyone permission to alter it and redistribute it +freely. Derivative software must also still fall under this license. + +This software is not subject to any export provision of the United States +Department of Commerce, and may be exported to any country or planet. + +Permission is granted to anyone to use this software for any purpose on +any computer system, and to alter it and redistribute it freely, subject +to the following restrictions: + +1. The author is not responsible for the consequences of use of this + software, no matter how awful, even if they arise from flaws in it. + +2. The origin of this software must not be misrepresented, either by + explicit claim or by omission. Since few users ever read sources, + credits must appear in the documentation. + +3. Altered versions must be plainly marked as such, and must not be + misrepresented as being the original software. Since few users + ever read sources, credits must appear in the documentation. + Derivative works must also be marked as such, and credits must appear + in the documentation. + +4. This notice may not be removed or altered. + + Property changes on: vendor/file/3.19/usr.bin/file/LEGAL.NOTICE ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/Makefile =================================================================== --- vendor/file/3.19/usr.bin/file/Makefile (nonexistent) +++ vendor/file/3.19/usr.bin/file/Makefile (revision 13586) @@ -0,0 +1,161 @@ +# Makefile for file(1) cmd. +# Copyright (c) Ian F. Darwin 86/09/01 - see LEGAL.NOTICE. +# @(#)$Id: Makefile,v 1.49 1995/10/27 23:12:33 christos Exp $ +# +# This software is not subject to any license of the American Telephone +# and Telegraph Company or of the Regents of the University of California. +# +# Permission is granted to anyone to use this software for any purpose on +# any computer system, and to alter it and redistribute it freely, subject +# to the following restrictions: +# +# 1. The author is not responsible for the consequences of use of this +# software, no matter how awful, even if they arise from flaws in it. +# +# 2. The origin of this software must not be misrepresented, either by +# explicit claim or by omission. Since few users ever read sources, +# credits must appear in the documentation. +# +# 3. Altered versions must be plainly marked as such, and must not be +# misrepresented as being the original software. Since few users +# ever read sources, credits must appear in the documentation. +# +# 4. This notice may not be removed or altered. +VERSION = 3.19 +SHELL = /bin/sh +#MAGIC = /etc/magic +MAGIC = /usr/local/etc/magic +DEFS = -DMAGIC='"$(MAGIC)"' # -Dvoid=int +CC = cc +COPTS = -O -g # newer compilers allow both; else drop -O +# For truly antique environments, use this for (dummy) include files: +COPTS = -O # -Ilocalinc +CFLAGS = $(COPTS) $(DEFS) +LDFLAGS = $(COPTS) # -Bstatic # older gdb couldn't handle shared libs +SHAR = bundle +OFILE = /usr/bin/file # old or distributed version, for comparison +# Where new binary lives; typically /usr/local (BSD), /usr/lbin (USG). +BINDIR = /usr/local/bin +# For installing our man pages; +# MANCxxx is manual section for Commands, MANFxxx is section for file formats. +# MANxDIR is directory names; MANxEXT is the filename extention. Usual values: +# Variable V7 4BSD Sys V +# MANCDIR /usr/man/man1 /usr/man/man1 /usr/man/u_man/man1 +# MANFDIR /usr/man/man5 /usr/man/man5 /usr/man/u_man/man4 +# MANCEXT 1 1 1 +# MANFEXT 5 5 4 +# --- possible alternative for 4BSD --- +# MANCDIR /usr/local/man/man1 +# MANCEXT 1 +# or +# MANCDIR /usr/man/manl +# MANCEXT l +# --- possible alternative for USG --- +# MANCDIR /usr/man/local/man1 +# MANCEXT 1 + +MANCDIR = /usr/local/man/man1 +MANCEXT = 1 +MANFDIR = /usr/local/man/man4 +MANFEXT = 4 + +# There are no system-dependant configuration options (except maybe CFLAGS). +# Uncomment any of these that is missing from your "standard" library. +LOCALSRCS = # localsrc/getopt.c localsrc/strtol.c \ +# localsrc/strtok.c localsrc/strchr.c +LOCALOBJS = # localsrc/getopt.o localsrc/strtol.o \ +# localsrc/strtok.o localsrc/strchr.o +# These are not compiled in unless you use -Ilocalinc, but +# are not commented out as "make dist" &c use them. +LOCALINC = # localinc/*.h localinc/sys/*.h + +SRCS = file.c apprentice.c fsmagic.c softmagic.c ascmagic.c \ + compress.c is_tar.c \ + print.c $(LOCALSRCS) $(LOCALINC) +OBJS = file.o apprentice.o fsmagic.o softmagic.o ascmagic.o \ + compress.o is_tar.o \ + print.o $(LOCALOBJS) + +ALLSRC = LEGAL.NOTICE README MAINT PORTING $(SRCS) *.h \ + Makefile file.man magic.man +ALLMAGIC = Magdir/Makefile Magdir/Localstuff Magdir/Header Magdir/[a-z]* + +all: file magic file.${MANCEXT} magic.${MANFEXT} + +TESTFILES = * tst/* +try: all $(OFILE) + cd tst; $(MAKE) + time $(OFILE) $(TESTFILES) >/tmp/t1 # can't use ./magic + time ./file -m ./magic $(TESTFILES) >/tmp/t2 + -diff -b /tmp/t[12] + what ./file >lastnocore + +file: $(OBJS) + $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) -o $@ +lint: $(SRCS) + lint -ha $(DEFS) $(SRCS) | tee $@ +magic: Magdir +# Magdir/Makefile's "install" mv's magic to here for testing. + cd Magdir; $(MAKE) install + +ascmagic.o: names.h + +compress.o apprentice.o ascmagic.o file.o fsmagic.o print.o softmagic.o: file.h + +install: file magic + cp file $(BINDIR)/file + cp magic $(MAGIC) + +install.man: file.${MANCEXT} magic.${MANFEXT} + cp file.${MANCEXT} $(MANCDIR)/file.$(MANCEXT) + cp magic.${MANFEXT} $(MANFDIR)/magic.$(MANFEXT) + +clean: + rm -f *.o core file magic lint dist.* MANIFEST \ + magic.${MANFEXT} file.${MANCEXT} +clobber: + cd tst; $(MAKE) clean + + +magic.${MANFEXT} : Makefile magic.man + @rm -f $@ + sed -e s@__CSECTION__@${MANCEXT}@g \ + -e s@__FSECTION__@${MANFEXT}@g \ + -e s@__MAGIC__@${MAGIC}@g magic.man > $@ + +file.${MANCEXT} : Makefile file.man + @rm -f $@ + sed -e s@__CSECTION__@${MANCEXT}@g \ + -e s@__FSECTION__@${MANFEXT}@g \ + -e s@__MAGIC__@${MAGIC}@g file.man > $@ + +send: dist + ftp ftp.cs + +dist: dist.src dist.magic + @echo Now check this patchlevel! + ident patchlevel.h + +dist.src: $(ALLSRC) MANIFEST +# Some versions of shar can't handle a single file from +# a subdirectory, so we manually insert mkdir as needed. +# The point is to exclude all the generable targets in tst. + (echo mkdir localinc localinc/sys localsrc tst; \ + $(SHAR) $(ALLSRC) MANIFEST) > $@ + +rcsdiff: $(ALLSRC) + rcsdiff -q RCS/* + +MANIFEST: $(ALLSRC) + ident $(ALLSRC) > MANIFEST +dist.magic: Magdir +# As above, but to exclude Magdir/RCS from being shipped. + (echo mkdir Magdir; $(SHAR) $(ALLMAGIC)) >$@ + +tar: $(ALLSRC) $(ALLMAGIC) + -rm -fr file-${VERSION} + -mkdir file-${VERSION} file-${VERSION}/Magdir + ln $(ALLSRC) file-${VERSION} + ln ${ALLMAGIC} file-${VERSION}/Magdir + tar cvf file-${VERSION}.tar file-${VERSION} + -rm -fr file-${VERSION} Property changes on: vendor/file/3.19/usr.bin/file/Makefile ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/apprentice.c =================================================================== --- vendor/file/3.19/usr.bin/file/apprentice.c (nonexistent) +++ vendor/file/3.19/usr.bin/file/apprentice.c (revision 13586) @@ -0,0 +1,622 @@ +/* + * apprentice - make one pass through /etc/magic, learning its secrets. + * + * Copyright (c) Ian F. Darwin, 1987. + * Written by Ian F. Darwin. + * + * This software is not subject to any license of the American Telephone + * and Telegraph Company or of the Regents of the University of California. + * + * Permission is granted to anyone to use this software for any purpose on + * any computer system, and to alter it and redistribute it freely, subject + * to the following restrictions: + * + * 1. The author is not responsible for the consequences of use of this + * software, no matter how awful, even if they arise from flaws in it. + * + * 2. The origin of this software must not be misrepresented, either by + * explicit claim or by omission. Since few users ever read sources, + * credits must appear in the documentation. + * + * 3. Altered versions must be plainly marked as such, and must not be + * misrepresented as being the original software. Since few users + * ever read sources, credits must appear in the documentation. + * + * 4. This notice may not be removed or altered. + */ + +#include +#include +#include +#include +#include +#include "file.h" + +#ifndef lint +static char *moduleid = + "@(#)$Id: apprentice.c,v 1.23 1995/10/27 23:12:01 christos Exp $"; +#endif /* lint */ + +#define EATAB {while (isascii((unsigned char) *l) && \ + isspace((unsigned char) *l)) ++l;} +#define LOWCASE(l) (isupper((unsigned char) (l)) ? \ + tolower((unsigned char) (l)) : (l)) + + +static int getvalue __P((struct magic *, char **)); +static int hextoint __P((int)); +static char *getstr __P((char *, char *, int, int *)); +static int parse __P((char *, int *, int)); +static void eatsize __P((char **)); + +static int maxmagic = 0; + +static int apprentice_1 __P((char *, int)); + +int +apprentice(fn, check) +char *fn; /* list of magic files */ +int check; /* non-zero? checking-only run. */ +{ + char *p, *mfn; + int file_err, errs = -1; + + maxmagic = MAXMAGIS; + magic = (struct magic *) calloc(sizeof(struct magic), maxmagic); + mfn = malloc(strlen(fn)+1); + if (magic == NULL || mfn == NULL) { + (void) fprintf(stderr, "%s: Out of memory.\n", progname); + if (check) + return -1; + else + exit(1); + } + fn = strcpy(mfn, fn); + + while (fn) { + p = strchr(fn, ':'); + if (p) + *p++ = '\0'; + file_err = apprentice_1(fn, check); + if (file_err > errs) + errs = file_err; + fn = p; + } + if (errs == -1) + (void) fprintf(stderr, "%s: couldn't find any magic files!\n", + progname); + if (!check && errs) + exit(1); + + free(mfn); + return errs; +} + +static int +apprentice_1(fn, check) +char *fn; /* name of magic file */ +int check; /* non-zero? checking-only run. */ +{ + static const char hdr[] = + "cont\toffset\ttype\topcode\tmask\tvalue\tdesc"; + FILE *f; + char line[BUFSIZ+1]; + int errs = 0; + + f = fopen(fn, "r"); + if (f==NULL) { + if (errno != ENOENT) + (void) fprintf(stderr, + "%s: can't read magic file %s (%s)\n", + progname, fn, strerror(errno)); + return -1; + } + + /* parse it */ + if (check) /* print silly verbose header for USG compat. */ + (void) printf("%s\n", hdr); + + for (lineno = 1;fgets(line, BUFSIZ, f) != NULL; lineno++) { + if (line[0]=='#') /* comment, do not parse */ + continue; + if (strlen(line) <= (unsigned)1) /* null line, garbage, etc */ + continue; + line[strlen(line)-1] = '\0'; /* delete newline */ + if (parse(line, &nmagic, check) != 0) + errs = 1; + } + + (void) fclose(f); + return errs; +} + +/* + * extend the sign bit if the comparison is to be signed + */ +unsigned long +signextend(m, v) +struct magic *m; +unsigned long v; +{ + if (!(m->flag & UNSIGNED)) + switch(m->type) { + /* + * Do not remove the casts below. They are + * vital. When later compared with the data, + * the sign extension must have happened. + */ + case BYTE: + v = (char) v; + break; + case SHORT: + case BESHORT: + case LESHORT: + v = (short) v; + break; + case DATE: + case BEDATE: + case LEDATE: + case LONG: + case BELONG: + case LELONG: + v = (long) v; + break; + case STRING: + break; + default: + magwarn("can't happen: m->type=%d\n", + m->type); + return -1; + } + return v; +} + +/* + * parse one line from magic file, put into magic[index++] if valid + */ +static int +parse(l, ndx, check) +char *l; +int *ndx, check; +{ + int i = 0, nd = *ndx; + struct magic *m; + char *t, *s; + +#define ALLOC_INCR 20 + if (nd+1 >= maxmagic){ + maxmagic += ALLOC_INCR; + if ((magic = (struct magic *) realloc(magic, + sizeof(struct magic) * + maxmagic)) == NULL) { + (void) fprintf(stderr, "%s: Out of memory.\n", progname); + if (check) + return -1; + else + exit(1); + } + memset(&magic[*ndx], 0, sizeof(struct magic) * ALLOC_INCR); + } + m = &magic[*ndx]; + m->flag = 0; + m->cont_level = 0; + + while (*l == '>') { + ++l; /* step over */ + m->cont_level++; + } + + if (m->cont_level != 0 && *l == '(') { + ++l; /* step over */ + m->flag |= INDIR; + } + + /* get offset, then skip over it */ + m->offset = (int) strtoul(l,&t,0); + if (l == t) + magwarn("offset %s invalid", l); + l = t; + + if (m->flag & INDIR) { + m->in.type = LONG; + m->in.offset = 0; + /* + * read [.lbs][+-]nnnnn) + */ + if (*l == '.') { + l++; + switch (LOWCASE(*l)) { + case 'l': + m->in.type = LONG; + break; + case 'h': + case 's': + m->in.type = SHORT; + break; + case 'c': + case 'b': + m->in.type = BYTE; + break; + default: + magwarn("indirect offset type %c invalid", *l); + break; + } + l++; + } + s = l; + if (*l == '+' || *l == '-') l++; + if (isdigit((unsigned char)*l)) { + m->in.offset = strtoul(l, &t, 0); + if (*s == '-') m->in.offset = - m->in.offset; + } + else + t = l; + if (*t++ != ')') + magwarn("missing ')' in indirect offset"); + l = t; + } + + + while (isascii((unsigned char)*l) && isdigit((unsigned char)*l)) + ++l; + EATAB; + +#define NBYTE 4 +#define NSHORT 5 +#define NLONG 4 +#define NSTRING 6 +#define NDATE 4 +#define NBESHORT 7 +#define NBELONG 6 +#define NBEDATE 6 +#define NLESHORT 7 +#define NLELONG 6 +#define NLEDATE 6 + + if (*l == 'u') { + ++l; + m->flag |= UNSIGNED; + } + + /* get type, skip it */ + if (strncmp(l, "byte", NBYTE)==0) { + m->type = BYTE; + l += NBYTE; + } else if (strncmp(l, "short", NSHORT)==0) { + m->type = SHORT; + l += NSHORT; + } else if (strncmp(l, "long", NLONG)==0) { + m->type = LONG; + l += NLONG; + } else if (strncmp(l, "string", NSTRING)==0) { + m->type = STRING; + l += NSTRING; + } else if (strncmp(l, "date", NDATE)==0) { + m->type = DATE; + l += NDATE; + } else if (strncmp(l, "beshort", NBESHORT)==0) { + m->type = BESHORT; + l += NBESHORT; + } else if (strncmp(l, "belong", NBELONG)==0) { + m->type = BELONG; + l += NBELONG; + } else if (strncmp(l, "bedate", NBEDATE)==0) { + m->type = BEDATE; + l += NBEDATE; + } else if (strncmp(l, "leshort", NLESHORT)==0) { + m->type = LESHORT; + l += NLESHORT; + } else if (strncmp(l, "lelong", NLELONG)==0) { + m->type = LELONG; + l += NLELONG; + } else if (strncmp(l, "ledate", NLEDATE)==0) { + m->type = LEDATE; + l += NLEDATE; + } else { + magwarn("type %s invalid", l); + return -1; + } + /* New-style anding: "0 byte&0x80 =0x80 dynamically linked" */ + if (*l == '&') { + ++l; + m->mask = signextend(m, strtoul(l, &l, 0)); + eatsize(&l); + } else + m->mask = ~0L; + EATAB; + + switch (*l) { + case '>': + case '<': + /* Old-style anding: "0 byte &0x80 dynamically linked" */ + case '&': + case '^': + case '=': + m->reln = *l; + ++l; + break; + case '!': + if (m->type != STRING) { + m->reln = *l; + ++l; + break; + } + /* FALL THROUGH */ + default: + if (*l == 'x' && isascii((unsigned char)l[1]) && + isspace((unsigned char)l[1])) { + m->reln = *l; + ++l; + goto GetDesc; /* Bill The Cat */ + } + m->reln = '='; + break; + } + EATAB; + + if (getvalue(m, &l)) + return -1; + /* + * TODO finish this macro and start using it! + * #define offsetcheck {if (offset > HOWMANY-1) + * magwarn("offset too big"); } + */ + + /* + * now get last part - the description + */ +GetDesc: + EATAB; + if (l[0] == '\b') { + ++l; + m->nospflag = 1; + } else if ((l[0] == '\\') && (l[1] == 'b')) { + ++l; + ++l; + m->nospflag = 1; + } else + m->nospflag = 0; + while ((m->desc[i++] = *l++) != '\0' && itype == STRING) { + *p = getstr(*p, m->value.s, sizeof(m->value.s), &slen); + m->vallen = slen; + } else + if (m->reln != 'x') { + m->value.l = signextend(m, strtoul(*p, p, 0)); + eatsize(p); + } + return 0; +} + +/* + * Convert a string containing C character escapes. Stop at an unescaped + * space or tab. + * Copy the converted version to "p", returning its length in *slen. + * Return updated scan pointer as function result. + */ +static char * +getstr(s, p, plen, slen) +register char *s; +register char *p; +int plen, *slen; +{ + char *origs = s, *origp = p; + char *pmax = p + plen - 1; + register int c; + register int val; + + while ((c = *s++) != '\0') { + if (isspace((unsigned char) c)) + break; + if (p >= pmax) { + fprintf(stderr, "String too long: %s\n", origs); + break; + } + if(c == '\\') { + switch(c = *s++) { + + case '\0': + goto out; + + default: + *p++ = (char) c; + break; + + case 'n': + *p++ = '\n'; + break; + + case 'r': + *p++ = '\r'; + break; + + case 'b': + *p++ = '\b'; + break; + + case 't': + *p++ = '\t'; + break; + + case 'f': + *p++ = '\f'; + break; + + case 'v': + *p++ = '\v'; + break; + + /* \ and up to 3 octal digits */ + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + val = c - '0'; + c = *s++; /* try for 2 */ + if(c >= '0' && c <= '7') { + val = (val<<3) | (c - '0'); + c = *s++; /* try for 3 */ + if(c >= '0' && c <= '7') + val = (val<<3) | (c-'0'); + else + --s; + } + else + --s; + *p++ = (char)val; + break; + + /* \x and up to 3 hex digits */ + case 'x': + val = 'x'; /* Default if no digits */ + c = hextoint(*s++); /* Get next char */ + if (c >= 0) { + val = c; + c = hextoint(*s++); + if (c >= 0) { + val = (val << 4) + c; + c = hextoint(*s++); + if (c >= 0) { + val = (val << 4) + c; + } else + --s; + } else + --s; + } else + --s; + *p++ = (char)val; + break; + } + } else + *p++ = (char)c; + } +out: + *p = '\0'; + *slen = p - origp; + return s; +} + + +/* Single hex char to int; -1 if not a hex char. */ +static int +hextoint(c) +int c; +{ + if (!isascii((unsigned char) c)) return -1; + if (isdigit((unsigned char) c)) return c - '0'; + if ((c>='a')&&(c<='f')) return c + 10 - 'a'; + if ((c>='A')&&(c<='F')) return c + 10 - 'A'; + return -1; +} + + +/* + * Print a string containing C character escapes. + */ +void +showstr(fp, s, len) +FILE *fp; +const char *s; +int len; +{ + register char c; + + for (;;) { + c = *s++; + if (len == -1) { + if (c == '\0') + break; + } + else { + if (len-- == 0) + break; + } + if(c >= 040 && c <= 0176) /* TODO isprint && !iscntrl */ + (void) fputc(c, fp); + else { + (void) fputc('\\', fp); + switch (c) { + + case '\n': + (void) fputc('n', fp); + break; + + case '\r': + (void) fputc('r', fp); + break; + + case '\b': + (void) fputc('b', fp); + break; + + case '\t': + (void) fputc('t', fp); + break; + + case '\f': + (void) fputc('f', fp); + break; + + case '\v': + (void) fputc('v', fp); + break; + + default: + (void) fprintf(fp, "%.3o", c & 0377); + break; + } + } + } +} + +/* + * eatsize(): Eat the size spec from a number [eg. 10UL] + */ +static void +eatsize(p) +char **p; +{ + char *l = *p; + + if (LOWCASE(*l) == 'u') + l++; + + switch (LOWCASE(*l)) { + case 'l': /* long */ + case 's': /* short */ + case 'h': /* short */ + case 'b': /* char/byte */ + case 'c': /* char/byte */ + l++; + /*FALLTHROUGH*/ + default: + break; + } + + *p = l; +} Property changes on: vendor/file/3.19/usr.bin/file/apprentice.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/ascmagic.c =================================================================== --- vendor/file/3.19/usr.bin/file/ascmagic.c (nonexistent) +++ vendor/file/3.19/usr.bin/file/ascmagic.c (revision 13586) @@ -0,0 +1,123 @@ +/* + * ASCII magic -- file types that we know based on keywords + * that can appear anywhere in the file. + * + * Copyright (c) Ian F. Darwin, 1987. + * Written by Ian F. Darwin. + * + * This software is not subject to any license of the American Telephone + * and Telegraph Company or of the Regents of the University of California. + * + * Permission is granted to anyone to use this software for any purpose on + * any computer system, and to alter it and redistribute it freely, subject + * to the following restrictions: + * + * 1. The author is not responsible for the consequences of use of this + * software, no matter how awful, even if they arise from flaws in it. + * + * 2. The origin of this software must not be misrepresented, either by + * explicit claim or by omission. Since few users ever read sources, + * credits must appear in the documentation. + * + * 3. Altered versions must be plainly marked as such, and must not be + * misrepresented as being the original software. Since few users + * ever read sources, credits must appear in the documentation. + * + * 4. This notice may not be removed or altered. + */ + +#include +#include +#include +#include +#include +#include "file.h" +#include "names.h" + +#ifndef lint +static char *moduleid = + "@(#)$Id: ascmagic.c,v 1.20 1995/05/20 22:09:21 christos Exp $"; +#endif /* lint */ + + /* an optimisation over plain strcmp() */ +#define STREQ(a, b) (*(a) == *(b) && strcmp((a), (b)) == 0) + +int +ascmagic(buf, nbytes) +unsigned char *buf; +int nbytes; /* size actually read */ +{ + int i, has_escapes = 0; + unsigned char *s; + char nbuf[HOWMANY+1]; /* one extra for terminating '\0' */ + char *token; + register struct names *p; + + /* + * Do the tar test first, because if the first file in the tar + * archive starts with a dot, we can confuse it with an nroff file. + */ + switch (is_tar(buf, nbytes)) { + case 1: + ckfputs("tar archive", stdout); + return 1; + case 2: + ckfputs("POSIX tar archive", stdout); + return 1; + } + + /* + * for troff, look for . + letter + letter or .\"; + * this must be done to disambiguate tar archives' ./file + * and other trash from real troff input. + */ + if (*buf == '.') { + unsigned char *tp = buf + 1; + + while (isascii(*tp) && isspace(*tp)) + ++tp; /* skip leading whitespace */ + if ((isascii(*tp) && (isalnum(*tp) || *tp=='\\') && + isascii(tp[1]) && (isalnum(tp[1]) || tp[1] == '"'))) { + ckfputs("troff or preprocessor input text", stdout); + return 1; + } + } + if ((*buf == 'c' || *buf == 'C') && + isascii(buf[1]) && isspace(buf[1])) { + ckfputs("fortran program text", stdout); + return 1; + } + + /* look for tokens from names.h - this is expensive! */ + /* make a copy of the buffer here because strtok() will destroy it */ + s = (unsigned char*) memcpy(nbuf, buf, nbytes); + s[nbytes] = '\0'; + has_escapes = (memchr(s, '\033', nbytes) != NULL); + while ((token = strtok((char *) s, " \t\n\r\f")) != NULL) { + s = NULL; /* make strtok() keep on tokin' */ + for (p = names; p < names + NNAMES; p++) { + if (STREQ(p->name, token)) { + ckfputs(types[p->type], stdout); + if (has_escapes) + ckfputs(" (with escape sequences)", + stdout); + return 1; + } + } + } + + + for (i = 0; i < nbytes; i++) { + if (!isascii(buf[i])) + return 0; /* not all ASCII */ + } + + /* all else fails, but it is ASCII... */ + ckfputs("ASCII text", stdout); + if (has_escapes) { + ckfputs(" (with escape sequences)", stdout); + } + return 1; +} + + Property changes on: vendor/file/3.19/usr.bin/file/ascmagic.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/compress.c =================================================================== --- vendor/file/3.19/usr.bin/file/compress.c (nonexistent) +++ vendor/file/3.19/usr.bin/file/compress.c (revision 13586) @@ -0,0 +1,122 @@ +/* + * compress routines: + * zmagic() - returns 0 if not recognized, uncompresses and prints + * information if recognized + * uncompress(method, old, n, newch) - uncompress old into new, + * using method, return sizeof new + * $Id: compress.c,v 1.9 1995/05/20 22:09:21 christos Exp $ + */ +#include +#include +#include +#include +#include + +#include "file.h" + +static struct { + char *magic; + int maglen; + char *argv[3]; + int silent; +} compr[] = { + { "\037\235", 2, { "uncompress", "-c", NULL }, 0 }, /* compressed */ + { "\037\213", 2, { "gzip", "-cdq", NULL }, 1 }, /* gzipped */ + { "\037\236", 2, { "gzip", "-cdq", NULL }, 1 }, /* frozen */ + { "\037\240", 2, { "gzip", "-cdq", NULL }, 1 }, /* SCO LZH */ + /* the standard pack utilities do not accept standard input */ + { "\037\036", 2, { "gzip", "-cdq", NULL }, 0 }, /* packed */ +}; + +static int ncompr = sizeof(compr) / sizeof(compr[0]); + + +static int uncompress __P((int, const unsigned char *, unsigned char **, int)); + +int +zmagic(buf, nbytes) +unsigned char *buf; +int nbytes; +{ + unsigned char *newbuf; + int newsize; + int i; + + for (i = 0; i < ncompr; i++) { + if (nbytes < compr[i].maglen) + continue; + if (memcmp(buf, compr[i].magic, compr[i].maglen) == 0) + break; + } + + if (i == ncompr) + return 0; + + if ((newsize = uncompress(i, buf, &newbuf, nbytes)) != 0) { + tryit(newbuf, newsize, 1); + free(newbuf); + printf(" ("); + tryit(buf, nbytes, 0); + printf(")"); + } + return 1; +} + + +static int +uncompress(method, old, newch, n) +int method; +const unsigned char *old; +unsigned char **newch; +int n; +{ + int fdin[2], fdout[2]; + + if (pipe(fdin) == -1 || pipe(fdout) == -1) { + error("cannot create pipe (%s).\n", strerror(errno)); + /*NOTREACHED*/ + } + switch (fork()) { + case 0: /* child */ + (void) close(0); + (void) dup(fdin[0]); + (void) close(fdin[0]); + (void) close(fdin[1]); + + (void) close(1); + (void) dup(fdout[1]); + (void) close(fdout[0]); + (void) close(fdout[1]); + if (compr[method].silent) + (void) close(2); + + execvp(compr[method].argv[0], compr[method].argv); + error("could not execute `%s' (%s).\n", + compr[method].argv[0], strerror(errno)); + /*NOTREACHED*/ + case -1: + error("could not fork (%s).\n", strerror(errno)); + /*NOTREACHED*/ + + default: /* parent */ + (void) close(fdin[0]); + (void) close(fdout[1]); + if (write(fdin[1], old, n) != n) { + error("write failed (%s).\n", strerror(errno)); + /*NOTREACHED*/ + } + (void) close(fdin[1]); + if ((*newch = (unsigned char *) malloc(n)) == NULL) { + error("out of memory.\n"); + /*NOTREACHED*/ + } + if ((n = read(fdout[0], *newch, n)) <= 0) { + free(*newch); + error("read failed (%s).\n", strerror(errno)); + /*NOTREACHED*/ + } + (void) close(fdout[0]); + (void) wait(NULL); + return n; + } +} Property changes on: vendor/file/3.19/usr.bin/file/compress.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/file.1 =================================================================== --- vendor/file/3.19/usr.bin/file/file.1 (nonexistent) +++ vendor/file/3.19/usr.bin/file/file.1 (revision 13586) @@ -0,0 +1,348 @@ +.TH FILE __CSECTION__ "Copyright but distributable" +.\" $Id: file.man,v 1.26 1995/10/27 23:12:01 christos Exp $ +.SH NAME +file +\- determine file type +.SH SYNOPSIS +.B file +[ +.B \-vczL +] +[ +.B \-f +namefile ] +[ +.B \-m +magicfiles ] +file ... +.SH DESCRIPTION +.I File +tests each argument in an attempt to classify it. +There are three sets of tests, performed in this order: +filesystem tests, magic number tests, and language tests. +The +.I first +test that succeeds causes the file type to be printed. +.PP +The type printed will usually contain one of the words +.B text +(the file contains only ASCII characters and is +probably safe to read on an ASCII terminal), +.B executable +(the file contains the result of compiling a program +in a form understandable to some \s-1UNIX\s0 kernel or another), +or +.B data +meaning anything else (data is usually `binary' or non-printable). +Exceptions are well-known file formats (core files, tar archives) +that are known to contain binary data. +When modifying the file +.I __MAGIC__ +or the program itself, +.B "preserve these keywords" . +People depend on knowing that all the readable files in a directory +have the word ``text'' printed. +Don't do as Berkeley did \- change ``shell commands text'' +to ``shell script''. +.PP +The filesystem tests are based on examining the return from a +.IR stat (2) +system call. +The program checks to see if the file is empty, +or if it's some sort of special file. +Any known file types appropriate to the system you are running on +(sockets, symbolic links, or named pipes (FIFOs) on those systems that +implement them) +are intuited if they are defined in +the system header file +.BR sys/stat.h . +.PP +The magic number tests are used to check for files with data in +particular fixed formats. +The canonical example of this is a binary executable (compiled program) +.B a.out +file, whose format is defined in +.B a.out.h +and possibly +.B exec.h +in the standard include directory. +These files have a `magic number' stored in a particular place +near the beginning of the file that tells the \s-1UNIX\s0 operating system +that the file is a binary executable, and which of several types thereof. +The concept of `magic number' has been applied by extension to data files. +Any file with some invariant identifier at a small fixed +offset into the file can usually be described in this way. +The information in these files is read from the magic file +.I __MAGIC__. +.PP +If an argument appears to be an +.SM ASCII +file, +.I file +attempts to guess its language. +The language tests look for particular strings (cf \fInames.h\fP) +that can appear anywhere in the first few blocks of a file. +For example, the keyword +.B .br +indicates that the file is most likely a troff input file, +just as the keyword +.B struct +indicates a C program. +These tests are less reliable than the previous +two groups, so they are performed last. +The language test routines also test for some miscellany +(such as +.I tar +archives) and determine whether an unknown file should be +labelled as `ascii text' or `data'. +.SH OPTIONS +.TP 8 +.B \-v +Print the version of the program and exit. +.TP 8 +.B \-m list +Specify an alternate list of files containing magic numbers. +This can be a single file, or a colon-separated list of files. +.TP 8 +.B \-z +Try to look inside compressed files. +.TP 8 +.B \-c +Cause a checking printout of the parsed form of the magic file. +This is usually used in conjunction with +.B \-m +to debug a new magic file before installing it. +.TP 8 +.B \-f namefile +Read the names of the files to be examined from +.I namefile +(one per line) +before the argument list. +Either +.I namefile +or at least one filename argument must be present; +to test the standard input, use ``-'' as a filename argument. +.TP 8 +.B \-L +option causes symlinks to be followed, as the like-named option in +.IR ls (1). +(on systems that support symbolic links). +.SH FILES +.I __MAGIC__ +\- default list of magic numbers +.SH ENVIRONMENT +The environment variable +.B MAGIC +can be used to set the default magic number files. +.SH SEE ALSO +.IR magic (__FSECTION__) +\- description of magic file format. +.br +.IR Strings (1), " od" (1) +\- tools for examining non-textfiles. +.SH STANDARDS CONFORMANCE +This program is believed to exceed the System V Interface Definition +of FILE(CMD), as near as one can determine from the vague language +contained therein. +Its behaviour is mostly compatible with the System V program of the same name. +This version knows more magic, however, so it will produce +different (albeit more accurate) output in many cases. +.PP +The one significant difference +between this version and System V +is that this version treats any white space +as a delimiter, so that spaces in pattern strings must be escaped. +For example, +.br +>10 string language impress\ (imPRESS data) +.br +in an existing magic file would have to be changed to +.br +>10 string language\e impress (imPRESS data) +.br +In addition, in this version, if a pattern string contains a backslash, +it must be escaped. For example +.br +0 string \ebegindata Andrew Toolkit document +.br +in an existing magic file would have to be changed to +.br +0 string \e\ebegindata Andrew Toolkit document +.br +.PP +SunOS releases 3.2 and later from Sun Microsystems include a +.IR file (1) +command derived from the System V one, but with some extensions. +My version differs from Sun's only in minor ways. +It includes the extension of the `&' operator, used as, +for example, +.br +>16 long&0x7fffffff >0 not stripped +.SH MAGIC DIRECTORY +The magic file entries have been collected from various sources, +mainly USENET, and contributed by various authors. +Christos Zoulas (address below) will collect additional +or corrected magic file entries. +A consolidation of magic file entries +will be distributed periodically. +.PP +The order of entries in the magic file is significant. +Depending on what system you are using, the order that +they are put together may be incorrect. +If your old +.I file +command uses a magic file, +keep the old magic file around for comparison purposes +(rename it to +.IR __MAGIC__.orig ). +.SH HISTORY +There has been a +.I file +command in every UNIX since at least Research Version 6 +(man page dated January, 1975). +The System V version introduced one significant major change: +the external list of magic number types. +This slowed the program down slightly but made it a lot more flexible. +.PP +This program, based on the System V version, +was written by Ian Darwin without looking at anybody else's source code. +.PP +John Gilmore revised the code extensively, making it better than +the first version. +Geoff Collyer found several inadequacies +and provided some magic file entries. +The program has undergone continued evolution since. +.SH AUTHOR +Written by Ian F. Darwin, UUCP address {utzoo | ihnp4}!darwin!ian, +Internet address ian@sq.com, +postal address: P.O. Box 603, Station F, Toronto, Ontario, CANADA M4Y 2L8. +.PP +Altered by Rob McMahon, cudcv@warwick.ac.uk, 1989, to extend the `&' operator +from simple `x&y != 0' to `x&y op z'. +.PP +Altered by Guy Harris, guy@auspex.com, 1993, to: +.RS +.PP +put the ``old-style'' `&' +operator back the way it was, because 1) Rob McMahon's change broke the +previous style of usage, 2) the SunOS ``new-style'' `&' operator, +which this version of +.I file +supports, also handles `x&y op z', and 3) Rob's change wasn't documented +in any case; +.PP +put in multiple levels of `>'; +.PP +put in ``beshort'', ``leshort'', etc. keywords to look at numbers in the +file in a specific byte order, rather than in the native byte order of +the process running +.IR file . +.RE +.PP +Changes by Ian Darwin and various authors including +Christos Zoulas (christos@ee.cornell.edu), 1990-1992. +.SH LEGAL NOTICE +Copyright (c) Ian F. Darwin, Toronto, Canada, +1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993. +.PP +This software is not subject to and may not be made subject to any +license of the American Telephone and Telegraph Company, Sun +Microsystems Inc., Digital Equipment Inc., Lotus Development Inc., the +Regents of the University of California, The X Consortium or MIT, or +The Free Software Foundation. +.PP +This software is not subject to any export provision of the United States +Department of Commerce, and may be exported to any country or planet. +.PP +Permission is granted to anyone to use this software for any purpose on +any computer system, and to alter it and redistribute it freely, subject +to the following restrictions: +.PP +1. The author is not responsible for the consequences of use of this +software, no matter how awful, even if they arise from flaws in it. +.PP +2. The origin of this software must not be misrepresented, either by +explicit claim or by omission. Since few users ever read sources, +credits must appear in the documentation. +.PP +3. Altered versions must be plainly marked as such, and must not be +misrepresented as being the original software. Since few users +ever read sources, credits must appear in the documentation. +.PP +4. This notice may not be removed or altered. +.PP +A few support files (\fIgetopt\fP, \fIstrtok\fP) +distributed with this package +are by Henry Spencer and are subject to the same terms as above. +.PP +A few simple support files (\fIstrtol\fP, \fIstrchr\fP) +distributed with this package +are in the public domain; they are so marked. +.PP +The files +.I tar.h +and +.I is_tar.c +were written by John Gilmore from his public-domain +.I tar +program, and are not covered by the above restrictions. +.SH BUGS +There must be a better way to automate the construction of the Magic +file from all the glop in Magdir. What is it? +Better yet, the magic file should be compiled into binary (say, +.IR ndbm (3) +or, better yet, fixed-length ASCII strings +for use in heterogenous network environments) for faster startup. +Then the program would run as fast as the Version 7 program of the same name, +with the flexibility of the System V version. +.PP +.I File +uses several algorithms that favor speed over accuracy, +thus it can be misled about the contents of ASCII files. +.PP +The support for ASCII files (primarily for programming languages) +is simplistic, inefficient and requires recompilation to update. +.PP +There should be an ``else'' clause to follow a series of continuation lines. +.PP +The magic file and keywords should have regular expression support. +Their use of ASCII TAB as a field delimiter is ugly and makes +it hard to edit the files, but is entrenched. +.PP +It might be advisable to allow upper-case letters in keywords +for e.g., troff commands vs man page macros. +Regular expression support would make this easy. +.PP +The program doesn't grok \s-2FORTRAN\s0. +It should be able to figure \s-2FORTRAN\s0 by seeing some keywords which +appear indented at the start of line. +Regular expression support would make this easy. +.PP +The list of keywords in +.I ascmagic +probably belongs in the Magic file. +This could be done by using some keyword like `*' for the offset value. +.PP +Another optimisation would be to sort +the magic file so that we can just run down all the +tests for the first byte, first word, first long, etc, once we +have fetched it. Complain about conflicts in the magic file entries. +Make a rule that the magic entries sort based on file offset rather +than position within the magic file? +.PP +The program should provide a way to give an estimate +of ``how good'' a guess is. +We end up removing guesses (e.g. ``From '' as first 5 chars of file) because +they are not as good as other guesses (e.g. ``Newsgroups:'' versus +"Return-Path:"). Still, if the others don't pan out, it should be +possible to use the first guess. +.PP +This program is slower than some vendors' file commands. +.PP +This manual page, and particularly this section, is too long. +.SH AVAILABILITY +You can obtain the original author's latest version by anonymous FTP +on +.B tesla.ee.cornell.edu +in the directory +.BR /pub/file-X.YY.tar.gz Property changes on: vendor/file/3.19/usr.bin/file/file.1 ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/file.c =================================================================== --- vendor/file/3.19/usr.bin/file/file.c (nonexistent) +++ vendor/file/3.19/usr.bin/file/file.c (revision 13586) @@ -0,0 +1,349 @@ +/* + * file - find type of a file or files - main program. + * + * Copyright (c) Ian F. Darwin, 1987. + * Written by Ian F. Darwin. + * + * This software is not subject to any license of the American Telephone + * and Telegraph Company or of the Regents of the University of California. + * + * Permission is granted to anyone to use this software for any purpose on + * any computer system, and to alter it and redistribute it freely, subject + * to the following restrictions: + * + * 1. The author is not responsible for the consequences of use of this + * software, no matter how awful, even if they arise from flaws in it. + * + * 2. The origin of this software must not be misrepresented, either by + * explicit claim or by omission. Since few users ever read sources, + * credits must appear in the documentation. + * + * 3. Altered versions must be plainly marked as such, and must not be + * misrepresented as being the original software. Since few users + * ever read sources, credits must appear in the documentation. + * + * 4. This notice may not be removed or altered. + */ +#ifndef lint +static char *moduleid = + "@(#)$Id: file.c,v 1.34 1995/10/27 23:12:01 christos Exp $"; +#endif /* lint */ + +#include +#include +#include +#include +#include /* for MAXPATHLEN */ +#include +#include /* for open() */ +#if (__COHERENT__ >= 0x420) +#include +#else +#include +#endif +#include /* for read() */ + +#ifdef __ELF__ +#include +#endif + +#include "patchlevel.h" +#include "file.h" + +#ifdef S_IFLNK +# define USAGE "Usage: %s [-vczL] [-f namefile] [-m magicfiles] file...\n" +#else +# define USAGE "Usage: %s [-vcz] [-f namefile] [-m magicfiles] file...\n" +#endif + +#ifndef MAGIC +# define MAGIC "/etc/magic" +#endif + +int /* Global command-line options */ + debug = 0, /* debugging */ + lflag = 0, /* follow Symlinks (BSD only) */ + zflag = 0; /* follow (uncompress) compressed files */ + +int /* Misc globals */ + nmagic = 0; /* number of valid magic[]s */ + +struct magic *magic; /* array of magic entries */ + +char *magicfile; /* where magic be found */ + +char *progname; /* used throughout */ +int lineno; /* line number in the magic file */ + + +static void unwrap __P((char *fn)); + +/* + * main - parse arguments and handle options + */ +int +main(argc, argv) +int argc; +char *argv[]; +{ + int c; + int check = 0, didsomefiles = 0, errflg = 0, ret = 0, app = 0; + + if ((progname = strrchr(argv[0], '/')) != NULL) + progname++; + else + progname = argv[0]; + + if (!(magicfile = getenv("MAGIC"))) + magicfile = MAGIC; + + while ((c = getopt(argc, argv, "vcdf:Lm:z")) != EOF) + switch (c) { + case 'v': + (void) fprintf(stdout, "%s-%d.%d\n", progname, + FILE_VERSION_MAJOR, patchlevel); + return 1; + case 'c': + ++check; + break; + case 'd': + ++debug; + break; + case 'f': + if (!app) { + ret = apprentice(magicfile, check); + if (check) + exit(ret); + app = 1; + } + unwrap(optarg); + ++didsomefiles; + break; +#ifdef S_IFLNK + case 'L': + ++lflag; + break; +#endif + case 'm': + magicfile = optarg; + break; + case 'z': + zflag++; + break; + case '?': + default: + errflg++; + break; + } + + if (errflg) { + (void) fprintf(stderr, USAGE, progname); + exit(2); + } + + if (!app) { + ret = apprentice(magicfile, check); + if (check) + exit(ret); + app = 1; + } + + if (optind == argc) { + if (!didsomefiles) { + (void)fprintf(stderr, USAGE, progname); + exit(2); + } + } + else { + int i, wid, nw; + for (wid = 0, i = optind; i < argc; i++) { + nw = strlen(argv[i]); + if (nw > wid) + wid = nw; + } + for (; optind < argc; optind++) + process(argv[optind], wid); + } + + return 0; +} + + +/* + * unwrap -- read a file of filenames, do each one. + */ +static void +unwrap(fn) +char *fn; +{ + char buf[MAXPATHLEN]; + FILE *f; + int wid = 0, cwid; + + if ((f = fopen(fn, "r")) == NULL) { + error("Cannot open `%s' (%s).\n", fn, strerror(errno)); + /*NOTREACHED*/ + } + + while (fgets(buf, MAXPATHLEN, f) != NULL) { + cwid = strlen(buf) - 1; + if (cwid > wid) + wid = cwid; + } + + rewind(f); + + while (fgets(buf, MAXPATHLEN, f) != NULL) { + buf[strlen(buf)-1] = '\0'; + process(buf, wid); + } + + (void) fclose(f); +} + + +/* + * process - process input file + */ +void +process(inname, wid) +const char *inname; +int wid; +{ + int fd = 0; + static const char stdname[] = "standard input"; + unsigned char buf[HOWMANY+1]; /* one extra for terminating '\0' */ + struct utimbuf utbuf; + struct stat sb; + int nbytes = 0; /* number of bytes read from a datafile */ + char match = '\0'; + + if (strcmp("-", inname) == 0) { + if (fstat(0, &sb)<0) { + error("cannot fstat `%s' (%s).\n", stdname, + strerror(errno)); + /*NOTREACHED*/ + } + inname = stdname; + } + + if (wid > 0) + (void) printf("%s:%*s ", inname, + (int) (wid - strlen(inname)), ""); + + if (inname != stdname) { + /* + * first try judging the file based on its filesystem status + */ + if (fsmagic(inname, &sb) != 0) { + putchar('\n'); + return; + } + + if ((fd = open(inname, O_RDONLY)) < 0) { + /* We can't open it, but we were able to stat it. */ + if (sb.st_mode & 0002) ckfputs("writeable, ", stdout); + if (sb.st_mode & 0111) ckfputs("executable, ", stdout); + ckfprintf(stdout, "can't read `%s' (%s).\n", + inname, strerror(errno)); + return; + } + } + + + /* + * try looking at the first HOWMANY bytes + */ + if ((nbytes = read(fd, (char *)buf, HOWMANY)) == -1) { + error("read failed (%s).\n", strerror(errno)); + /*NOTREACHED*/ + } + + if (nbytes == 0) + ckfputs("empty", stdout); + else { + buf[nbytes++] = '\0'; /* null-terminate it */ + match = tryit(buf, nbytes, zflag); + } +#ifdef __ELF__ + /* + * ELF executables have multiple section headers in arbitrary + * file locations and thus file(1) cannot determine it from easily. + * Instead we traverse thru all section headers until a symbol table + * one is found or else the binary is stripped. + * XXX: This will not work for binaries of a different byteorder. + * Should come up with a better fix. + */ + + if (match == 's' && nbytes > sizeof (Elf32_Ehdr) && + buf[EI_MAG0] == ELFMAG0 && + buf[EI_MAG1] == ELFMAG1 && + buf[EI_MAG2] == ELFMAG2 && + buf[EI_MAG3] == ELFMAG3) { + + union { + long l; + char c[sizeof (long)]; + } u; + Elf32_Ehdr elfhdr; + int stripped = 1; + + u.l = 1; + (void) memcpy(&elfhdr, buf, sizeof elfhdr); + + /* + * If the system byteorder does not equal the object byteorder + * then don't test. + */ + if ((u.c[sizeof(long) - 1] + 1) == elfhdr.e_ident[5]) { + if (lseek(fd, elfhdr.e_shoff, SEEK_SET)<0) + error("lseek failed (%s).\n", strerror(errno)); + + for ( ; elfhdr.e_shnum ; elfhdr.e_shnum--) { + if (read(fd, buf, elfhdr.e_shentsize)<0) + error("read failed (%s).\n", strerror(errno)); + if (((Elf32_Shdr *)&buf)->sh_type == SHT_SYMTAB) { + stripped = 0; + break; + } + } + if (stripped) + (void) printf (", stripped"); + } + } +#endif + + if (inname != stdname) { + /* + * Try to restore access, modification times if read it. + */ + utbuf.actime = sb.st_atime; + utbuf.modtime = sb.st_mtime; + (void) utime(inname, &utbuf); /* don't care if loses */ + (void) close(fd); + } + (void) putchar('\n'); +} + + +int +tryit(buf, nb, zflag) +unsigned char *buf; +int nb, zflag; +{ + /* try compression stuff */ + if (zflag && zmagic(buf, nb)) + return 'z'; + + /* try tests in /etc/magic (or surrogate magic file) */ + if (softmagic(buf, nb)) + return 's'; + + /* try known keywords, check whether it is ASCII */ + if (ascmagic(buf, nb)) + return 'a'; + + /* abandon hope, all ye who remain here */ + ckfputs("data", stdout); + return '\0'; +} Property changes on: vendor/file/3.19/usr.bin/file/file.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/file.h =================================================================== --- vendor/file/3.19/usr.bin/file/file.h (nonexistent) +++ vendor/file/3.19/usr.bin/file/file.h (revision 13586) @@ -0,0 +1,131 @@ +/* + * file.h - definitions for file(1) program + * @(#)$Id: file.h,v 1.22 1995/05/20 22:09:21 christos Exp $ + * + * Copyright (c) Ian F. Darwin, 1987. + * Written by Ian F. Darwin. + * + * This software is not subject to any license of the American Telephone + * and Telegraph Company or of the Regents of the University of California. + * + * Permission is granted to anyone to use this software for any purpose on + * any computer system, and to alter it and redistribute it freely, subject + * to the following restrictions: + * + * 1. The author is not responsible for the consequences of use of this + * software, no matter how awful, even if they arise from flaws in it. + * + * 2. The origin of this software must not be misrepresented, either by + * explicit claim or by omission. Since few users ever read sources, + * credits must appear in the documentation. + * + * 3. Altered versions must be plainly marked as such, and must not be + * misrepresented as being the original software. Since few users + * ever read sources, credits must appear in the documentation. + * + * 4. This notice may not be removed or altered. + */ + +#ifndef HOWMANY +# define HOWMANY 8192 /* how much of the file to look at */ +#endif +#define MAXMAGIS 1000 /* max entries in /etc/magic */ +#define MAXDESC 50 /* max leng of text description */ +#define MAXstring 32 /* max leng of "string" types */ + +struct magic { + short flag; +#define INDIR 1 /* if '>(...)' appears, */ +#define UNSIGNED 2 /* comparison is unsigned */ + short cont_level; /* level of ">" */ + struct { + char type; /* byte short long */ + long offset; /* offset from indirection */ + } in; + long offset; /* offset to magic number */ + unsigned char reln; /* relation (0=eq, '>'=gt, etc) */ + char type; /* int, short, long or string. */ + char vallen; /* length of string value, if any */ +#define BYTE 1 +#define SHORT 2 +#define LONG 4 +#define STRING 5 +#define DATE 6 +#define BESHORT 7 +#define BELONG 8 +#define BEDATE 9 +#define LESHORT 10 +#define LELONG 11 +#define LEDATE 12 + union VALUETYPE { + unsigned char b; + unsigned short h; + unsigned long l; + char s[MAXstring]; + unsigned char hs[2]; /* 2 bytes of a fixed-endian "short" */ + unsigned char hl[4]; /* 2 bytes of a fixed-endian "long" */ + } value; /* either number or string */ + unsigned long mask; /* mask before comparison with value */ + char nospflag; /* supress space character */ + char desc[MAXDESC]; /* description */ +}; + +#include /* Include that here, to make sure __P gets defined */ + +#ifndef __P +# if __STDC__ || __cplusplus +# define __P(a) a +# else +# define __P(a) () +# define const +# endif +#endif + +extern int apprentice __P((char *, int)); +extern int ascmagic __P((unsigned char *, int)); +extern void error __P((const char *, ...)); +extern void ckfputs __P((const char *, FILE *)); +struct stat; +extern int fsmagic __P((const char *, struct stat *)); +extern int is_compress __P((const unsigned char *, int *)); +extern int is_tar __P((unsigned char *, int)); +extern void magwarn __P((const char *, ...)); +extern void mdump __P((struct magic *)); +extern void process __P((const char *, int)); +extern void showstr __P((FILE *, const char *, int)); +extern int softmagic __P((unsigned char *, int)); +extern int tryit __P((unsigned char *, int, int)); +extern int zmagic __P((unsigned char *, int)); +extern void ckfprintf __P((FILE *, const char *, ...)); +extern unsigned long signextend __P((struct magic *, unsigned long)); + + + +extern int errno; /* Some unixes don't define this.. */ + +extern char *progname; /* the program name */ +extern char *magicfile; /* name of the magic file */ +extern int lineno; /* current line number in magic file */ + +extern struct magic *magic; /* array of magic entries */ +extern int nmagic; /* number of valid magic[]s */ + + +extern int debug; /* enable debugging? */ +extern int zflag; /* process compressed files? */ +extern int lflag; /* follow symbolic links? */ + +extern int optind; /* From getopt(3) */ +extern char *optarg; + +#if !defined(__STDC__) || defined(sun) || defined(__sun__) || defined(__convex__) +extern int sys_nerr; +extern char *sys_errlist[]; +#define strerror(e) \ + (((e) >= 0 && (e) < sys_nerr) ? sys_errlist[(e)] : "Unknown error") +#define strtoul(a, b, c) strtol(a, b, c) +#endif + +#ifndef MAXPATHLEN +#define MAXPATHLEN 512 +#endif Property changes on: vendor/file/3.19/usr.bin/file/file.h ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/fsmagic.c =================================================================== --- vendor/file/3.19/usr.bin/file/fsmagic.c (nonexistent) +++ vendor/file/3.19/usr.bin/file/fsmagic.c (revision 13586) @@ -0,0 +1,176 @@ +/* + * fsmagic - magic based on filesystem info - directory, special files, etc. + * + * Copyright (c) Ian F. Darwin, 1987. + * Written by Ian F. Darwin. + * + * This software is not subject to any license of the American Telephone + * and Telegraph Company or of the Regents of the University of California. + * + * Permission is granted to anyone to use this software for any purpose on + * any computer system, and to alter it and redistribute it freely, subject + * to the following restrictions: + * + * 1. The author is not responsible for the consequences of use of this + * software, no matter how awful, even if they arise from flaws in it. + * + * 2. The origin of this software must not be misrepresented, either by + * explicit claim or by omission. Since few users ever read sources, + * credits must appear in the documentation. + * + * 3. Altered versions must be plainly marked as such, and must not be + * misrepresented as being the original software. Since few users + * ever read sources, credits must appear in the documentation. + * + * 4. This notice may not be removed or altered. + */ + +#include +#include +#include +#include +#include +#include +#ifndef major /* if `major' not defined in types.h, */ +#include /* try this one. */ +#endif +#ifndef major /* still not defined? give up, manual intervention needed */ + /* If cc tries to compile this, read and act on it. */ + /* On most systems cpp will discard it automatically */ + Congratulations, you have found a portability bug. + Please grep /usr/include/sys and edit the above #include + to point at the file that defines the "major" macro. +#endif /*major*/ + +#include "file.h" + +#ifndef lint +static char *moduleid = + "@(#)$Id: fsmagic.c,v 1.23 1995/01/21 21:03:35 christos Exp $"; +#endif /* lint */ + +int +fsmagic(fn, sb) +const char *fn; +struct stat *sb; +{ + int ret = 0; + + /* + * Fstat is cheaper but fails for files you don't have read perms on. + * On 4.2BSD and similar systems, use lstat() to identify symlinks. + */ +#ifdef S_IFLNK + if (!lflag) + ret = lstat(fn, sb); + else +#endif + ret = stat(fn, sb); /* don't merge into if; see "ret =" above */ + + if (ret) { + ckfprintf(stdout, + /* Yes, I do mean stdout. */ + /* No \n, caller will provide. */ + "can't stat `%s' (%s).", fn, strerror(errno)); + return 1; + } + + if (sb->st_mode & S_ISUID) ckfputs("setuid ", stdout); + if (sb->st_mode & S_ISGID) ckfputs("setgid ", stdout); + if (sb->st_mode & S_ISVTX) ckfputs("sticky ", stdout); + + switch (sb->st_mode & S_IFMT) { + case S_IFDIR: + ckfputs("directory", stdout); + return 1; + case S_IFCHR: + (void) printf("character special (%d/%d)", + major(sb->st_rdev), minor(sb->st_rdev)); + return 1; + case S_IFBLK: + (void) printf("block special (%d/%d)", + major(sb->st_rdev), minor(sb->st_rdev)); + return 1; + /* TODO add code to handle V7 MUX and Blit MUX files */ +#ifdef S_IFIFO + case S_IFIFO: + ckfputs("fifo (named pipe)", stdout); + return 1; +#endif +#ifdef S_IFLNK + case S_IFLNK: + { + char buf[BUFSIZ+4]; + register int nch; + struct stat tstatbuf; + + if ((nch = readlink(fn, buf, BUFSIZ-1)) <= 0) { + ckfprintf(stdout, "unreadable symlink (%s).", + strerror(errno)); + return 1; + } + buf[nch] = '\0'; /* readlink(2) forgets this */ + + /* If broken symlink, say so and quit early. */ + if (*buf == '/') { + if (stat(buf, &tstatbuf) < 0) { + ckfprintf(stdout, + "broken symbolic link to %s", buf); + return 1; + } + } + else { + char *tmp; + char buf2[BUFSIZ+BUFSIZ+4]; + + if ((tmp = strrchr(fn, '/')) == NULL) { + tmp = buf; /* in current directory anyway */ + } + else { + strcpy (buf2, fn); /* take directory part */ + buf2[tmp-fn+1] = '\0'; + strcat (buf2, buf); /* plus (relative) symlink */ + tmp = buf2; + } + if (stat(tmp, &tstatbuf) < 0) { + ckfprintf(stdout, + "broken symbolic link to %s", buf); + return 1; + } + } + + /* Otherwise, handle it. */ + if (lflag) { + process(buf, strlen(buf)); + return 1; + } else { /* just print what it points to */ + ckfputs("symbolic link to ", stdout); + ckfputs(buf, stdout); + } + } + return 1; +#endif +#ifdef S_IFSOCK +#ifndef __COHERENT__ + case S_IFSOCK: + ckfputs("socket", stdout); + return 1; +#endif +#endif + case S_IFREG: + break; + default: + error("invalid mode 0%o.\n", sb->st_mode); + /*NOTREACHED*/ + } + + /* + * regular file, check next possibility + */ + if (sb->st_size == 0) { + ckfputs("empty", stdout); + return 1; + } + return 0; +} + Property changes on: vendor/file/3.19/usr.bin/file/fsmagic.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/magic.5 =================================================================== --- vendor/file/3.19/usr.bin/file/magic.5 (nonexistent) +++ vendor/file/3.19/usr.bin/file/magic.5 (revision 13586) @@ -0,0 +1,194 @@ +.TH MAGIC __FSECTION__ "Public Domain" +.\" install as magic.4 on USG, magic.5 on V7 or Berkeley systems. +.SH NAME +magic \- file command's magic number file +.SH DESCRIPTION +The +.IR file (__CSECTION__) +command identifies the type of a file using, +among other tests, +a test for whether the file begins with a certain +.IR "magic number" . +The file +.B __MAGIC__ +specifies what magic numbers are to be tested for, +what message to print if a particular magic number is found, +and additional information to extract from the file. +.PP +Each line of the file specifies a test to be performed. +A test compares the data starting at a particular offset +in the file with a 1-byte, 2-byte, or 4-byte numeric value or +a string. If the test succeeds, a message is printed. +The line consists of the following fields: +.IP offset \w'message'u+2n +A number specifying the offset, in bytes, into the file of the data +which is to be tested. +.IP type +The type of the data to be tested. The possible values are: +.RS +.IP byte \w'message'u+2n +A one-byte value. +.IP short +A two-byte value (on most systems) in this machine's native byte order. +.IP long +A four-byte value (on most systems) in this machine's native byte order. +.IP string +A string of bytes. +.IP date +A four-byte value interpreted as a unix date. +.IP beshort +A two-byte value (on most systems) in big-endian byte order. +.IP belong +A four-byte value (on most systems) in big-endian byte order. +.IP bedate +A four-byte value (on most systems) in big-endian byte order, +interpreted as a unix date. +.IP leshort +A two-byte value (on most systems) in little-endian byte order. +.IP lelong +A four-byte value (on most systems) in little-endian byte order. +.IP ledate +A four-byte value (on most systems) in little-endian byte order, +interpreted as a unix date. +.RE +.PP +The numeric types may optionally be followed by +.B & +and a numeric value, +to specify that the value is to be AND'ed with the +numeric value before any comparisons are done. Prepending a +.B u +to the type indicates that ordered comparisons should be unsigned. +.IP test +The value to be compared with the value from the file. If the type is +numeric, this value +is specified in C form; if it is a string, it is specified as a C string +with the usual escapes permitted (e.g. \en for new-line). +.IP +Numeric values +may be preceded by a character indicating the operation to be performed. +It may be +.BR = , +to specify that the value from the file must equal the specified value, +.BR < , +to specify that the value from the file must be less than the specified +value, +.BR > , +to specify that the value from the file must be greater than the specified +value, +.BR & , +to specify that the value from the file must have set all of the bits +that are set in the specified value, +.BR ^ , +to specify that the value from the file must have clear any of the bits +that are set in the specified value, or +.BR x , +to specify that any value will match. If the character is omitted, +it is assumed to be +.BR = . +.IP +Numeric values are specified in C form; e.g. +.B 13 +is decimal, +.B 013 +is octal, and +.B 0x13 +is hexadecimal. +.IP +For string values, the byte string from the +file must match the specified byte string. +The operators +.BR = , +.B < +and +.B > +(but not +.BR & ) +can be applied to strings. +The length used for matching is that of the string argument +in the magic file. This means that a line can match any string, and +then presumably print that string, by doing +.B >\e0 +(because all strings are greater than the null string). +.IP message +The message to be printed if the comparison succeeds. If the string +contains a +.IR printf (3S) +format specification, the value from the file (with any specified masking +performed) is printed using the message as the format string. +.PP +Some file formats contain additional information which is to be printed +along with the file type. A line which begins with the character +.B > +indicates additional tests and messages to be printed. The number of +.B > +on the line indicates the level of the test; a line with no +.B > +at the beginning is considered to be at level 0. +Each line at level +.IB n \(pl1 +is under the control of the line at level +.IB n +most closely preceding it in the magic file. +If the test on a line at level +.I n +succeeds, the tests specified in all the subsequent lines at level +.IB n \(pl1 +are performed, and the messages printed if the tests succeed. The next +line at level +.I n +terminates this. +If the first character following the last +.B > +is a +.B ( +then the string after the parenthesis is interpreted as an indirect offset. +That means that the number after the parenthesis is used as an offset in +the file. The value at that offset is read, and is used again as an offset +in the file. Indirect offsets are of the form: +.BI (( x [.[bsl]][+-][ y ]). +The value of +.I x +is used as an offset in the file. A byte, short or long is read at that offset +depending on the +.B [bsl] +type specifier. To that number the value of +.I y +is added and the result is used as an offset in the file. The default type +if one is not specified is long. +.SH BUGS +The formats +.IR long , +.IR belong , +.IR lelong , +.IR short , +.IR beshort , +.IR leshort , +.IR date , +.IR bedate , +and +.I ledate +are system-dependent; perhaps they should be specified as a number +of bytes (2B, 4B, etc), +since the files being recognized typically come from +a system on which the lengths are invariant. +.PP +There is (currently) no support for specified-endian data to be used in +indirect offsets. +.SH SEE ALSO +.IR file (__CSECTION__) +\- the command that reads this file. +.\" +.\" From: guy@sun.uucp (Guy Harris) +.\" Newsgroups: net.bugs.usg +.\" Subject: /etc/magic's format isn't well documented +.\" Message-ID: <2752@sun.uucp> +.\" Date: 3 Sep 85 08:19:07 GMT +.\" Organization: Sun Microsystems, Inc. +.\" Lines: 136 +.\" +.\" Here's a manual page for the format accepted by the "file" made by adding +.\" the changes I posted to the S5R2 version. +.\" +.\" Modified for Ian Darwin's version of the file command. +.\" @(#)$Id: magic.man,v 1.12 1995/01/21 21:03:35 christos Exp $ Property changes on: vendor/file/3.19/usr.bin/file/magic.5 ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/names.h =================================================================== --- vendor/file/3.19/usr.bin/file/names.h (nonexistent) +++ vendor/file/3.19/usr.bin/file/names.h (revision 13586) @@ -0,0 +1,91 @@ +/* + * Names.h - names and types used by ascmagic in file(1). + * These tokens are here because they can appear anywhere in + * the first HOWMANY bytes, while tokens in /etc/magic must + * appear at fixed offsets into the file. Don't make HOWMANY + * too high unless you have a very fast CPU. + * + * Copyright (c) Ian F. Darwin, 1987. + * Written by Ian F. Darwin. + * + * See LEGAL.NOTICE + * + * $Id: names.h,v 1.12 1995/04/28 17:29:13 christos Exp $ + */ + +/* these types are used to index the table 'types': keep em in sync! */ +#define L_C 0 /* first and foremost on UNIX */ +#define L_FORT 1 /* the oldest one */ +#define L_MAKE 2 /* Makefiles */ +#define L_PLI 3 /* PL/1 */ +#define L_MACH 4 /* some kinda assembler */ +#define L_ENG 5 /* English */ +#define L_PAS 6 /* Pascal */ +#define L_MAIL 7 /* Electronic mail */ +#define L_NEWS 8 /* Usenet Netnews */ + +static char *types[] = { + "C program text", + "FORTRAN program text", + "make commands text" , + "PL/1 program text", + "assembler program text", + "English text", + "Pascal program text", + "mail text", + "news text", + "can't happen error on names.h/types", + 0}; + +static struct names { + char *name; + short type; +} names[] = { + /* These must be sorted by eye for optimal hit rate */ + /* Add to this list only after substantial meditation */ + {"/*", L_C}, /* must precede "The", "the", etc. */ + {"#include", L_C}, + {"char", L_C}, + {"The", L_ENG}, + {"the", L_ENG}, + {"double", L_C}, + {"extern", L_C}, + {"float", L_C}, + {"real", L_C}, + {"struct", L_C}, + {"union", L_C}, + {"CFLAGS", L_MAKE}, + {"LDFLAGS", L_MAKE}, + {"all:", L_MAKE}, + {".PRECIOUS", L_MAKE}, +/* Too many files of text have these words in them. Find another way + * to recognize Fortrash. + */ +#ifdef NOTDEF + {"subroutine", L_FORT}, + {"function", L_FORT}, + {"block", L_FORT}, + {"common", L_FORT}, + {"dimension", L_FORT}, + {"integer", L_FORT}, + {"data", L_FORT}, +#endif /*NOTDEF*/ + {".ascii", L_MACH}, + {".asciiz", L_MACH}, + {".byte", L_MACH}, + {".even", L_MACH}, + {".globl", L_MACH}, + {".text", L_MACH}, + {"clr", L_MACH}, + {"(input,", L_PAS}, + {"dcl", L_PLI}, + {"Received:", L_MAIL}, + {">From", L_MAIL}, + {"Return-Path:",L_MAIL}, + {"Cc:", L_MAIL}, + {"Newsgroups:", L_NEWS}, + {"Path:", L_NEWS}, + {"Organization:",L_NEWS}, + {NULL, 0} +}; +#define NNAMES ((sizeof(names)/sizeof(struct names)) - 1) Property changes on: vendor/file/3.19/usr.bin/file/names.h ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/patchlevel.h =================================================================== --- vendor/file/3.19/usr.bin/file/patchlevel.h (nonexistent) +++ vendor/file/3.19/usr.bin/file/patchlevel.h (revision 13586) @@ -0,0 +1,85 @@ +#define FILE_VERSION_MAJOR 3 +#define patchlevel 19 + +/* + * Patchlevel file for Ian Darwin's MAGIC command. + * $Id: patchlevel.h,v 1.19 1995/10/27 23:14:46 christos Exp $ + * + * $Log: patchlevel.h,v $ + * Revision 1.19 1995/10/27 23:14:46 christos + * Ability to parse colon separated list of magic files + * New LEGAL.NOTICE + * Various magic file changes + * + * Revision 1.18 1995/05/20 22:09:21 christos + * Passed incorrect argument to eatsize(). + * Use %ld and %lx where appropriate. + * Remove unused variables + * ELF support for both big and little endian + * Fixes for small files again. + * + * Revision 1.17 1995/04/28 17:29:13 christos + * - Incorrect nroff detection fix from der Mouse + * - Lost and incorrect magic entries. + * - Added ELF stripped binary detection [in C; ugh] + * - Look for $MAGIC to find the magic file. + * - Eat trailing size specifications from numbers i.e. ignore 10L + * - More fixes for very short files + * + * Revision 1.16 1995/03/25 22:06:45 christos + * - use strtoul() where it exists. + * - fix sign-extend bug + * - try to detect tar archives before nroff files, otherwise + * tar files where the first file starts with a . will not work + * + * Revision 1.15 1995/01/21 21:03:35 christos + * Added CSECTION for the file man page + * Added version flag -v + * Fixed bug with -f input flag (from iorio@violet.berkeley.edu) + * Lots of magic fixes and reorganization... + * + * Revision 1.14 1994/05/03 17:58:23 christos + * changes from mycroft@gnu.ai.mit.edu (Charles Hannum) for unsigned + * + * Revision 1.13 1994/01/21 01:27:01 christos + * Fixed null termination bug from Don Seeley at BSDI in ascmagic.c + * + * Revision 1.12 1993/10/27 20:59:05 christos + * Changed -z flag to understand gzip format too. + * Moved builtin compression detection to a table, and move + * the compress magic entry out of the source. + * Made printing of numbers unsigned, and added the mask to it. + * Changed the buffer size to 8k, because gzip will refuse to + * unzip just a few bytes. + * + * Revision 1.11 1993/09/24 18:49:06 christos + * Fixed small bug in softmagic.c introduced by + * copying the data to be examined out of the input + * buffer. Changed the Makefile to use sed to create + * the correct man pages. + * + * Revision 1.10 1993/09/23 21:56:23 christos + * Passed purify. Fixed indirections. Fixed byte order printing. + * Fixed segmentation faults caused by referencing past the end + * of the magic buffer. Fixed bus errors caused by referencing + * unaligned shorts or longs. + * + * Revision 1.9 1993/03/24 14:23:40 ian + * Batch of minor changes from several contributors. + * + * Revision 1.8 93/02/19 15:01:26 ian + * Numerous changes from Guy Harris too numerous to mention but including + * byte-order independance, fixing "old-style masking", etc. etc. A bugfix + * for broken symlinks from martin@@d255s004.zfe.siemens.de. + * + * Revision 1.7 93/01/05 14:57:27 ian + * Couple of nits picked by Christos (again, thanks). + * + * Revision 1.6 93/01/05 13:51:09 ian + * Lotsa work on the Magic directory. + * + * Revision 1.5 92/09/14 14:54:51 ian + * Fix a tiny null-pointer bug in previous fix for tar archive + uncompress. + * + */ + Property changes on: vendor/file/3.19/usr.bin/file/patchlevel.h ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/print.c =================================================================== --- vendor/file/3.19/usr.bin/file/print.c (nonexistent) +++ vendor/file/3.19/usr.bin/file/print.c (revision 13586) @@ -0,0 +1,204 @@ +/* + * print.c - debugging printout routines + * + * Copyright (c) Ian F. Darwin, 1987. + * Written by Ian F. Darwin. + * + * This software is not subject to any license of the American Telephone + * and Telegraph Company or of the Regents of the University of California. + * + * Permission is granted to anyone to use this software for any purpose on + * any computer system, and to alter it and redistribute it freely, subject + * to the following restrictions: + * + * 1. The author is not responsible for the consequences of use of this + * software, no matter how awful, even if they arise from flaws in it. + * + * 2. The origin of this software must not be misrepresented, either by + * explicit claim or by omission. Since few users ever read sources, + * credits must appear in the documentation. + * + * 3. Altered versions must be plainly marked as such, and must not be + * misrepresented as being the original software. Since few users + * ever read sources, credits must appear in the documentation. + * + * 4. This notice may not be removed or altered. + */ + +#include +#include +#include +#if __STDC__ +# include +#else +# include +#endif +#include +#include +#include +#include "file.h" + +#ifndef lint +static char *moduleid = + "@(#)$Id: print.c,v 1.22 1995/05/20 22:09:21 christos Exp $"; +#endif /* lint */ + +#define SZOF(a) (sizeof(a) / sizeof(a[0])) + +void +mdump(m) +struct magic *m; +{ + static char *typ[] = { "invalid", "byte", "short", "invalid", + "long", "string", "date", "beshort", + "belong", "bedate", "leshort", "lelong", + "ledate" }; + (void) fputc('[', stderr); + (void) fprintf(stderr, ">>>>>>>> %d" + 8 - (m->cont_level & 7), + m->offset); + + if (m->flag & INDIR) + (void) fprintf(stderr, "(%s,%ld),", + (m->in.type >= 0 && m->in.type < SZOF(typ)) ? + typ[(unsigned char) m->in.type] : + "*bad*", + m->in.offset); + + (void) fprintf(stderr, " %s%s", (m->flag & UNSIGNED) ? "u" : "", + (m->type >= 0 && m->type < SZOF(typ)) ? + typ[(unsigned char) m->type] : + "*bad*"); + if (m->mask != ~0L) + (void) fprintf(stderr, " & %.8lx", m->mask); + + (void) fprintf(stderr, ",%c", m->reln); + + if (m->reln != 'x') { + switch (m->type) { + case BYTE: + case SHORT: + case LONG: + case LESHORT: + case LELONG: + case BESHORT: + case BELONG: + (void) fprintf(stderr, "%ld", m->value.l); + break; + case STRING: + showstr(stderr, m->value.s, -1); + break; + case DATE: + case LEDATE: + case BEDATE: + { + char *rt, *pp = ctime((time_t*) &m->value.l); + if ((rt = strchr(pp, '\n')) != NULL) + *rt = '\0'; + (void) fprintf(stderr, "%s,", pp); + if (rt) + *rt = '\n'; + } + break; + default: + (void) fputs("*bad*", stderr); + break; + } + } + (void) fprintf(stderr, ",\"%s\"]\n", m->desc); +} + +/* + * ckfputs - futs, but with error checking + * ckfprintf - fprintf, but with error checking + */ +void +ckfputs(str, fil) + const char *str; + FILE *fil; +{ + if (fputs(str,fil) == EOF) + error("write failed.\n"); +} + +/*VARARGS*/ +void +#if __STDC__ +ckfprintf(FILE *f, const char *fmt, ...) +#else +ckfprintf(va_alist) + va_dcl +#endif +{ + va_list va; +#if __STDC__ + va_start(va, fmt); +#else + FILE *f; + const char *fmt; + va_start(va); + f = va_arg(va, FILE *); + fmt = va_arg(va, const char *); +#endif + (void) vfprintf(f, fmt, va); + if (ferror(f)) + error("write failed.\n"); + va_end(va); +} + +/* + * error - print best error message possible and exit + */ +/*VARARGS*/ +void +#if __STDC__ +error(const char *f, ...) +#else +error(va_alist) + va_dcl +#endif +{ + va_list va; +#if __STDC__ + va_start(va, f); +#else + const char *f; + va_start(va); + f = va_arg(va, const char *); +#endif + /* cuz we use stdout for most, stderr here */ + (void) fflush(stdout); + + if (progname != NULL) + (void) fprintf(stderr, "%s: ", progname); + (void) vfprintf(stderr, f, va); + va_end(va); + exit(1); +} + +/*VARARGS*/ +void +#if __STDC__ +magwarn(const char *f, ...) +#else +magwarn(va_alist) + va_dcl +#endif +{ + va_list va; +#if __STDC__ + va_start(va, f); +#else + const char *f; + va_start(va); + f = va_arg(va, const char *); +#endif + /* cuz we use stdout for most, stderr here */ + (void) fflush(stdout); + + if (progname != NULL) + (void) fprintf(stderr, "%s: %s, %d: ", + progname, magicfile, lineno); + (void) vfprintf(stderr, f, va); + va_end(va); + fputc('\n', stderr); +} Property changes on: vendor/file/3.19/usr.bin/file/print.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/softmagic.c =================================================================== --- vendor/file/3.19/usr.bin/file/softmagic.c (nonexistent) +++ vendor/file/3.19/usr.bin/file/softmagic.c (revision 13586) @@ -0,0 +1,475 @@ +/* + * softmagic - interpret variable magic from /etc/magic + * + * Copyright (c) Ian F. Darwin, 1987. + * Written by Ian F. Darwin. + * + * This software is not subject to any license of the American Telephone + * and Telegraph Company or of the Regents of the University of California. + * + * Permission is granted to anyone to use this software for any purpose on + * any computer system, and to alter it and redistribute it freely, subject + * to the following restrictions: + * + * 1. The author is not responsible for the consequences of use of this + * software, no matter how awful, even if they arise from flaws in it. + * + * 2. The origin of this software must not be misrepresented, either by + * explicit claim or by omission. Since few users ever read sources, + * credits must appear in the documentation. + * + * 3. Altered versions must be plainly marked as such, and must not be + * misrepresented as being the original software. Since few users + * ever read sources, credits must appear in the documentation. + * + * 4. This notice may not be removed or altered. + */ + +#include +#include +#include +#include + +#include "file.h" + +#ifndef lint +static char *moduleid = + "@(#)$Id: softmagic.c,v 1.30 1995/05/20 22:09:21 christos Exp $"; +#endif /* lint */ + +static int match __P((unsigned char *, int)); +static int mget __P((union VALUETYPE *, + unsigned char *, struct magic *, int)); +static int mcheck __P((union VALUETYPE *, struct magic *)); +static void mprint __P((union VALUETYPE *, struct magic *)); +static void mdebug __P((long, char *, int)); +static int mconvert __P((union VALUETYPE *, struct magic *)); + +/* + * softmagic - lookup one file in database + * (already read from /etc/magic by apprentice.c). + * Passed the name and FILE * of one file to be typed. + */ +/*ARGSUSED1*/ /* nbytes passed for regularity, maybe need later */ +int +softmagic(buf, nbytes) +unsigned char *buf; +int nbytes; +{ + if (match(buf, nbytes)) + return 1; + + return 0; +} + +/* + * Go through the whole list, stopping if you find a match. Process all + * the continuations of that match before returning. + * + * We support multi-level continuations: + * + * At any time when processing a successful top-level match, there is a + * current continuation level; it represents the level of the last + * successfully matched continuation. + * + * Continuations above that level are skipped as, if we see one, it + * means that the continuation that controls them - i.e, the + * lower-level continuation preceding them - failed to match. + * + * Continuations below that level are processed as, if we see one, + * it means we've finished processing or skipping higher-level + * continuations under the control of a successful or unsuccessful + * lower-level continuation, and are now seeing the next lower-level + * continuation and should process it. The current continuation + * level reverts to the level of the one we're seeing. + * + * Continuations at the current level are processed as, if we see + * one, there's no lower-level continuation that may have failed. + * + * If a continuation matches, we bump the current continuation level + * so that higher-level continuations are processed. + */ +static int +match(s, nbytes) +unsigned char *s; +int nbytes; +{ + int magindex = 0; + int cont_level = 0; + int need_separator = 0; + union VALUETYPE p; + + for (magindex = 0; magindex < nmagic; magindex++) { + /* if main entry matches, print it... */ + if (!mget(&p, s, &magic[magindex], nbytes) || + !mcheck(&p, &magic[magindex])) { + /* + * main entry didn't match, + * flush its continuations + */ + while (magindex < nmagic && + magic[magindex + 1].cont_level != 0) + magindex++; + continue; + } + + mprint(&p, &magic[magindex]); + /* + * If we printed something, we'll need to print + * a blank before we print something else. + */ + if (magic[magindex].desc[0]) + need_separator = 1; + /* and any continuations that match */ + cont_level++; + while (magic[magindex+1].cont_level != 0 && + ++magindex < nmagic) { + if (cont_level >= magic[magindex].cont_level) { + if (cont_level > magic[magindex].cont_level) { + /* + * We're at the end of the level + * "cont_level" continuations. + */ + cont_level = magic[magindex].cont_level; + } + if (mget(&p, s, &magic[magindex], nbytes) && + mcheck(&p, &magic[magindex])) { + /* + * This continuation matched. + * Print its message, with + * a blank before it if + * the previous item printed + * and this item isn't empty. + */ + /* space if previous printed */ + if (need_separator + && (magic[magindex].nospflag == 0) + && (magic[magindex].desc[0] != '\0') + ) { + (void) putchar(' '); + need_separator = 0; + } + mprint(&p, &magic[magindex]); + if (magic[magindex].desc[0]) + need_separator = 1; + + /* + * If we see any continuations + * at a higher level, + * process them. + */ + cont_level++; + } + } + } + return 1; /* all through */ + } + return 0; /* no match at all */ +} + +static void +mprint(p, m) +union VALUETYPE *p; +struct magic *m; +{ + char *pp, *rt; + unsigned long v; + + + switch (m->type) { + case BYTE: + v = p->b; + v = signextend(m, v) & m->mask; + (void) printf(m->desc, (unsigned char) v); + break; + + case SHORT: + case BESHORT: + case LESHORT: + v = p->h; + v = signextend(m, v) & m->mask; + (void) printf(m->desc, (unsigned short) v); + break; + + case LONG: + case BELONG: + case LELONG: + v = p->l; + v = signextend(m, v) & m->mask; + (void) printf(m->desc, (unsigned long) v); + break; + + case STRING: + if (m->reln == '=') { + (void) printf(m->desc, m->value.s); + } + else { + (void) printf(m->desc, p->s); + } + return; + + case DATE: + case BEDATE: + case LEDATE: + pp = ctime((time_t*) &p->l); + if ((rt = strchr(pp, '\n')) != NULL) + *rt = '\0'; + (void) printf(m->desc, pp); + return; + default: + error("invalid m->type (%d) in mprint().\n", m->type); + /*NOTREACHED*/ + } +} + +/* + * Convert the byte order of the data we are looking at + */ +static int +mconvert(p, m) +union VALUETYPE *p; +struct magic *m; +{ + char *rt; + + switch (m->type) { + case BYTE: + case SHORT: + case LONG: + case DATE: + return 1; + case STRING: + /* Null terminate and eat the return */ + p->s[sizeof(p->s) - 1] = '\0'; + if ((rt = strchr(p->s, '\n')) != NULL) + *rt = '\0'; + return 1; + case BESHORT: + p->h = (short)((p->hs[0]<<8)|(p->hs[1])); + return 1; + case BELONG: + case BEDATE: + p->l = (long) + ((p->hl[0]<<24)|(p->hl[1]<<16)|(p->hl[2]<<8)|(p->hl[3])); + return 1; + case LESHORT: + p->h = (short)((p->hs[1]<<8)|(p->hs[0])); + return 1; + case LELONG: + case LEDATE: + p->l = (long) + ((p->hl[3]<<24)|(p->hl[2]<<16)|(p->hl[1]<<8)|(p->hl[0])); + return 1; + default: + error("invalid type %d in mconvert().\n", m->type); + return 0; + } +} + + +static void +mdebug(offset, str, len) +long offset; +char *str; +int len; +{ + (void) fprintf(stderr, "mget @%ld: ", offset); + showstr(stderr, (char *) str, len); + (void) fputc('\n', stderr); + (void) fputc('\n', stderr); +} + +static int +mget(p, s, m, nbytes) +union VALUETYPE* p; +unsigned char *s; +struct magic *m; +int nbytes; +{ + long offset = m->offset; + + if (offset + sizeof(union VALUETYPE) <= nbytes) + memcpy(p, s + offset, sizeof(union VALUETYPE)); + else { + /* + * the usefulness of padding with zeroes eludes me, it + * might even cause problems + */ + long have = nbytes - offset; + memset(p, 0, sizeof(union VALUETYPE)); + if (have > 0) + memcpy(p, s + offset, have); + } + + + if (debug) { + mdebug(offset, (char *) p, sizeof(union VALUETYPE)); + mdump(m); + } + + if (!mconvert(p, m)) + return 0; + + if (m->flag & INDIR) { + + switch (m->in.type) { + case BYTE: + offset = p->b + m->in.offset; + break; + case SHORT: + offset = p->h + m->in.offset; + break; + case LONG: + offset = p->l + m->in.offset; + break; + } + + if (offset + sizeof(union VALUETYPE) > nbytes) + return 0; + + memcpy(p, s + offset, sizeof(union VALUETYPE)); + + if (debug) { + mdebug(offset, (char *) p, sizeof(union VALUETYPE)); + mdump(m); + } + + if (!mconvert(p, m)) + return 0; + } + return 1; +} + +static int +mcheck(p, m) +union VALUETYPE* p; +struct magic *m; +{ + register unsigned long l = m->value.l; + register unsigned long v; + int matched; + + if ( (m->value.s[0] == 'x') && (m->value.s[1] == '\0') ) { + fprintf(stderr, "BOINK"); + return 1; + } + + + switch (m->type) { + case BYTE: + v = p->b; + break; + + case SHORT: + case BESHORT: + case LESHORT: + v = p->h; + break; + + case LONG: + case BELONG: + case LELONG: + case DATE: + case BEDATE: + case LEDATE: + v = p->l; + break; + + case STRING: + l = 0; + /* What we want here is: + * v = strncmp(m->value.s, p->s, m->vallen); + * but ignoring any nulls. bcmp doesn't give -/+/0 + * and isn't universally available anyway. + */ + v = 0; + { + register unsigned char *a = (unsigned char*)m->value.s; + register unsigned char *b = (unsigned char*)p->s; + register int len = m->vallen; + + while (--len >= 0) + if ((v = *b++ - *a++) != 0) + break; + } + break; + default: + error("invalid type %d in mcheck().\n", m->type); + return 0;/*NOTREACHED*/ + } + + v = signextend(m, v) & m->mask; + + switch (m->reln) { + case 'x': + if (debug) + (void) fprintf(stderr, "%lu == *any* = 1\n", v); + matched = 1; + break; + + case '!': + matched = v != l; + if (debug) + (void) fprintf(stderr, "%lu != %lu = %d\n", + v, l, matched); + break; + + case '=': + matched = v == l; + if (debug) + (void) fprintf(stderr, "%lu == %lu = %d\n", + v, l, matched); + break; + + case '>': + if (m->flag & UNSIGNED) { + matched = v > l; + if (debug) + (void) fprintf(stderr, "%lu > %lu = %d\n", + v, l, matched); + } + else { + matched = (long) v > (long) l; + if (debug) + (void) fprintf(stderr, "%ld > %ld = %d\n", + v, l, matched); + } + break; + + case '<': + if (m->flag & UNSIGNED) { + matched = v < l; + if (debug) + (void) fprintf(stderr, "%lu < %lu = %d\n", + v, l, matched); + } + else { + matched = (long) v < (long) l; + if (debug) + (void) fprintf(stderr, "%ld < %ld = %d\n", + v, l, matched); + } + break; + + case '&': + matched = (v & l) == l; + if (debug) + (void) fprintf(stderr, "((%lx & %lx) == %lx) = %d\n", + v, l, l, matched); + break; + + case '^': + matched = (v & l) != l; + if (debug) + (void) fprintf(stderr, "((%lx & %lx) != %lx) = %d\n", + v, l, l, matched); + break; + + default: + matched = 0; + error("mcheck: can't happen: invalid relation %d.\n", m->reln); + break;/*NOTREACHED*/ + } + + return matched; +} Property changes on: vendor/file/3.19/usr.bin/file/softmagic.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/MAINT =================================================================== --- vendor/file/3.19/usr.bin/file/MAINT (nonexistent) +++ vendor/file/3.19/usr.bin/file/MAINT (revision 13586) @@ -0,0 +1,33 @@ +$Id: MAINT,v 1.2 1993/09/23 21:47:01 christos Exp $ + +Maintenance notes: + +I am continuing to maintain the file command. I welcome your help, +but to make my life easier I'd like to request the following: + +- Don't change the version numbers! + +If your changes are extensive, I will have to work hard to +integrate them into my version. If you check it into SCCS locally, +the version numbers will likely be kept. IF you check it into RCS +or CVS locally, please use -k to keep the version numbers, and +please use branch deltas (1.21.1, 1.21.2, ...). If you don't do +this, I will likely be unable to use your changes; life's just too +short. + +- Do not distribute changed versions. + +People trying to be helpful occasionally put up their hacked versions +of the file command for FTP, then the "archie" server finds and publishes +the hacked version, and people all over the world get copies of it. +Within a day or two I am getting email from around the world +asking me why "my" file command won't compile!!! Needless to say this +detracts from the limited time I have available to work on the actual +software. Therefore I ask you again to please NOT distribute +your changed version. + + +Thank you for your assistance and cooperation. + +Mark Moraes Christos Zoulas +moraes@deshaw.com christos@deshaw.com Property changes on: vendor/file/3.19/usr.bin/file/MAINT ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/PORTING =================================================================== --- vendor/file/3.19/usr.bin/file/PORTING (nonexistent) +++ vendor/file/3.19/usr.bin/file/PORTING (revision 13586) @@ -0,0 +1,76 @@ +Portability of the new file(1) command. +@(#) $Id: PORTING,v 1.11 1993/09/23 21:47:23 christos Exp $ + +Read this file only if the program doesn't compile on your system. + +This release has been around UNIX; it has been compiled and tested +in the following environments: + +SunOS sqarc 4.1.1 8 sun4 + No problems. +ULTRIX squint 4.2 0 RISC + No problems. +A/UX sqmac 3.0a9 SVR22 mc68020 + No problems. +AIX sqibm 2 3 000XXXXXX100 + Had weird "make" problems making "magic" file automatically; just + built it by hand. Your mileage may vary. +SCO sqwang 3.2 2 i386 + Compiles fine; their weird make can't handle "[a-z]*" as a dependancy, + so build magic by hand. Runs fine. +sqzme sqzme 3.1.1 3 3B2 + The 3B2 SVR3 needed a few tweaks as well as COPTS = -Ilocalinc + in order to compile. + +This version, reluctanly, includes , which won't exist +on older systems or those that aren't even close to the ANSI C +standard. There is a null "stdlib.h", and some other bogus headers, +in subdirectory "localinc"; if you get complaints about missing +stdlib.h and others, uncomment the line with COPTS=-Ilocalinc +in the Makefile, and try again. + +You must have either or the older , otherwise you'll +have to butcher some routines in print.c. + +Beyond that, I have tried to make a program that doesn't need any +command-line defines (-D) to specify what version of UNIX is in use, +by using the definitions available in the system #include +files. For example, the lstat(2) call is normally found in +4BSD systems, but might be grafted into some other variant +of UNIX. If it's done right (ie., using the same definitions), +my program will compile and work correctly. Look at the #ifdefs +to see how it's done. + +I've also tried to include source for all the non-portable library routines +I used (getopt, str*). Non-portable here means `not in every +reasonably standard UNIX out there: V7, System V, 4BSD'. +These are in subdirectory "localsrc", and not used unless you +need them; again, see the Makefile. + +There is one area that just might cause problems. On System +V, they moved the definition of major() and minor() out of + into . Hence, if major isn't +defined after including types.h, I automatically include sys/sysmacros.h. +This will work for 99% of the systems out there. ONLY if you +have a system in which neither types.h nor sysmacros.h defines +`major' will this automatic include fail (I hope). On such +systems, you will get a compilation error in trying to compile +a warning message. Please do the following: + + 1) change the appropriate #include at the start of fsmagic.c +and 2) let me know the name of the system, the release number, + and the name of the header file that *does* include + this "standard" definition. + +If you are running the old Ritchie PDP-11 C compiler or +some other compiler that doesn't know about `void', you will have +to include `-Dvoid=int' in the variable COPTS in the Makefile. + +Other than this, there should be no portability problems, +but one never knows these days. Please let me know of any +other problems you find porting to a UNIX system. I don't much +care about non-UNIX systems but will collect widely-used magic +numbers for them as well as for UNIX systems. + +Mark Moraes and Christos Zoulas +(address in README) Property changes on: vendor/file/3.19/usr.bin/file/PORTING ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/README =================================================================== --- vendor/file/3.19/usr.bin/file/README (nonexistent) +++ vendor/file/3.19/usr.bin/file/README (revision 13586) @@ -0,0 +1,79 @@ +** README for file(1) Command ** +@(#) $Id: README,v 1.20 1993/09/23 21:47:01 christos Exp $ + +This is Release 3.x of Ian Darwin's (copyright but distributable) +file(1) command. Release 3.x is scheduled for inclusion in the +4.4 BSD (Berkeley Software Distribution) of UNIX-like +software, and is the standard "file" command for Linux, 386bsd, +and other systems. (See "patchlevel.h" for the exact release number). + +UNIX is a trademark of UNIX System Laboratories. + +The prime contributor to Release 3.8 was Guy Harris, who put in megachanges +including byte-order independance. + +The prime contributor to Release 3.0 was Christos Zoulas, who put +in hundreds of lines of source code changes, including his own +ANSIfication of the code (I liked my own ANSIfication better, but +his (__P()) is the "Berkeley standard" way of doing it, and I wanted UCB +to include the code...), his HP-like "indirection" (a feature of +the HP file command, I think), and his mods that finally got the +uncompress (-z) mode finished and working. + +This release has compiled in numerous environments; see PORTING +for a list and problems. + +This fine freeware file(1) follows the USG (System V) model of the file +command, rather than the Research (V7) version or the V7-derived 4.[23] +Berkeley one. That is, the file /etc/magic contains much of the ritual +information that is the source of this program's power. My version +knows a little more magic (including tar archives) than System V; the +/etc/magic parsing seems to be compatible with the (poorly documented) +System V /etc/magic format (with one exception; see the man page). + +In addition, the /etc/magic file is built from a subdirectory +for easier(?) maintenance. I will act as a clearinghouse for +magic numbers assigned to all sorts of data files that +are in reasonable circulation. Send your magic numbers, +in magic(4) format please, to the maintainer, Christos Zoulas. + +LEGAL.NOTICE - read this first. +README - read this second (you are currently reading this file). +PORTING - read this only if the program won't compile. +Makefile - read this next, adapt it as needed (particularly + the location of the old existing file command and + the man page layouts), type "make" to compile, + "make try" to try it out against your old version. + Expect some diffs, particularly since your original + file(1) may not grok the imbedded-space ("\ ") in + the current magic file, or may even not use the + magic file. +apprentice.c - parses /etc/magic to learn magic +ascmagic.c - third & last set of tests, based on hardwired assumptions. +core - not included in distribution due to mailer limitations. +debug.c - includes -c printout routine +file.1 - man page for the command +magic.4 - man page for the magic file, courtesy Guy Harris. + Install as magic.4 on USG and magic.5 on V7 or Berkeley; cf Makefile. +file.c - main program +file.h - header file +fsmagic.c - first set of tests the program runs, based on filesystem info +is_tar.c - knows about tarchives (courtesy John Gilmore). +magdir - directory of /etc/magic pieces + magdir/Makefile - ADJUST THIS FOR YOUR CONFIGURATION +names.h - header file for ascmagic.c +softmagic.c - 2nd set of tests, based on /etc/magic +strtok.c, getopt.c - in case you them (courtesy of Henry Spencer). +strtol.c, strchr.c - in case you need them - public domain. +tst - simple test suite, built from tst/Makefile + + +E-mail: christos@deshaw.com, moraes@deshaw.com + +Phone: Do not even think of telephoning me about this program. Send cash first! + +Parts of this software were developed at SoftQuad Inc., 56 Aberfoyle +Cres, # 810, Toronto, Ontario CANADA M8X 2W4. Phone: 416-239-4801 or +800-387-2777. Email: mail@sq.com. Call for information on SGML editing +and browsing, Unix text processing, and customised products on Unix, +DOS and Mac. Property changes on: vendor/file/3.19/usr.bin/file/README ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/is_tar.c =================================================================== --- vendor/file/3.19/usr.bin/file/is_tar.c (nonexistent) +++ vendor/file/3.19/usr.bin/file/is_tar.c (revision 13586) @@ -0,0 +1,100 @@ +/* + * is_tar() -- figure out whether file is a tar archive. + * + * Stolen (by the author!) from the public domain tar program: + * Pubic Domain version written 26 Aug 1985 John Gilmore (ihnp4!hoptoad!gnu). + * + * @(#)list.c 1.18 9/23/86 Public Domain - gnu + * $Id: is_tar.c,v 1.8 1993/09/16 21:09:35 christos Exp $ + * + * Comments changed and some code/comments reformatted + * for file command by Ian Darwin. + */ + +#include +#include +#include +#include "tar.h" + +#define isodigit(c) ( ((c) >= '0') && ((c) <= '7') ) + +#if defined(__STDC__) || defined(__cplusplus) +static long from_oct(int, char*); /* Decode octal number */ +#else +static long from_oct(); +#endif + +/* + * Return + * 0 if the checksum is bad (i.e., probably not a tar archive), + * 1 for old UNIX tar file, + * 2 for Unix Std (POSIX) tar file. + */ +int +is_tar(buf, nbytes) +unsigned char *buf; +int nbytes; +{ + register union record *header = (union record *)buf; + register int i; + register long sum, recsum; + register char *p; + + if (nbytes < sizeof(union record)) + return 0; + + recsum = from_oct(8, header->header.chksum); + + sum = 0; + p = header->charptr; + for (i = sizeof(union record); --i >= 0;) { + /* + * We can't use unsigned char here because of old compilers, + * e.g. V7. + */ + sum += 0xFF & *p++; + } + + /* Adjust checksum to count the "chksum" field as blanks. */ + for (i = sizeof(header->header.chksum); --i >= 0;) + sum -= 0xFF & header->header.chksum[i]; + sum += ' '* sizeof header->header.chksum; + + if (sum != recsum) + return 0; /* Not a tar archive */ + + if (0==strcmp(header->header.magic, TMAGIC)) + return 2; /* Unix Standard tar archive */ + + return 1; /* Old fashioned tar archive */ +} + + +/* + * Quick and dirty octal conversion. + * + * Result is -1 if the field is invalid (all blank, or nonoctal). + */ +static long +from_oct(digs, where) + register int digs; + register char *where; +{ + register long value; + + while (isspace(*where)) { /* Skip spaces */ + where++; + if (--digs <= 0) + return -1; /* All blank field */ + } + value = 0; + while (digs > 0 && isodigit(*where)) { /* Scan til nonoctal */ + value = (value << 3) | (*where++ - '0'); + --digs; + } + + if (digs > 0 && *where && !isspace(*where)) + return -1; /* Ended on non-space/nul */ + + return value; +} Property changes on: vendor/file/3.19/usr.bin/file/is_tar.c ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property Index: vendor/file/3.19/usr.bin/file/tar.h =================================================================== --- vendor/file/3.19/usr.bin/file/tar.h (nonexistent) +++ vendor/file/3.19/usr.bin/file/tar.h (revision 13586) @@ -0,0 +1,179 @@ +/* + * Header file for public domain tar (tape archive) program. + * + * @(#)tar.h 1.20 86/10/29 Public Domain. + * + * Created 25 August 1985 by John Gilmore, ihnp4!hoptoad!gnu. + * + * $Id: tar.h,v 1.3 1992/09/08 15:32:41 ian Exp $ # checkin only + */ + +/* + * Kludge for handling systems that can't cope with multiple + * external definitions of a variable. In ONE routine (tar.c), + * we #define TAR_EXTERN to null; here, we set it to "extern" if + * it is not already set. + */ +#ifndef TAR_EXTERN +#define TAR_EXTERN extern +#endif + +/* + * Header block on tape. + * + * I'm going to use traditional DP naming conventions here. + * A "block" is a big chunk of stuff that we do I/O on. + * A "record" is a piece of info that we care about. + * Typically many "record"s fit into a "block". + */ +#define RECORDSIZE 512 +#define NAMSIZ 100 +#define TUNMLEN 32 +#define TGNMLEN 32 + +union record { + char charptr[RECORDSIZE]; + struct header { + char name[NAMSIZ]; + char mode[8]; + char uid[8]; + char gid[8]; + char size[12]; + char mtime[12]; + char chksum[8]; + char linkflag; + char linkname[NAMSIZ]; + char magic[8]; + char uname[TUNMLEN]; + char gname[TGNMLEN]; + char devmajor[8]; + char devminor[8]; + } header; +}; + +/* The checksum field is filled with this while the checksum is computed. */ +#define CHKBLANKS " " /* 8 blanks, no null */ + +/* The magic field is filled with this if uname and gname are valid. */ +#define TMAGIC "ustar " /* 7 chars and a null */ + +/* The linkflag defines the type of file */ +#define LF_OLDNORMAL '\0' /* Normal disk file, Unix compat */ +#define LF_NORMAL '0' /* Normal disk file */ +#define LF_LINK '1' /* Link to previously dumped file */ +#define LF_SYMLINK '2' /* Symbolic link */ +#define LF_CHR '3' /* Character special file */ +#define LF_BLK '4' /* Block special file */ +#define LF_DIR '5' /* Directory */ +#define LF_FIFO '6' /* FIFO special file */ +#define LF_CONTIG '7' /* Contiguous file */ +/* Further link types may be defined later. */ + +/* + * Exit codes from the "tar" program + */ +#define EX_SUCCESS 0 /* success! */ +#define EX_ARGSBAD 1 /* invalid args */ +#define EX_BADFILE 2 /* invalid filename */ +#define EX_BADARCH 3 /* bad archive */ +#define EX_SYSTEM 4 /* system gave unexpected error */ + + +/* + * Global variables + */ +TAR_EXTERN union record *ar_block; /* Start of block of archive */ +TAR_EXTERN union record *ar_record; /* Current record of archive */ +TAR_EXTERN union record *ar_last; /* Last+1 record of archive block */ +TAR_EXTERN char ar_reading; /* 0 writing, !0 reading archive */ +TAR_EXTERN int blocking; /* Size of each block, in records */ +TAR_EXTERN int blocksize; /* Size of each block, in bytes */ +TAR_EXTERN char *ar_file; /* File containing archive */ +TAR_EXTERN char *name_file; /* File containing names to work on */ +TAR_EXTERN char *tar; /* Name of this program */ + +/* + * Flags from the command line + */ +TAR_EXTERN char f_reblock; /* -B */ +TAR_EXTERN char f_create; /* -c */ +TAR_EXTERN char f_debug; /* -d */ +TAR_EXTERN char f_sayblock; /* -D */ +TAR_EXTERN char f_follow_links; /* -h */ +TAR_EXTERN char f_ignorez; /* -i */ +TAR_EXTERN char f_keep; /* -k */ +TAR_EXTERN char f_modified; /* -m */ +TAR_EXTERN char f_oldarch; /* -o */ +TAR_EXTERN char f_use_protection; /* -p */ +TAR_EXTERN char f_sorted_names; /* -s */ +TAR_EXTERN char f_list; /* -t */ +TAR_EXTERN char f_namefile; /* -T */ +TAR_EXTERN char f_verbose; /* -v */ +TAR_EXTERN char f_extract; /* -x */ +TAR_EXTERN char f_compress; /* -z */ + +/* + * We now default to Unix Standard format rather than 4.2BSD tar format. + * The code can actually produce all three: + * f_standard ANSI standard + * f_oldarch V7 + * neither 4.2BSD + * but we don't bother, since 4.2BSD can read ANSI standard format anyway. + * The only advantage to the "neither" option is that we can cmp(1) our + * output to the output of 4.2BSD tar, for debugging. + */ +#define f_standard (!f_oldarch) + +/* + * Structure for keeping track of filenames and lists thereof. + */ +struct name { + struct name *next; + short length; + char found; + char name[NAMSIZ+1]; +}; + +TAR_EXTERN struct name *namelist; /* Points to first name in list */ +TAR_EXTERN struct name *namelast; /* Points to last name in list */ + +TAR_EXTERN int archive; /* File descriptor for archive file */ +TAR_EXTERN int errors; /* # of files in error */ + +/* + * + * Due to the next struct declaration, each routine that includes + * "tar.h" must also include . I tried to make it automatic, + * but System V has no defines in , so there is no way of + * knowing when it has been included. In addition, it cannot be included + * twice, but must be included exactly once. Argghh! + * + * Thanks, typedef. Thanks, USG. + */ +struct link { + struct link *next; + dev_t dev; + ino_t ino; + short linkcount; + char name[NAMSIZ+1]; +}; + +TAR_EXTERN struct link *linklist; /* Points to first link in list */ + + +/* + * Error recovery stuff + */ +TAR_EXTERN char read_error_flag; + + +/* + * Declarations of functions available to the world. + */ +/*LINTLIBRARY*/ +union record *findrec(); +void userec(); +union record *endofrecs(); +void anno(); +#define annorec(stream, msg) anno(stream, msg, 0) /* Cur rec */ +#define annofile(stream, msg) anno(stream, msg, 1) /* Saved rec */ Property changes on: vendor/file/3.19/usr.bin/file/tar.h ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +FreeBSD=%H \ No newline at end of property