file_cmds-60.tar.gz
[apple/file_cmds.git] / file / magdir / compress
1
2 #------------------------------------------------------------------------------
3 # compress:  file(1) magic for pure-compression formats (no archives)
4 #
5 # compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, etc.
6 #
7 # Formats for various forms of compressed data
8 # Formats for "compress" proper have been moved into "compress.c",
9 # because it tries to uncompress it to figure out what's inside.
10
11 # standard unix compress
12 0       string          \037\235        compress'd data
13 >2      byte&0x80       >0              block compressed
14 >2      byte&0x1f       x               %d bits
15
16 # gzip (GNU zip, not to be confused with Info-ZIP or PKWARE zip archiver)
17 0       string          \037\213        gzip compressed data
18 >2      byte            <8              \b, reserved method,
19 >2      byte            8               \b, deflated,
20 >3      byte            &0x01           ASCII,
21 >3      byte            &0x02           continuation,
22 >3      byte            &0x04           extra field,
23 >3      byte            &0x08           original filename,
24 >3      byte            &0x10           comment,
25 >3      byte            &0x20           encrypted,
26 >4      ledate          x               last modified: %s,
27 >8      byte            2               max compression,
28 >8      byte            4               max speed,
29 >9      byte            =0x00           os: MS-DOS
30 >9      byte            =0x01           os: Amiga
31 >9      byte            =0x02           os: VMS
32 >9      byte            =0x03           os: Unix
33 >9      byte            =0x05           os: Atari
34 >9      byte            =0x06           os: OS/2
35 >9      byte            =0x07           os: MacOS
36 >9      byte            =0x0A           os: Tops/20
37 >9      byte            =0x0B           os: Win/32
38
39 # packed data, Huffman (minimum redundancy) codes on a byte-by-byte basis
40 0       string          \037\036        packed data
41 >2      belong          >1              \b, %d characters originally
42 >2      belong          =1              \b, %d character originally
43 #
44 # This magic number is byte-order-independent.  XXX - Does that mean this
45 # is big-endian, little-endian, either, or that you can't tell?
46 # this short is valid for SunOS
47 0       short           017437          old packed data
48
49 # XXX - why *two* entries for "compacted data", one of which is
50 # byte-order independent, and one of which is byte-order dependent?
51 #
52 0       short           0x1fff          compacted data
53 # This string is valid for SunOS (BE) and a matching "short" is listed
54 # in the Ultrix (LE) magic file.
55 0       string          \377\037        compacted data
56 0       short           0145405         huf output
57
58 # Squeeze and Crunch...
59 # These numbers were gleaned from the Unix versions of the programs to
60 # handle these formats.  Note that I can only uncrunch, not crunch, and
61 # I didn't have a crunched file handy, so the crunch number is untested.
62 #                               Keith Waclena <keith@cerberus.uchicago.edu>
63 0       leshort         0x76FF          squeezed data (CP/M, DOS)
64 0       leshort         0x76FE          crunched data (CP/M, DOS)
65
66 # Freeze
67 0       string          \037\237        frozen file 2.1
68 0       string          \037\236        frozen file 1.0 (or gzip 0.5)
69
70 # SCO compress -H (LZH)
71 0       string          \037\240        SCO compress -H (LZH) data
72
73 # European GSM 06.10 is a provisional standard for full-rate speech
74 # transcoding, prI-ETS 300 036, which uses RPE/LTP (residual pulse
75 # excitation/long term prediction) coding at 13 kbit/s.
76 #
77 # There's only a magic nibble (4 bits); that nibble repeats every 33
78 # bytes.  This isn't suited for use, but maybe we can use it someday.
79 #
80 # This will cause very short GSM files to be declared as data and
81 # mismatches to be declared as data too!
82 #0      byte&0xF0       0xd0            data
83 #>33    byte&0xF0       0xd0
84 #>66    byte&0xF0       0xd0
85 #>99    byte&0xF0       0xd0
86 #>132   byte&0xF0       0xd0            GSM 06.10 compressed audio
87
88 # Bzip from ulmo@Q.Net
89 0       string          BZ              bzip compressed data,
90 >2      byte            x               format v. %c,
91 >3      byte            x               block size indicator %c
92