IO::Compress::*
[p5sagit/p5-mst-13.2.git] / ext / Compress / IO / Zlib / lib / IO / Compress / Zip / Constants.pm
1 package IO::Compress::Zip::Constants;
2
3 use strict ;
4 use warnings;
5
6 require Exporter;
7
8 our ($VERSION, @ISA, @EXPORT, %GZIP_OS_Names);
9
10 $VERSION = '2.000_11';
11
12 @ISA = qw(Exporter);
13
14 @EXPORT= qw(
15
16     ZIP_ID_SIZE
17     GZIP_ID1
18     GZIP_ID2
19
20     GZIP_FLG_DEFAULT
21     GZIP_FLG_FTEXT
22     GZIP_FLG_FHCRC
23     GZIP_FLG_FEXTRA
24     GZIP_FLG_FNAME
25     GZIP_FLG_FCOMMENT
26     GZIP_FLG_RESERVED
27
28     ZIP_CM_STORE
29     ZIP_CM_DEFLATED
30     ZIP_CM_BZIP2
31
32     GZIP_MIN_HEADER_SIZE
33     GZIP_TRAILER_SIZE
34
35     GZIP_MTIME_DEFAULT
36     GZIP_FEXTRA_DEFAULT
37     GZIP_FEXTRA_HEADER_SIZE
38     GZIP_FEXTRA_MAX_SIZE
39     GZIP_FEXTRA_SUBFIELD_HEADER_SIZE
40     GZIP_FEXTRA_SUBFIELD_ID_SIZE
41     GZIP_FEXTRA_SUBFIELD_LEN_SIZE
42     GZIP_FEXTRA_SUBFIELD_MAX_SIZE
43
44     GZIP_FNAME_INVALID_CHAR_RE
45     GZIP_FCOMMENT_INVALID_CHAR_RE
46
47     GZIP_FHCRC_SIZE
48
49     GZIP_ISIZE_MAX
50     GZIP_ISIZE_MOD_VALUE
51
52
53     GZIP_NULL_BYTE
54
55     GZIP_OS_DEFAULT
56
57     %GZIP_OS_Names
58
59     GZIP_MINIMUM_HEADER
60
61     );
62
63
64 # Constants for the Zip Local Header
65
66 use constant ZIP_ID_SIZE                        => 4 ;
67 use constant ZIP_LOCAL_ID                       => 0x02014B50;
68 use constant ZIP_LOCAL_ID1                      => 0x04;
69 use constant ZIP_LOCAL_ID2                      => 0x03;
70 use constant ZIP_LOCAL_ID3                      => 0x4B;
71 use constant ZIP_LOCAL_ID4                      => 0x50;
72
73 use constant ZIP_MIN_HEADER_SIZE                => 30 ;
74 use constant ZIP_TRAILER_SIZE                   => 0 ;
75
76
77 use constant GZIP_FLG_DEFAULT                   => 0x00 ;
78 use constant GZIP_FLG_FTEXT                     => 0x01 ;
79 use constant GZIP_FLG_FHCRC                     => 0x02 ; # called CONTINUATION in gzip
80 use constant GZIP_FLG_FEXTRA                    => 0x04 ;
81 use constant GZIP_FLG_FNAME                     => 0x08 ;
82 use constant GZIP_FLG_FCOMMENT                  => 0x10 ;
83 #use constant GZIP_FLG_ENCRYPTED                => 0x20 ; # documented in gzip sources
84 use constant GZIP_FLG_RESERVED                  => (0x20 | 0x40 | 0x80) ;
85
86 use constant GZIP_MTIME_DEFAULT                 => 0x00 ;
87 use constant GZIP_FEXTRA_DEFAULT                => 0x00 ;
88 use constant GZIP_FEXTRA_HEADER_SIZE            => 2 ;
89 use constant GZIP_FEXTRA_MAX_SIZE               => 0xFFFF ;
90 use constant GZIP_FEXTRA_SUBFIELD_HEADER_SIZE   => 4 ;
91 use constant GZIP_FEXTRA_SUBFIELD_ID_SIZE       => 2 ;
92 use constant GZIP_FEXTRA_SUBFIELD_LEN_SIZE      => 2 ;
93 use constant GZIP_FEXTRA_SUBFIELD_MAX_SIZE      => 0xFFFF ;
94
95 use constant GZIP_FNAME_INVALID_CHAR_RE         => qr/[\x00-\x1F\x7F-\x9F]/;
96 use constant GZIP_FCOMMENT_INVALID_CHAR_RE      => qr/[\x00-\x09\x11-\x1F\x7F-\x9F]/;
97
98 use constant GZIP_FHCRC_SIZE                    => 2 ; # aka CONTINUATION in gzip
99
100 use constant ZIP_CM_STORE                      => 0 ;
101 use constant ZIP_CM_DEFLATE                    => 8 ;
102 use constant ZIP_CM_BZIP2                      => 12 ;
103
104 use constant GZIP_NULL_BYTE                     => "\x00";
105 use constant GZIP_ISIZE_MAX                     => 0xFFFFFFFF ;
106 use constant GZIP_ISIZE_MOD_VALUE               => GZIP_ISIZE_MAX + 1 ;
107
108 # OS Names sourced from http://www.gzip.org/format.txt
109
110 use constant GZIP_OS_DEFAULT=> 0xFF ;
111 %ZIP_OS_Names = (
112     0               => 'MS-DOS',
113     1               => 'Amiga',
114     2               => 'VMS',
115     3               => 'Unix',
116     4               => 'VM/CMS',
117     5               => 'Atari TOS',
118     6               => 'HPFS (OS/2, NT)',
119     7               => 'Macintosh',
120     8               => 'Z-System',
121     9               => 'CP/M',
122     10              => 'TOPS-20',
123     11              => 'NTFS (NT)',
124     12              => 'SMS QDOS',
125     13              => 'Acorn RISCOS',
126     14              => 'VFAT file system (Win95, NT)',
127     15              => 'MVS',
128     16              => 'BeOS',
129     17              => 'Tandem/NSK',
130     18              => 'THEOS',
131     GZIP_OS_DEFAULT => 'Unknown',
132     ) ;
133
134 1;