Virgin import of Christos Zoulas's FILE 4.12.

This commit is contained in:
David E. O'Brien 2004-12-28 04:31:47 +00:00
parent ea8dc7e0f2
commit a2e8fb4c99
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/vendor/file/dist/; revision=139368
47 changed files with 9013 additions and 2930 deletions

View File

@ -1,3 +1,30 @@
2004-11-24 12:39 Christos Zoulas <christos@zoulas.com>
* Stack smash fix, and ELF more conservative reading.
Jakub Bogusz <qboosh@pld-linux.org>
2004-11-20 18:50 Christos Zoulas <christos@zoulas.com>
* New FreeBSD version parsing code:
Jon Noack <noackjr@alumni.rice.edu>
* Hackish support for ucs16 strings <christos@zoulas.com>
2004-11-13 03:07 Christos Zoulas <christos@zoulas.com>
* print the file name and line number in syntax errors.
2004 10-12 10:50 Christos Zoulas <christos@zoulas.com>
* Fix stack overwriting on 0 length strings: Tim Waugh
<twaugh@redhat.com> Ned Ludd <solar@gentoo.org>
2004-09-27 11:30 Christos Zoulas <christos@zoulas.com>
* Remove 3rd and 4th copyright clause; approved by Ian Darwin.
* Fix small memory leaks; caught by: Tamas Sarlos
<stamas@csillag.ilab.sztaki.hu>
2004-07-24 16:33 Christos Zoulas <christos@zoulas.com>

View File

@ -1,7 +1,7 @@
$Id: LEGAL.NOTICE,v 1.13 2003/03/23 22:23:30 christos Exp $
$Id: LEGAL.NOTICE,v 1.14 2004/09/11 19:15:56 christos Exp $
Copyright (c) Ian F. Darwin 1986, 1987, 1989, 1990, 1991, 1992, 1994, 1995.
Software written by Ian F. Darwin and others;
maintained 1994-2003 Christos Zoulas.
maintained 1994-2004 Christos Zoulas.
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.
@ -15,11 +15,6 @@ are met:
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this software
must display the following acknowledgement:
This product includes software developed by Ian F. Darwin and others.
4. The name of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

View File

