compress revision 110949
150472Speter
233975Sjdp#------------------------------------------------------------------------------
333975Sjdp# compress:  file(1) magic for pure-compression formats (no archives)
433975Sjdp#
533975Sjdp# compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, etc.
633975Sjdp#
780019Sobrien# Formats for various forms of compressed data
884947Sobrien# Formats for "compress" proper have been moved into "compress.c",
954748Smarcel# because it tries to uncompress it to figure out what's inside.
1084902Sobrien
1144360Simp# standard unix compress
1233975Sjdp0	string		\037\235	compress'd data
1333975Sjdp>2	byte&0x80	>0		block compressed
1433975Sjdp>2	byte&0x1f	x		%d bits
1584902Sobrien
1633975Sjdp# gzip (GNU zip, not to be confused with Info-ZIP or PKWARE zip archiver)
1784902Sobrien#   Edited by Chris Chittleborough <cchittleborough@yahoo.com.au>, March 2002
1884902Sobrien#	* Original filename is only at offset 10 if "extra field" absent
1933975Sjdp#	* Produce shorter output - notably, only report compression methods
2084902Sobrien#	  other than 8 ("deflate", the only method defined in RFC 1952).
2133975Sjdp0       string          \037\213        gzip compressed data
2233975Sjdp>2	byte		<8		\b, reserved method
2333975Sjdp>2	byte		>8		\b, unknown method
2484902Sobrien>3	byte		&0x01		\b, ASCII
2544360Simp>3	byte		&0x02		\b, continuation
2684902Sobrien>3	byte		&0x04		\b, extra field
2734495Sjdp>3	byte&0xC	=0x08
2884902Sobrien>>10	string		x		\b, was "%s"
2984902Sobrien>9	byte		=0x00		\b, from MS-DOS
3084902Sobrien>9	byte		=0x01		\b, from Amiga
3134495Sjdp>9	byte		=0x02		\b, from VMS
3244360Simp>9	byte		=0x03		\b, from Unix
3344360Simp>9	byte		=0x05		\b, from Atari
3434495Sjdp>9	byte		=0x06		\b, from OS/2
3534495Sjdp>9	byte		=0x07		\b, from MacOS
3684902Sobrien>9	byte		=0x0A		\b, from Tops/20
3735709Sjb>9	byte		=0x0B		\b, from Win/32
3852927Sjb>3	byte		&0x10		\b, comment
3952927Sjb>3	byte		&0x20		\b, encrypted
4084902Sobrien### >4	ledate		x		last modified: %s,
4152927Sjb>8	byte		2		\b, max compression
4252927Sjb>8	byte		4		\b, max speed
4352927Sjb
4435709Sjb# packed data, Huffman (minimum redundancy) codes on a byte-by-byte basis
4535709Sjb0	string		\037\036	packed data
4635709Sjb>2	belong		>1		\b, %d characters originally
4734495Sjdp>2	belong		=1		\b, %d character originally
4835709Sjb#
49# This magic number is byte-order-independent.  XXX - Does that mean this
50# is big-endian, little-endian, either, or that you can't tell?
51# this short is valid for SunOS
520	short		017437		old packed data
53
54# XXX - why *two* entries for "compacted data", one of which is
55# byte-order independent, and one of which is byte-order dependent?
56#
570	short		0x1fff		compacted data
58# This string is valid for SunOS (BE) and a matching "short" is listed
59# in the Ultrix (LE) magic file.
600	string		\377\037	compacted data
610	short		0145405		huf output
62
63# bzip2
640	string		BZh		bzip2 compressed data
65>3	byte		>47		\b, block size = %c00k
66
67# squeeze and crunch
68# Michael Haardt <michael@cantor.informatik.rwth-aachen.de>
690	beshort		0x76FF		squeezed data,
70>4	string		x		original name %s
710	beshort		0x76FE		crunched data,
72>2	string		x		original name %s
730	beshort		0x76FD		LZH compressed data,
74>2	string		x		original name %s
75
76# Freeze
770	string		\037\237	frozen file 2.1
780	string		\037\236	frozen file 1.0 (or gzip 0.5)
79
80# SCO compress -H (LZH)
810	string		\037\240	SCO compress -H (LZH) data
82
83# European GSM 06.10 is a provisional standard for full-rate speech
84# transcoding, prI-ETS 300 036, which uses RPE/LTP (residual pulse
85# excitation/long term prediction) coding at 13 kbit/s.
86#
87# There's only a magic nibble (4 bits); that nibble repeats every 33
88# bytes.  This isn't suited for use, but maybe we can use it someday.
89#
90# This will cause very short GSM files to be declared as data and
91# mismatches to be declared as data too!
92#0	byte&0xF0	0xd0		data
93#>33	byte&0xF0	0xd0
94#>66	byte&0xF0	0xd0
95#>99	byte&0xF0	0xd0
96#>132	byte&0xF0	0xd0		GSM 06.10 compressed audio
97
98# bzip	a block-sorting file compressor
99#	by Julian Seward <sewardj@cs.man.ac.uk> and others
100#
1010	string		BZ		bzip compressed data
102>2	byte		x		\b, version: %c
103>3	string		=1		\b, compression block size 100k
104>3	string		=2		\b, compression block size 200k
105>3	string		=3		\b, compression block size 300k
106>3	string		=4		\b, compression block size 400k
107>3	string		=5		\b, compression block size 500k
108>3	string		=6		\b, compression block size 600k
109>3	string		=7		\b, compression block size 700k
110>3	string		=8		\b, compression block size 800k
111>3	string		=9		\b, compression block size 900k
112
113# lzop from <markus.oberhumer@jk.uni-linz.ac.at>
1140	string		\x89\x4c\x5a\x4f\x00\x0d\x0a\x1a\x0a	lzop compressed data
115>9	beshort		<0x0940
116>>9	byte&0xf0	=0x00		- version 0.
117>>9	beshort&0x0fff	x		\b%03x,
118>>13	byte		1		LZO1X-1,
119>>13	byte		2		LZO1X-1(15),
120>>13	byte		3		LZO1X-999,
121## >>22	bedate		>0		last modified: %s,
122>>14	byte		=0x00		os: MS-DOS
123>>14	byte		=0x01		os: Amiga
124>>14	byte		=0x02		os: VMS
125>>14	byte		=0x03		os: Unix
126>>14	byte		=0x05		os: Atari
127>>14	byte		=0x06		os: OS/2
128>>14	byte		=0x07		os: MacOS
129>>14	byte		=0x0A		os: Tops/20
130>>14	byte		=0x0B		os: WinNT
131>>14	byte		=0x0E		os: Win32
132>9	beshort		>0x0939
133>>9	byte&0xf0	=0x00		- version 0.
134>>9	byte&0xf0	=0x10		- version 1.
135>>9	byte&0xf0	=0x20		- version 2.
136>>9	beshort&0x0fff	x		\b%03x,
137>>15	byte		1		LZO1X-1,
138>>15	byte		2		LZO1X-1(15),
139>>15	byte		3		LZO1X-999,
140## >>25	bedate		>0		last modified: %s,
141>>17	byte		=0x00		os: MS-DOS
142>>17	byte		=0x01		os: Amiga
143>>17	byte		=0x02		os: VMS
144>>17	byte		=0x03		os: Unix
145>>17	byte		=0x05		os: Atari
146>>17	byte		=0x06		os: OS/2
147>>17	byte		=0x07		os: MacOS
148>>17	byte		=0x0A		os: Tops/20
149>>17	byte		=0x0B		os: WinNT
150>>17	byte		=0x0E		os: Win32
151
152# 4.3BSD-Quasijarus Strong Compression
153# http://minnie.tuhs.org/Quasijarus/compress.html
1540	string		\037\241	Quasijarus strong compressed data
155
156# From: Cory Dikkers <cdikkers@swbell.net>
1570	string		XPKF		Amiga xpkf.library compressed data
1580	string		PP11		Power Packer 1.1 compressed data
1590	string		PP20		Power Packer 2.0 compressed data,
160>4	belong		0x09090909	fast compression
161>4	belong		0x090A0A0A	mediocre compression
162>4	belong		0x090A0B0B	good compression
163>4	belong		0x090A0C0C	very good compression
164>4	belong		0x090A0C0D	best compression
165
166# 7z archiver, from Thomas Klausner (wiz@danbala.tuwien.ac.at)
167# http://www.7-zip.org or DOC/7zFormat.txt 
168#
1690	string		7z\274\257\047\034	7z archive data,
170>6	byte		x			version %d
171>7	byte		x			\b.%d
172