Virgin import of Christos Zoulas's FILE 3.40.

This commit is contained in:
David E. O'Brien 2003-02-15 18:53:17 +00:00
parent 8ed12636aa
commit 3459dd3784
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/vendor/file/dist/; revision=110949
30 changed files with 397 additions and 92 deletions

View File

@ -231,10 +231,10 @@
2 string -pms- PMarc SFX archive (CP/M, DOS) 2 string -pms- PMarc SFX archive (CP/M, DOS)
5 string -pc1- PopCom compressed executable (CP/M) 5 string -pc1- PopCom compressed executable (CP/M)
# From rafael@icp.inpg.fr (Rafael Laboissiere) # From Rafael Laboissiere <rafael@laboissiere.net>
# The Project Revision Control System (see # The Project Revision Control System (see
# http://www.XCF.Berkeley.EDU/~jmacd/prcs.html) generates a packaged project # http://prcs.sourceforge.net) generates a packaged project
# file which is recognized by the following entry: # file which is recognized by the following entry:
0 leshort 0xeb81 PRCS packaged project 0 leshort 0xeb81 PRCS packaged project
# Microsoft cabinets # Microsoft cabinets

View File

@ -157,7 +157,90 @@
# Impuse tracker module (audio/x-it) # Impuse tracker module (audio/x-it)
0 string IMPM Impulse Tracker module sound data - 0 string IMPM Impulse Tracker module sound data -
>4 string >\0 "%s" >4 string >\0 "%s"
>40 leshort !0 compatible w/ITv%x
>42 leshort !0 created w/ITv%x
# Imago Orpheus module (audio/x-imf) # Imago Orpheus module (audio/x-imf)
60 string IM10 Imago Orpheus module sound data - 60 string IM10 Imago Orpheus module sound data -
>0 string >\0 "%s" >0 string >\0 "%s"
# From <collver1@attbi.com>
# These are the /etc/magic entries to decode modules, instruments, and
# samples in Impulse Tracker's native format.
0 string IMPS Impulse Tracker Sample
>18 byte &2 16 bit
>18 byte ^2 8 bit
>18 byte &4 stereo
>18 byte ^4 mono
0 string IMPI Impulse Tracker Instrument
>28 leshort !0 ITv%x
>30 byte !0 %d samples
# Yamaha TX Wave: file(1) magic for Yamaha TX Wave audio files
# From <collver1@attbi.com>
0 string LM8953 Yamaha TX Wave
>22 byte 0x49 looped
>22 byte 0xC9 non-looped
>23 byte 1 33kHz
>23 byte 2 50kHz
>23 byte 3 16kHz
# scream tracker: file(1) magic for Scream Tracker sample files
#
# From <collver1@attbi.com>
76 string SCRS Scream Tracker Sample
>0 byte 1 sample
>0 byte 2 adlib melody
>0 byte >2 adlib drum
>31 byte &2 stereo
>31 byte ^2 mono
>31 byte &4 16bit little endian
>31 byte ^4 8bit
>30 byte 0 unpacked
>30 byte 1 packed
# audio
# From: Cory Dikkers <cdikkers@swbell.net>
0 string MMD0 MED music file, version 0
0 string MMD1 OctaMED Pro music file, version 1
0 string MMD3 OctaMED Soundstudio music file, version 3
0 string OctaMEDCmpr OctaMED Soundstudio compressed file
0 string MED MED_Song
0 string SymM Symphonie SymMOD music file
#
0 string THX AHX version
>3 byte =0 1 module data
>3 byte =1 2 module data
#
0 string OKTASONG Oktalyzer module data
#
0 string DIGI\ Booster\ module\0 %s
>20 byte >0 %c
>>21 byte >0 \b%c
>>>22 byte >0 \b%c
>>>>23 byte >0 \b%c
>610 string >\0 \b, "%s"
#
0 string DBM0 DIGI Booster Pro Module
>4 byte >0 V%X.
>>5 byte x \b%02X
>16 string >\0 \b, "%s"
#
0 string FTMN FaceTheMusic module
>16 string >\0d \b, "%s"
# From: Takeshi Hamasaki <hma@syd.odn.ne.jp>
# NOA Nancy Codec file
0 string \210NOA\015\012\032 NOA Nancy Codec Movie file
# Yamaha SMAF format
0 string MMMD Yamaha SMAF file
# Sharp Jisaku Melody format for PDC
0 string \001Sharp\040JisakuMelody SHARP Cell-Phone ringing Melody
>20 string Ver01.00 Ver. 1.00
>>32 byte x , %d tracks
# FLAC audio stream <URL:http://flac.sourceforge.net/>
# From: Dan Fandrich <dan@coneharvesters.com>
0 string fLaC FLAC audio stream data

View File

@ -152,3 +152,20 @@
# 4.3BSD-Quasijarus Strong Compression # 4.3BSD-Quasijarus Strong Compression
# http://minnie.tuhs.org/Quasijarus/compress.html # http://minnie.tuhs.org/Quasijarus/compress.html
0 string \037\241 Quasijarus strong compressed data 0 string \037\241 Quasijarus strong compressed data
# From: Cory Dikkers <cdikkers@swbell.net>
0 string XPKF Amiga xpkf.library compressed data
0 string PP11 Power Packer 1.1 compressed data
0 string PP20 Power Packer 2.0 compressed data,
>4 belong 0x09090909 fast compression
>4 belong 0x090A0A0A mediocre compression
>4 belong 0x090A0B0B good compression
>4 belong 0x090A0C0C very good compression
>4 belong 0x090A0C0D best compression
# 7z archiver, from Thomas Klausner (wiz@danbala.tuwien.ac.at)
# http://www.7-zip.org or DOC/7zFormat.txt
#
0 string 7z\274\257\047\034 7z archive data,
>6 byte x version %d
>7 byte x \b.%d

View File

@ -2,4 +2,4 @@
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
# ctags: file (1) magic for Exuberant Ctags files # ctags: file (1) magic for Exuberant Ctags files
# From: Alexander Mai <mai@migdal.ikp.physik.tu-darmstadt.de> # From: Alexander Mai <mai@migdal.ikp.physik.tu-darmstadt.de>
0 string !_TAG Exuberant Ctags tag file 0 string !_TAG Exuberant Ctags tag file text

View File