@ -6,123 +6,524 @@
# 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 belong 0x000001b3 MPEG video stream data
#>4 beshort&0xfff0 x (%d x
#>5 beshort&0x0fff x %d)
0 belong 0x000001ba MPEG system stream data
# MPEG sequences
# Scans for all common MPEG header start codes
0 belong&0xFFFFFF00 0x00000100 MPEG sequence
>3 byte 0xBA
>>4 byte &0x40 \b, v2, program multiplex
>>4 byte ^0x40 \b, v1, system multiplex
>3 byte 0xBB \b, v1/2, multiplex (missing pack header)
>3 byte 0xB0 \b, v4
>>5 belong 0x000001B5
>>>9 byte &0x80
>>>>10 byte&0xF0 16 \b, video
>>>>10 byte&0xF0 32 \b, still texture
>>>>10 byte&0xF0 48 \b, mesh
>>>>10 byte&0xF0 64 \b, face
>>>9 byte ^0x80
>>>>9 byte&0xF8 8 \b, video
>>>>9 byte&0xF8 16 \b, still texture
>>>>9 byte&0xF8 24 \b, mesh
>>>>9 byte&0xF8 32 \b, face
>>4 byte 1 \b, simple @ L1
>>4 byte 2 \b, simple @ L2
>>4 byte 3 \b, simple @ L3
>>4 byte 4 \b, simple @ L0
>>4 byte 17 \b, simple scalable @ L1
>>4 byte 18 \b, simple scalable @ L2
>>4 byte 33 \b, core @ L1
>>4 byte 34 \b, core @ L2
>>4 byte 50 \b, main @ L2
>>4 byte 51 \b, main @ L3
>>4 byte 53 \b, main @ L4
>>4 byte 66 \b, n-bit @ L2
>>4 byte 81 \b, scalable texture @ L1
>>4 byte 97 \b, simple face animation @ L1
>>4 byte 98 \b, simple face animation @ L2
>>4 byte 99 \b, simple face basic animation @ L1
>>4 byte 100 \b, simple face basic animation @ L2
>>4 byte 113 \b, basic animation text @ L1
>>4 byte 114 \b, basic animation text @ L2
>>4 byte 129 \b, hybrid @ L1
>>4 byte 130 \b, hybrid @ L2
>>4 byte 145 \b, advanced RT simple @ L!
>>4 byte 146 \b, advanced RT simple @ L2
>>4 byte 147 \b, advanced RT simple @ L3
>>4 byte 148 \b, advanced RT simple @ L4
>>4 byte 161 \b, core scalable @ L1
>>4 byte 162 \b, core scalable @ L2
>>4 byte 163 \b, core scalable @ L3
>>4 byte 177 \b, advanced coding efficiency @ L1
>>4 byte 178 \b, advanced coding efficiency @ L2
>>4 byte 179 \b, advanced coding efficiency @ L3
>>4 byte 180 \b, advanced coding efficiency @ L4
>>4 byte 193 \b, advanced core @ L1
>>4 byte 194 \b, advanced core @ L2
>>4 byte 209 \b, advanced scalable texture @ L1
>>4 byte 210 \b, advanced scalable texture @ L2
>>4 byte 211 \b, advanced scalable texture @ L3
>>4 byte 225 \b, simple studio @ L1
>>4 byte 226 \b, simple studio @ L2
>>4 byte 227 \b, simple studio @ L3
>>4 byte 228 \b, simple studio @ L4
>>4 byte 229 \b, core studio @ L1
>>4 byte 230 \b, core studio @ L2
>>4 byte 231 \b, core studio @ L3
>>4 byte 232 \b, core studio @ L4
>>4 byte 240 \b, advanced simple @ L0
>>4 byte 241 \b, advanced simple @ L1
>>4 byte 242 \b, advanced simple @ L2
>>4 byte 243 \b, advanced simple @ L3
>>4 byte 244 \b, advanced simple @ L4
>>4 byte 245 \b, advanced simple @ L5
>>4 byte 247 \b, advanced simple @ L3b
>>4 byte 248 \b, FGS @ L0
>>4 byte 249 \b, FGS @ L1
>>4 byte 250 \b, FGS @ L2
>>4 byte 251 \b, FGS @ L3
>>4 byte 252 \b, FGS @ L4
>>4 byte 253 \b, FGS @ L5
>3 byte 0xB5 \b, v4
>>4 byte &0x80
>>>5 byte&0xF0 16 \b, video (missing profile header)
>>>5 byte&0xF0 32 \b, still texture (missing profile header)
>>>5 byte&0xF0 48 \b, mesh (missing profile header)
>>>5 byte&0xF0 64 \b, face (missing profile header)
>>4 byte ^0x80
>>>4 byte&0xF8 8 \b, video (missing profile header)
>>>4 byte&0xF8 16 \b, still texture (missing profile header)
>>>4 byte&0xF8 24 \b, mesh (missing profile header)
>>>4 byte&0xF8 32 \b, face (missing profile header)
>3 byte 0xB3
>>12 belong 0x000001B8 \b, v1, progressive Y'CbCr 4:2:0 video
>>12 belong 0x000001B2 \b, v1, progressive Y'CbCr 4:2:0 video
>>12 belong 0x000001B5 \b, v2,
>>>16 byte&0x0F 1 \b HP
>>>16 byte&0x0F 2 \b Spt
>>>16 byte&0x0F 3 \b SNR
>>>16 byte&0x0F 4 \b MP
>>>16 byte&0x0F 5 \b SP
>>>17 byte&0xF0 64 \b@HL
>>>17 byte&0xF0 96 \b@H-14
>>>17 byte&0xF0 128 \b@ML
>>>17 byte&0xF0 160 \b@LL
>>>17 byte &0x08 \b progressive
>>>17 byte ^0x08 \b interlaced
>>>17 byte&0x06 2 \b Y'CbCr 4:2:0 video
>>>17 byte&0x06 4 \b Y'CbCr 4:2:2 video
>>>17 byte&0x06 6 \b Y'CbCr 4:4:4 video
>>11 byte &0x02
>>>75 byte &0x01
>>>>140 belong 0x000001B8 \b, v1, progressive Y'CbCr 4:2:0 video
>>>>140 belong 0x000001B2 \b, v1, progressive Y'CbCr 4:2:0 video
>>>>140 belong 0x000001B5 \b, v2,
>>>>>144 byte&0x0F 1 \b HP
>>>>>144 byte&0x0F 2 \b Spt
>>>>>144 byte&0x0F 3 \b SNR
>>>>>144 byte&0x0F 4 \b MP
>>>>>144 byte&0x0F 5 \b SP
>>>>>145 byte&0xF0 64 \b@HL
>>>>>145 byte&0xF0 96 \b@H-14
>>>>>145 byte&0xF0 128 \b@ML
>>>>>145 byte&0xF0 160 \b@LL
>>>>>145 byte &0x08 \b progressive
>>>>>145 byte ^0x08 \b interlaced
>>>>>145 byte&0x06 2 \b Y'CbCr 4:2:0 video
>>>>>145 byte&0x06 4 \b Y'CbCr 4:2:2 video
>>>>>145 byte&0x06 6 \b Y'CbCr 4:4:4 video
>>>76 belong 0x000001B8 \b, v1, progressive Y'CbCr 4:2:0 video
>>>76 belong 0x000001B2 \b, v1, progressive Y'CbCr 4:2:0 video
>>>76 belong 0x000001B5 \b, v2,
>>>80 byte&0x0F 1 \b HP
>>>80 byte&0x0F 2 \b Spt
>>>80 byte&0x0F 3 \b SNR
>>>80 byte&0x0F 4 \b MP
>>>80 byte&0x0F 5 \b SP
>>>81 byte&0xF0 64 \b@HL
>>>81 byte&0xF0 96 \b@H-14
>>>81 byte&0xF0 128 \b@ML
>>>81 byte&0xF0 160 \b@LL
>>>81 byte &0x08 \b progressive
>>>81 byte ^0x08 \b interlaced
>>>81 byte&0x06 2 \b Y'CbCr 4:2:0 video
>>>81 byte&0x06 4 \b Y'CbCr 4:2:2 video
>>>81 byte&0x06 6 \b Y'CbCr 4:4:4 video
>>4 belong&0xFFFFFF00 0x78043800 \b, HD-TV 1920P
>>>7 byte&0xF0 0x10 \b, 16:9
>>4 belong&0xFFFFFF00 0x50002D00 \b, SD-TV 1280I
>>>7 byte&0xF0 0x10 \b, 16:9
>>4 belong&0xFFFFFF00 0x30024000 \b, PAL Capture
>>>7 byte&0xF0 0x10 \b, 4:3
>>4 beshort&0xFFF0 0x2C00 \b, 4CIF
>>>5 beshort&0x0FFF 0x01E0 \b NTSC
>>>5 beshort&0x0FFF 0x0240 \b PAL
>>>7 byte&0xF0 0x20 \b, 4:3
>>>7 byte&0xF0 0x30 \b, 16:9
>>>7 byte&0xF0 0x40 \b, 11:5
>>>7 byte&0xF0 0x80 \b, PAL 4:3
>>>7 byte&0xF0 0xC0 \b, NTSC 4:3
>>4 belong&0xFFFFFF00 0x2801E000 \b, LD-TV 640P
>>>7 byte&0xF0 0x10 \b, 4:3
>>4 belong&0xFFFFFF00 0x1400F000 \b, 320x240
>>>7 byte&0xF0 0x10 \b, 4:3
>>4 belong&0xFFFFFF00 0x0F00A000 \b, 240x160
>>>7 byte&0xF0 0x10 \b, 4:3
>>4 belong&0xFFFFFF00 0x0A007800 \b, 160x120
>>>7 byte&0xF0 0x10 \b, 4:3
>>4 beshort&0xFFF0 0x1600 \b, CIF
>>>5 beshort&0x0FFF 0x00F0 \b NTSC
>>>5 beshort&0x0FFF 0x0120 \b PAL
>>>7 byte&0xF0 0x20 \b, 4:3
>>>7 byte&0xF0 0x30 \b, 16:9
>>>7 byte&0xF0 0x40 \b, 11:5
>>>7 byte&0xF0 0x80 \b, PAL 4:3
>>>7 byte&0xF0 0xC0 \b, NTSC 4:3
>>>5 beshort&0x0FFF 0x0240 \b PAL 625
>>>>7 byte&0xF0 0x20 \b, 4:3
>>>>7 byte&0xF0 0x30 \b, 16:9
>>>>7 byte&0xF0 0x40 \b, 11:5
>>4 beshort&0xFFF0 0x2D00 \b, CCIR/ITU
>>>5 beshort&0x0FFF 0x01E0 \b NTSC 525
>>>5 beshort&0x0FFF 0x0240 \b PAL 625
>>>7 byte&0xF0 0x20 \b, 4:3
>>>7 byte&0xF0 0x30 \b, 16:9
>>>7 byte&0xF0 0x40 \b, 11:5
>>4 beshort&0xFFF0 0x1E00 \b, SVCD
>>>5 beshort&0x0FFF 0x01E0 \b NTSC 525
>>>5 beshort&0x0FFF 0x0240 \b PAL 625
>>>7 byte&0xF0 0x20 \b, 4:3
>>>7 byte&0xF0 0x30 \b, 16:9
>>>7 byte&0xF0 0x40 \b, 11:5
>>7 byte&0x0F 1 \b, 23.976 fps
>>7 byte&0x0F 2 \b, 24 fps
>>7 byte&0x0F 3 \b, 25 fps
>>7 byte&0x0F 4 \b, 29.97 fps
>>7 byte&0x0F 5 \b, 30 fps
>>7 byte&0x0F 6 \b, 50 fps
>>7 byte&0x0F 7 \b, 59.94 fps
>>7 byte&0x0F 8 \b, 60 fps
>>11 byte &0x04 \b, Constrained
# MPEG Audio (*.mpx)
# MPEG ADTS Audio (*.mpx/mxa/aac)
# from dreesen@math.fu-berlin.de
# modified to fully support MPEG ADTS
# MPEG 1.0 Layer 3
0 beshort&0xfffe =0xfffa \bMP3
>2 byte&0xf0 =0x10 \b, 32 kBits
>2 byte&0xf0 =0x20 \b, 40 kBits
>2 byte&0xf0 =0x30 \b, 48 kBits
>2 byte&0xf0 =0x40 \b, 56 kBits
>2 byte&0xf0 =0x50 \b, 64 kBits
>2 byte&0xf0 =0x60 \b, 80 kBits
>2 byte&0xf0 =0x70 \b, 96 kBits
>2 byte&0xf0 =0x80 \b, 112 kBits
>2 byte&0xf0 =0x90 \b, 128 kBits
>2 byte&0xf0 =0xA0 \b, 160 kBits
>2 byte&0xf0 =0xB0 \b, 192 kBits
>2 byte&0xf0 =0xC0 \b, 224 kBits
>2 byte&0xf0 =0xD0 \b, 256 kBits
>2 byte&0xf0 =0xE0 \b, 320 kBits
# freq
>2 byte&0x0C =0x00 \b, 44.1 kHz
>2 byte&0x0C =0x04 \b, 48 kHz
>2 byte&0x0C =0x08 \b, 32 kHz
# misc
>3 byte&0xC0 =0x00 \b, Stereo
>3 byte&0xC0 =0x40 \b, JStereo
>3 byte&0xC0 =0x80 \b, Dual-Ch
>3 byte&0xC0 =0xC0 \b, Mono
#>1 byte&0x01 =0x00 \b, Error Protection
#>2 byte&0x02 =0x02 \b, Padding
#>2 byte&0x01 =0x01 \b, Private
#>3 byte&0x08 =0x08 \b, Copyright
#>3 byte&0x04 =0x04 \b, Original
#>3 byte&0x03 1 \b, Emphasis 5
#>3 byte&0x03 3 \b, Emphasis c
# MP3, M1A
0 beshort&0xFFFE 0xFFFA MPEG ADTS, layer III, v1
# rates
>2 byte&0xF0 0x10 \b, 32 kBits
>2 byte&0xF0 0x20 \b, 40 kBits
>2 byte&0xF0 0x30 \b, 48 kBits
>2 byte&0xF0 0x40 \b, 56 kBits
>2 byte&0xF0 0x50 \b, 64 kBits
>2 byte&0xF0 0x60 \b, 80 kBits
>2 byte&0xF0 0x70 \b, 96 kBits
>2 byte&0xF0 0x80 \b, 112 kBits
>2 byte&0xF0 0x90 \b, 128 kBits
>2 byte&0xF0 0xA0 \b, 160 kBits
>2 byte&0xF0 0xB0 \b, 192 kBits
>2 byte&0xF0 0xC0 \b, 224 kBits
>2 byte&0xF0 0xD0 \b, 256 kBits
>2 byte&0xF0 0xE0 \b, 320 kBits
# timing
>2 byte&0x0C 0x00 \b, 44.1 kHz
>2 byte&0x0C 0x04 \b, 48 kHz
>2 byte&0x0C 0x08 \b, 32 kHz
# channels/options
>3 byte&0xC0 0x00 \b, Stereo
>3 byte&0xC0 0x40 \b, JntStereo
>3 byte&0xC0 0x80 \b, 2x Monaural
>3 byte&0xC0 0xC0 \b, Monaural
#>1 byte ^0x01 \b, Data Verify
#>2 byte &0x02 \b, Packet Pad
#>2 byte &0x01 \b, Custom Flag
#>3 byte &0x08 \b, Copyrighted
#>3 byte &0x04 \b, Original Source
#>3 byte&0x03 1 \b, NR: 50/15 ms
#>3 byte&0x03 3 \b, NR: CCIT J.17
# MPEG 1.0 Layer 2
0 beshort&0xfffe =0xfffc \bMP2
>2 byte&0xf0 =0x10 \b, 32 kBits
>2 byte&0xf0 =0x20 \b, 48 kBits
>2 byte&0xf0 =0x30 \b, 56 kBits
>2 byte&0xf0 =0x40 \b, 64 kBits
>2 byte&0xf0 =0x50 \b, 80 kBits
>2 byte&0xf0 =0x60 \b, 96 kBits
>2 byte&0xf0 =0x70 \b, 112 kBits
>2 byte&0xf0 =0x80 \b, 128 kBits
>2 byte&0xf0 =0x90 \b, 160 kBits
>2 byte&0xf0 =0xA0 \b, 192 kBits
>2 byte&0xf0 =0xB0 \b, 224 kBits
>2 byte&0xf0 =0xC0 \b, 256 kBits
>2 byte&0xf0 =0xD0 \b, 320 kBits
>2 byte&0xf0 =0xE0 \b, 384 kBits
# freq
>2 byte&0x0C =0x00 \b, 44.1 kHz
>2 byte&0x0C =0x04 \b, 48 kHz
>2 byte&0x0C =0x08 \b, 32 kHz
# misc
>3 byte&0xC0 =0x00 \b, Stereo
>3 byte&0xC0 =0x40 \b, JStereo
>3 byte&0xC0 =0x80 \b, Dual-Ch
>3 byte&0xC0 =0xC0 \b, Mono
#>1 byte&0x01 =0x00 \b, Error Protection
#>2 byte&0x02 =0x02 \b, Padding
#>2 byte&0x01 =0x01 \b, Private
#>3 byte&0x08 =0x08 \b, Copyright
#>3 byte&0x04 =0x04 \b, Original
#>3 byte&0x03 1 \b, Emphasis 5
#>3 byte&0x03 3 \b, Emphasis c
# MP2, M1A
0 beshort&0xFFFE 0xFFFC MPEG ADTS, layer II, v1
# rates
>2 byte&0xF0 0x10 \b, 32 kBits
>2 byte&0xF0 0x20 \b, 48 kBits
>2 byte&0xF0 0x30 \b, 56 kBits
>2 byte&0xF0 0x40 \b, 64 kBits
>2 byte&0xF0 0x50 \b, 80 kBits
>2 byte&0xF0 0x60 \b, 96 kBits
>2 byte&0xF0 0x70 \b, 112 kBits
>2 byte&0xF0 0x80 \b, 128 kBits
>2 byte&0xF0 0x90 \b, 160 kBits
>2 byte&0xF0 0xA0 \b, 192 kBits
>2 byte&0xF0 0xB0 \b, 224 kBits
>2 byte&0xF0 0xC0 \b, 256 kBits
>2 byte&0xF0 0xD0 \b, 320 kBits
>2 byte&0xF0 0xE0 \b, 384 kBits
# timing
>2 byte&0x0C 0x00 \b, 44.1 kHz
>2 byte&0x0C 0x04 \b, 48 kHz
>2 byte&0x0C 0x08 \b, 32 kHz
# channels/options
>3 byte&0xC0 0x00 \b, Stereo
>3 byte&0xC0 0x40 \b, JntStereo
>3 byte&0xC0 0x80 \b, 2x Monaural
>3 byte&0xC0 0xC0 \b, Monaural
#>1 byte ^0x01 \b, Data Verify
#>2 byte &0x02 \b, Packet Pad
#>2 byte &0x01 \b, Custom Flag
#>3 byte &0x08 \b, Copyrighted
#>3 byte &0x04 \b, Original Source
#>3 byte&0x03 1 \b, NR: 50/15 ms
#>3 byte&0x03 3 \b, NR: CCIT J.17
# MPEG 2.0
0 beshort&0xfff8 =0xfff0 MP
# Layer 3
>1 byte &0x02 \b3
# Layer 2
>1 byte &0x04 \b2
>2 byte&0xf0 =0x10 \b, 8 kBits
>2 byte&0xf0 =0x20 \b, 16 kBits
>2 byte&0xf0 =0x30 \b, 24 kBits
>2 byte&0xf0 =0x40 \b, 32 kBits
>2 byte&0xf0 =0x50 \b, 40 kBits
>2 byte&0xf0 =0x60 \b, 48 kBits
>2 byte&0xf0 =0x70 \b, 56 kBits
>2 byte&0xf0 =0x80 \b, 64 kBits
>2 byte&0xf0 =0x90 \b, 80 kBits
>2 byte&0xf0 =0xA0 \b, 96 kBits
>2 byte&0xf0 =0xB0 \b, 112 kBits
>2 byte&0xf0 =0xC0 \b, 128 kBits
>2 byte&0xf0 =0xD0 \b, 144 kBits
>2 byte&0xf0 =0xE0 \b, 160 kBits
# freq
>2 byte&0x0C =0x00 \b, 22.05 kHz
>2 byte&0x0C =0x04 \b, 24 kHz
>2 byte&0x0C =0x08 \b, 16 kHz
# misc
>3 byte&0xC0 =0x00 \b, Stereo
>3 byte&0xC0 =0x40 \b, JStereo
>3 byte&0xC0 =0x80 \b, Dual-Ch
>3 byte&0xC0 =0xC0 \b, Mono
#>1 byte&0x01 =0x00 \b, Error Protection
#>2 byte&0x02 =0x02 \b, Padding
#>2 byte&0x01 =0x01 \b, Private
#>3 byte&0x08 =0x08 \b, Copyright
#>3 byte&0x04 =0x04 \b, Original
#>3 byte&0x03 1 \b, Emphasis 5
#>3 byte&0x03 3 \b, Emphasis c
# MPA, M1A
0 beshort&0xFFFE 0xFFFE MPEG ADTS, layer I, v1
# rate
>2 byte&0xF0 0x10 \b, 32 kBits
>2 byte&0xF0 0x20 \b, 64 kBits
>2 byte&0xF0 0x30 \b, 96 kBits
>2 byte&0xF0 0x40 \b, 128 kBits
>2 byte&0xF0 0x50 \b, 160 kBits
>2 byte&0xF0 0x60 \b, 192 kBits
>2 byte&0xF0 0x70 \b, 224 kBits
>2 byte&0xF0 0x80 \b, 256 kBits
>2 byte&0xF0 0x90 \b, 288 kBits
>2 byte&0xF0 0xA0 \b, 320 kBits
>2 byte&0xF0 0xB0 \b, 352 kBits
>2 byte&0xF0 0xC0 \b, 384 kBits
>2 byte&0xF0 0xD0 \b, 416 kBits
>2 byte&0xF0 0xE0 \b, 448 kBits
# timing
>2 byte&0x0C 0x00 \b, 44.1 kHz
>2 byte&0x0C 0x04 \b, 48 kHz
>2 byte&0x0C 0x08 \b, 32 kHz
# channels/options
>3 byte&0xC0 0x00 \b, Stereo
>3 byte&0xC0 0x40 \b, JntStereo
>3 byte&0xC0 0x80 \b, 2x Monaural
>3 byte&0xC0 0xC0 \b, Monaural
#>1 byte ^0x01 \b, Data Verify
#>2 byte &0x02 \b, Packet Pad
#>2 byte &0x01 \b, Custom Flag
#>3 byte &0x08 \b, Copyrighted
#>3 byte &0x04 \b, Original Source
#>3 byte&0x03 1 \b, NR: 50/15 ms
#>3 byte&0x03 3 \b, NR: CCIT J.17
#From: Johan Gade <jgade@diku.dk>
# MP3, M2A
0 beshort&0xFFFE 0xFFF2 MPEG ADTS, layer III, v2
# rate
>2 byte&0xF0 0x10 \b, 8 kBits
>2 byte&0xF0 0x20 \b, 16 kBits
>2 byte&0xF0 0x30 \b, 24 kBits
>2 byte&0xF0 0x40 \b, 32 kBits
>2 byte&0xF0 0x50 \b, 40 kBits
>2 byte&0xF0 0x60 \b, 48 kBits
>2 byte&0xF0 0x70 \b, 56 kBits
>2 byte&0xF0 0x80 \b, 64 kBits
>2 byte&0xF0 0x90 \b, 80 kBits
>2 byte&0xF0 0xA0 \b, 96 kBits
>2 byte&0xF0 0xB0 \b, 112 kBits
>2 byte&0xF0 0xC0 \b, 128 kBits
>2 byte&0xF0 0xD0 \b, 144 kBits
>2 byte&0xF0 0xE0 \b, 160 kBits
# timing
>2 byte&0x0C 0x00 \b, 22.05 kHz
>2 byte&0x0C 0x04 \b, 24 kHz
>2 byte&0x0C 0x08 \b, 16 kHz
# channels/options
>3 byte&0xC0 0x00 \b, Stereo
>3 byte&0xC0 0x40 \b, JntStereo
>3 byte&0xC0 0x80 \b, 2x Monaural
>3 byte&0xC0 0xC0 \b, Monaural
#>1 byte ^0x01 \b, Data Verify
#>2 byte &0x02 \b, Packet Pad
#>2 byte &0x01 \b, Custom Flag
#>3 byte &0x08 \b, Copyrighted
#>3 byte &0x04 \b, Original Source
#>3 byte&0x03 1 \b, NR: 50/15 ms
#>3 byte&0x03 3 \b, NR: CCIT J.17
# MPEG-4 Advanced Audio Coding (AAC) file (perhaps also MPEG-2 ACC?)
16 string M4A MPEG-4 Advanced Audio Coding file (AAC)
# MP2, M2A
0 beshort&0xFFFE 0xFFF4 MPEG ADTS, layer II, v2
# rate
>2 byte&0xF0 0x10 \b, 8 kBits
>2 byte&0xF0 0x20 \b, 16 kBits
>2 byte&0xF0 0x30 \b, 24 kBits
>2 byte&0xF0 0x40 \b, 32 kBits
>2 byte&0xF0 0x50 \b, 40 kBits
>2 byte&0xF0 0x60 \b, 48 kBits
>2 byte&0xF0 0x70 \b, 56 kBits
>2 byte&0xF0 0x80 \b, 64 kBits
>2 byte&0xF0 0x90 \b, 80 kBits
>2 byte&0xF0 0xA0 \b, 96 kBits
>2 byte&0xF0 0xB0 \b, 112 kBits
>2 byte&0xF0 0xC0 \b, 128 kBits
>2 byte&0xF0 0xD0 \b, 144 kBits
>2 byte&0xF0 0xE0 \b, 160 kBits
# timing
>2 byte&0x0C 0x00 \b, 22.05 kHz
>2 byte&0x0C 0x04 \b, 24 kHz
>2 byte&0x0C 0x08 \b, 16 kHz
# channels/options
>3 byte&0xC0 0x00 \b, Stereo
>3 byte&0xC0 0x40 \b, JntStereo
>3 byte&0xC0 0x80 \b, 2x Monaural
>3 byte&0xC0 0xC0 \b, Monaural
#>1 byte ^0x01 \b, Data Verify
#>2 byte &0x02 \b, Packet Pad
#>2 byte &0x01 \b, Custom Flag
#>3 byte &0x08 \b, Copyrighted
#>3 byte &0x04 \b, Original Source
#>3 byte&0x03 1 \b, NR: 50/15 ms
#>3 byte&0x03 3 \b, NR: CCIT J.17
# MPA, M2A
0 beshort&0xFFFE 0xFFF6 MPEG ADTS, layer I, v2
# rate
>2 byte&0xF0 0x10 \b, 32 kBits
>2 byte&0xF0 0x20 \b, 48 kBits
>2 byte&0xF0 0x30 \b, 56 kBits
>2 byte&0xF0 0x40 \b, 64 kBits
>2 byte&0xF0 0x50 \b, 80 kBits
>2 byte&0xF0 0x60 \b, 96 kBits
>2 byte&0xF0 0x70 \b, 112 kBits
>2 byte&0xF0 0x80 \b, 128 kBits
>2 byte&0xF0 0x90 \b, 144 kBits
>2 byte&0xF0 0xA0 \b, 160 kBits
>2 byte&0xF0 0xB0 \b, 176 kBits
>2 byte&0xF0 0xC0 \b, 192 kBits
>2 byte&0xF0 0xD0 \b, 224 kBits
>2 byte&0xF0 0xE0 \b, 256 kBits
# timing
>2 byte&0x0C 0x00 \b, 22.05 kHz
>2 byte&0x0C 0x04 \b, 24 kHz
>2 byte&0x0C 0x08 \b, 16 kHz
# channels/options
>3 byte&0xC0 0x00 \b, Stereo
>3 byte&0xC0 0x40 \b, JntStereo
>3 byte&0xC0 0x80 \b, 2x Monaural
>3 byte&0xC0 0xC0 \b, Monaural
#>1 byte ^0x01 \b, Data Verify
#>2 byte &0x02 \b, Packet Pad
#>2 byte &0x01 \b, Custom Flag
#>3 byte &0x08 \b, Copyrighted
#>3 byte &0x04 \b, Original Source
#>3 byte&0x03 1 \b, NR: 50/15 ms
#>3 byte&0x03 3 \b, NR: CCIT J.17
# MP3, M25A
0 beshort&0xFFFE 0xFFE2 MPEG ADTS, layer III, v2.5
# rate
>2 byte&0xF0 0x10 \b, 8 kBits
>2 byte&0xF0 0x20 \b, 16 kBits
>2 byte&0xF0 0x30 \b, 24 kBits
>2 byte&0xF0 0x40 \b, 32 kBits
>2 byte&0xF0 0x50 \b, 40 kBits
>2 byte&0xF0 0x60 \b, 48 kBits
>2 byte&0xF0 0x70 \b, 56 kBits
>2 byte&0xF0 0x80 \b, 64 kBits
>2 byte&0xF0 0x90 \b, 80 kBits
>2 byte&0xF0 0xA0 \b, 96 kBits
>2 byte&0xF0 0xB0 \b, 112 kBits
>2 byte&0xF0 0xC0 \b, 128 kBits
>2 byte&0xF0 0xD0 \b, 144 kBits
>2 byte&0xF0 0xE0 \b, 160 kBits
# timing
>2 byte&0x0C 0x00 \b, 11.025 kHz
>2 byte&0x0C 0x04 \b, 12 kHz
>2 byte&0x0C 0x08 \b, 8 kHz
# channels/options
>3 byte&0xC0 0x00 \b, Stereo
>3 byte&0xC0 0x40 \b, JntStereo
>3 byte&0xC0 0x80 \b, 2x Monaural
>3 byte&0xC0 0xC0 \b, Monaural
#>1 byte ^0x01 \b, Data Verify
#>2 byte &0x02 \b, Packet Pad
#>2 byte &0x01 \b, Custom Flag
#>3 byte &0x08 \b, Copyrighted
#>3 byte &0x04 \b, Original Source
#>3 byte&0x03 1 \b, NR: 50/15 ms
#>3 byte&0x03 3 \b, NR: CCIT J.17
# AAC (aka MPEG-2 NBC audio) and MPEG-4 audio
# Stored AAC streams (instead of the MP4 format)
0 string ADIF MPEG ADIF, AAC
>4 byte &0x80
>>13 byte &0x10 \b, VBR
>>13 byte ^0x10 \b, CBR
>>16 byte&0x1E 0x02 \b, single stream
>>16 byte&0x1E 0x04 \b, 2 streams
>>16 byte&0x1E 0x06 \b, 3 streams
>>16 byte &0x08 \b, 4 or more streams
>>16 byte &0x10 \b, 8 or more streams
>>4 byte &0x80 \b, Copyrighted
>>13 byte &0x40 \b, Original Source
>>13 byte &0x20 \b, Home Flag
>4 byte ^0x80
>>4 byte &0x10 \b, VBR
>>4 byte ^0x10 \b, CBR
>>7 byte&0x1E 0x02 \b, single stream
>>7 byte&0x1E 0x04 \b, 2 streams
>>7 byte&0x1E 0x06 \b, 3 streams
>>7 byte &0x08 \b, 4 or more streams
>>7 byte &0x10 \b, 8 or more streams
>>4 byte &0x40 \b, Original Stream(s)
>>4 byte &0x20 \b, Home Source
# Live or stored single AAC stream (used with MPEG-2 systems)
0 beshort&0xFFF6 0xFFF0 MPEG ADTS, AAC
>1 byte ^0x08 \b, v2
>1 byte &0x08 \b, v4
# profile
>>2 byte &0xC0 \b LTP
>2 byte&0xc0 0x00 \b, Main
>2 byte&0xc0 0x40 \b, LC
>2 byte&0xc0 0x80 \b, SSR
# timing
>2 byte&0x3c 0x00 \b, 96 kHz
>2 byte&0x3c 0x04 \b, 88.2 kHz
>2 byte&0x3c 0x08 \b, 64 kHz
>2 byte&0x3c 0x0c \b, 48 kHz
>2 byte&0x3c 0x10 \b, 44.1 kHz
>2 byte&0x3c 0x14 \b, 32 kHz
>2 byte&0x3c 0x18 \b, 24 kHz
>2 byte&0x3c 0x1c \b, 22.05 kHz
>2 byte&0x3c 0x20 \b, 16 kHz
>2 byte&0x3c 0x24 \b, 12 kHz
>2 byte&0x3c 0x28 \b, 11.025 kHz
>2 byte&0x3c 0x2c \b, 8 kHz
# channels/options
>2 beshort&0x01c0 0x0040 \b, monaural
>2 beshort&0x01c0 0x0080 \b, stereo
>2 beshort&0x01c0 0x00c0 \b, stereo + center
>2 beshort&0x01c0 0x0100 \b, stereo+center+LFE
>2 beshort&0x01c0 0x0140 \b, surround
>2 beshort&0x01c0 0x0180 \b, surround + LFE
>2 beshort &0x01C0 \b, surround + side
#>1 byte ^0x01 \b, Data Verify
#>2 byte &0x02 \b, Custom Flag
#>3 byte &0x20 \b, Original Stream
#>3 byte &0x10 \b, Home Source
#>3 byte &0x08 \b, Copyrighted
# Live MPEG-4 audio streams (instead of RTP FlexMux)
0 beshort&0xFFE0 0x56E0 MPEG-4 LOAS
#>1 beshort&0x1FFF x \b, %u byte packet
>3 byte&0xE0 0x40
>>4 byte&0x3C 0x04 \b, single stream
>>4 byte&0x3C 0x08 \b, 2 streams
>>4 byte&0x3C 0x0C \b, 3 streams
>>4 byte &0x08 \b, 4 or more streams
>>4 byte &0x20 \b, 8 or more streams
>3 byte&0xC0 0
>>4 byte&0x78 0x08 \b, single stream
>>4 byte&0x78 0x10 \b, 2 streams
>>4 byte&0x78 0x18 \b, 3 streams
>>4 byte &0x20 \b, 4 or more streams
>>4 byte &0x40 \b, 8 or more streams
0 beshort 0x4DE1 MPEG-4 LO-EP audio stream
# FLI animation format
4 leshort 0xAF11 FLI file
@ -166,16 +567,31 @@
# SGI formats
0 string MOVI Silicon Graphics movie file
# Apple Quicktime: Scan for all known top-level QT atom markers
4 string moov Apple QuickTime movie file (moov)
4 string mdat Apple QuickTime movie file (mdat)
4 string ftyp Apple QuickTime movie file (ftyp)
4 string free Apple QuickTime movie file (free)
4 string junk Apple QuickTime movie file (junk)
4 string pnot Apple QuickTime movie file (pnot)
4 string skip Apple QuickTime movie file (skip)
4 string wide Apple QuickTime movie file (wide)
4 string pict Apple QuickTime movie file (pict)
# Apple Quicktime and ISO types
4 string moov Apple QuickTime
>12 string mvhd \b movie (fast start)
>12 string mdra \b URL
>12 string cmov \b movie (fast start, compressed header)
>12 string rmra \b multiple URLs
4 string mdat Apple QuickTime movie (unoptimized)
4 string wide Apple QuickTime movie (unoptimized)
4 string skip Apple QuickTime movie (modified)
4 string free Apple QuickTime movie (modified)
4 string idsc Apple QuickTime image (fast start)
4 string idat Apple QuickTime image (unoptimized)
4 string pckg Apple QuickTime compressed archive
4 string/B jP JPEG 2000 image
4 string ftyp ISO Media
>8 string isom \b, MPEG v4 system
>8 string mp41 \b, MPEG v4 system, version 1
>8 string mp42 \b, MPEG v4 system, version 2
>8 string/B jp2 \b, JPEG 2000 image
>8 string 3gp \b, MPEG v4 system, 3GPP (H.263/AMR)
>8 string mmp4 \b, MPEG v4 system, Mobile
>8 string/B M4A \b, MPEG v4 system, iTunes AAC-LC
>8 string/B M4P \b, MPEG v4 system, ISMA encrypted AAC-LC
>8 string/B M4B \b, MPEG v4 system, iTunes AAC-LC/AMR
>8 string/B qt \b, Apple QuickTime movie
# iso 13818 transport stream
#

