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