@ -25,33 +25,108 @@
>512 belong&077777777 0600407 \b, boot block present >512 belong&077777777 0600407 \b, boot block present
0x1FE leshort 0xAA55 x86 boot sector 0x1FE leshort 0xAA55 x86 boot sector
>2 string OSBS \b, OS/BS MBR >2 string OSBS \b, OS/BS MBR
# J\xf6rg Jenderek <joerg@pcialias.localnet> # J\xf6rg Jenderek <joerg.jenderek@gmx.net>
>0x8C string Invalid\ partition\ table \b, MS-DOS MBR >0x8C string Invalid\ partition\ table \b, MS-DOS MBR
>0x9D string Invalid\ partition\ table \b, DR-DOS MBR, version 7.01 to 7.03 >0x9D string Invalid\ partition\ table \b, DR-DOS MBR, version 7.01 to 7.03
>0x10F string Ung\201ltige\ Partitionstabelle \b, MS-DOS MBR, german version 4.10.1998, 4.10.2222 >0x10F string Ung\201ltige\ Partitionstabelle \b, MS-DOS MBR, german version 4.10.1998, 4.10.2222
>0x8B string Ung\201ltige\ Partitionstabelle \b, MS-DOS MBR, german version 5.00 to 4.00.950 >0x8B string Ung\201ltige\ Partitionstabelle \b, MS-DOS MBR, german version 5.00 to 4.00.950
>0x145 string Default:\ F \b, FREE-DOS MBR >0x145 string Default:\ F \b, FREE-DOS MBR
>0 string \0\0\0\0 \b, extended partition table >0 string \0\0\0\0 \b, extended partition table
>0 leshort 0x3CEB \b, system # JuMP short bootcodeoffset NOP assembler instructions will usually be EB xx 90
>>3 string >\0 %s # older drives may use E9 xx xx
>>0x36 string FAT \b, %s >0 lelong&0x009000EB 0x009000EB
>>>0x39 string 12 (%s bit) >0 lelong&0x000000E9 0x000000E9
>>>0x39 string 16 (%s bit) >>1 ubyte >37 \b, code offset 0x%x
>0x52 string FAT32 \b, FAT (32 bit) # mtools-3.9.8/msdos.h
>>>43 string >NO\ NAME label: %.11s, # usual values are marked with comments to get only informations of strange FAT systems
>>>43 string <NO\ NAME label: %.11s, # valid sectorsize are from 32 to 2048
>>>43 string NO\ NAME unlabeled, >>>11 uleshort <2049
>>>19 leshort >0 %d sectors >>>>11 uleshort >31
>>>19 leshort 0 >>>>>3 string >\0 \b, OEM-ID "%8.8s"
>>>>32 lelong x %d sectors >>>>>11 uleshort >512 \b, Bytes/sector %u
#>>>>>11 uleshort =512 \b, Bytes/sector %u=512 (usual)
>>>>>11 uleshort <512 \b, Bytes/sector %u
>>>>>13 ubyte >1 \b, sectors/cluster %u
#>>>>>13 ubyte =1 \b, sectors/cluster %u (usual on Floppies)
>>>>>14 uleshort >32 \b, reserved sectors %u
#>>>>>14 uleshort =32 \b, reserved sectors %u (usual Fat32)
#>>>>>14 uleshort >1 \b, reserved sectors %u
#>>>>>14 uleshort =1 \b, reserved sectors %u (usual FAT12,FAT16)
>>>>>14 uleshort <1 \b, reserved sectors %u
>>>>>16 ubyte >2 \b, FATs %u
#>>>>>16 ubyte =2 \b, FATs %u (usual)
>>>>>16 ubyte =1 \b, FAT %u
>>>>>16 ubyte >0
>>>>>17 uleshort >0 \b, root entries %u
#>>>>>17 uleshort =0 \b, root entries %u=0 (usual Fat32)
>>>>>19 uleshort >0 \b, sectors %u (volumes <=32 MB)
#>>>>>19 uleshort =0 \b, sectors %u=0 (usual Fat32)
>>>>>21 ubyte >0xF0 \b, Media descriptor 0x%x
#>>>>>21 ubyte =0xF0 \b, Media descriptor 0x%x (usual floppy)
>>>>>21 ubyte <0xF0 \b, Media descriptor 0x%x
>>>>>22 uleshort >0 \b, sectors/FAT %u
#>>>>>22 uleshort =0 \b, sectors/FAT %u=0 (usual Fat32)
>>>>>26 ubyte >2 \b, heads %u
#>>>>>26 ubyte =2 \b, heads %u (usual floppy)
>>>>>26 ubyte =1 \b, heads %u
>>>>>28 ulelong >0 \b, hidden sectors %u
#>>>>>28 ulelong =0 \b, hidden sectors %u (usual floppy)
>>>>>32 ulelong >0 \b, sectors %u (volumes > 32 MB)
#>>>>>32 ulelong =0 \b, sectors %u (volumes > 32 MB)
# FAT<32 specific
# NOT le FAT3=NOT 3TAF=0xCCABBEB9
>>>>>82 ulelong&0xCCABBEB9 >0
>>>>>>36 ubyte >0x80 \b, physical drive 0x%x
#>>>>>>36 ubyte =0x80 \b, physical drive 0x%x=0x80 (usual harddisk)
>>>>>>36 ubyte&0x7F >0 \b, physical drive 0x%x
#>>>>>>36 ubyte =0 \b, physical drive 0x%x=0 (usual floppy)
>>>>>>37 ubyte >0 \b, reserved 0x%x
#>>>>>>37 ubyte =0 \b, reserved 0x%x
>>>>>>38 ubyte >0x29 \b, dos < 4.0 BootSector (0x%x)
>>>>>>38 ubyte <0x29 \b, dos < 4.0 BootSector (0x%x)
>>>>>>38 ubyte =0x29
>>>>>>>39 ulelong x \b, serial number 0x%x
>>>>>>>43 string <NO\ NAME \b, label: "%11.11s"
>>>>>>>43 string >NO\ NAME \b, label: "%11.11s"
>>>>>>>43 string =NO\ NAME \b, unlabeled
>>>>>>54 string FAT1 \b, FAT
>>>>>>>54 string FAT12 \b (12 bit)
>>>>>>>54 string FAT16 \b (16 bit)
# FAT32 specific
>>>>>82 string FAT32 \b, FAT (32 bit)
>>>>>>36 ulelong x \b, sectors/FAT %u
>>>>>>40 uleshort >0 \b, extension flags %u
#>>>>>>40 uleshort =0 \b, extension flags %u
>>>>>>42 uleshort >0 \b, fsVersion %u
#>>>>>>42 uleshort =0 \b, fsVersion %u (usual)
>>>>>>44 ulelong >2 \b, rootdir cluster %u
#>>>>>>44 ulelong =2 \b, rootdir cluster %u
#>>>>>>44 ulelong =1 \b, rootdir cluster %u
>>>>>>48 uleshort >1 \b, infoSector %u
#>>>>>>48 uleshort =1 \b, infoSector %u (usual)
>>>>>>48 uleshort <1 \b, infoSector %u
>>>>>>50 uleshort >6 \b, Backup boot sector %u
#>>>>>>50 uleshort =6 \b, Backup boot sector %u (usual)
>>>>>>50 uleshort <6 \b, Backup boot sector %u
>>>>>>54 ulelong >0 \b, reserved1 0x%x
>>>>>>58 ulelong >0 \b, reserved2 0x%x
>>>>>>62 ulelong >0 \b, reserved3 0x%x
# same structure as FAT1X
>>>>>>64 ubyte >0x80 \b, physical drive 0x%x
#>>>>>>64 ubyte =0x80 \b, physical drive 0x%x=80 (usual harddisk)
>>>>>>64 ubyte&0x7F >0 \b, physical drive 0x%x
#>>>>>>64 ubyte =0 \b, physical drive 0x%x=0 (usual floppy)
>>>>>>65 ubyte >0 \b, reserved 0x%x
>>>>>>66 ubyte >0x29 \b, dos < 4.0 BootSector (0x%x)
>>>>>>66 ubyte <0x29 \b, dos < 4.0 BootSector (0x%x)
>>>>>>66 ubyte =0x29
>>>>>>>67 ulelong x \b, serial number 0x%x
>>>>>>>71 string <NO\ NAME \b, label: "%11.11s"
>>>>>>71 string >NO\ NAME \b, label: "%11.11s"
>>>>>>71 string =NO\ NAME \b, unlabeled
### FATs end
>0x200 lelong 0x82564557 \b, BSD disklabel >0x200 lelong 0x82564557 \b, BSD disklabel
# Solaris 7 FAT12 floppies J\xf6rg Jenderek <joerg@pcialias.localnet>
>0 leshort 0x7AEB \b, system
>>3 string >\0 %s
>>0x36 string FAT \b, %s
>>>0x39 string 12 (%s bit)
# Minix filesystems - Juan Cespedes <cespedes@debian.org> # Minix filesystems - Juan Cespedes <cespedes@debian.org>
0x410 leshort 0x137f Minix filesystem 0x410 leshort 0x137f Minix filesystem
0x410 beshort 0x137f Minix filesystem (big endian), 0x410 beshort 0x137f Minix filesystem (big endian),