View File

@ -128,7 +128,9 @@
# version (not tested)]
#0 byte 0x1a RISC OS archive
#>1 string archive (ArcFS format)
0 string \032archive RISC OS archive (ArcFS format)
#0 string \032archive RISC OS archive (ArcFS format)
0 string \032 RISC OS archive (spark format)
0 string Archive\000 RISC OS archive (ArcFS format)
# ARJ archiver (jason@jarthur.Claremont.EDU)
0 leshort 0xea60 ARJ archive data

View File

@ -398,3 +398,14 @@
# From "Simon Hosie
0 string TFMX-SONG TFMX module sound data
# From danny.milo@gmx.net (Danny Milosavljevic)
# monkeysaudio for magic.mime
0 string MAC\ X/Monkey audio,
>4 leshort >0 version %d,
>6 leshort >0 compression level %d,
>8 leshort >0 flags %x,
>10 leshort >0 channels %d,
>12 lelong >0 samplerate %d,
>24 lelong >0 frames %d

View File

@ -153,3 +153,45 @@
# Microsoft Xbox data file formats
0 string XIP0 XIP, Microsoft Xbox data
0 string XTF0 XTF, Microsoft Xbox data
# Atari Lynx cartridge dump (EXE/BLL header)
# From: "Stefan A. Haubenthal" <polluks@web.de>
0 beshort 0x8008 Lynx cartridge,
>2 beshort x RAM start $%04x
>6 string BS93
#------------------------------------------------------------------------------
# Z-machine: file(1) magic for Z-machine binaries.
#
# This will match ${TEX_BASE}/texmf/omega/ocp/char2uni/inbig5.ocp which
# appears to be a version-0 Z-machine binary.
#
# The (false match) message is to correct that behavior. Perhaps it is
# not needed.
#
>16 belong&0xfe00f0f0 0x3030 Infocom game data
>0 ubyte 0 (false match)
>0 ubyte >0 (Z-machine %d,
>>2 ubeshort x Release %d /
>>18 string >\0 Serial %.6s)
#------------------------------------------------------------------------------
# Glulx: file(1) magic for Glulx binaries.
#
# I haven't checked for false matches yet.
#
0 string Glul Glulx game data
# These go at the end of the iff rules
#
# I don't see why these might collide with anything else.
#
# Interactive Fiction related formats
#
>8 string IFRS \b, Blorb Interactive Fiction
>>24 string Exec with executable chunk
>8 string IFZS \b, Z-machine or Glulx saved game file (Quetzal)

View File

@ -104,6 +104,7 @@
>>18 leshort 53 Motorola M68HC12,
>>18 leshort 62 AMD x86-64,
>>18 leshort 75 Digital VAX,
>>18 leshort 88 Renesas M32R,
>>18 leshort 97 NatSemi 32k,
>>18 leshort 0x9026 Alpha (unofficial),
>>20 lelong 0 invalid version
@ -192,6 +193,7 @@
>>18 beshort 53 Motorola M68HC12,
>>18 beshort 73 Cray NV1,
>>18 beshort 75 Digital VAX,
>>18 beshort 88 Renesas M32R,
>>18 beshort 97 NatSemi 32k,
>>18 beshort 0x9026 Alpha (unofficial),
>>18 beshort 0xa390 IBM S/390 (obsolete),

27
contrib/file/Magdir/esri Normal file
View File

@ -0,0 +1,27 @@
#------------------------------------------------------------------------------
# ESRI Shapefile format (.shp .shx .dbf=DBaseIII)
# Based on info from
# <URL:http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf>
0 belong 9994 ESRI Shapefile
>4 belong =0
>8 belong =0
>12 belong =0
>16 belong =0
>20 belong =0
>28 lelong x version %d
>24 belong x length %d
>32 lelong =0 type Null Shape
>32 lelong =1 type Point
>32 lelong =3 type PolyLine
>32 lelong =5 type Polygon
>32 lelong =8 type MultiPoint
>32 lelong =11 type PointZ
>32 lelong =13 type PolyLineZ
>32 lelong =15 type PolygonZ
>32 lelong =18 type MultiPointZ
>32 lelong =21 type PointM
>32 lelong =23 type PolyLineM
>32 lelong =25 type PolygonM
>32 lelong =28 type MultiPointM
>32 lelong =31 type MultiPatch

View File

