Commit | Line | Data |
25f0751f |
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 | |
2b4e0969 |
10 | $VERSION = '2.000_11'; |
25f0751f |
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 | |
2b4e0969 |
28 | ZIP_CM_STORE |
29 | ZIP_CM_DEFLATED |
30 | ZIP_CM_BZIP2 |
25f0751f |
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 | |
2b4e0969 |
100 | use constant ZIP_CM_STORE => 0 ; |
101 | use constant ZIP_CM_DEFLATE => 8 ; |
102 | use constant ZIP_CM_BZIP2 => 12 ; |
25f0751f |
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 | |
25f0751f |
134 | 1; |