View File

@ -8,3 +8,6 @@
# #
0 string FWS Macromedia Flash data, 0 string FWS Macromedia Flash data,
>3 byte x version %d >3 byte x version %d
#
# From Dave Wilson
0 string AGD4\xbe\xb8\xbb\xcb\x00 Macromedia Freehand 9 Document

View File

@ -3,10 +3,12 @@
# gringotts: file(1) magic for Gringotts # gringotts: file(1) magic for Gringotts
# http://devel.pluto.linux.it/projects/Gringotts/ # http://devel.pluto.linux.it/projects/Gringotts/
# author: Germano Rizzo <mano@pluto.linux.it> # author: Germano Rizzo <mano@pluto.linux.it>
#GRG2????Y #GRG3????Y
0 string GRG Gringotts data file 0 string GRG Gringotts data file
>3 string 1 v.1, SERPENT crypt, SHA-256 hash, ZLib lvl.9 #file format 1
>3 string 2 v.2, >3 string 1 v.1, MCRYPT S2K, SERPENT crypt, SHA-256 hash, ZLib lvl.9
#file format 2
>3 string 2 v.2, MCRYPT S2K,
>>8 byte&0x70 0x00 RIJNDAEL-128 crypt, >>8 byte&0x70 0x00 RIJNDAEL-128 crypt,
>>8 byte&0x70 0x10 SERPENT crypt, >>8 byte&0x70 0x10 SERPENT crypt,
>>8 byte&0x70 0x20 TWOFISH crypt, >>8 byte&0x70 0x20 TWOFISH crypt,
@ -23,3 +25,23 @@
>>8 byte&0x03 0x01 lvl.3 >>8 byte&0x03 0x01 lvl.3
>>8 byte&0x03 0x02 lvl.6 >>8 byte&0x03 0x02 lvl.6
>>8 byte&0x03 0x03 lvl.9 >>8 byte&0x03 0x03 lvl.9
#file format 3
>3 string 3 v.3, OpenPGP S2K,
>>8 byte&0x70 0x00 RIJNDAEL-128 crypt,
>>8 byte&0x70 0x10 SERPENT crypt,
>>8 byte&0x70 0x20 TWOFISH crypt,
>>8 byte&0x70 0x30 CAST-256 crypt,
>>8 byte&0x70 0x40 SAFER+ crypt,
>>8 byte&0x70 0x50 LOKI97 crypt,
>>8 byte&0x70 0x60 3DES crypt,
>>8 byte&0x70 0x70 RIJNDAEL-256 crypt,
>>8 byte&0x08 0x00 SHA1 hash,
>>8 byte&0x08 0x08 RIPEMD-160 hash,
>>8 byte&0x04 0x00 ZLib
>>8 byte&0x04 0x04 BZip2
>>8 byte&0x03 0x00 lvl.0
>>8 byte&0x03 0x01 lvl.3
>>8 byte&0x03 0x02 lvl.6
>>8 byte&0x03 0x03 lvl.9
#file format >3
>3 string >3 v.%.1s (unknown details)

View File

@ -389,3 +389,7 @@
>>>>>>>>>0xC4 belong 12 - received SIGSYS >>>>>>>>>0xC4 belong 12 - received SIGSYS
>>>>>>>>>0xC4 belong 33 - received SIGXCPU >>>>>>>>>0xC4 belong 33 - received SIGXCPU
>>>>>>>>>0xC4 belong 34 - received SIGXFSZ >>>>>>>>>0xC4 belong 34 - received SIGXFSZ
# From: AMAKAWA Shuhei <sa264@cam.ac.uk>
0 string HPHP49- HP49 binary

View File

@ -142,6 +142,9 @@
1 string PC\ Research,\ Inc group 3 fax data 1 string PC\ Research,\ Inc group 3 fax data
>29 byte 0 \b, normal resolution (204x98 DPI) >29 byte 0 \b, normal resolution (204x98 DPI)
>29 byte 1 \b, fine resolution (204x196 DPI) >29 byte 1 \b, fine resolution (204x196 DPI)
# From: Herbert Rosmanith <herp@wildsau.idv.uni.linz.at>
0 string Sfff structured fax file
# PC bitmaps (OS/2, Windoze BMP files) (Greg Roelofs, newt@uchicago.edu) # PC bitmaps (OS/2, Windoze BMP files) (Greg Roelofs, newt@uchicago.edu)
0 string BM PC bitmap data 0 string BM PC bitmap data
@ -333,3 +336,26 @@
# of various EPOC file formats # of various EPOC file formats
0 string \x37\x00\x00\x10\x42\x00\x00\x10\x00\x00\x00\x00\x39\x64\x39\x47 EPOC MBM image file 0 string \x37\x00\x00\x10\x42\x00\x00\x10\x00\x00\x00\x00\x39\x64\x39\x47 EPOC MBM image file
# PCX image files
# From: Dan Fandrich <dan@coneharvesters.com>
0 beshort 0x0a00 PCX ver. 2.5 image data
0 beshort 0x0a02 PCX ver. 2.8 image data, with palette
0 beshort 0x0a03 PCX ver. 2.8 image data, without palette
0 beshort 0x0a04 PCX for Windows image data
0 beshort 0x0a05 PCX ver. 3.0 image data
>4 leshort x bounding box [%hd,
>6 leshort x %hd] -
>8 leshort x [%hd,
>10 leshort x %hd],
>65 byte >1 %d planes each of
>3 byte x %hhd-bit
>68 byte 0 image,
>68 byte 1 colour,
>68 byte 2 grayscale,
>68 byte >2 image,
>68 byte <0 image,
>12 leshort >0 %hd x
>>14 leshort x %hd dpi,
>2 byte 0 uncompressed
>2 byte 1 RLE compressed

View File

@ -27,3 +27,6 @@
#.com and .bin for MIT scheme #.com and .bin for MIT scheme
0 string \372\372\372\372 MIT scheme (library?) 0 string \372\372\372\372 MIT scheme (library?)
# From: David Allouche <david@allouche.net>
0 string \<TeXmacs| TeXmacs document text

View File

@ -90,6 +90,8 @@
>>122 string Windows\ self-extracting\ ZIP \b, %s >>122 string Windows\ self-extracting\ ZIP \b, %s
>0x1c string RJSX\xff\xff \b, ARJ SFX >0x1c string RJSX\xff\xff \b, ARJ SFX
>0x1c string diet\xf9\x9c \b, diet compressed >0x1c string diet\xf9\x9c \b, diet compressed
>0x1c string LZ09 \b, LZEXE v0.90 compressed
>0x1c string LZ91 \b, LZEXE v0.91 compressed
>0x1e string Copyright\ 1989-1990\ PKWARE\ Inc. \b, PKSFX >0x1e string Copyright\ 1989-1990\ PKWARE\ Inc. \b, PKSFX
# JM: 0x1e "PKLITE Copr. 1990-92 PKWARE Inc. All Rights Reserved\7\0\0\0" # JM: 0x1e "PKLITE Copr. 1990-92 PKWARE Inc. All Rights Reserved\7\0\0\0"
>0x1e string PKLITE\ Copr. \b, %.6s compressed >0x1e string PKLITE\ Copr. \b, %.6s compressed