@ -126,6 +126,9 @@
>>>>>>71 string =NO\ NAME \b, unlabeled
### FATs end
>0x200 lelong 0x82564557 \b, BSD disklabel
# FATX
0 string FATX FATX filesystem data
# Minix filesystems - Juan Cespedes <cespedes@debian.org>
0x410 leshort 0x137f Minix filesystem

View File

@ -172,3 +172,9 @@
# 0 lelong&0xFF00FFFF 0xC000301 ld86 NS16K executable
# 0 lelong&0xFF00FFFF 0x17000301 ld86 SPARC executable
# SYSLINUX boot logo files (from 'ppmtolss16' sources)
# http://syslinux.zytor.com/
#
0 lelong =0x1413f33d SYSLINUX' LSS16 image data
>4 leshort x \b, width %d
>6 leshort x \b, height %d

View File

@ -149,6 +149,16 @@
0 string regf Windows NT registry file
0 string CREG Windows 95 registry file
# AAF files:
# <stuartc@rd.bbc.co.uk> Stuart Cunningham
0 string \320\317\021\340\241\261\032\341AAFB\015\000OM\006\016\053\064\001\001\001\377 AAF legacy file using MS Structured Storage
>30 byte 9 (512B sectors)
>30 byte 12 (4kB sectors)
0 string \320\317\021\340\241\261\032\341\001\002\001\015\000\002\000\000\006\016\053\064\003\002\001\001 AAF file using MS Structured Storage
>30 byte 9 (512B sectors)
>30 byte 12 (4kB sectors)
# Popular applications
2080 string Microsoft\ Word\ 6.0\ Document %s
2080 string Documento\ Microsoft\ Word\ 6 Spanish Microsoft Word 6 document data
@ -374,3 +384,23 @@
>4 byte =0xC6 Folder database
>4 byte =0xC7 Accounts informations
>4 byte =0x30 Offline database
# Windows Enhanced Metafile (EMF)
# See msdn.microsoft.com/archive/en-us/dnargdi/html/msdn_enhmeta.asp
# for further information. Note that "0 lelong 1" should be true i.e.
# the first double word in the file should be 1. With the extended
# syntax available by some file commands you could write:
# 0 lelong 1
# &40 ulelong 0x464D4520 Windows Enhanced Metafile (EMF) image data
40 ulelong 0x464D4520 Windows Enhanced Metafile (EMF) image data
>44 ulelong x version 0x%x.
# If the description has a length greater than zero, it exists and is
# found at offset (*64).
>64 ulelong >0 Description available at offset 0x%x
>>60 ulelong >0 (length 0x%x)
# Note it would be better to print out the description, which is found
# as below. Unfortunately the following only prints out the first couple
# of characters instead of all the "description length"
# number of characters -- indicated by the ulelong at offset 60.
>>(64.l) lestring16 >0 Description: %15.15s

View File

@ -37,10 +37,10 @@
>6 byte&0x0f 0x00 non-executable
>6 byte&0x0f 0x01 machine language
>6 byte&0x0f 0x02 BASIC I-code
>6 byte&0x0f 0x03 P-code
>6 byte&0x0f 0x03 Pascal P-code
>6 byte&0x0f 0x04 C I-code
>6 byte&0x0f 0x05 COBOL I-code
>6 byte&0x0f 0x06 FORTRAN I-code
>6 byte&0x0f 0x06 Fortran I-code
#
>6 byte&0xf0 0x10 program executable
>6 byte&0xf0 0x20 subroutine
@ -57,28 +57,28 @@
0 beshort 0x4AFC OS9/68K module:
#
# attr
>14 byte&0x80 0x80 re-entrant
>14 byte&0x40 0x40 ghost
>14 byte&0x20 0x20 system-state
>0x14 byte&0x80 0x80 re-entrant
>0x14 byte&0x40 0x40 ghost
>0x14 byte&0x20 0x20 system-state
#
# lang:
#
>13 byte 1 machine language
>13 byte 2 BASIC I-code
>13 byte 3 P-code
>13 byte 4 C I-code
>13 byte 5 COBOL I-code
>13 byte 6 Fortran I-code
>0x13 byte 1 machine language
>0x13 byte 2 BASIC I-code
>0x13 byte 3 Pascal P-code
>0x13 byte 4 C I-code
>0x13 byte 5 COBOL I-code
>0x13 byte 6 Fortran I-code
#
#
# type:
#
>12 byte 1 program executable
>12 byte 2 subroutine
>12 byte 3 multi-module
>12 byte 4 data module
>12 byte 11 trap library
>12 byte 12 system module
>12 byte 13 file manager
>12 byte 14 device driver
>12 byte 15 device descriptor
>0x12 byte 1 program executable
>0x12 byte 2 subroutine
>0x12 byte 3 multi-module
>0x12 byte 4 data module
>0x12 byte 11 trap library
>0x12 byte 12 system module
>0x12 byte 13 file manager
>0x12 byte 14 device driver
>0x12 byte 15 device descriptor

View File

@ -17,3 +17,17 @@
# XXX: christos matches
#0 regex package Perl5 module source text (via regex)
0 string package Perl5 module source text
# Perl Storable data files.
0 string perl-store perl Storable(v0.6) data
>4 byte >0 (net-order %d)
>>4 byte &01 (network-ordered)
>>4 byte =3 (major 1)
>>4 byte =2 (major 1)
0 string pst0 perl Storable(v0.7) data
>4 byte >0
>>4 byte &01 (network-ordered)
>>4 byte =5 (major 2)
>>4 byte =4 (major 2)
>>5 byte >0 (minor %d)

View File

@ -1,4 +1,17 @@
#------------------------------------------------------------------------------
# plan9: file(1) magic for AT&T Bell Labs' Plan 9 executables
# From: "Stefan A. Haubenthal" <polluks@web.de>
#
0 belong 0x000001EB Plan 9 executable
0 belong 0x00000107 Plan 9 executable, Motorola 68k
0 belong 0x000001EB Plan 9 executable, Intel 386
0 belong 0x00000247 Plan 9 executable, Intel 960
0 belong 0x000002AB Plan 9 executable, SPARC
0 belong 0x00000407 Plan 9 executable, MIPS R3000
0 belong 0x0000048B Plan 9 executable, AT&T DSP 3210
0 belong 0x00000517 Plan 9 executable, MIPS R4000 BE
0 belong 0x000005AB Plan 9 executable, AMD 29000
0 belong 0x00000647 Plan 9 executable, ARM 7-something
0 belong 0x000006EB Plan 9 executable, PowerPC
0 belong 0x00000797 Plan 9 executable, MIPS R4000 LE
0 belong 0x0000084B Plan 9 executable, DEC Alpha

View File

