Spaces:
Sleeping
Sleeping
File size: 3,883 Bytes
1d777c4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 |
package IO::Compress::Gzip::Constants;
use strict ;
use warnings;
use bytes;
require Exporter;
our ($VERSION, @ISA, @EXPORT, %GZIP_OS_Names);
our ($GZIP_FNAME_INVALID_CHAR_RE, $GZIP_FCOMMENT_INVALID_CHAR_RE);
$VERSION = '2.102';
@ISA = qw(Exporter);
@EXPORT= qw(
GZIP_ID_SIZE
GZIP_ID1
GZIP_ID2
GZIP_FLG_DEFAULT
GZIP_FLG_FTEXT
GZIP_FLG_FHCRC
GZIP_FLG_FEXTRA
GZIP_FLG_FNAME
GZIP_FLG_FCOMMENT
GZIP_FLG_RESERVED
GZIP_CM_DEFLATED
GZIP_MIN_HEADER_SIZE
GZIP_TRAILER_SIZE
GZIP_MTIME_DEFAULT
GZIP_XFL_DEFAULT
GZIP_FEXTRA_HEADER_SIZE
GZIP_FEXTRA_MAX_SIZE
GZIP_FEXTRA_SUBFIELD_HEADER_SIZE
GZIP_FEXTRA_SUBFIELD_ID_SIZE
GZIP_FEXTRA_SUBFIELD_LEN_SIZE
GZIP_FEXTRA_SUBFIELD_MAX_SIZE
$GZIP_FNAME_INVALID_CHAR_RE
$GZIP_FCOMMENT_INVALID_CHAR_RE
GZIP_FHCRC_SIZE
GZIP_ISIZE_MAX
GZIP_ISIZE_MOD_VALUE
GZIP_NULL_BYTE
GZIP_OS_DEFAULT
%GZIP_OS_Names
GZIP_MINIMUM_HEADER
);
# Constant names derived from RFC 1952
use constant GZIP_ID_SIZE => 2 ;
use constant GZIP_ID1 => 0x1F;
use constant GZIP_ID2 => 0x8B;
use constant GZIP_MIN_HEADER_SIZE => 10 ;# minimum gzip header size
use constant GZIP_TRAILER_SIZE => 8 ;
use constant GZIP_FLG_DEFAULT => 0x00 ;
use constant GZIP_FLG_FTEXT => 0x01 ;
use constant GZIP_FLG_FHCRC => 0x02 ; # called CONTINUATION in gzip
use constant GZIP_FLG_FEXTRA => 0x04 ;
use constant GZIP_FLG_FNAME => 0x08 ;
use constant GZIP_FLG_FCOMMENT => 0x10 ;
#use constant GZIP_FLG_ENCRYPTED => 0x20 ; # documented in gzip sources
use constant GZIP_FLG_RESERVED => (0x20 | 0x40 | 0x80) ;
use constant GZIP_XFL_DEFAULT => 0x00 ;
use constant GZIP_MTIME_DEFAULT => 0x00 ;
use constant GZIP_FEXTRA_HEADER_SIZE => 2 ;
use constant GZIP_FEXTRA_MAX_SIZE => 0xFFFF ;
use constant GZIP_FEXTRA_SUBFIELD_ID_SIZE => 2 ;
use constant GZIP_FEXTRA_SUBFIELD_LEN_SIZE => 2 ;
use constant GZIP_FEXTRA_SUBFIELD_HEADER_SIZE => GZIP_FEXTRA_SUBFIELD_ID_SIZE +
GZIP_FEXTRA_SUBFIELD_LEN_SIZE;
use constant GZIP_FEXTRA_SUBFIELD_MAX_SIZE => GZIP_FEXTRA_MAX_SIZE -
GZIP_FEXTRA_SUBFIELD_HEADER_SIZE ;
if (ord('A') == 193)
{
# EBCDIC
$GZIP_FNAME_INVALID_CHAR_RE = '[\x00-\x3f\xff]';
$GZIP_FCOMMENT_INVALID_CHAR_RE = '[\x00-\x0a\x11-\x14\x16-\x3f\xff]';
}
else
{
$GZIP_FNAME_INVALID_CHAR_RE = '[\x00-\x1F\x7F-\x9F]';
$GZIP_FCOMMENT_INVALID_CHAR_RE = '[\x00-\x09\x11-\x1F\x7F-\x9F]';
}
use constant GZIP_FHCRC_SIZE => 2 ; # aka CONTINUATION in gzip
use constant GZIP_CM_DEFLATED => 8 ;
use constant GZIP_NULL_BYTE => "\x00";
use constant GZIP_ISIZE_MAX => 0xFFFFFFFF ;
use constant GZIP_ISIZE_MOD_VALUE => GZIP_ISIZE_MAX + 1 ;
# OS Names sourced from http://www.gzip.org/format.txt
use constant GZIP_OS_DEFAULT=> 0xFF ;
%GZIP_OS_Names = (
0 => 'MS-DOS',
1 => 'Amiga',
2 => 'VMS',
3 => 'Unix',
4 => 'VM/CMS',
5 => 'Atari TOS',
6 => 'HPFS (OS/2, NT)',
7 => 'Macintosh',
8 => 'Z-System',
9 => 'CP/M',
10 => 'TOPS-20',
11 => 'NTFS (NT)',
12 => 'SMS QDOS',
13 => 'Acorn RISCOS',
14 => 'VFAT file system (Win95, NT)',
15 => 'MVS',
16 => 'BeOS',
17 => 'Tandem/NSK',
18 => 'THEOS',
GZIP_OS_DEFAULT() => 'Unknown',
) ;
use constant GZIP_MINIMUM_HEADER => pack("C4 V C C",
GZIP_ID1, GZIP_ID2, GZIP_CM_DEFLATED, GZIP_FLG_DEFAULT,
GZIP_MTIME_DEFAULT, GZIP_XFL_DEFAULT, GZIP_OS_DEFAULT) ;
1;
|