View File

@ -1,5 +1,14 @@
#------------------------------------------------------------------------------
# python: file(1) magic for python
#
# From: David Necas <yeti@physics.muni.cz>
# often the module starts with a multiline string # often the module starts with a multiline string
0 string """ a python script text executable 0 string """ a python script text executable
# MAGIC as specified in Python/import.c (1.5.2/1.6) # MAGIC as specified in Python/import.c (1.5 to 2.3.0a)
# 20121 ( YEAR - 1995 ) + MONTH + DAY (little endian followed by "\r\n" # 20121 ( YEAR - 1995 ) + MONTH + DAY (little endian followed by "\r\n"
0 belong 0x994e0d0a python compiled 0 belong 0x994e0d0a python 1.5/1.6 byte-compiled
0 belong 0x87c60d0a python 2.0 byte-compiled
0 belong 0x2aeb0d0a python 2.1 byte-compiled
0 belong 0x2ded0d0a python 2.2 byte-compiled
#0 belong 0x31f20d0a python 2.3 byte-compiled

View File

@ -5,16 +5,23 @@
# from Daniel Quinlan (quinlan@yggdrasil.com) # from Daniel Quinlan (quinlan@yggdrasil.com)
# adapted to string extenstions by Anthon van der Neut <anthon@mnt.org) # adapted to string extenstions by Anthon van der Neut <anthon@mnt.org)
0 string/cB \<!doctype\ html HTML document text 0 string/cB \<!doctype\ html HTML document text
0 string/c \<head HTML document text 0 string/cb \<head HTML document text
0 string/c \<title HTML document text 0 string/cb \<title HTML document text
0 string/c \<html HTML document text 0 string/cb \<html HTML document text
# Extensible markup language (XML), a subset of SGML # Extensible markup language (XML), a subset of SGML
# from Marc Prud'hommeaux (marc@apocalypse.org) # from Marc Prud'hommeaux (marc@apocalypse.org)
0 string/c \<?xml XML document text 0 string/cb \<?xml XML document text
# SGML, mostly from rph@sq # SGML, mostly from rph@sq
0 string/c \<!doctype exported SGML document text 0 string/cb \<!doctype exported SGML document text
0 string/c \<!subdoc exported SGML subdocument text 0 string/cb \<!subdoc exported SGML subdocument text
0 string \<!-- exported SGML document text 0 string/cb \<!-- exported SGML document text
# Web browser cookie files
# (Mozilla, Galeon, Netscape 4, Konqueror..)
# Ulf Harnhammar <ulfh@update.uu.se>
0 string #\ HTTP\ Cookie\ File Web browser cookie text
0 string #\ Netscape\ HTTP\ Cookie\ File Netscape cookie text
0 string #\ KDE\ Cookie\ File Konqueror cookie text

View File

@ -32,14 +32,17 @@
>>>>>44 lelong !-1 >>>>>44 lelong !-1
# Vorbis RC2 has a bug which puts -1000 in the min/max bitrate fields # Vorbis RC2 has a bug which puts -1000 in the min/max bitrate fields
# instead of -1. # instead of -1.
# Vorbis 1.0 uses 0 instead of -1.
>>>>>>44 lelong !-1000 >>>>>>44 lelong !-1000
>>>>>>>44 lelong x >%lu >>>>>>>44 lelong !0
>>>>>>>>44 lelong x >%lu
>>>>>48 lelong !-1 >>>>>48 lelong !-1
>>>>>>48 lelong x ~%lu >>>>>>48 lelong x ~%lu
>>>>>52 lelong !-1 >>>>>52 lelong !-1
>>>>>>52 lelong !-1000 >>>>>>52 lelong !0
>>>>>>>52 lelong x <%lu >>>>>>>52 lelong !-1000
>>>>>48 string <\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff kbps >>>>>>>>52 lelong x <%lu
>>>>>48 string <\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff bps
# -- Second vorbis header packet - the comments # -- Second vorbis header packet - the comments
# A kludge to read the vendor string. It's a counted string, not a # A kludge to read the vendor string. It's a counted string, not a
# zero-terminated one, so file(1) can't read it in a generic way. # zero-terminated one, so file(1) can't read it in a generic way.
@ -67,10 +70,10 @@
>>>>>>(84.b+120) string 20011014 (RC2 - Garf tuned v2) >>>>>>(84.b+120) string 20011014 (RC2 - Garf tuned v2)
>>>>>>(84.b+120) string 20011217 (pre-RC3 CVS) >>>>>>(84.b+120) string 20011217 (pre-RC3 CVS)
>>>>>>(84.b+120) string 20011231 (RC3) >>>>>>(84.b+120) string 20011231 (RC3)
# The string has not changed from beta1 to 2 - they are indistinguishable. # Some pre-1.0 CVS snapshots still had "Xiphphorus"...
# Then come the comments, again length-counted (and number-counted). >>>>>>(84.b+120) string >20011231 (pre-1.0 CVS)
# Some looping constructs and registers would allow reading them but now # For the 1.0 release, Xiphophorus is replaced by Xiph.Org
# it's impossible. However we can print the number of comments present >>>>(84.b+96) string/c Xiph.Org\ libVorbis\ I \b, created by: Xiph.Org libVorbis I
# (skipping by the vendor string length): >>>>>(84.b+117) string >00000000 %.8s
##>>>>(109.l.113) lelong 0 \b, no comments >>>>>>(84.b+117) string <20020717 (pre-1.0 CVS)
##>>>>(109.l+113) lelong >0 \b, %lu comments >>>>>>(84.b+117) string 20020717 (1.0)

View File

@ -116,7 +116,6 @@ Magdir/ibm370 \
Magdir/ibm6000 \ Magdir/ibm6000 \
Magdir/iff \ Magdir/iff \
Magdir/images \ Magdir/images \
Magdir/impulse \
Magdir/intel \ Magdir/intel \
Magdir/interleaf \ Magdir/interleaf \
Magdir/island \ Magdir/island \

View File

@ -86,7 +86,7 @@ EXTRA_DIST = LEGAL.NOTICE MAINT PORTING Makefile.std magic2mime Localstuff Head
CLEANFILES = $(man_MANS) magic magic.mgc magic.mime.mgc CLEANFILES = $(man_MANS) magic magic.mgc magic.mime.mgc
magic_FRAGMENTS = Magdir/acorn Magdir/adi Magdir/adventure Magdir/allegro Magdir/alliant Magdir/alpha Magdir/amanda Magdir/amigaos Magdir/animation Magdir/apl Magdir/apple Magdir/applix Magdir/archive Magdir/asterix Magdir/att3b Magdir/audio Magdir/blender Magdir/blit Magdir/bsdi Magdir/c-lang Magdir/cddb Magdir/chi Magdir/cisco Magdir/citrus Magdir/claris Magdir/clipper Magdir/commands Magdir/compress Magdir/console Magdir/convex Magdir/ctags Magdir/cvs Magdir/database Magdir/diamond Magdir/diff Magdir/digital Magdir/dolby Magdir/dump Magdir/dyadic Magdir/editors Magdir/elf Magdir/encore Magdir/epoc Magdir/filesystems Magdir/flash Magdir/fonts Magdir/frame Magdir/freebsd Magdir/fsav Magdir/gimp Magdir/gnu Magdir/grace Magdir/gringotts Magdir/hitachi-sh Magdir/hp Magdir/ibm370 Magdir/ibm6000 Magdir/iff Magdir/images Magdir/impulse Magdir/intel Magdir/interleaf Magdir/island Magdir/ispell Magdir/java Magdir/jpeg Magdir/karma Magdir/lecter Magdir/lex Magdir/lif Magdir/linux Magdir/lisp Magdir/mach Magdir/macintosh Magdir/magic Magdir/mail.news Magdir/maple Magdir/mathematica Magdir/mcrypt Magdir/mime Magdir/mips Magdir/mirage Magdir/mkid Magdir/mmdf Magdir/mlssa Magdir/modem Magdir/motorola Magdir/msdos Magdir/msvc Magdir/natinst Magdir/ncr Magdir/netbsd Magdir/netscape Magdir/news Magdir/nitpicker Magdir/octave Magdir/olf Magdir/os2 Magdir/os9 Magdir/osf1 Magdir/palm Magdir/parix Magdir/pbm Magdir/pdf Magdir/pdp Magdir/perl Magdir/pgp Magdir/pkgadd Magdir/plus5 Magdir/printer Magdir/project Magdir/psdbms Magdir/pulsar Magdir/pyramid Magdir/python Magdir/riff Magdir/rpm Magdir/rtf Magdir/sc Magdir/sccs Magdir/sendmail Magdir/sequent Magdir/sgml Magdir/sharc Magdir/sketch Magdir/smalltalk Magdir/sniffer Magdir/softquad Magdir/spectrum Magdir/sun Magdir/sysex Magdir/teapot Magdir/terminfo Magdir/tex Magdir/tgif Magdir/ti-8x Magdir/timezone Magdir/troff Magdir/tuxedo Magdir/typeset Magdir/unknown Magdir/uuencode Magdir/varied.out Magdir/vax Magdir/vicar Magdir/visx Magdir/vms Magdir/vmware Magdir/vorbis Magdir/vxl Magdir/wordperfect Magdir/xdelta Magdir/xenix Magdir/zilog Magdir/zyxel magic_FRAGMENTS = Magdir/acorn Magdir/adi Magdir/adventure Magdir/allegro Magdir/alliant Magdir/alpha Magdir/amanda Magdir/amigaos Magdir/animation Magdir/apl Magdir/apple Magdir/applix Magdir/archive Magdir/asterix Magdir/att3b Magdir/audio Magdir/blender Magdir/blit Magdir/bsdi Magdir/c-lang Magdir/cddb Magdir/chi Magdir/cisco Magdir/citrus Magdir/claris Magdir/clipper Magdir/commands Magdir/compress Magdir/console Magdir/convex Magdir/ctags Magdir/cvs Magdir/database Magdir/diamond Magdir/diff Magdir/digital Magdir/dolby Magdir/dump Magdir/dyadic Magdir/editors Magdir/elf Magdir/encore Magdir/epoc Magdir/filesystems Magdir/flash Magdir/fonts Magdir/frame Magdir/freebsd Magdir/fsav Magdir/gimp Magdir/gnu Magdir/grace Magdir/gringotts Magdir/hitachi-sh Magdir/hp Magdir/ibm370 Magdir/ibm6000 Magdir/iff Magdir/images Magdir/intel Magdir/interleaf Magdir/island Magdir/ispell Magdir/java Magdir/jpeg Magdir/karma Magdir/lecter Magdir/lex Magdir/lif Magdir/linux Magdir/lisp Magdir/mach Magdir/macintosh Magdir/magic Magdir/mail.news Magdir/maple Magdir/mathematica Magdir/mcrypt Magdir/mime Magdir/mips Magdir/mirage Magdir/mkid Magdir/mmdf Magdir/mlssa Magdir/modem Magdir/motorola Magdir/msdos Magdir/msvc Magdir/natinst Magdir/ncr Magdir/netbsd Magdir/netscape Magdir/news Magdir/nitpicker Magdir/octave Magdir/olf Magdir/os2 Magdir/os9 Magdir/osf1 Magdir/palm Magdir/parix Magdir/pbm Magdir/pdf Magdir/pdp Magdir/perl Magdir/pgp Magdir/pkgadd Magdir/plus5 Magdir/printer Magdir/project Magdir/psdbms Magdir/pulsar Magdir/pyramid Magdir/python Magdir/riff Magdir/rpm Magdir/rtf Magdir/sc Magdir/sccs Magdir/sendmail Magdir/sequent Magdir/sgml Magdir/sharc Magdir/sketch Magdir/smalltalk Magdir/sniffer Magdir/softquad Magdir/spectrum Magdir/sun Magdir/sysex Magdir/teapot Magdir/terminfo Magdir/tex Magdir/tgif Magdir/ti-8x Magdir/timezone Magdir/troff Magdir/tuxedo Magdir/typeset Magdir/unknown Magdir/uuencode Magdir/varied.out Magdir/vax Magdir/vicar Magdir/visx Magdir/vms Magdir/vmware Magdir/vorbis Magdir/vxl Magdir/wordperfect Magdir/xdelta Magdir/xenix Magdir/zilog Magdir/zyxel
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs

View File

@ -1,6 +1,6 @@
# Makefile for file(1) cmd. # Makefile for file(1) cmd.
# Copyright (c) Ian F. Darwin 86/09/01 - see LEGAL.NOTICE. # Copyright (c) Ian F. Darwin 86/09/01 - see LEGAL.NOTICE.
# @(#)$Id: Makefile.std,v 1.15 2002/07/03 18:57:52 christos Exp $ # @(#)$Id: Makefile.std,v 1.16 2003/02/08 18:35:36 christos Exp $
# #
# This software is not subject to any license of the American Telephone # This software is not subject to any license of the American Telephone
# and Telegraph Company or of the Regents of the University of California. # and Telegraph Company or of the Regents of the University of California.
@ -22,7 +22,7 @@
# #
# 4. This notice may not be removed or altered. # 4. This notice may not be removed or altered.
# #
VERSION = 3.39 VERSION = 3.40
SHELL = /bin/sh SHELL = /bin/sh
#MAGIC = /etc/magic #MAGIC = /etc/magic
MAGIC = /usr/local/etc/magic MAGIC = /usr/local/etc/magic

View File

@ -1,5 +1,5 @@
** README for file(1) Command ** ** README for file(1) Command **
@(#) $Id: README,v 1.26 2002/05/16 18:45:56 christos Exp $ @(#) $Id: README,v 1.28 2003/02/08 18:35:36 christos Exp $
This is Release 3.x of Ian Darwin's (copyright but distributable) This is Release 3.x of Ian Darwin's (copyright but distributable)
file(1) command. This version is the standard "file" command for Linux, file(1) command. This version is the standard "file" command for Linux,
@ -91,7 +91,7 @@ DOS and Mac.
From: Kees Zeelenberg From: Kees Zeelenberg
An MS-Windows (Win32) port of File-3.36 is available from An MS-Windows (Win32) port of File-3.40 is available from
http://gnuwin32.sourceforge.net/ http://gnuwin32.sourceforge.net/
File is an implementation of the Unix File(1) command. File is an implementation of the Unix File(1) command.
It knows the 'magic number' of several thousands of file types. It knows the 'magic number' of several thousands of file types.

View File

@ -45,7 +45,7 @@
#include "names.h" #include "names.h"
#ifndef lint #ifndef lint
FILE_RCSID("@(#)$Id: ascmagic.c,v 1.32 2002/07/03 18:26:37 christos Exp $") FILE_RCSID("@(#)$Id: ascmagic.c,v 1.33 2003/02/08 18:33:53 christos Exp $")
#endif /* lint */ #endif /* lint */
typedef unsigned long unichar; typedef unsigned long unichar;
@ -67,7 +67,7 @@ int
ascmagic(unsigned char *buf, int nbytes) ascmagic(unsigned char *buf, int nbytes)
{ {
int i; int i;
char nbuf[HOWMANY+1]; /* one extra for terminating '\0' */ unsigned char nbuf[HOWMANY+1]; /* one extra for terminating '\0' */
unichar ubuf[HOWMANY+1]; /* one extra for terminating '\0' */ unichar ubuf[HOWMANY+1]; /* one extra for terminating '\0' */
int ulen; int ulen;
struct names *p; struct names *p;
@ -211,7 +211,8 @@ ascmagic(unsigned char *buf, int nbytes)
* compare the word thus isolated against the token list * compare the word thus isolated against the token list
*/ */
for (p = names; p < names + NNAMES; p++) { for (p = names; p < names + NNAMES; p++) {
if (ascmatch(p->name, ubuf + i, end - i)) { if (ascmatch((unsigned char *)p->name, ubuf + i,
end - i)) {
subtype = types[p->type].human; subtype = types[p->type].human;
subtype_mime = types[p->type].mime; subtype_mime = types[p->type].mime;
goto subtype_identified; goto subtype_identified;
@ -565,7 +566,7 @@ looks_unicode(const unsigned char *buf, int nbytes, unichar *ubuf, int *ulen)
return 0; return 0;
} }
return 1; return 1 + bigend;
} }
#undef F #undef F

View File

@ -67,6 +67,9 @@
/* The number of bytes in a uint64_t. */ /* The number of bytes in a uint64_t. */
#define SIZEOF_UINT64_T 0 #define SIZEOF_UINT64_T 0
/* Define if you have the getopt_long function. */
#undef HAVE_GETOPT_LONG
/* Define if you have the mkstemp function. */ /* Define if you have the mkstemp function. */
#undef HAVE_MKSTEMP #undef HAVE_MKSTEMP
@ -85,6 +88,9 @@
/* Define if you have the <getopt.h> header file. */ /* Define if you have the <getopt.h> header file. */
#undef HAVE_GETOPT_H #undef HAVE_GETOPT_H
/* Define if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define if you have the <locale.h> header file. */ /* Define if you have the <locale.h> header file. */
#undef HAVE_LOCALE_H #undef HAVE_LOCALE_H

View File

@ -699,7 +699,7 @@ fi
PACKAGE=file PACKAGE=file
VERSION=3.39 VERSION=3.40
if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
{ echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; } { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
@ -2740,7 +2740,7 @@ EOF
for ac_func in mmap strerror strtoul mkstemp for ac_func in mmap strerror strtoul mkstemp getopt_long
do do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:2747: checking for $ac_func" >&5 echo "configure:2747: checking for $ac_func" >&5

View File

@ -60,10 +60,10 @@ AC_HEADER_SYS_WAIT
AC_HEADER_STDINT AC_HEADER_STDINT
AC_CHECK_HEADERS(fcntl.h locale.h) AC_CHECK_HEADERS(fcntl.h locale.h)
AC_CHECK_HEADERS(sys/mman.h sys/stat.h sys/types.h) AC_CHECK_HEADERS(sys/mman.h sys/stat.h sys/types.h)
AC_CHECK_HEADERS(stdint.h inttypes.h)
AC_CHECK_HEADERS(unistd.h) AC_CHECK_HEADERS(unistd.h)
AC_CHECK_HEADERS(getopt.h) AC_CHECK_HEADERS(getopt.h)
AC_CHECK_HEADERS(locale.h) AC_CHECK_HEADERS(locale.h)
AC_CHECK_HEADERS(stdint.h)
dnl Checks for typedefs, structures, and compiler characteristics. dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST AC_C_CONST
@ -91,7 +91,7 @@ AC_CHECK_SIZEOF_STDC_HEADERS(uint32_t, 0)
AC_CHECK_SIZEOF_STDC_HEADERS(uint64_t, 0) AC_CHECK_SIZEOF_STDC_HEADERS(uint64_t, 0)
dnl Checks for functions dnl Checks for functions
AC_CHECK_FUNCS(mmap strerror strtoul mkstemp) AC_CHECK_FUNCS(mmap strerror strtoul mkstemp getopt_long)
dnl Checks for libraries dnl Checks for libraries
AC_CHECK_LIB(z,gzopen) AC_CHECK_LIB(z,gzopen)

View File

@ -58,7 +58,7 @@
#include "patchlevel.h" #include "patchlevel.h"
#ifndef lint #ifndef lint
FILE_RCSID("@(#)$Id: file.c,v 1.66 2002/07/03 19:00:41 christos Exp $") FILE_RCSID("@(#)$Id: file.c,v 1.68 2003/02/08 18:33:53 christos Exp $")
#endif /* lint */ #endif /* lint */
@ -88,7 +88,8 @@ int /* Global command-line options */
zflag = 0, /* follow (uncompress) compressed files */ zflag = 0, /* follow (uncompress) compressed files */
sflag = 0, /* read block special files */ sflag = 0, /* read block special files */
iflag = 0, iflag = 0,
nobuffer = 0, /* Do not buffer stdout */ nopad = 0, /* Don't pad output */
nobuffer = 0, /* Do not buffer stdout */
kflag = 0; /* Keep going after the first match */ kflag = 0; /* Keep going after the first match */
int /* Misc globals */ int /* Misc globals */
@ -99,13 +100,15 @@ struct magic *magic; /* array of magic entries */
const char *magicfile = 0; /* where the magic is */ const char *magicfile = 0; /* where the magic is */
const char *default_magicfile = MAGIC; const char *default_magicfile = MAGIC;
char separator = ':'; /* Default field separator */
char *progname; /* used throughout */ char *progname; /* used throughout */
int lineno; /* line number in the magic file */ int lineno; /* line number in the magic file */
static void unwrap(char *fn); static void unwrap(char *fn);
static void usage(void); static void usage(void);
#ifdef HAVE_GETOPT_H #ifdef HAVE_GETOPT_LONG
static void help(void); static void help(void);
#endif #endif
#if 0 #if 0
@ -125,8 +128,8 @@ main(int argc, char **argv)
int action = 0, didsomefiles = 0, errflg = 0, ret = 0, app = 0; int action = 0, didsomefiles = 0, errflg = 0, ret = 0, app = 0;
char *mime, *home, *usermagic; char *mime, *home, *usermagic;
struct stat sb; struct stat sb;
#define OPTSTRING "bcdf:ikm:nsvzCL" #define OPTSTRING "bcdf:F:ikm:nNsvzCL"
#ifdef HAVE_GETOPT_H #ifdef HAVE_GETOPT_LONG
int longindex; int longindex;
static struct option long_options[] = static struct option long_options[] =
{ {
@ -136,6 +139,7 @@ main(int argc, char **argv)
{"checking-printout", 0, 0, 'c'}, {"checking-printout", 0, 0, 'c'},
{"debug", 0, 0, 'd'}, {"debug", 0, 0, 'd'},
{"files-from", 1, 0, 'f'}, {"files-from", 1, 0, 'f'},
{"separator", 1, 0, 'F'},
{"mime", 0, 0, 'i'}, {"mime", 0, 0, 'i'},
{"keep-going", 0, 0, 'k'}, {"keep-going", 0, 0, 'k'},
#ifdef S_IFLNK #ifdef S_IFLNK
@ -144,6 +148,7 @@ main(int argc, char **argv)
{"magic-file", 1, 0, 'm'}, {"magic-file", 1, 0, 'm'},
{"uncompress", 0, 0, 'z'}, {"uncompress", 0, 0, 'z'},
{"no-buffer", 0, 0, 'n'}, {"no-buffer", 0, 0, 'n'},
{"no-pad", 0, 0, 'N'},
{"special-files", 0, 0, 's'}, {"special-files", 0, 0, 's'},
{"compile", 0, 0, 'C'}, {"compile", 0, 0, 'C'},
{0, 0, 0, 0}, {0, 0, 0, 0},
@ -179,14 +184,14 @@ main(int argc, char **argv)
} }
} }
#ifndef HAVE_GETOPT_H #ifndef HAVE_GETOPT_LONG
while ((c = getopt(argc, argv, OPTSTRING)) != -1) while ((c = getopt(argc, argv, OPTSTRING)) != -1)
#else #else
while ((c = getopt_long(argc, argv, OPTSTRING, long_options, while ((c = getopt_long(argc, argv, OPTSTRING, long_options,
&longindex)) != -1) &longindex)) != -1)
#endif #endif
switch (c) { switch (c) {
#ifdef HAVE_GETOPT_H #ifdef HAVE_GETOPT_LONG
case 0 : case 0 :
if (longindex == 1) if (longindex == 1)
help(); help();
@ -214,6 +219,9 @@ main(int argc, char **argv)
unwrap(optarg); unwrap(optarg);
++didsomefiles; ++didsomefiles;
break; break;
case 'F':
separator = *optarg;
break;
case 'i': case 'i':
iflag++; iflag++;
if ((mime = malloc(strlen(magicfile) + 6)) != NULL) { if ((mime = malloc(strlen(magicfile) + 6)) != NULL) {
@ -231,6 +239,9 @@ main(int argc, char **argv)
case 'n': case 'n':
++nobuffer; ++nobuffer;
break; break;
case 'N':
++nopad;
break;
case 's': case 's':
sflag++; sflag++;
break; break;
@ -404,8 +415,8 @@ process(const char *inname, int wid)
} }
if (wid > 0 && !bflag) if (wid > 0 && !bflag)
(void) printf("%s:%*s ", inname, (void) printf("%s%c%*s", inname, separator,
(int) (wid - strlen(inname)), ""); (int) (nopad ? 0 : 1 + (wid - strlen(inname))), "");
if (inname != stdname) { if (inname != stdname) {
/* /*
@ -523,13 +534,13 @@ usage(void)
{ {
(void)fprintf(stderr, USAGE, progname); (void)fprintf(stderr, USAGE, progname);
(void)fprintf(stderr, "Usage: %s -C [-m magic]\n", progname); (void)fprintf(stderr, "Usage: %s -C [-m magic]\n", progname);
#ifdef HAVE_GETOPT_H #ifdef HAVE_GETOPT_LONG
(void)fputs("Try `file --help' for more information.\n", stderr); (void)fputs("Try `file --help' for more information.\n", stderr);
#endif #endif
exit(1); exit(1);
} }
#ifdef HAVE_GETOPT_H #ifdef HAVE_GETOPT_LONG
static void static void
help(void) help(void)
{ {

View File

@ -1,6 +1,6 @@
/* /*
* file.h - definitions for file(1) program * file.h - definitions for file(1) program
* @(#)$Id: file.h,v 1.43 2002/07/03 18:57:52 christos Exp $ * @(#)$Id: file.h,v 1.45 2003/02/08 18:33:53 christos Exp $
* *
* Copyright (c) Ian F. Darwin, 1987. * Copyright (c) Ian F. Darwin, 1987.
* Written by Ian F. Darwin. * Written by Ian F. Darwin.
@ -43,6 +43,8 @@
#include <stdio.h> #include <stdio.h>
#ifdef HAVE_STDINT_H #ifdef HAVE_STDINT_H
#include <stdint.h> #include <stdint.h>
#elif defined(HAVE_INTTYPES_H)
#include <inttypes.h>
#endif #endif
/* Do this here and now, because struct stat gets re-defined on solaris */ /* Do this here and now, because struct stat gets re-defined on solaris */
#include <sys/stat.h> #include <sys/stat.h>
@ -60,6 +62,10 @@
#define CHECK 1 #define CHECK 1
#define COMPILE 2 #define COMPILE 2
#ifndef __GNUC__
#define __attribute__(a)
#endif
struct magic { struct magic {
uint16_t cont_level; /* level of ">" */ uint16_t cont_level; /* level of ">" */
uint8_t nospflag; /* supress space character */ uint8_t nospflag; /* supress space character */

View File

@ -1,18 +1,21 @@
.TH FILE __CSECTION__ "Copyright but distributable" .TH FILE __CSECTION__ "Copyright but distributable"
.\" $Id: file.man,v 1.42 2002/07/03 18:26:37 christos Exp $ .\" $Id: file.man,v 1.43 2003/02/08 18:33:53 christos Exp $
.SH NAME .SH NAME
file file
\- determine file type \- determine file type
.SH SYNOPSIS .SH SYNOPSIS
.B file .B file
[ [
.B \-bciknsvzL .B \-bciknNsvzL
] ]
[ [
.B \-f .B \-f
.I namefile .I namefile
] ]
[ [
.B \-F
separator ]
[
.B \-m .B \-m
.I magicfiles .I magicfiles
] ]
@ -172,6 +175,9 @@ Either
or at least one filename argument must be present; or at least one filename argument must be present;
to test the standard input, use ``\-'' as a filename argument. to test the standard input, use ``\-'' as a filename argument.
.TP 8 .TP 8
.BI \-F " separator"
Use the specified separator character instead of ``:''.
.TP 8
.B \-i .B \-i
Causes the file command to output mime type strings rather than the more Causes the file command to output mime type strings rather than the more
traditional human readable ones. Thus it may say traditional human readable ones. Thus it may say
@ -195,6 +201,9 @@ Force stdout to be flushed after checking each file. This is only useful if
checking a list of files. It is intended to be used by programs that want checking a list of files. It is intended to be used by programs that want
filetype output from a pipe. filetype output from a pipe.
.TP 8 .TP 8
.B \-N
Don't pad output to align filenames nicely.
.TP 8
.B \-v .B \-v
Print the version of the program and exit. Print the version of the program and exit.
.TP 8 .TP 8
@ -228,7 +237,7 @@ to disregard the file size as reported by
since on some systems it reports a zero size for raw disk partitions. since on some systems it reports a zero size for raw disk partitions.
.SH FILES .SH FILES
.I __MAGIC__.mgc .I __MAGIC__.mgc
\- defaults compiled list of magic numbers \- default compiled list of magic numbers
.PP .PP
.I __MAGIC__ .I __MAGIC__
\- default list of magic numbers \- default list of magic numbers

View File

@ -170,7 +170,7 @@ is used as an offset in the file. A byte, short or long is read at that offset
depending on the depending on the
.B [bslBSL] .B [bslBSL]
type specifier. The capitalized types interpret the number as a big endian type specifier. The capitalized types interpret the number as a big endian
value, whereas the small letter versions interpet the number as a little value, whereas the small letter versions interpret the number as a little
endian value. To that number the value of endian value. To that number the value of
.I y .I y
is added and the result is used as an offset in the file. The default type is added and the result is used as an offset in the file. The default type
@ -219,4 +219,4 @@ indirect offsets.
.\" the changes I posted to the S5R2 version. .\" the changes I posted to the S5R2 version.
.\" .\"
.\" Modified for Ian Darwin's version of the file command. .\" Modified for Ian Darwin's version of the file command.
.\" @(#)$Id: magic.man,v 1.19 2002/07/03 18:26:38 christos Exp $ .\" @(#)$Id: magic.man,v 1.20 2003/02/08 18:33:53 christos Exp $

View File

@ -1,11 +1,18 @@
#define FILE_VERSION_MAJOR 3 #define FILE_VERSION_MAJOR 3
#define patchlevel 39 #define patchlevel 40
/* /*
* Patchlevel file for Ian Darwin's MAGIC command. * Patchlevel file for Ian Darwin's MAGIC command.
* $Id: patchlevel.h,v 1.39 2002/07/03 18:57:52 christos Exp $ * $Id: patchlevel.h,v 1.40 2003/02/08 18:33:53 christos Exp $
* *
* $Log: patchlevel.h,v $ * $Log: patchlevel.h,v $
* Revision 1.40 2003/02/08 18:33:53 christos
* - detect inttypes.h too (Dave Love <d.love@dl.ac.uk>)
* - eliminate unsigned char warnings (Petter Reinholdtsen <pere@hungry.com>)
* - better elf PT_NOTE handling (Nalin Dahyabhai <nalin@redhat.com>)
* - add options to format the output differently
* - much more magic.
*
* Revision 1.39 2002/07/03 18:57:52 christos * Revision 1.39 2002/07/03 18:57:52 christos
* - ansify/c99ize * - ansify/c99ize
* - more magic * - more magic

View File

@ -27,11 +27,7 @@
#include "file.h" #include "file.h"
#include <string.h> #include <string.h>
#ifdef __STDC__ #include <stdarg.h>
# include <stdarg.h>
#else
# include <varargs.h>
#endif
#include <stdlib.h> #include <stdlib.h>
#ifdef HAVE_UNISTD_H #ifdef HAVE_UNISTD_H
#include <unistd.h> #include <unistd.h>
@ -39,7 +35,7 @@
#include <time.h> #include <time.h>
#ifndef lint #ifndef lint
FILE_RCSID("@(#)$Id: print.c,v 1.38 2002/07/03 18:37:44 christos Exp $") FILE_RCSID("@(#)$Id: print.c,v 1.39 2002/07/09 15:46:23 christos Exp $")
#endif /* lint */ #endif /* lint */
#define SZOF(a) (sizeof(a) / sizeof(a[0])) #define SZOF(a) (sizeof(a) / sizeof(a[0]))

View File

@ -11,7 +11,7 @@
#include "readelf.h" #include "readelf.h"
#ifndef lint #ifndef lint
FILE_RCSID("@(#)$Id: readelf.c,v 1.22 2002/07/03 18:26:38 christos Exp $") FILE_RCSID("@(#)$Id: readelf.c,v 1.23 2003/02/08 18:33:53 christos Exp $")
#endif #endif
#ifdef ELFCORE #ifdef ELFCORE
@ -104,6 +104,9 @@ getu64(int swap, uint64_t value)
#define ph_offset (class == ELFCLASS32 \ #define ph_offset (class == ELFCLASS32 \
? getu32(swap, ph32.p_offset) \ ? getu32(swap, ph32.p_offset) \
: getu64(swap, ph64.p_offset)) : getu64(swap, ph64.p_offset))
#define ph_align (class == ELFCLASS32 \
? (ph32.p_align ? getu32(swap, ph32.p_align) : 4) \
: (ph64.p_align ? getu64(swap, ph64.p_align) : 4))
#define nh_size (class == ELFCLASS32 \ #define nh_size (class == ELFCLASS32 \
? sizeof *nh32 \ ? sizeof *nh32 \
: sizeof *nh64) : sizeof *nh64)
@ -157,6 +160,7 @@ dophn_exec(int class, int swap, int fd, off_t off, int num, size_t size)
char nbuf[BUFSIZ]; char nbuf[BUFSIZ];
int bufsize; int bufsize;
size_t offset, nameoffset; size_t offset, nameoffset;
off_t savedoffset;
if (lseek(fd, off, SEEK_SET) == -1) if (lseek(fd, off, SEEK_SET) == -1)
error("lseek failed (%s).\n", strerror(errno)); error("lseek failed (%s).\n", strerror(errno));
@ -164,6 +168,8 @@ dophn_exec(int class, int swap, int fd, off_t off, int num, size_t size)
for ( ; num; num--) { for ( ; num; num--) {
if (read(fd, ph_addr, size) == -1) if (read(fd, ph_addr, size) == -1)
error("read failed (%s).\n", strerror(errno)); error("read failed (%s).\n", strerror(errno));
if ((savedoffset = lseek(fd, 0, SEEK_CUR)) == -1)
error("lseek failed (%s).\n", strerror(errno));
switch (ph_type) { switch (ph_type) {
case PT_DYNAMIC: case PT_DYNAMIC:
@ -179,7 +185,7 @@ dophn_exec(int class, int swap, int fd, off_t off, int num, size_t size)
*/ */
if (lseek(fd, (off_t) ph_offset, SEEK_SET) == -1) if (lseek(fd, (off_t) ph_offset, SEEK_SET) == -1)
error("lseek failed (%s).\n", strerror(errno)); error("lseek failed (%s).\n", strerror(errno));
bufsize = read(fd, nbuf, BUFSIZ); bufsize = read(fd, nbuf, sizeof(nbuf));
if (bufsize == -1) if (bufsize == -1)
error(": " "read failed (%s).\n", error(": " "read failed (%s).\n",
strerror(errno)); strerror(errno));
@ -202,7 +208,14 @@ dophn_exec(int class, int swap, int fd, off_t off, int num, size_t size)
nameoffset = offset; nameoffset = offset;
offset += nh_namesz; offset += nh_namesz;
offset = ((offset + 3)/4)*4; offset = ((offset+ph_align-1)/ph_align)*ph_align;
if ((nh_namesz == 0) && (nh_descsz == 0)) {
/*
* We're out of note headers.
*/
break;
}
if (offset + nh_descsz >= bufsize) if (offset + nh_descsz >= bufsize)
break; break;
@ -277,6 +290,8 @@ dophn_exec(int class, int swap, int fd, off_t off, int num, size_t size)
/* Content of note is always 0 */ /* Content of note is always 0 */
} }
} }
if ((lseek(fd, savedoffset + offset, SEEK_SET)) == -1)
error("lseek failed (%s).\n", strerror(errno));
break; break;
} }
} }

View File

@ -34,7 +34,7 @@
#ifndef lint #ifndef lint
FILE_RCSID("@(#)$Id: softmagic.c,v 1.51 2002/07/03 18:26:38 christos Exp $") FILE_RCSID("@(#)$Id: softmagic.c,v 1.52 2003/02/08 18:33:53 christos Exp $")
#endif /* lint */ #endif /* lint */
static int match(struct magic *, uint32_t, unsigned char *, int); static int match(struct magic *, uint32_t, unsigned char *, int);
@ -564,9 +564,10 @@ mget(union VALUETYPE *p, unsigned char *s, struct magic *m, int nbytes)
* offset is interpreted as last line to search, * offset is interpreted as last line to search,
* (starting at 1), not as bytes-from start-of-file * (starting at 1), not as bytes-from start-of-file
*/ */
char *last = NULL; unsigned char *last = NULL;
p->buf = s; p->buf = (char *)s;
for (; offset && (s = strchr(s, '\n')) != NULL; offset--, s++) for (; offset && (s = (unsigned char *)strchr(s, '\n')) != NULL;
offset--, s++)
last = s; last = s;
if (last != NULL) if (last != NULL)
*last = '\0'; *last = '\0';