@ -30,97 +30,15 @@
# Sinclair QL firmware executables (ThMO)
0 string NqNqNq`\004 QL firmware executable (BCPL)
# Sinclair QL libraries (ThMO)
0 beshort =0xFB01 QL library archive data
# Sinclair QL libraries (was ThMO)
0 beshort 0xFB01 QDOS object
>2 pstring x '%s'
# Sinclair QL executbables (ThMO)
6 beshort =0x4AFB QL executable,
>10 string =\0 un-named
>8 beshort =1
>>10 string >\0 named: %.1s
>8 beshort =2
>>10 string >\0 named: %.2s
>8 beshort =3
>>10 string >\0 named: %.3s
>8 beshort =4
>>10 string >\0 named: %.4s
>8 beshort =5
>>10 string >\0 named: %.5s
>8 beshort =6
>>10 string >\0 named: %.6s
>8 beshort =7
>>10 string >\0 named: %.7s
>8 beshort =8
>>10 string >\0 named: %.8s
>8 beshort =9
>>10 string >\0 named: %.9s
>8 beshort =10
>>10 string >\0 named: %.10s
>8 beshort =11
>>10 string >\0 named: %.11s
>8 beshort =12
>>10 string >\0 named: %.12s
>8 beshort =13
>>10 string >\0 named: %.13s
>8 beshort =14
>>10 string >\0 named: %.14s
>8 beshort =15
>>10 string >\0 named: %.15s
>8 beshort =16
>>10 string >\0 named: %.16s
>8 beshort =17
>>10 string >\0 named: %.17s
>8 beshort =18
>>10 string >\0 named: %.18s
>8 beshort =19
>>10 string >\0 named: %.19s
>8 beshort =20
>>10 string >\0 named: %.20s
>8 beshort >20
>>10 string >\0 (truncated) named: %.20s
# Sinclair QL executables (was ThMO)
4 belong 0x4AFB QDOS executable
>9 pstring x '%s'
# Sinclair QL rom (ThMO)
# Sinclair QL ROM (ThMO)
0 belong =0x4AFB0001 QL plugin-ROM data,
>10 string =\0 un-named
>8 beshort =1
>>10 string >\0 named: %.1s
>8 beshort =2
>>10 string >\0 named: %.2s
>8 beshort =3
>>10 string >\0 named: %.3s
>8 beshort =4
>>10 string >\0 named: %.4s
>8 beshort =5
>>10 string >\0 named: %.5s
>8 beshort =6
>>10 string >\0 named: %.6s
>8 beshort =7
>>10 string >\0 named: %.7s
>8 beshort =8
>>10 string >\0 named: %.8s
>8 beshort =9
>>10 string >\0 named: %.9s
>8 beshort =10
>>10 string >\0 named: %.10s
>8 beshort =11
>>10 string >\0 named: %.11s
>8 beshort =12
>>10 string >\0 named: %.12s
>8 beshort =13
>>10 string >\0 named: %.13s
>8 beshort =14
>>10 string >\0 named: %.14s
>8 beshort =15
>>10 string >\0 named: %.15s
>8 beshort =16
>>10 string >\0 named: %.16s
>8 beshort =17
>>10 string >\0 named: %.17s
>8 beshort =18
>>10 string >\0 named: %.18s
>8 beshort =19
>>10 string >\0 named: %.19s
>8 beshort =20
>>10 string >\0 named: %.20s
>8 beshort >20
>>10 string >\0 (truncated) named: %.20s
>9 pstring =\0 un-named
>9 pstring >\0 named: %s

View File

@ -32,6 +32,7 @@
#
# Network General Sniffer capture files.
# Sorry, make that "Network Associates Sniffer capture files."
# Sorry, make that "Network General old DOS Sniffer capture files."
#
0 string TRSNIFF\ data\ \ \ \ \032 Sniffer capture file
>33 byte 2 (compressed)
@ -54,6 +55,7 @@
# Sorry, make that "Network Associates Sniffer Basic capture files."
# Sorry, make that "Network Associates Sniffer Basic, and Windows
# Sniffer Pro", capture files."
# Sorry, make that "Network General Sniffer capture files."
#
0 string XCP\0 NetXRay capture file
>4 string >\0 - version %s
@ -88,8 +90,10 @@
>20 belong 12 (raw IP
>20 belong 13 (BSD/OS SLIP
>20 belong 14 (BSD/OS PPP
>20 belong 19 (Linux ATM Classical IP
>20 belong 50 (PPP or Cisco HDLC
>20 belong 51 (PPP-over-Ethernet
>20 belong 99 (Symantec Enterprise Firewall
>20 belong 100 (RFC 1483 ATM
>20 belong 101 (raw IP
>20 belong 102 (BSD/OS SLIP
@ -105,13 +109,32 @@
>20 belong 114 (LocalTalk
>20 belong 117 (OpenBSD PFLOG
>20 belong 119 (802.11 with Prism header
>20 belong 122 (RFC 2625 IP over Fibre Channel
>20 belong 123 (SunATM
>20 belong 127 (802.11 with radiotap header
>20 belong 129 (Linux ARCNET
>20 belong 138 (Apple IP over IEEE 1394
>20 belong 140 (MTP2
>20 belong 141 (MTP3
>20 belong 143 (DOCSIS
>20 belong 144 (IrDA
>20 belong 147 (Private use 0
>20 belong 148 (Private use 1
>20 belong 149 (Private use 2
>20 belong 150 (Private use 3
>20 belong 151 (Private use 4
>20 belong 152 (Private use 5
>20 belong 153 (Private use 6
>20 belong 154 (Private use 7
>20 belong 155 (Private use 8
>20 belong 156 (Private use 9
>20 belong 157 (Private use 10
>20 belong 158 (Private use 11
>20 belong 159 (Private use 12
>20 belong 160 (Private use 13
>20 belong 161 (Private use 14
>20 belong 162 (Private use 15
>20 belong 163 (802.11 with AVS header
>16 belong x \b, capture length %d)
0 ulelong 0xa1b2c3d4 tcpdump capture file (little-endian)
>4 leshort x - version %d
@ -131,8 +154,10 @@
>20 lelong 12 (raw IP
>20 lelong 13 (BSD/OS SLIP
>20 lelong 14 (BSD/OS PPP
>20 lelong 19 (Linux ATM Classical IP
>20 lelong 50 (PPP or Cisco HDLC
>20 lelong 51 (PPP-over-Ethernet
>20 lelong 99 (Symantec Enterprise Firewall
>20 lelong 100 (RFC 1483 ATM
>20 lelong 101 (raw IP
>20 lelong 102 (BSD/OS SLIP
@ -142,19 +167,38 @@
>20 lelong 106 (Linux Classical IP over ATM
>20 lelong 107 (Frame Relay
>20 lelong 108 (OpenBSD loopback
>20 lelong 109 (OpenBSD IPSEC encrypted
>20 lelong 109 (OpenBSD IPsec encrypted
>20 lelong 112 (Cisco HDLC
>20 lelong 113 (Linux "cooked"
>20 lelong 114 (LocalTalk
>20 lelong 117 (OpenBSD PFLOG
>20 lelong 119 (802.11 with Prism header
>20 lelong 122 (RFC 2625 IP over Fibre Channel
>20 lelong 123 (SunATM
>20 lelong 127 (802.11 with radiotap header
>20 lelong 129 (Linux ARCNET
>20 lelong 138 (Apple IP over IEEE 1394
>20 lelong 140 (MTP2
>20 lelong 141 (MTP3
>20 lelong 143 (DOCSIS
>20 lelong 144 (IrDA
>20 lelong 147 (Private use 0
>20 lelong 148 (Private use 1
>20 lelong 149 (Private use 2
>20 lelong 150 (Private use 3
>20 lelong 151 (Private use 4
>20 lelong 152 (Private use 5
>20 lelong 153 (Private use 6
>20 lelong 154 (Private use 7
>20 lelong 155 (Private use 8
>20 lelong 156 (Private use 9
>20 lelong 157 (Private use 10
>20 lelong 158 (Private use 11
>20 lelong 159 (Private use 12
>20 lelong 160 (Private use 13
>20 lelong 161 (Private use 14
>20 lelong 162 (Private use 15
>20 lelong 163 (802.11 with AVS header
>16 lelong x \b, capture length %d)
#
@ -231,3 +275,23 @@
#
0 string NetS NetStumbler log file
>8 lelong x \b, %d stations found
#
# EtherPeek/AiroPeek "version 9" capture files.
#
0 string \177ver EtherPeek/AiroPeek capture file
#
# Visual Networks traffic capture files.
#
0 string \x05VNF Visual Networks traffic capture file
#
# Network Instruments Observer capture files.
#
0 string ObserverPktBuffe Network Instruments Observer capture file
#
# Files from Accellent Group's 5View products.
#
0 string \xaa\xaa\xaa\xaa 5View capture file

View File

@ -55,41 +55,17 @@
# file(1) magic for BibTex text files
# From Hendrik Scholz <hendrik@scholz.net>
0 string @article{ BibTex text file
0 string @book{ BibTex text file
0 string @inbook{ BibTex text file
0 string @incollection{ BibTex text file
0 string @inproceedings{ BibTex text file
0 string @manual{ BibTex text file
0 string @misc{ BibTex text file
0 string @preamble{ BibTex text file
0 string @phdthesis{ BibTex text file
0 string @techreport{ BibTex text file
0 string @unpublished{ BibTex text file
0 string @Article{ BibTex text file
0 string @Book{ BibTex text file
0 string @Inbook{ BibTex text file
0 string @Incollection{ BibTex text file
0 string @Inproceedings{ BibTex text file
0 string @Manual{ BibTex text file
0 string @Misc{ BibTex text file
0 string @Preamble{ BibTex text file
0 string @Phdthesis{ BibTex text file
0 string @Techreport{ BibTex text file
0 string @Unpublished{ BibTex text file
0 string @ARTICLE{ BibTex text file
0 string @BOOK{ BibTex text file
0 string @INBOOK{ BibTex text file
0 string @INCOLLECTION{ BibTex text file
0 string @INPROCEEDINGS{ BibTex text file
0 string @MANUAL{ BibTex text file
0 string @MISC{ BibTex text file
0 string @PREAMBLE{ BibTex text file
0 string @PHDTHESIS{ BibTex text file
0 string @TECHREPORT{ BibTex text file
0 string @UNPUBLISHED{ BibTex text file
0 string/c @article{ BibTeX text file
0 string/c @book{ BibTeX text file
0 string/c @inbook{ BibTeX text file
0 string/c @incollection{ BibTeX text file
0 string/c @inproceedings{ BibTeX text file
0 string/c @manual{ BibTeX text file
0 string/c @misc{ BibTeX text file
0 string/c @preamble{ BibTeX text file
0 string/c @phdthesis{ BibTeX text file
0 string/c @techreport{ BibTeX text file
0 string/c @unpublished{ BibTeX text file
73 string %%%\ \ BibTeX-file{ BibTex text file (with full header)

View File

@ -0,0 +1,10 @@
#------------------------------------------------------------------------------
# Virtutech Compressed Random Access File Format
#
# From <gustav@virtutech.com>
0 string \211\277\036\203 Virtutech CRAFF
>4 belong x v%d
>20 belong 0 uncompressed
>20 belong 1 bzipp2ed
>20 belong 2 gzipped
>24 belong 0 not clean

29
contrib/file/Magdir/xo65 Normal file
View File

@ -0,0 +1,29 @@
#------------------------------------------------------------------------------
# xo65 object files
# From: "Ullrich von Bassewitz" <uz@cc65.org>
#
0 string \x55\x7A\x6E\x61 xo65 object,
>4 leshort x version %d,
>6 leshort&0x0001 =0x0001 with debug info
>6 leshort&0x0001 =0x0000 no debug info
# xo65 library files
0 string \x6E\x61\x55\x7A xo65 library,
>4 leshort x version %d
# o65 object files
0 string \x01\x00\x6F\x36\x35 o65
>6 leshort&0x1000 =0x0000 executable,
>6 leshort&0x1000 =0x1000 object,
>5 byte x version %d,
>6 leshort&0x8000 =0x8000 65816,
>6 leshort&0x8000 =0x0000 6502,
>6 leshort&0x2000 =0x2000 32 bit,
>6 leshort&0x2000 =0x0000 16 bit,
>6 leshort&0x4000 =0x4000 page reloc,
>6 leshort&0x4000 =0x0000 byte reloc,
>6 leshort&0x0003 =0x0000 alignment 1
>6 leshort&0x0003 =0x0001 alignment 2
>6 leshort&0x0003 =0x0002 alignment 4
>6 leshort&0x0003 =0x0003 alignment 256

View File

@ -67,11 +67,11 @@ Magdir/diff \
Magdir/digital \
Magdir/dolby \
Magdir/dump \
Magdir/dyadic \
Magdir/editors \
Magdir/elf \
Magdir/encore \
Magdir/epoc \
Magdir/esri \
Magdir/fcs \
Magdir/filesystems \
Magdir/flash \
@ -169,6 +169,7 @@ Magdir/sinclair \
Magdir/sketch \
Magdir/smalltalk \
Magdir/sniffer \
Magdir/dyadic \
Magdir/softquad \
Magdir/spectrum \
Magdir/sql \
@ -189,6 +190,7 @@ Magdir/varied.out \
Magdir/varied.script \
Magdir/vax \
Magdir/vicar \
Magdir/virtutech \
Magdir/visx \
Magdir/vms \
Magdir/vmware \
@ -197,6 +199,7 @@ Magdir/vxl \
Magdir/wordprocessors \
Magdir/xdelta \
Magdir/xenix \
Magdir/xo65 \
Magdir/xwindows \
Magdir/zilog \
Magdir/zyxel

View File

@ -1,7 +1,7 @@
# Makefile.in generated by automake 1.7.9 from Makefile.am.
# Makefile.in generated by automake 1.6.3 from Makefile.am.
# @configure_input@
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
# Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
@ -13,115 +13,77 @@
# PARTICULAR PURPOSE.
@SET_MAKE@
SHELL = @SHELL@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
sbindir = @sbindir@
libexecdir = @libexecdir@
datadir = @datadir@
sysconfdir = @sysconfdir@
sharedstatedir = @sharedstatedir@
localstatedir = @localstatedir@
libdir = @libdir@
infodir = @infodir@
mandir = @mandir@
includedir = @includedir@
oldincludedir = /usr/include
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
ACLOCAL = @ACLOCAL@
AUTOCONF = @AUTOCONF@
AUTOMAKE = @AUTOMAKE@
AUTOHEADER = @AUTOHEADER@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
transform = @program_transform_name@
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
host_alias = @host_alias@
host_triplet = @host@
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
EXEEXT = @EXEEXT@
OBJEXT = @OBJEXT@
PATH_SEPARATOR = @PATH_SEPARATOR@
AMTAR = @AMTAR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AS = @AS@
AWK = @AWK@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
FSECT5_FALSE = @FSECT5_FALSE@
FSECT5_TRUE = @FSECT5_TRUE@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
DLLTOOL = @DLLTOOL@
ECHO = @ECHO@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
OBJEXT = @OBJEXT@
OBJDUMP = @OBJDUMP@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
RANLIB = @RANLIB@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
ac_ct_CC = @ac_ct_CC@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
exec_prefix = @exec_prefix@
fsect = @fsect@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
pkgdata_DATA = magic magic.mime magic.mgc magic.mime.mgc
EXTRA_DIST = magic2mime Localstuff Header magic.mime $(magic_FRAGMENTS)
@ -174,11 +136,11 @@ Magdir/diff \
Magdir/digital \
Magdir/dolby \
Magdir/dump \
Magdir/dyadic \
Magdir/editors \
Magdir/elf \
Magdir/encore \
Magdir/epoc \
Magdir/esri \
Magdir/fcs \
Magdir/filesystems \
Magdir/flash \
@ -276,6 +238,7 @@ Magdir/sinclair \
Magdir/sketch \
Magdir/smalltalk \
Magdir/sniffer \
Magdir/dyadic \
Magdir/softquad \
Magdir/spectrum \
Magdir/sql \
@ -296,6 +259,7 @@ Magdir/varied.out \
Magdir/varied.script \
Magdir/vax \
Magdir/vicar \
Magdir/virtutech \
Magdir/visx \
Magdir/vms \
Magdir/vmware \
@ -304,26 +268,26 @@ Magdir/vxl \
Magdir/wordprocessors \
Magdir/xdelta \
Magdir/xenix \
Magdir/xo65 \
Magdir/xwindows \
Magdir/zilog \
Magdir/zyxel
subdir = magic
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
DIST_SOURCES =
DATA = $(pkgdata_DATA)
DIST_COMMON = $(srcdir)/Makefile.in Makefile.am
DIST_COMMON = Makefile.am Makefile.in
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu magic/Makefile
Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)
mostlyclean-libtool:
@ -356,9 +320,6 @@ uninstall-pkgdataDATA:
tags: TAGS
TAGS:
ctags: CTAGS
CTAGS:
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
top_distdir = ..
@ -366,13 +327,7 @@ distdir = $(top_distdir)/$(PACKAGE)-$(VERSION)
distdir: $(DISTFILES)
$(mkinstalldirs) $(distdir)/Magdir
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
@list='$(DISTFILES)'; for file in $$list; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
@ -398,6 +353,7 @@ all-am: Makefile $(DATA)
installdirs:
$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
install: install-am
install-exec: install-exec-am
install-data: install-data-am
@ -409,7 +365,7 @@ install-am: all-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@ -418,7 +374,7 @@ clean-generic:
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
distclean-generic:
-rm -f $(CONFIG_CLEAN_FILES)
-rm -f Makefile $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@ -428,7 +384,7 @@ clean: clean-am
clean-am: clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic distclean-libtool
dvi: dvi-am
@ -450,21 +406,13 @@ install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-info-am uninstall-pkgdataDATA
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
@ -474,8 +422,8 @@ uninstall-am: uninstall-info-am uninstall-pkgdataDATA
install-info-am install-man install-pkgdataDATA install-strip \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
uninstall-info-am uninstall-pkgdataDATA
mostlyclean-libtool uninstall uninstall-am uninstall-info-am \
uninstall-pkgdataDATA
magic: Header Localstuff $(magic_FRAGMENTS)

0
contrib/file/PORTING Normal file
View File

3266
contrib/file/aclocal.m4 vendored

File diff suppressed because it is too large Load Diff

View File

@ -12,11 +12,6 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by Ian F. Darwin and others.
* 4. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@ -50,7 +45,7 @@
#endif
#ifndef lint
FILE_RCSID("@(#)$Id: apprentice.c,v 1.78 2004/07/24 20:38:56 christos Exp $")
FILE_RCSID("@(#)$Id: apprentice.c,v 1.82 2004/11/24 18:56:04 christos Exp $")
#endif /* lint */
#define EATAB {while (isascii((unsigned char) *l) && \
@ -79,6 +74,9 @@ FILE_RCSID("@(#)$Id: apprentice.c,v 1.78 2004/07/24 20:38:56 christos Exp $")
#define MAXPATHLEN 1024
#endif
#define IS_STRING(t) ((t) == FILE_STRING || (t) == FILE_PSTRING || \
(t) == FILE_BESTRING16 || (t) == FILE_LESTRING16)
private int getvalue(struct magic_set *ms, struct magic *, char **);
private int hextoint(int);
private char *getstr(struct magic_set *, char *, char *, int, int *);
@ -91,12 +89,12 @@ private void byteswap(struct magic *, uint32_t);
private void bs1(struct magic *);
private uint16_t swap2(uint16_t);
private uint32_t swap4(uint32_t);
private char *mkdbname(const char *, char *, size_t);
private char *mkdbname(const char *, char *, size_t, int);
private int apprentice_map(struct magic_set *, struct magic **, uint32_t *,
const char *);
private int apprentice_compile(struct magic_set *, struct magic **, uint32_t *,
const char *);
private int check_format(struct magic *);
private int check_format(struct magic_set *, struct magic *);
private size_t maxmagic = 0;
private size_t magicsize = sizeof(struct magic);
@ -166,7 +164,7 @@ apprentice_1(struct magic_set *ms, const char *fn, int action,
#ifndef COMPILE_ONLY
if ((rv = apprentice_map(ms, &magic, &nmagic, fn)) == -1) {
if (ms->flags & MAGIC_CHECK)
file_magwarn("using regular magic file `%s'", fn);
file_magwarn(ms, "using regular magic file `%s'", fn);
rv = apprentice_file(ms, &magic, &nmagic, fn, action);
if (rv != 0)
return -1;
@ -297,10 +295,9 @@ apprentice_file(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp,
"cont\toffset\ttype\topcode\tmask\tvalue\tdesc";
FILE *f;
char line[BUFSIZ+1];
int lineno;
int errs = 0;
f = fopen(fn, "r");
f = fopen(ms->file = fn, "r");
if (f == NULL) {
if (errno != ENOENT)
file_error(ms, errno, "cannot read magic file `%s'",
@ -321,12 +318,14 @@ apprentice_file(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp,
(void)fprintf(stderr, "%s\n", hdr);
/* parse it */
for (lineno = 1; fgets(line, BUFSIZ, f) != NULL; lineno++) {
for (ms->line = 1; fgets(line, BUFSIZ, f) != NULL; ms->line++) {
size_t len;
if (line[0]=='#') /* comment, do not parse */
continue;
if (strlen(line) <= (unsigned)1) /* null line, garbage, etc */
len = strlen(line);
if (len < 2) /* null line, garbage, etc */
continue;
line[strlen(line)-1] = '\0'; /* delete newline */
line[len - 1] = '\0'; /* delete newline */
if (parse(ms, magicp, nmagicp, line, action) != 0)
errs = 1;
}
@ -374,12 +373,14 @@ file_signextend(struct magic_set *ms, struct magic *m, uint32_t v)
break;
case FILE_STRING:
case FILE_PSTRING:
case FILE_BESTRING16:
case FILE_LESTRING16:
break;
case FILE_REGEX:
break;
default:
if (ms->flags & MAGIC_CHECK)
file_magwarn("cannot happen: m->type=%d\n",
file_magwarn(ms, "cannot happen: m->type=%d\n",
m->type);
return ~0U;
}
@ -435,7 +436,7 @@ parse(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp, char *l,
m->offset = (uint32_t)strtoul(l, &t, 0);
if (l == t)
if (ms->flags & MAGIC_CHECK)
file_magwarn("offset %s invalid", l);
file_magwarn(ms, "offset `%s' invalid", l);
l = t;
if (m->flag & INDIR) {
@ -469,8 +470,8 @@ parse(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp, char *l,
break;
default:
if (ms->flags & MAGIC_CHECK)
file_magwarn(
"indirect offset type %c invalid",
file_magwarn(ms,
"indirect offset type `%c' invalid",
*l);
break;
}
@ -520,7 +521,8 @@ parse(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp, char *l,
t = l;
if (*t++ != ')')
if (ms->flags & MAGIC_CHECK)
file_magwarn("missing ')' in indirect offset");
file_magwarn(ms,
"missing ')' in indirect offset");
l = t;
}
@ -545,6 +547,8 @@ parse(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp, char *l,
#define NBELDATE 7
#define NLELDATE 7
#define NREGEX 5
#define NBESTRING16 10
#define NLESTRING16 10
if (*l == 'u') {
++l;
@ -602,23 +606,28 @@ parse(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp, char *l,
l += NLELDATE;
} else if (strncmp(l, "regex", NREGEX)==0) {
m->type = FILE_REGEX;
l += sizeof("regex");
l += NREGEX;
} else if (strncmp(l, "bestring16", NBESTRING16)==0) {
m->type = FILE_BESTRING16;
l += NBESTRING16;
} else if (strncmp(l, "lestring16", NLESTRING16)==0) {
m->type = FILE_LESTRING16;
l += NLESTRING16;
} else {
if (ms->flags & MAGIC_CHECK)
file_magwarn("type %s invalid", l);
file_magwarn(ms, "type `%s' invalid", l);
return -1;
}
/* New-style anding: "0 byte&0x80 =0x80 dynamically linked" */
/* New and improved: ~ & | ^ + - * / % -- exciting, isn't it? */
if (*l == '~') {
if (FILE_STRING != m->type && FILE_PSTRING != m->type)
if (!IS_STRING(m->type))
m->mask_op = FILE_OPINVERSE;
++l;
}
if ((t = strchr(fops, *l)) != NULL) {
uint32_t op = (uint32_t)(t - fops);
if (op != FILE_OPDIVIDE ||
(FILE_STRING != m->type && FILE_PSTRING != m->type)) {
if (op != FILE_OPDIVIDE || !IS_STRING(m->type)) {
++l;
m->mask_op |= op;
val = (uint32_t)strtoul(l, &l, 0);
@ -640,8 +649,8 @@ parse(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp, char *l,
break;
default:
if (ms->flags & MAGIC_CHECK)
file_magwarn(
"string extension %c invalid",
file_magwarn(ms,
"string extension `%c' invalid",
*l);
return -1;
}
@ -669,7 +678,7 @@ parse(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp, char *l,
}
break;
case '!':
if (m->type != FILE_STRING && m->type != FILE_PSTRING) {
if (!IS_STRING(m->type)) {
m->reln = *l;
++l;
break;
@ -713,7 +722,7 @@ parse(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp, char *l,
/* NULLBODY */;
if (ms->flags & MAGIC_CHECK) {
if (!check_format(m))
if (!check_format(ms, m))
return -1;
}
#ifndef COMPILE_ONLY
@ -730,7 +739,7 @@ parse(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp, char *l,
* the type of the magic.
*/
private int
check_format(struct magic *m)
check_format(struct magic_set *ms, struct magic *m)
{
static const char *formats[] = { FILE_FORMAT_STRING };
static const char *names[] = { FILE_FORMAT_NAME };
@ -744,13 +753,13 @@ check_format(struct magic *m)
return 1;
}
if (m->type >= sizeof(formats)/sizeof(formats[0])) {
file_magwarn("Internal error inconsistency between m->type"
file_magwarn(ms, "Internal error inconsistency between m->type"
" and format strings");
return 0;
}
if (formats[m->type] == NULL) {
file_magwarn("No format string for `%s' with description `%s'",
m->desc, names[m->type]);
file_magwarn(ms, "No format string for `%s' with description "
"`%s'", m->desc, names[m->type]);
return 0;
}
for (; *ptr; ptr++) {
@ -763,12 +772,12 @@ check_format(struct magic *m)
}
if (*ptr == '\0') {
/* Missing format string; bad */
file_magwarn("Invalid format `%s' for type `%s'",
file_magwarn(ms, "Invalid format `%s' for type `%s'",
m->desc, names[m->type]);
return 0;
}
if (strchr(formats[m->type], *ptr) == NULL) {
file_magwarn("Printf format `%c' is not valid for type `%s'"
file_magwarn(ms, "Printf format `%c' is not valid for type `%s'"
" in description `%s'",
*ptr, names[m->type], m->desc);
return 0;
@ -787,13 +796,15 @@ getvalue(struct magic_set *ms, struct magic *m, char **p)
int slen;
switch (m->type) {
case FILE_BESTRING16:
case FILE_LESTRING16:
case FILE_STRING:
case FILE_PSTRING:
case FILE_REGEX:
*p = getstr(ms, *p, m->value.s, sizeof(m->value.s), &slen);
if (*p == NULL) {
if (ms->flags & MAGIC_CHECK)
file_magwarn("cannot get string from `%s'",
file_magwarn(ms, "cannot get string from `%s'",
m->value.s);
return -1;
}
@ -1025,7 +1036,7 @@ apprentice_map(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp,
uint32_t version;
int needsbyteswap;
char buf[MAXPATHLEN];
char *dbname = mkdbname(fn, buf, sizeof(buf));
char *dbname = mkdbname(fn, buf, sizeof(buf), 0);
void *mm = NULL;
if (dbname == NULL)
@ -1116,7 +1127,7 @@ apprentice_compile(struct magic_set *ms, struct magic **magicp,
{
int fd;
char buf[MAXPATHLEN];
char *dbname = mkdbname(fn, buf, sizeof(buf));
char *dbname = mkdbname(fn, buf, sizeof(buf), 1);
if (dbname == NULL)
return -1;
@ -1152,13 +1163,14 @@ private const char ext[] = ".mgc";
* make a dbname
*/
private char *
mkdbname(const char *fn, char *buf, size_t bufsiz)
mkdbname(const char *fn, char *buf, size_t bufsiz, int strip)
{
#ifdef notdef
const char *p;
if ((p = strrchr(fn, '/')) != NULL)
fn = ++p;
#endif
if (strip) {
const char *p;
if ((p = strrchr(fn, '/')) != NULL)
fn = ++p;
}
(void)snprintf(buf, bufsiz, "%s%s", fn, ext);
return buf;
}
@ -1213,7 +1225,7 @@ bs1(struct magic *m)
m->cont_level = swap2(m->cont_level);
m->offset = swap4((uint32_t)m->offset);
m->in_offset = swap4((uint32_t)m->in_offset);
if (m->type != FILE_STRING)
if (IS_STRING(m->type))
m->value.l = swap4(m->value.l);
m->mask = swap4(m->mask);
}

View File

@ -12,11 +12,6 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by Ian F. Darwin and others.
* 4. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@ -54,7 +49,7 @@
#include "names.h"
#ifndef lint
FILE_RCSID("@(#)$Id: ascmagic.c,v 1.40 2003/11/20 00:25:39 christos Exp $")
FILE_RCSID("@(#)$Id: ascmagic.c,v 1.41 2004/09/11 19:15:57 christos Exp $")
#endif /* lint */
typedef unsigned long unichar;

View File

@ -12,11 +12,6 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by Ian F. Darwin and others.
* 4. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@ -55,7 +50,7 @@
#endif
#ifndef lint
FILE_RCSID("@(#)$Id: compress.c,v 1.37 2004/07/24 21:00:56 christos Exp $")
FILE_RCSID("@(#)$Id: compress.c,v 1.38 2004/09/11 19:15:57 christos Exp $")
#endif

View File

@ -1,64 +1,16 @@
/* config.h.in. Generated from configure.in by autoheader. */
/* Autoheader needs me */
#undef PACKAGE
/* Autoheader needs me */
#undef VERSION
/* Define if builtin ELF support is enabled. */
/* Use the builtin ELF recognition code */
#undef BUILTIN_ELF
/* Define if ELF core file support is enabled. */
/* Recognize ELF core files */
#undef ELFCORE
/* Define if the `long long' type works. */
#undef HAVE_LONG_LONG
/* Define if we have "tm_zone" in "struct tm". */
#undef HAVE_TM_ZONE
/* Define if we have a global "char * []" "tzname" variable. */
#undef HAVE_TZNAME
/* Define if we have "tm_isdst" in "struct tm". */
#undef HAVE_TM_ISDST
/* Define if we have a global "int" variable "daylight". */
/* */
#undef HAVE_DAYLIGHT
/* Define if we have a mkstemp */
#undef HAVE_MKSTEMP
/* Define to `unsigned char' if standard headers don't define. */
#undef uint8_t
/* Define to `unsigned short' if standard headers don't define. */
#undef uint16_t
/* Define to `unsigned int' if standard headers don't define. */
#undef uint32_t
/* Define to `unsigned long long', if available, or `unsigned long', if
standard headers don't define. */
#undef uint64_t
/* Define to `int' if standard headers don't define. */
#undef int32_t
/* FIXME: These have to be added manually because autoheader doesn't know
about AC_CHECK_SIZEOF_INCLUDES. */
/* The number of bytes in a uint8_t. */
#define SIZEOF_UINT8_T 0
/* The number of bytes in a uint16_t. */
#define SIZEOF_UINT16_T 0
/* The number of bytes in a uint32_t. */
#define SIZEOF_UINT32_T 0
/* The number of bytes in a uint64_t. */
#define SIZEOF_UINT64_T 0
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
/* Define to 1 if you have the <fcntl.h> header file. */
#undef HAVE_FCNTL_H
@ -78,6 +30,9 @@
/* Define to 1 if you have the <locale.h> header file. */
#undef HAVE_LOCALE_H
/* */
#undef HAVE_LONG_LONG
/* Define to 1 if you have the `mbrtowc' function. */
#undef HAVE_MBRTOWC
@ -130,6 +85,9 @@
/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
#undef HAVE_SYS_WAIT_H
/* */
#undef HAVE_TM_ISDST
/* HAVE_TM_ZONE */
#undef HAVE_TM_ZONE
@ -180,6 +138,18 @@
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* */
#undef SIZEOF_UINT16_T
/* */
#undef SIZEOF_UINT32_T
/* */
#undef SIZEOF_UINT64_T
/* */
#undef SIZEOF_UINT8_T
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
@ -198,6 +168,9 @@
/* Define to empty if `const' does not conform to ANSI C. */
#undef const
/* */
#undef int32_t
/* Define to a type if <wchar.h> does not define. */
#undef mbstate_t
@ -206,3 +179,15 @@
/* Define to `unsigned' if <sys/types.h> does not define. */
#undef size_t
/* */
#undef uint16_t
/* */
#undef uint32_t
/* */
#undef uint64_t
/* */
#undef uint8_t

6568
contrib/file/configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,9 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT(src/file.c)
AM_INIT_AUTOMAKE(file, 4.10)
AM_CONFIG_HEADER(config.h)
AM_MAINTAINER_MODE
AC_INIT
AC_CONFIG_SRCDIR([src/file.c])
AM_INIT_AUTOMAKE(file, 4.12)
AM_CONFIG_HEADER([config.h])
dnl AM_MAINTAINER_MODE
AC_MSG_CHECKING(for builtin ELF support)
AC_ARG_ENABLE(elf,
@ -55,6 +56,24 @@ AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_LIBTOOL
dnl Templates for autoheader
AH_TEMPLATE([BUILTIN_ELF],
[Use the builtin ELF recognition code])
AH_TEMPLATE([ELFCORE],
[Recognize ELF core files])
AH_TEMPLATE([HAVE_DAYLIGHT], [])
AH_TEMPLATE([HAVE_LONG_LONG], [])
AH_TEMPLATE([HAVE_TM_ISDST], [])
AH_TEMPLATE([SIZEOF_UINT16_T], [])
AH_TEMPLATE([SIZEOF_UINT32_T], [])
AH_TEMPLATE([SIZEOF_UINT64_T], [])
AH_TEMPLATE([SIZEOF_UINT8_T], [])
AH_TEMPLATE([int32_t], [])
AH_TEMPLATE([uint16_t], [])
AH_TEMPLATE([uint32_t], [])
AH_TEMPLATE([uint64_t], [])
AH_TEMPLATE([uint8_t], [])
dnl Checks for headers
AC_HEADER_STDC
AC_HEADER_MAJOR
@ -74,7 +93,15 @@ dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_TYPE_OFF_T
AC_TYPE_SIZE_T
AC_STRUCT_ST_RDEV
AC_DIAGNOSE([obsolete],[AC_STRUCT_ST_RDEV:
your code should no longer depend upon `HAVE_ST_RDEV', but
`HAVE_STRUCT_STAT_ST_RDEV'. Remove this warning and
the `AC_DEFINE' when you adjust the code.])
AC_CHECK_MEMBERS([struct stat.st_rdev],[AC_DEFINE(HAVE_ST_RDEV, 1,
[Define to 1 if your `struct stat' has `st_rdev'.
Deprecated, use `HAVE_STRUCT_STAT_ST_RDEV'
instead.])])
AC_STRUCT_TIMEZONE_DAYLIGHT
AC_SYS_LARGEFILE
AC_MBSTATE_T
@ -103,4 +130,5 @@ AC_CHECK_FUNCS(mmap strerror strtoul mbrtowc mkstemp getopt_long utimes utime wc
dnl Checks for libraries
AC_CHECK_LIB(z,gzopen)
AC_OUTPUT(Makefile src/Makefile magic/Makefile doc/Makefile)
AC_CONFIG_FILES([Makefile src/Makefile magic/Makefile doc/Makefile python/Makefile])
AC_OUTPUT

View File

@ -12,11 +12,6 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by Ian F. Darwin and others.
* 4. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@ -77,7 +72,7 @@
#include "patchlevel.h"
#ifndef lint
FILE_RCSID("@(#)$Id: file.c,v 1.93 2004/04/07 14:23:55 christos Exp $")
FILE_RCSID("@(#)$Id: file.c,v 1.95 2004/09/27 15:28:37 christos Exp $")
#endif /* lint */
@ -315,6 +310,7 @@ main(int argc, char *argv[])
process(argv[optind], wid);
}
magic_close(magic);
return 0;
}

View File

@ -12,11 +12,6 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by Ian F. Darwin and others.
* 4. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@ -32,7 +27,7 @@
*/
/*
* file.h - definitions for file(1) program
* @(#)$Id: file.h,v 1.61 2004/05/12 14:53:01 christos Exp $
* @(#)$Id: file.h,v 1.64 2004/11/20 23:50:12 christos Exp $
*/
#ifndef __file_h__
@ -113,6 +108,8 @@ struct magic {
#define FILE_BELDATE 15
#define FILE_LELDATE 16
#define FILE_REGEX 17
#define FILE_BESTRING16 18
#define FILE_LESTRING16 19
#define FILE_FORMAT_NAME \
/* 0 */ "invalid 0", \
@ -132,7 +129,9 @@ struct magic {
/* 14 */ "ldate", \
/* 15 */ "beldate", \
/* 16 */ "leldate", \
/* 17 */ "regex",
/* 17 */ "regex", \
/* 18 */ "bestring16", \
/* 19 */ "lestring16",
#define FILE_FMT_NUM "cduxXi"
#define FILE_FMT_STR "s"
@ -155,7 +154,9 @@ struct magic {
/* 14 */ FILE_FMT_STR, \
/* 15 */ FILE_FMT_STR, \
/* 16 */ FILE_FMT_STR, \
/* 17 */ FILE_FMT_STR,
/* 17 */ FILE_FMT_STR, \
/* 18 */ FILE_FMT_STR, \
/* 19 */ FILE_FMT_STR,
/* Word 3 */
uint8_t in_op; /* operator for indirection */
@ -234,6 +235,8 @@ struct magic_set {
int error;
int flags;
int haderr;
const char *file;
size_t line;
};
struct stat;
@ -255,7 +258,7 @@ protected void file_badread(struct magic_set *);
protected void file_badseek(struct magic_set *);
protected void file_oomem(struct magic_set *);
protected void file_error(struct magic_set *, int, const char *, ...);
protected void file_magwarn(const char *, ...);
protected void file_magwarn(struct magic_set *, const char *, ...);
protected void file_mdump(struct magic *);
protected void file_showstr(FILE *, const char *, size_t);
protected size_t file_mbswidth(const char *);

View File

@ -12,11 +12,6 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by Ian F. Darwin and others.
* 4. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@ -62,7 +57,7 @@
#undef HAVE_MAJOR
#ifndef lint
FILE_RCSID("@(#)$Id: fsmagic.c,v 1.43 2003/10/14 19:29:55 christos Exp $")
FILE_RCSID("@(#)$Id: fsmagic.c,v 1.45 2004/11/13 10:19:48 christos Exp $")
#endif /* lint */
protected int
@ -94,7 +89,7 @@ file_fsmagic(struct magic_set *ms, const char *fn, struct stat *sb)
file_error(ms, errno, "cannot stat `%s'", fn);
return -1;
}
if (file_printf(ms, "cannot open (%s)",
if (file_printf(ms, "cannot open `%s' (%s)",
fn, strerror(errno)) == -1)
return -1;
return 1;

View File

@ -11,8 +11,6 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@ -34,7 +32,7 @@
#include <ctype.h>
#ifndef lint
FILE_RCSID("@(#)$Id: funcs.c,v 1.12 2004/06/04 14:40:20 christos Exp $")
FILE_RCSID("@(#)$Id: funcs.c,v 1.13 2004/09/11 19:15:57 christos Exp $")
#endif /* lint */
/*
* Like printf, only we print to a buffer and advance it.

View File

@ -1,15 +1,27 @@
#! /bin/sh
#!/bin/sh
#
# install - install a program, script, or datafile
# This comes from X11R5.
# This comes from X11R5 (mit/util/scripts/install.sh).
#
# Copyright 1991 by the Massachusetts Institute of Technology
#
# Permission to use, copy, modify, distribute, and sell this software and its
# documentation for any purpose is hereby granted without fee, provided that
# the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation, and that the name of M.I.T. not be used in advertising or
# publicity pertaining to distribution of the software without specific,
# written prior permission. M.I.T. makes no representations about the
# suitability of this software for any purpose. It is provided "as is"
# without express or implied warranty.
#
# Calling this script install-sh is preferred over install.sh, to prevent
# `make' implicit rules from creating a file called install from it
# when there is no Makefile.
#
# This script is compatible with the BSD install script, but was written
# from scratch.
#
# from scratch. It can only install one file at a time, a restriction
# shared with many OS's install programs.
# set DOITPROG to echo to test this script
@ -29,7 +41,7 @@ stripprog="${STRIPPROG-strip}"
rmprog="${RMPROG-rm}"
mkdirprog="${MKDIRPROG-mkdir}"
tranformbasename=""
transformbasename=""
transform_arg=""
instcmd="$mvprog"
chmodcmd="$chmodprog 0755"
@ -97,7 +109,7 @@ then
echo "install: no input file specified"
exit 1
else
true
:
fi
if [ x"$dir_arg" != x ]; then
@ -106,8 +118,9 @@ if [ x"$dir_arg" != x ]; then
if [ -d $dst ]; then
instcmd=:
chmodcmd=""
else
instcmd=mkdir
instcmd=$mkdirprog
fi
else
@ -115,9 +128,9 @@ else
# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if [ -f $src -o -d $src ]
if [ -f "$src" ] || [ -d "$src" ]
then
true
:
else
echo "install: $src does not exist"
exit 1
@ -128,7 +141,7 @@ else
echo "install: no destination specified"
exit 1
else
true
:
fi
# If destination is a directory, append the input filename; if your system
@ -138,7 +151,7 @@ else
then
dst="$dst"/`basename $src`
else
true
:
fi
fi
@ -150,8 +163,8 @@ dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
# Skip lots of stat calls in the usual case.
if [ ! -d "$dstdir" ]; then
defaultIFS='
'
defaultIFS='
'
IFS="${IFS-${defaultIFS}}"
oIFS="${IFS}"
@ -170,7 +183,7 @@ while [ $# -ne 0 ] ; do
then
$mkdirprog "${pathcomp}"
else
true
:
fi
pathcomp="${pathcomp}/"
@ -181,10 +194,10 @@ if [ x"$dir_arg" != x ]
then
$doit $instcmd $dst &&
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi
else
# If we're going to rename the final executable, determine the name now.
@ -203,7 +216,7 @@ else
then
dstfile=`basename $dst`
else
true
:
fi
# Make a temp file name in the proper directory.
@ -222,10 +235,10 @@ else
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command.
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi &&
if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi &&
if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi &&
if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi &&
# Now rename the file to the real destination.

View File

@ -12,11 +12,6 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by Ian F. Darwin and others.
* 4. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@ -50,7 +45,7 @@
#include "tar.h"
#ifndef lint
FILE_RCSID("@(#)$Id: is_tar.c,v 1.24 2003/11/11 20:01:46 christos Exp $")
FILE_RCSID("@(#)$Id: is_tar.c,v 1.25 2004/09/11 19:15:57 christos Exp $")
#endif
#define isodigit(c) ( ((c) >= '0') && ((c) <= '7') )

View File

@ -11,8 +11,6 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@ -65,7 +63,7 @@
#include "patchlevel.h"
#ifndef lint
FILE_RCSID("@(#)$Id: magic.c,v 1.22 2004/07/24 19:55:17 christos Exp $")
FILE_RCSID("@(#)$Id: magic.c,v 1.24 2004/09/27 15:28:37 christos Exp $")
#endif /* lint */
#ifdef __EMX__
@ -87,34 +85,34 @@ magic_open(int flags)
return NULL;
if (magic_setflags(ms, flags) == -1) {
free(ms);
errno = EINVAL;
return NULL;
goto free1;
}
ms->o.ptr = ms->o.buf = malloc(ms->o.size = 1024);
ms->o.len = 0;
if (ms->o.buf == NULL) {
free(ms);
return NULL;
}
if (ms->o.buf == NULL)
goto free1;
ms->o.pbuf = malloc(ms->o.psize = 1024);
if (ms->o.pbuf == NULL) {
free(ms->o.buf);
free(ms);
return NULL;
}
if (ms->o.pbuf == NULL)
goto free2;
ms->c.off = malloc((ms->c.len = 10) * sizeof(*ms->c.off));
if (ms->c.off == NULL) {
free(ms->o.pbuf);
free(ms->o.buf);
free(ms);
return NULL;
}
if (ms->c.off == NULL)
goto free3;
ms->o.len = 0;
ms->haderr = 0;
ms->error = -1;
ms->mlist = NULL;
return ms;
free3:
free(ms->o.pbuf);
free2:
free(ms->o.buf);
free1:
free(ms);
return NULL;
}
private void
@ -140,6 +138,7 @@ magic_close(ms)
struct magic_set *ms;
{
free_mlist(ms->mlist);
free(ms->o.pbuf);
free(ms->o.buf);
free(ms->c.off);
free(ms);

View File

@ -11,8 +11,6 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

View File

@ -184,9 +184,8 @@
0 string RIFF
# - WAVE format
>8 string WAVE audio/x-wav
>8 string AVI video/x-msvideo
>8 string/B AVI video/x-msvideo
#
0 belong 0x2e7261fd application/x-realaudio
>8 string CDRA image/x-coreldraw
@ -588,20 +587,40 @@
#
# animation formats, originally from vax@ccwf.cc.utexas.edu (VaX#n8)
# MPEG file
0 belong 0x000001b3 video/mpeg
0 belong 0x000001ba video/mpeg
# MPEG sequences
0 belong 0x000001BA video/mpeg
0 belong 0x000001BB video/mpeg
0 belong 0x000001B0 video/mp4v-es
0 belong 0x000001B5 video/mp4v-es
0 belong 0x000001B3 video/mpv
0 belong&0xFF5FFF1F 0x47400010 video/mp2t
# FLI animation format
0 leshort 0xAF11 video/fli
# FLC animation format
0 leshort 0xAF12 video/flc
# AVI
>8 string AVI\ video/avi
#
# SGI and Apple formats
#
0 string MOVI video/sgi
4 string moov video/quicktime moov
4 string mdat video/quicktime mdat
# Added ISO mimes
# Added ISO mimes
0 string MOVI video/sgi
4 string moov video/quicktime
4 string mdat video/quicktime
4 string wide video/quicktime
4 string skip video/quicktime
4 string free video/quicktime
4 string idsc image/x-quicktime
4 string idat image/x-quicktime
4 string pckg application/x-quicktime
4 string/B jP image/jp2
4 string ftyp application/octet-stream
>8 string isom video/mp4
>8 string mp41 video/mp4
>8 string mp42 video/mp4
>8 string/B jp2 image/jp2
>8 string 3gp video/3gpp
>8 string mmp4 video/mp4
>8 string/B M4A audio/mp4
>8 string/B qt video/quicktime
# The contributor claims:
# I couldn't find a real magic number for these, however, this
# -appears- to work. Note that it might catch other files, too,
@ -628,17 +647,17 @@
#
# Executables
#
0 string \177ELF
>4 byte 0
>4 byte 1
>4 byte 2
>5 byte 0
>5 byte 1
>>16 leshort 0
>>16 leshort 1 application/x-object
>>16 leshort 2 application/x-executable
>>16 leshort 3 application/x-sharedlib
>>16 leshort 4 application/x-coredump
0 string \177ELF
>16 leshort 0 application/octet-stream
>16 leshort 1 application/x-object
>16 leshort 2 application/x-executable
>16 leshort 3 application/x-sharedlib
>16 leshort 4 application/x-coredump
>16 beshort 0 application/octet-stream
>16 beshort 1 application/x-object
>16 beshort 2 application/x-executable
>16 beshort 3 application/x-sharedlib
>16 beshort 4 application/x-coredump
#
# DOS
0 string MZ application/x-dosexec
@ -868,30 +887,6 @@
# Microsoft Outlook's Transport Neutral Encapsulation Format (TNEF)
0 lelong 0x223e9f78 application/ms-tnef
#
# QuickTime format
# Contributer: Peter Breton
#
0 string MOVI video/quicktime
4 string moov video/quicktime
4 string mdat video/quicktime
# Video Formate
0 string RIFF
# AVI == Audio Video Interleave
>8 string AVI\
#>0xbc string >\0 video/x-%s
>>0xbc string DIV3 video/x-DivX-3
>>0xbc string div3 video/x-divX-3
>>0xbc string DIV4 video/x-DivX-4
>>0x70 string DX50 video/x-DIVX-5
>>0x70 string MP4 video/x-MPEG-4
>>0xbc string DIVX video/x-DivX
>8 string WAVE audio/x-wav
# From: stephane.loeuillet@tiscali.f
# http://www.djvuzone.org/
0 string AT&TFORM image/x.djvu
@ -903,5 +898,11 @@
# 0x9445366139FA (V 3.80)
# this is from source (http://www.adrift.org.uk/) and I have some taf
# files, and checked them.
#0 belong 0x3C423FC9
#>4 belong 0x6A87C2CF application/x-adrift
#0 belong 0x3C423FC9
#>4 belong 0x6A87C2CF application/x-adrift
#0 string \000\000\001\000 image/x-ico
# Quark Xpress 3 Files:
# (made the mimetype up)
0 string \0\0MMXPR3\0 application/x-quark-xpress-3

View File

@ -4,9 +4,53 @@
# Created: 1993-05-16
# Public domain
# $Id: mkinstalldirs,v 1.2 2000/11/13 00:30:49 christos Exp $
errstatus=0
dirmode=""
usage="\
Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
# process command line arguments
while test $# -gt 0 ; do
case "${1}" in
-h | --help | --h* ) # -h for help
echo "${usage}" 1>&2; exit 0 ;;
-m ) # -m PERM arg
shift
test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
dirmode="${1}"
shift ;;
-- ) shift; break ;; # stop option processing
-* ) echo "${usage}" 1>&2; exit 1 ;; # unknown option
* ) break ;; # first non-opt arg
esac
done
for file
do
if test -d "$file"; then
shift
else
break
fi
done
case $# in
0) exit 0 ;;
esac
case $dirmode in
'')
if mkdir -p -- . 2>/dev/null; then
echo "mkdir -p -- $*"
exec mkdir -p -- "$@"
fi ;;
*)
if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
echo "mkdir -m $dirmode -p -- $*"
exec mkdir -m "$dirmode" -p -- "$@"
fi ;;
esac
for file
do
@ -22,13 +66,24 @@ do
esac
if test ! -d "$pathcomp"; then
echo "mkdir $pathcomp"
echo "mkdir $pathcomp"
mkdir "$pathcomp" || lasterr=$?
mkdir "$pathcomp" || lasterr=$?
if test ! -d "$pathcomp"; then
errstatus=$lasterr
fi
if test ! -d "$pathcomp"; then
errstatus=$lasterr
else
if test ! -z "$dirmode"; then
echo "chmod $dirmode $pathcomp"
lasterr=""
chmod "$dirmode" "$pathcomp" || lasterr=$?
if test ! -z "$lasterr"; then
errstatus=$lasterr
fi
fi
fi
fi
pathcomp="$pathcomp/"
@ -37,3 +92,8 @@ done
exit $errstatus
# Local Variables:
# mode: shell-script
# sh-indentation: 3
# End:
# mkinstalldirs ends here

View File

@ -12,11 +12,6 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by Ian F. Darwin and others.
* 4. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@ -37,7 +32,7 @@
* appear at fixed offsets into the file. Don't make HOWMANY
* too high unless you have a very fast CPU.
*
* $Id: names.h,v 1.24 2004/03/22 19:09:12 christos Exp $
* $Id: names.h,v 1.25 2004/09/11 19:15:57 christos Exp $
*/
/*

View File

@ -1,11 +1,17 @@
#define FILE_VERSION_MAJOR 4
#define patchlevel 10
#define patchlevel 12
/*
* Patchlevel file for Ian Darwin's MAGIC command.
* $Id: patchlevel.h,v 1.53 2004/07/24 20:40:46 christos Exp $
* $Id: patchlevel.h,v 1.55 2004/11/24 18:57:47 christos Exp $
*
* $Log: patchlevel.h,v $
* Revision 1.55 2004/11/24 18:57:47 christos
* Re-do the autoconf stuff once more; passes make dist now.
*
* Revision 1.54 2004/11/21 05:52:05 christos
* ready for 4.11
*
* Revision 1.53 2004/07/24 20:40:46 christos
* welcome to 4.10
*

View File

@ -12,11 +12,6 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by Ian F. Darwin and others.
* 4. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@ -46,7 +41,7 @@
#include <time.h>
#ifndef lint
FILE_RCSID("@(#)$Id: print.c,v 1.44 2003/09/12 19:39:44 christos Exp $")
FILE_RCSID("@(#)$Id: print.c,v 1.46 2004/11/13 08:11:39 christos Exp $")
#endif /* lint */
#define SZOF(a) (sizeof(a) / sizeof(a[0]))
@ -142,7 +137,7 @@ file_mdump(struct magic *m)
/*VARARGS*/
protected void
file_magwarn(const char *f, ...)
file_magwarn(struct magic_set *ms, const char *f, ...)
{
va_list va;
va_start(va, f);
@ -150,7 +145,8 @@ file_magwarn(const char *f, ...)
/* cuz we use stdout for most, stderr here */
(void) fflush(stdout);
(void) fprintf(stderr, "WARNING: ");
(void) fprintf(stderr, "%s, %lu: Warning ", ms->file,
(unsigned long)ms->line);
(void) vfprintf(stderr, f, va);
va_end(va);
fputc('\n', stderr);

View File

@ -11,8 +11,6 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@ -39,7 +37,7 @@
#include "readelf.h"
#ifndef lint
FILE_RCSID("@(#)$Id: readelf.c,v 1.42 2004/07/24 20:57:22 christos Exp $")
FILE_RCSID("@(#)$Id: readelf.c,v 1.45 2004/11/24 17:38:24 christos Exp $")
#endif
#ifdef ELFCORE
@ -256,7 +254,8 @@ dophn_core(struct magic_set *ms, int class, int swap, int fd, off_t off,
file_badseek(ms);
return -1;
}
bufsize = read(fd, nbuf, sizeof(nbuf));
bufsize = read(fd, nbuf,
((ph_filesz < sizeof(nbuf)) ? ph_filesz : sizeof(nbuf)));
if (bufsize == -1) {
file_badread(ms);
return -1;
@ -327,7 +326,7 @@ donote(struct magic_set *ms, unsigned char *nbuf, size_t offset, size_t size,
}
offset = ELF_ALIGN(doff + descsz);
if (offset + descsz > size) {
if (doff + descsz > size) {
return offset;
}
@ -413,48 +412,67 @@ donote(struct magic_set *ms, unsigned char *nbuf, size_t offset, size_t size,
/*
* Contents is __FreeBSD_version, whose relation to OS
* versions is defined by a huge table in the Porters'
* Handbook. For up to 5.x, the first three digits are
* the version number. For 5.x and higher, the scheme
* is: <major><two digit minor> <0 if release branch,
* otherwise 1>xx
* versions is defined by a huge table in the Porter's
* Handbook. This is the general scheme:
*
* Releases:
* Mmp000 (before 4.10)
* Mmi0p0 (before 5.0)
* Mmm0p0
*
* Development branches:
* Mmpxxx (before 4.6)
* Mmp1xx (before 4.10)
* Mmi1xx (before 5.0)
* M000xx (pre-M.0)
* Mmm1xx
*
* M = major version
* m = minor version
* i = minor version increment (491000 -> 4.10)
* p = patchlevel
* x = revision
*
* The first release of FreeBSD to use ELF by default
* was version 3.0.
*/
if (desc / 100000 < 5) {
if (desc / 10000 % 10 == 9) {
if (file_printf(ms, " %d.%d", desc / 100000,
9 + desc / 1000 % 10) == -1)
if (desc == 460002) {
if (file_printf(ms, " 4.6.2") == -1)
return size;
} else if (desc < 460100) {
if (file_printf(ms, " %d.%d", desc / 100000,
desc / 10000 % 10) == -1)
return size;
if (desc / 1000 % 10 > 0)
if (file_printf(ms, ".%d", desc / 1000 % 10)
== -1)
return size;
} else {
if (file_printf(ms, " %d.%d", desc / 100000,
desc / 10000 % 10) == -1)
if ((desc % 1000 > 0) || (desc % 100000 == 0))
if (file_printf(ms, " (%d)", desc) == -1)
return size;
} else if (desc < 500000) {
if (file_printf(ms, " %d.%d", desc / 100000,
desc / 10000 % 10 + desc / 1000 % 10) == -1)
return size;
if (desc / 100 % 10 > 0) {
if (file_printf(ms, " (%d)", desc) == -1)
return size;
} else if (desc / 10 % 10 > 0) {
if (file_printf(ms, ".%d", desc / 10 % 10)
== -1)
return size;
if (desc / 1000 % 10 > 0)
if (file_printf(ms, ".%d", desc / 1000 % 10)
== -1)
return size;
}
if (desc / 10000 % 10 > 5) {
desc %= 1000;
if (desc >= 100) {
if (file_printf(ms, "-STABLE (rev %d)",
desc % 100) == -1)
return size;
} else if (desc != 0) {
if (file_printf(ms, ".%d", desc) == -1)
return size;
}
}
} else {
if (file_printf(ms, " %d.%d", desc / 100000,
desc / 1000 % 100) == -1)
return size;
desc %= 1000;
if (desc >= 100) {
if (file_printf(ms, "-CURRENT (rev %d)",
desc % 100) == -1)
if ((desc / 100 % 10 > 0) ||
(desc % 100000 / 100 == 0)) {
if (file_printf(ms, " (%d)", desc) == -1)
return size;
} else if (desc != 0) {
if (file_printf(ms, ".%d", desc / 10) == -1)
} else if (desc / 10 % 10 > 0) {
if (file_printf(ms, ".%d", desc / 10 % 10)
== -1)
return size;
}
}
@ -693,7 +711,8 @@ dophn_exec(struct magic_set *ms, int class, int swap, int fd, off_t off,
file_badseek(ms);
return -1;
}
bufsize = read(fd, nbuf, sizeof(nbuf));
bufsize = read(fd, nbuf, ((ph_filesz < sizeof(nbuf)) ?
ph_filesz : sizeof(nbuf)));
if (bufsize == -1) {
file_badread(ms);
return -1;

View File

@ -11,8 +11,6 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

View File

@ -12,11 +12,6 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by Ian F. Darwin and others.
* 4. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@ -44,7 +39,7 @@
#ifndef lint
FILE_RCSID("@(#)$Id: softmagic.c,v 1.66 2004/07/24 20:38:56 christos Exp $")
FILE_RCSID("@(#)$Id: softmagic.c,v 1.72 2004/11/24 17:38:25 christos Exp $")
#endif /* lint */
private int match(struct magic_set *, struct magic *, uint32_t,
@ -54,6 +49,8 @@ private int mget(struct magic_set *, union VALUETYPE *, const unsigned char *,
private int mcheck(struct magic_set *, union VALUETYPE *, struct magic *);
private int32_t mprint(struct magic_set *, union VALUETYPE *, struct magic *);
private void mdebug(uint32_t, const char *, size_t);
private int mcopy(struct magic_set *, union VALUETYPE *, int, int,
const unsigned char *, size_t, size_t);
private int mconvert(struct magic_set *, union VALUETYPE *, struct magic *);
private int check_mem(struct magic_set *, unsigned int);
@ -276,6 +273,8 @@ mprint(struct magic_set *ms, union VALUETYPE *p, struct magic *m)
case FILE_STRING:
case FILE_PSTRING:
case FILE_BESTRING16:
case FILE_LESTRING16:
if (m->reln == '=') {
if (file_printf(ms, m->desc, m->value.s) == -1)
return -1;
@ -426,28 +425,30 @@ mconvert(struct magic_set *ms, union VALUETYPE *p, struct magic *m)
p->l = ~p->l;
return 1;
case FILE_STRING:
case FILE_BESTRING16:
case FILE_LESTRING16:
{
int n;
size_t len;
/* Null terminate and eat *trailing* return */
p->s[sizeof(p->s) - 1] = '\0';
n = strlen(p->s) - 1;
if (p->s[n] == '\n')
p->s[n] = '\0';
len = strlen(p->s);
if (len-- && p->s[len] == '\n')
p->s[len] = '\0';
return 1;
}
case FILE_PSTRING:
{
char *ptr1 = p->s, *ptr2 = ptr1 + 1;
unsigned int n = *p->s;
if (n >= sizeof(p->s))
n = sizeof(p->s) - 1;
while (n--)
size_t len = *p->s;
if (len >= sizeof(p->s))
len = sizeof(p->s) - 1;
while (len--)
*ptr1++ = *ptr2++;
*ptr1 = '\0';
n = strlen(p->s) - 1;
if (p->s[n] == '\n')
p->s[n] = '\0';
len = strlen(p->s);
if (len-- && p->s[len] == '\n')
p->s[len] = '\0';
return 1;
}
case FILE_BESHORT:
@ -603,12 +604,10 @@ mdebug(uint32_t offset, const char *str, size_t len)
}
private int
mget(struct magic_set *ms, union VALUETYPE *p, const unsigned char *s,
struct magic *m, size_t nbytes)
mcopy(struct magic_set *ms, union VALUETYPE *p, int type, int indir,
const unsigned char *s, size_t offset, size_t nbytes)
{
uint32_t offset = m->offset;
if (m->type == FILE_REGEX) {
if (type == FILE_REGEX && indir == 0) {
/*
* offset is interpreted as last line to search,
* (starting at 1), not as bytes-from start-of-file
@ -624,18 +623,59 @@ mget(struct magic_set *ms, union VALUETYPE *p, const unsigned char *s,
last = b;
if (last != NULL)
*last = '\0';
} else 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
*/
memset(p, 0, sizeof(union VALUETYPE));
if (offset < nbytes)
memcpy(p, s + offset, nbytes - offset);
return 0;
}
if (indir == 0 && (type == FILE_BESTRING16 || type == FILE_LESTRING16))
{
const char *src = s + offset;
const char *esrc = s + nbytes;
char *dst = p->s, *edst = &p->s[sizeof(p->s) - 1];
if (type == FILE_BESTRING16)
src++;
for (;src < esrc; src++, dst++) {
if (dst < edst)
*dst = *src++;
else
break;
if (*dst == '\0')
*dst = ' ';
}
*edst = '\0';
return 0;
}
if (offset >= nbytes) {
(void)memset(p, '\0', sizeof(*p));
return 0;
}
if (nbytes - offset < sizeof(*p))
nbytes = nbytes - offset;
else
nbytes = sizeof(*p);
(void)memcpy(p, s + offset, nbytes);
/*
* the usefulness of padding with zeroes eludes me, it
* might even cause problems
*/
if (nbytes < sizeof(*p))
(void)memset(((char *)p) + nbytes, '\0', sizeof(*p) - nbytes);
return 0;
}
private int
mget(struct magic_set *ms, union VALUETYPE *p, const unsigned char *s,
struct magic *m, size_t nbytes)
{
uint32_t offset = m->offset;
if (mcopy(ms, p, m->type, m->flag & INDIR, s, offset, nbytes) == -1)
return -1;
/* Verify we have enough data to match magic type */
switch (m->type) {
case FILE_BYTE:
@ -1022,11 +1062,8 @@ mget(struct magic_set *ms, union VALUETYPE *p, const unsigned char *s,
break;
}
if (nbytes < sizeof(union VALUETYPE) ||
nbytes - sizeof(union VALUETYPE) < offset)
return 0;
memcpy(p, s + offset, sizeof(union VALUETYPE));
if (mcopy(ms, p, m->type, 0, s, offset, nbytes) == -1)
return -1;
if ((ms->flags & MAGIC_DEBUG) != 0) {
mdebug(offset, (char *)(void *)p,
@ -1075,6 +1112,8 @@ mcheck(struct magic_set *ms, union VALUETYPE *p, struct magic *m)
break;
case FILE_STRING:
case FILE_BESTRING16:
case FILE_LESTRING16:
case FILE_PSTRING:
{
/*

View File

@ -12,11 +12,6 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by Ian F. Darwin and others.
* 4. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
@ -37,7 +32,7 @@
*
* Created 25 August 1985 by John Gilmore, ihnp4!hoptoad!gnu.
*
* $Id: tar.h,v 1.7 2003/10/14 19:29:56 christos Exp $ # checkin only
* $Id: tar.h,v 1.8 2004/09/11 19:15:58 christos Exp $ # checkin only
*/
/*

View File

@ -11,8 +11,6 @@
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE