chd 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +30 -0
- data/chd.gemspec +29 -0
- data/ext/chd.c +1008 -0
- data/ext/extconf.rb +60 -0
- data/lib/chd/cd.rb +272 -0
- data/lib/chd/metadata.rb +196 -0
- data/lib/chd/version.rb +4 -0
- data/lib/chd.rb +21 -0
- data/libchdr/CMakeLists.txt +104 -0
- data/libchdr/LICENSE.txt +24 -0
- data/libchdr/README.md +7 -0
- data/libchdr/deps/lzma-19.00/CMakeLists.txt +33 -0
- data/libchdr/deps/lzma-19.00/LICENSE +3 -0
- data/libchdr/deps/lzma-19.00/include/7zTypes.h +375 -0
- data/libchdr/deps/lzma-19.00/include/Alloc.h +51 -0
- data/libchdr/deps/lzma-19.00/include/Bra.h +64 -0
- data/libchdr/deps/lzma-19.00/include/Compiler.h +33 -0
- data/libchdr/deps/lzma-19.00/include/CpuArch.h +336 -0
- data/libchdr/deps/lzma-19.00/include/Delta.h +19 -0
- data/libchdr/deps/lzma-19.00/include/LzFind.h +121 -0
- data/libchdr/deps/lzma-19.00/include/LzHash.h +57 -0
- data/libchdr/deps/lzma-19.00/include/Lzma86.h +111 -0
- data/libchdr/deps/lzma-19.00/include/LzmaDec.h +234 -0
- data/libchdr/deps/lzma-19.00/include/LzmaEnc.h +76 -0
- data/libchdr/deps/lzma-19.00/include/LzmaLib.h +131 -0
- data/libchdr/deps/lzma-19.00/include/Precomp.h +10 -0
- data/libchdr/deps/lzma-19.00/include/Sort.h +18 -0
- data/libchdr/deps/lzma-19.00/lzma-history.txt +446 -0
- data/libchdr/deps/lzma-19.00/lzma.txt +328 -0
- data/libchdr/deps/lzma-19.00/lzma.vcxproj +543 -0
- data/libchdr/deps/lzma-19.00/lzma.vcxproj.filters +17 -0
- data/libchdr/deps/lzma-19.00/src/Alloc.c +455 -0
- data/libchdr/deps/lzma-19.00/src/Bra86.c +82 -0
- data/libchdr/deps/lzma-19.00/src/BraIA64.c +53 -0
- data/libchdr/deps/lzma-19.00/src/CpuArch.c +218 -0
- data/libchdr/deps/lzma-19.00/src/Delta.c +64 -0
- data/libchdr/deps/lzma-19.00/src/LzFind.c +1127 -0
- data/libchdr/deps/lzma-19.00/src/Lzma86Dec.c +54 -0
- data/libchdr/deps/lzma-19.00/src/LzmaDec.c +1185 -0
- data/libchdr/deps/lzma-19.00/src/LzmaEnc.c +1330 -0
- data/libchdr/deps/lzma-19.00/src/Sort.c +141 -0
- data/libchdr/deps/zlib-1.2.11/CMakeLists.txt +29 -0
- data/libchdr/deps/zlib-1.2.11/ChangeLog +1515 -0
- data/libchdr/deps/zlib-1.2.11/FAQ +368 -0
- data/libchdr/deps/zlib-1.2.11/INDEX +68 -0
- data/libchdr/deps/zlib-1.2.11/Makefile +5 -0
- data/libchdr/deps/zlib-1.2.11/Makefile.in +410 -0
- data/libchdr/deps/zlib-1.2.11/README +115 -0
- data/libchdr/deps/zlib-1.2.11/adler32.c +186 -0
- data/libchdr/deps/zlib-1.2.11/compress.c +86 -0
- data/libchdr/deps/zlib-1.2.11/configure +921 -0
- data/libchdr/deps/zlib-1.2.11/crc32.c +442 -0
- data/libchdr/deps/zlib-1.2.11/crc32.h +441 -0
- data/libchdr/deps/zlib-1.2.11/deflate.c +2163 -0
- data/libchdr/deps/zlib-1.2.11/deflate.h +349 -0
- data/libchdr/deps/zlib-1.2.11/doc/algorithm.txt +209 -0
- data/libchdr/deps/zlib-1.2.11/doc/rfc1950.txt +619 -0
- data/libchdr/deps/zlib-1.2.11/doc/rfc1951.txt +955 -0
- data/libchdr/deps/zlib-1.2.11/doc/rfc1952.txt +675 -0
- data/libchdr/deps/zlib-1.2.11/doc/txtvsbin.txt +107 -0
- data/libchdr/deps/zlib-1.2.11/gzclose.c +25 -0
- data/libchdr/deps/zlib-1.2.11/gzguts.h +218 -0
- data/libchdr/deps/zlib-1.2.11/gzlib.c +637 -0
- data/libchdr/deps/zlib-1.2.11/gzread.c +654 -0
- data/libchdr/deps/zlib-1.2.11/gzwrite.c +665 -0
- data/libchdr/deps/zlib-1.2.11/infback.c +640 -0
- data/libchdr/deps/zlib-1.2.11/inffast.c +323 -0
- data/libchdr/deps/zlib-1.2.11/inffast.h +11 -0
- data/libchdr/deps/zlib-1.2.11/inffixed.h +94 -0
- data/libchdr/deps/zlib-1.2.11/inflate.c +1561 -0
- data/libchdr/deps/zlib-1.2.11/inflate.h +125 -0
- data/libchdr/deps/zlib-1.2.11/inftrees.c +304 -0
- data/libchdr/deps/zlib-1.2.11/inftrees.h +62 -0
- data/libchdr/deps/zlib-1.2.11/make_vms.com +867 -0
- data/libchdr/deps/zlib-1.2.11/treebuild.xml +116 -0
- data/libchdr/deps/zlib-1.2.11/trees.c +1203 -0
- data/libchdr/deps/zlib-1.2.11/trees.h +128 -0
- data/libchdr/deps/zlib-1.2.11/uncompr.c +93 -0
- data/libchdr/deps/zlib-1.2.11/zconf.h +534 -0
- data/libchdr/deps/zlib-1.2.11/zconf.h.cmakein +536 -0
- data/libchdr/deps/zlib-1.2.11/zconf.h.in +534 -0
- data/libchdr/deps/zlib-1.2.11/zlib.3 +149 -0
- data/libchdr/deps/zlib-1.2.11/zlib.3.pdf +0 -0
- data/libchdr/deps/zlib-1.2.11/zlib.h +1912 -0
- data/libchdr/deps/zlib-1.2.11/zlib.map +94 -0
- data/libchdr/deps/zlib-1.2.11/zlib.pc.cmakein +13 -0
- data/libchdr/deps/zlib-1.2.11/zlib.pc.in +13 -0
- data/libchdr/deps/zlib-1.2.11/zlib2ansi +152 -0
- data/libchdr/deps/zlib-1.2.11/zutil.c +325 -0
- data/libchdr/deps/zlib-1.2.11/zutil.h +271 -0
- data/libchdr/include/dr_libs/dr_flac.h +12280 -0
- data/libchdr/include/libchdr/bitstream.h +43 -0
- data/libchdr/include/libchdr/cdrom.h +110 -0
- data/libchdr/include/libchdr/chd.h +427 -0
- data/libchdr/include/libchdr/chdconfig.h +10 -0
- data/libchdr/include/libchdr/coretypes.h +60 -0
- data/libchdr/include/libchdr/flac.h +50 -0
- data/libchdr/include/libchdr/huffman.h +90 -0
- data/libchdr/pkg-config.pc.in +10 -0
- data/libchdr/src/libchdr_bitstream.c +125 -0
- data/libchdr/src/libchdr_cdrom.c +415 -0
- data/libchdr/src/libchdr_chd.c +2744 -0
- data/libchdr/src/libchdr_flac.c +302 -0
- data/libchdr/src/libchdr_huffman.c +545 -0
- data/libchdr/src/link.T +5 -0
- data/libchdr/tests/CMakeLists.txt +2 -0
- data/libchdr/tests/benchmark.c +52 -0
- metadata +183 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
ZLIB_1.2.0 {
|
|
2
|
+
global:
|
|
3
|
+
compressBound;
|
|
4
|
+
deflateBound;
|
|
5
|
+
inflateBack;
|
|
6
|
+
inflateBackEnd;
|
|
7
|
+
inflateBackInit_;
|
|
8
|
+
inflateCopy;
|
|
9
|
+
local:
|
|
10
|
+
deflate_copyright;
|
|
11
|
+
inflate_copyright;
|
|
12
|
+
inflate_fast;
|
|
13
|
+
inflate_table;
|
|
14
|
+
zcalloc;
|
|
15
|
+
zcfree;
|
|
16
|
+
z_errmsg;
|
|
17
|
+
gz_error;
|
|
18
|
+
gz_intmax;
|
|
19
|
+
_*;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
ZLIB_1.2.0.2 {
|
|
23
|
+
gzclearerr;
|
|
24
|
+
gzungetc;
|
|
25
|
+
zlibCompileFlags;
|
|
26
|
+
} ZLIB_1.2.0;
|
|
27
|
+
|
|
28
|
+
ZLIB_1.2.0.8 {
|
|
29
|
+
deflatePrime;
|
|
30
|
+
} ZLIB_1.2.0.2;
|
|
31
|
+
|
|
32
|
+
ZLIB_1.2.2 {
|
|
33
|
+
adler32_combine;
|
|
34
|
+
crc32_combine;
|
|
35
|
+
deflateSetHeader;
|
|
36
|
+
inflateGetHeader;
|
|
37
|
+
} ZLIB_1.2.0.8;
|
|
38
|
+
|
|
39
|
+
ZLIB_1.2.2.3 {
|
|
40
|
+
deflateTune;
|
|
41
|
+
gzdirect;
|
|
42
|
+
} ZLIB_1.2.2;
|
|
43
|
+
|
|
44
|
+
ZLIB_1.2.2.4 {
|
|
45
|
+
inflatePrime;
|
|
46
|
+
} ZLIB_1.2.2.3;
|
|
47
|
+
|
|
48
|
+
ZLIB_1.2.3.3 {
|
|
49
|
+
adler32_combine64;
|
|
50
|
+
crc32_combine64;
|
|
51
|
+
gzopen64;
|
|
52
|
+
gzseek64;
|
|
53
|
+
gztell64;
|
|
54
|
+
inflateUndermine;
|
|
55
|
+
} ZLIB_1.2.2.4;
|
|
56
|
+
|
|
57
|
+
ZLIB_1.2.3.4 {
|
|
58
|
+
inflateReset2;
|
|
59
|
+
inflateMark;
|
|
60
|
+
} ZLIB_1.2.3.3;
|
|
61
|
+
|
|
62
|
+
ZLIB_1.2.3.5 {
|
|
63
|
+
gzbuffer;
|
|
64
|
+
gzoffset;
|
|
65
|
+
gzoffset64;
|
|
66
|
+
gzclose_r;
|
|
67
|
+
gzclose_w;
|
|
68
|
+
} ZLIB_1.2.3.4;
|
|
69
|
+
|
|
70
|
+
ZLIB_1.2.5.1 {
|
|
71
|
+
deflatePending;
|
|
72
|
+
} ZLIB_1.2.3.5;
|
|
73
|
+
|
|
74
|
+
ZLIB_1.2.5.2 {
|
|
75
|
+
deflateResetKeep;
|
|
76
|
+
gzgetc_;
|
|
77
|
+
inflateResetKeep;
|
|
78
|
+
} ZLIB_1.2.5.1;
|
|
79
|
+
|
|
80
|
+
ZLIB_1.2.7.1 {
|
|
81
|
+
inflateGetDictionary;
|
|
82
|
+
gzvprintf;
|
|
83
|
+
} ZLIB_1.2.5.2;
|
|
84
|
+
|
|
85
|
+
ZLIB_1.2.9 {
|
|
86
|
+
inflateCodesUsed;
|
|
87
|
+
inflateValidate;
|
|
88
|
+
uncompress2;
|
|
89
|
+
gzfread;
|
|
90
|
+
gzfwrite;
|
|
91
|
+
deflateGetDictionary;
|
|
92
|
+
adler32_z;
|
|
93
|
+
crc32_z;
|
|
94
|
+
} ZLIB_1.2.7.1;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
prefix=@CMAKE_INSTALL_PREFIX@
|
|
2
|
+
exec_prefix=@CMAKE_INSTALL_PREFIX@
|
|
3
|
+
libdir=@INSTALL_LIB_DIR@
|
|
4
|
+
sharedlibdir=@INSTALL_LIB_DIR@
|
|
5
|
+
includedir=@INSTALL_INC_DIR@
|
|
6
|
+
|
|
7
|
+
Name: zlib
|
|
8
|
+
Description: zlib compression library
|
|
9
|
+
Version: @VERSION@
|
|
10
|
+
|
|
11
|
+
Requires:
|
|
12
|
+
Libs: -L${libdir} -L${sharedlibdir} -lz
|
|
13
|
+
Cflags: -I${includedir}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
prefix=@prefix@
|
|
2
|
+
exec_prefix=@exec_prefix@
|
|
3
|
+
libdir=@libdir@
|
|
4
|
+
sharedlibdir=@sharedlibdir@
|
|
5
|
+
includedir=@includedir@
|
|
6
|
+
|
|
7
|
+
Name: zlib
|
|
8
|
+
Description: zlib compression library
|
|
9
|
+
Version: @VERSION@
|
|
10
|
+
|
|
11
|
+
Requires:
|
|
12
|
+
Libs: -L${libdir} -L${sharedlibdir} -lz
|
|
13
|
+
Cflags: -I${includedir}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
#!/usr/bin/perl
|
|
2
|
+
|
|
3
|
+
# Transform K&R C function definitions into ANSI equivalent.
|
|
4
|
+
#
|
|
5
|
+
# Author: Paul Marquess
|
|
6
|
+
# Version: 1.0
|
|
7
|
+
# Date: 3 October 2006
|
|
8
|
+
|
|
9
|
+
# TODO
|
|
10
|
+
#
|
|
11
|
+
# Asumes no function pointer parameters. unless they are typedefed.
|
|
12
|
+
# Assumes no literal strings that look like function definitions
|
|
13
|
+
# Assumes functions start at the beginning of a line
|
|
14
|
+
|
|
15
|
+
use strict;
|
|
16
|
+
use warnings;
|
|
17
|
+
|
|
18
|
+
local $/;
|
|
19
|
+
$_ = <>;
|
|
20
|
+
|
|
21
|
+
my $sp = qr{ \s* (?: /\* .*? \*/ )? \s* }x; # assume no nested comments
|
|
22
|
+
|
|
23
|
+
my $d1 = qr{ $sp (?: [\w\*\s]+ $sp)* $sp \w+ $sp [\[\]\s]* $sp }x ;
|
|
24
|
+
my $decl = qr{ $sp (?: \w+ $sp )+ $d1 }xo ;
|
|
25
|
+
my $dList = qr{ $sp $decl (?: $sp , $d1 )* $sp ; $sp }xo ;
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
while (s/^
|
|
29
|
+
( # Start $1
|
|
30
|
+
( # Start $2
|
|
31
|
+
.*? # Minimal eat content
|
|
32
|
+
( ^ \w [\w\s\*]+ ) # $3 -- function name
|
|
33
|
+
\s* # optional whitespace
|
|
34
|
+
) # $2 - Matched up to before parameter list
|
|
35
|
+
|
|
36
|
+
\( \s* # Literal "(" + optional whitespace
|
|
37
|
+
( [^\)]+ ) # $4 - one or more anythings except ")"
|
|
38
|
+
\s* \) # optional whitespace surrounding a Literal ")"
|
|
39
|
+
|
|
40
|
+
( (?: $dList )+ ) # $5
|
|
41
|
+
|
|
42
|
+
$sp ^ { # literal "{" at start of line
|
|
43
|
+
) # Remember to $1
|
|
44
|
+
//xsom
|
|
45
|
+
)
|
|
46
|
+
{
|
|
47
|
+
my $all = $1 ;
|
|
48
|
+
my $prefix = $2;
|
|
49
|
+
my $param_list = $4 ;
|
|
50
|
+
my $params = $5;
|
|
51
|
+
|
|
52
|
+
StripComments($params);
|
|
53
|
+
StripComments($param_list);
|
|
54
|
+
$param_list =~ s/^\s+//;
|
|
55
|
+
$param_list =~ s/\s+$//;
|
|
56
|
+
|
|
57
|
+
my $i = 0 ;
|
|
58
|
+
my %pList = map { $_ => $i++ }
|
|
59
|
+
split /\s*,\s*/, $param_list;
|
|
60
|
+
my $pMatch = '(\b' . join('|', keys %pList) . '\b)\W*$' ;
|
|
61
|
+
|
|
62
|
+
my @params = split /\s*;\s*/, $params;
|
|
63
|
+
my @outParams = ();
|
|
64
|
+
foreach my $p (@params)
|
|
65
|
+
{
|
|
66
|
+
if ($p =~ /,/)
|
|
67
|
+
{
|
|
68
|
+
my @bits = split /\s*,\s*/, $p;
|
|
69
|
+
my $first = shift @bits;
|
|
70
|
+
$first =~ s/^\s*//;
|
|
71
|
+
push @outParams, $first;
|
|
72
|
+
$first =~ /^(\w+\s*)/;
|
|
73
|
+
my $type = $1 ;
|
|
74
|
+
push @outParams, map { $type . $_ } @bits;
|
|
75
|
+
}
|
|
76
|
+
else
|
|
77
|
+
{
|
|
78
|
+
$p =~ s/^\s+//;
|
|
79
|
+
push @outParams, $p;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
my %tmp = map { /$pMatch/; $_ => $pList{$1} }
|
|
85
|
+
@outParams ;
|
|
86
|
+
|
|
87
|
+
@outParams = map { " $_" }
|
|
88
|
+
sort { $tmp{$a} <=> $tmp{$b} }
|
|
89
|
+
@outParams ;
|
|
90
|
+
|
|
91
|
+
print $prefix ;
|
|
92
|
+
print "(\n" . join(",\n", @outParams) . ")\n";
|
|
93
|
+
print "{" ;
|
|
94
|
+
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
# Output any trailing code.
|
|
98
|
+
print ;
|
|
99
|
+
exit 0;
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
sub StripComments
|
|
103
|
+
{
|
|
104
|
+
|
|
105
|
+
no warnings;
|
|
106
|
+
|
|
107
|
+
# Strip C & C++ coments
|
|
108
|
+
# From the perlfaq
|
|
109
|
+
$_[0] =~
|
|
110
|
+
|
|
111
|
+
s{
|
|
112
|
+
/\* ## Start of /* ... */ comment
|
|
113
|
+
[^*]*\*+ ## Non-* followed by 1-or-more *'s
|
|
114
|
+
(
|
|
115
|
+
[^/*][^*]*\*+
|
|
116
|
+
)* ## 0-or-more things which don't start with /
|
|
117
|
+
## but do end with '*'
|
|
118
|
+
/ ## End of /* ... */ comment
|
|
119
|
+
|
|
120
|
+
| ## OR C++ Comment
|
|
121
|
+
// ## Start of C++ comment //
|
|
122
|
+
[^\n]* ## followed by 0-or-more non end of line characters
|
|
123
|
+
|
|
124
|
+
| ## OR various things which aren't comments:
|
|
125
|
+
|
|
126
|
+
(
|
|
127
|
+
" ## Start of " ... " string
|
|
128
|
+
(
|
|
129
|
+
\\. ## Escaped char
|
|
130
|
+
| ## OR
|
|
131
|
+
[^"\\] ## Non "\
|
|
132
|
+
)*
|
|
133
|
+
" ## End of " ... " string
|
|
134
|
+
|
|
135
|
+
| ## OR
|
|
136
|
+
|
|
137
|
+
' ## Start of ' ... ' string
|
|
138
|
+
(
|
|
139
|
+
\\. ## Escaped char
|
|
140
|
+
| ## OR
|
|
141
|
+
[^'\\] ## Non '\
|
|
142
|
+
)*
|
|
143
|
+
' ## End of ' ... ' string
|
|
144
|
+
|
|
145
|
+
| ## OR
|
|
146
|
+
|
|
147
|
+
. ## Anything other char
|
|
148
|
+
[^/"'\\]* ## Chars which doesn't start a comment, string or escape
|
|
149
|
+
)
|
|
150
|
+
}{$2}gxs;
|
|
151
|
+
|
|
152
|
+
}
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
/* zutil.c -- target dependent utility functions for the compression library
|
|
2
|
+
* Copyright (C) 1995-2017 Jean-loup Gailly
|
|
3
|
+
* For conditions of distribution and use, see copyright notice in zlib.h
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/* @(#) $Id$ */
|
|
7
|
+
|
|
8
|
+
#include "zutil.h"
|
|
9
|
+
#ifndef Z_SOLO
|
|
10
|
+
# include "gzguts.h"
|
|
11
|
+
#endif
|
|
12
|
+
|
|
13
|
+
z_const char * const z_errmsg[10] = {
|
|
14
|
+
(z_const char *)"need dictionary", /* Z_NEED_DICT 2 */
|
|
15
|
+
(z_const char *)"stream end", /* Z_STREAM_END 1 */
|
|
16
|
+
(z_const char *)"", /* Z_OK 0 */
|
|
17
|
+
(z_const char *)"file error", /* Z_ERRNO (-1) */
|
|
18
|
+
(z_const char *)"stream error", /* Z_STREAM_ERROR (-2) */
|
|
19
|
+
(z_const char *)"data error", /* Z_DATA_ERROR (-3) */
|
|
20
|
+
(z_const char *)"insufficient memory", /* Z_MEM_ERROR (-4) */
|
|
21
|
+
(z_const char *)"buffer error", /* Z_BUF_ERROR (-5) */
|
|
22
|
+
(z_const char *)"incompatible version",/* Z_VERSION_ERROR (-6) */
|
|
23
|
+
(z_const char *)""
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
const char * ZEXPORT zlibVersion()
|
|
28
|
+
{
|
|
29
|
+
return ZLIB_VERSION;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
uLong ZEXPORT zlibCompileFlags()
|
|
33
|
+
{
|
|
34
|
+
uLong flags;
|
|
35
|
+
|
|
36
|
+
flags = 0;
|
|
37
|
+
switch ((int)(sizeof(uInt))) {
|
|
38
|
+
case 2: break;
|
|
39
|
+
case 4: flags += 1; break;
|
|
40
|
+
case 8: flags += 2; break;
|
|
41
|
+
default: flags += 3;
|
|
42
|
+
}
|
|
43
|
+
switch ((int)(sizeof(uLong))) {
|
|
44
|
+
case 2: break;
|
|
45
|
+
case 4: flags += 1 << 2; break;
|
|
46
|
+
case 8: flags += 2 << 2; break;
|
|
47
|
+
default: flags += 3 << 2;
|
|
48
|
+
}
|
|
49
|
+
switch ((int)(sizeof(voidpf))) {
|
|
50
|
+
case 2: break;
|
|
51
|
+
case 4: flags += 1 << 4; break;
|
|
52
|
+
case 8: flags += 2 << 4; break;
|
|
53
|
+
default: flags += 3 << 4;
|
|
54
|
+
}
|
|
55
|
+
switch ((int)(sizeof(z_off_t))) {
|
|
56
|
+
case 2: break;
|
|
57
|
+
case 4: flags += 1 << 6; break;
|
|
58
|
+
case 8: flags += 2 << 6; break;
|
|
59
|
+
default: flags += 3 << 6;
|
|
60
|
+
}
|
|
61
|
+
#ifdef ZLIB_DEBUG
|
|
62
|
+
flags += 1 << 8;
|
|
63
|
+
#endif
|
|
64
|
+
#if defined(ASMV) || defined(ASMINF)
|
|
65
|
+
flags += 1 << 9;
|
|
66
|
+
#endif
|
|
67
|
+
#ifdef ZLIB_WINAPI
|
|
68
|
+
flags += 1 << 10;
|
|
69
|
+
#endif
|
|
70
|
+
#ifdef BUILDFIXED
|
|
71
|
+
flags += 1 << 12;
|
|
72
|
+
#endif
|
|
73
|
+
#ifdef DYNAMIC_CRC_TABLE
|
|
74
|
+
flags += 1 << 13;
|
|
75
|
+
#endif
|
|
76
|
+
#ifdef NO_GZCOMPRESS
|
|
77
|
+
flags += 1L << 16;
|
|
78
|
+
#endif
|
|
79
|
+
#ifdef NO_GZIP
|
|
80
|
+
flags += 1L << 17;
|
|
81
|
+
#endif
|
|
82
|
+
#ifdef PKZIP_BUG_WORKAROUND
|
|
83
|
+
flags += 1L << 20;
|
|
84
|
+
#endif
|
|
85
|
+
#ifdef FASTEST
|
|
86
|
+
flags += 1L << 21;
|
|
87
|
+
#endif
|
|
88
|
+
#if defined(STDC) || defined(Z_HAVE_STDARG_H)
|
|
89
|
+
# ifdef NO_vsnprintf
|
|
90
|
+
flags += 1L << 25;
|
|
91
|
+
# ifdef HAS_vsprintf_void
|
|
92
|
+
flags += 1L << 26;
|
|
93
|
+
# endif
|
|
94
|
+
# else
|
|
95
|
+
# ifdef HAS_vsnprintf_void
|
|
96
|
+
flags += 1L << 26;
|
|
97
|
+
# endif
|
|
98
|
+
# endif
|
|
99
|
+
#else
|
|
100
|
+
flags += 1L << 24;
|
|
101
|
+
# ifdef NO_snprintf
|
|
102
|
+
flags += 1L << 25;
|
|
103
|
+
# ifdef HAS_sprintf_void
|
|
104
|
+
flags += 1L << 26;
|
|
105
|
+
# endif
|
|
106
|
+
# else
|
|
107
|
+
# ifdef HAS_snprintf_void
|
|
108
|
+
flags += 1L << 26;
|
|
109
|
+
# endif
|
|
110
|
+
# endif
|
|
111
|
+
#endif
|
|
112
|
+
return flags;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
#ifdef ZLIB_DEBUG
|
|
116
|
+
#include <stdlib.h>
|
|
117
|
+
# ifndef verbose
|
|
118
|
+
# define verbose 0
|
|
119
|
+
# endif
|
|
120
|
+
int ZLIB_INTERNAL z_verbose = verbose;
|
|
121
|
+
|
|
122
|
+
void ZLIB_INTERNAL z_error (m)
|
|
123
|
+
char *m;
|
|
124
|
+
{
|
|
125
|
+
fprintf(stderr, "%s\n", m);
|
|
126
|
+
exit(1);
|
|
127
|
+
}
|
|
128
|
+
#endif
|
|
129
|
+
|
|
130
|
+
/* exported to allow conversion of error code to string for compress() and
|
|
131
|
+
* uncompress()
|
|
132
|
+
*/
|
|
133
|
+
const char * ZEXPORT zError(err)
|
|
134
|
+
int err;
|
|
135
|
+
{
|
|
136
|
+
return ERR_MSG(err);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
#if defined(_WIN32_WCE)
|
|
140
|
+
/* The Microsoft C Run-Time Library for Windows CE doesn't have
|
|
141
|
+
* errno. We define it as a global variable to simplify porting.
|
|
142
|
+
* Its value is always 0 and should not be used.
|
|
143
|
+
*/
|
|
144
|
+
int errno = 0;
|
|
145
|
+
#endif
|
|
146
|
+
|
|
147
|
+
#ifndef HAVE_MEMCPY
|
|
148
|
+
|
|
149
|
+
void ZLIB_INTERNAL zmemcpy(dest, source, len)
|
|
150
|
+
Bytef* dest;
|
|
151
|
+
const Bytef* source;
|
|
152
|
+
uInt len;
|
|
153
|
+
{
|
|
154
|
+
if (len == 0) return;
|
|
155
|
+
do {
|
|
156
|
+
*dest++ = *source++; /* ??? to be unrolled */
|
|
157
|
+
} while (--len != 0);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
int ZLIB_INTERNAL zmemcmp(s1, s2, len)
|
|
161
|
+
const Bytef* s1;
|
|
162
|
+
const Bytef* s2;
|
|
163
|
+
uInt len;
|
|
164
|
+
{
|
|
165
|
+
uInt j;
|
|
166
|
+
|
|
167
|
+
for (j = 0; j < len; j++) {
|
|
168
|
+
if (s1[j] != s2[j]) return 2*(s1[j] > s2[j])-1;
|
|
169
|
+
}
|
|
170
|
+
return 0;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
void ZLIB_INTERNAL zmemzero(dest, len)
|
|
174
|
+
Bytef* dest;
|
|
175
|
+
uInt len;
|
|
176
|
+
{
|
|
177
|
+
if (len == 0) return;
|
|
178
|
+
do {
|
|
179
|
+
*dest++ = 0; /* ??? to be unrolled */
|
|
180
|
+
} while (--len != 0);
|
|
181
|
+
}
|
|
182
|
+
#endif
|
|
183
|
+
|
|
184
|
+
#ifndef Z_SOLO
|
|
185
|
+
|
|
186
|
+
#ifdef SYS16BIT
|
|
187
|
+
|
|
188
|
+
#ifdef __TURBOC__
|
|
189
|
+
/* Turbo C in 16-bit mode */
|
|
190
|
+
|
|
191
|
+
# define MY_ZCALLOC
|
|
192
|
+
|
|
193
|
+
/* Turbo C malloc() does not allow dynamic allocation of 64K bytes
|
|
194
|
+
* and farmalloc(64K) returns a pointer with an offset of 8, so we
|
|
195
|
+
* must fix the pointer. Warning: the pointer must be put back to its
|
|
196
|
+
* original form in order to free it, use zcfree().
|
|
197
|
+
*/
|
|
198
|
+
|
|
199
|
+
#define MAX_PTR 10
|
|
200
|
+
/* 10*64K = 640K */
|
|
201
|
+
|
|
202
|
+
local int next_ptr = 0;
|
|
203
|
+
|
|
204
|
+
typedef struct ptr_table_s {
|
|
205
|
+
voidpf org_ptr;
|
|
206
|
+
voidpf new_ptr;
|
|
207
|
+
} ptr_table;
|
|
208
|
+
|
|
209
|
+
local ptr_table table[MAX_PTR];
|
|
210
|
+
/* This table is used to remember the original form of pointers
|
|
211
|
+
* to large buffers (64K). Such pointers are normalized with a zero offset.
|
|
212
|
+
* Since MSDOS is not a preemptive multitasking OS, this table is not
|
|
213
|
+
* protected from concurrent access. This hack doesn't work anyway on
|
|
214
|
+
* a protected system like OS/2. Use Microsoft C instead.
|
|
215
|
+
*/
|
|
216
|
+
|
|
217
|
+
voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, unsigned items, unsigned size)
|
|
218
|
+
{
|
|
219
|
+
voidpf buf;
|
|
220
|
+
ulg bsize = (ulg)items*size;
|
|
221
|
+
|
|
222
|
+
(void)opaque;
|
|
223
|
+
|
|
224
|
+
/* If we allocate less than 65520 bytes, we assume that farmalloc
|
|
225
|
+
* will return a usable pointer which doesn't have to be normalized.
|
|
226
|
+
*/
|
|
227
|
+
if (bsize < 65520L) {
|
|
228
|
+
buf = farmalloc(bsize);
|
|
229
|
+
if (*(ush*)&buf != 0) return buf;
|
|
230
|
+
} else {
|
|
231
|
+
buf = farmalloc(bsize + 16L);
|
|
232
|
+
}
|
|
233
|
+
if (buf == NULL || next_ptr >= MAX_PTR) return NULL;
|
|
234
|
+
table[next_ptr].org_ptr = buf;
|
|
235
|
+
|
|
236
|
+
/* Normalize the pointer to seg:0 */
|
|
237
|
+
*((ush*)&buf+1) += ((ush)((uch*)buf-0) + 15) >> 4;
|
|
238
|
+
*(ush*)&buf = 0;
|
|
239
|
+
table[next_ptr++].new_ptr = buf;
|
|
240
|
+
return buf;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
|
|
244
|
+
{
|
|
245
|
+
int n;
|
|
246
|
+
|
|
247
|
+
(void)opaque;
|
|
248
|
+
|
|
249
|
+
if (*(ush*)&ptr != 0) { /* object < 64K */
|
|
250
|
+
farfree(ptr);
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
/* Find the original pointer */
|
|
254
|
+
for (n = 0; n < next_ptr; n++) {
|
|
255
|
+
if (ptr != table[n].new_ptr) continue;
|
|
256
|
+
|
|
257
|
+
farfree(table[n].org_ptr);
|
|
258
|
+
while (++n < next_ptr) {
|
|
259
|
+
table[n-1] = table[n];
|
|
260
|
+
}
|
|
261
|
+
next_ptr--;
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
Assert(0, "zcfree: ptr not found");
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
#endif /* __TURBOC__ */
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
#ifdef M_I86
|
|
271
|
+
/* Microsoft C in 16-bit mode */
|
|
272
|
+
|
|
273
|
+
# define MY_ZCALLOC
|
|
274
|
+
|
|
275
|
+
#if (!defined(_MSC_VER) || (_MSC_VER <= 600))
|
|
276
|
+
# define _halloc halloc
|
|
277
|
+
# define _hfree hfree
|
|
278
|
+
#endif
|
|
279
|
+
|
|
280
|
+
voidpf ZLIB_INTERNAL zcalloc (voidpf opaque, uInt items, uInt size)
|
|
281
|
+
{
|
|
282
|
+
(void)opaque;
|
|
283
|
+
return _halloc((long)items, size);
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
void ZLIB_INTERNAL zcfree (voidpf opaque, voidpf ptr)
|
|
287
|
+
{
|
|
288
|
+
(void)opaque;
|
|
289
|
+
_hfree(ptr);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
#endif /* M_I86 */
|
|
293
|
+
|
|
294
|
+
#endif /* SYS16BIT */
|
|
295
|
+
|
|
296
|
+
|
|
297
|
+
#ifndef MY_ZCALLOC /* Any system without a special alloc function */
|
|
298
|
+
|
|
299
|
+
#ifndef STDC
|
|
300
|
+
extern voidp malloc OF((uInt size));
|
|
301
|
+
extern voidp calloc OF((uInt items, uInt size));
|
|
302
|
+
extern void free OF((voidpf ptr));
|
|
303
|
+
#endif
|
|
304
|
+
|
|
305
|
+
voidpf ZLIB_INTERNAL zcalloc (opaque, items, size)
|
|
306
|
+
voidpf opaque;
|
|
307
|
+
unsigned items;
|
|
308
|
+
unsigned size;
|
|
309
|
+
{
|
|
310
|
+
(void)opaque;
|
|
311
|
+
return sizeof(uInt) > 2 ? (voidpf)malloc(items * size) :
|
|
312
|
+
(voidpf)calloc(items, size);
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
void ZLIB_INTERNAL zcfree (opaque, ptr)
|
|
316
|
+
voidpf opaque;
|
|
317
|
+
voidpf ptr;
|
|
318
|
+
{
|
|
319
|
+
(void)opaque;
|
|
320
|
+
free(ptr);
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
#endif /* MY_ZCALLOC */
|
|
324
|
+
|
|
325
|
+
#endif /* !Z_SOLO */
|