Virgin import of Christos Zoulas's FILE 4.12.
This commit is contained in:
parent
ea8dc7e0f2
commit
a2e8fb4c99
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/vendor/file/dist/; revision=139368
@ -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>
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
#
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
||||
|
@ -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
27
contrib/file/Magdir/esri
Normal 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
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
||||
|
10
contrib/file/Magdir/virtutech
Normal file
10
contrib/file/Magdir/virtutech
Normal 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
29
contrib/file/Magdir/xo65
Normal 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
|
@ -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
|
||||
|
@ -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
0
contrib/file/PORTING
Normal file
3266
contrib/file/aclocal.m4
vendored
3266
contrib/file/aclocal.m4
vendored
File diff suppressed because it is too large
Load Diff
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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
6568
contrib/file/configure
vendored
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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 *);
|
||||
|
@ -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;
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
||||
@ -151,7 +164,7 @@ dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
|
||||
# Skip lots of stat calls in the usual case.
|
||||
if [ ! -d "$dstdir" ]; then
|
||||
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.
|
||||
|
||||
|
@ -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') )
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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 $
|
||||
*/
|
||||
|
||||
/*
|
||||
|
@ -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
|
||||
*
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
{
|
||||
/*
|
||||
|
@ -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
|
||||
*/
|
||||
|
||||
/*
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user