libmspack 0.0.5 → 0.10.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/workflows/rake.yml +37 -0
- data/.gitignore +2 -0
- data/.yardopts +1 -1
- data/README.md +1 -1
- data/Rakefile +11 -5
- data/ext/Rakefile +1 -1
- data/ext/libmspack/AUTHORS +1 -0
- data/ext/libmspack/ChangeLog +321 -4
- data/ext/libmspack/INSTALL +368 -0
- data/ext/libmspack/Makefile.am +86 -95
- data/ext/libmspack/Makefile.in +1729 -0
- data/ext/libmspack/README +30 -30
- data/ext/libmspack/acinclude.m4 +99 -0
- data/ext/libmspack/aclocal.m4 +1218 -0
- data/ext/libmspack/ar-lib +270 -0
- data/ext/libmspack/compile +347 -0
- data/ext/libmspack/config.guess +1480 -0
- data/ext/libmspack/config.h.in +129 -0
- data/ext/libmspack/config.sub +1801 -0
- data/ext/libmspack/configure +15487 -0
- data/ext/libmspack/configure.ac +11 -13
- data/ext/libmspack/depcomp +791 -0
- data/ext/libmspack/install-sh +508 -0
- data/ext/libmspack/libmscabd.la +41 -0
- data/ext/libmspack/libmschmd.la +41 -0
- data/ext/libmspack/libmspack.la +41 -0
- data/ext/libmspack/ltmain.sh +11156 -0
- data/ext/libmspack/m4/libtool.m4 +8387 -0
- data/ext/libmspack/m4/ltoptions.m4 +437 -0
- data/ext/libmspack/m4/ltsugar.m4 +124 -0
- data/ext/libmspack/m4/ltversion.m4 +23 -0
- data/ext/libmspack/m4/lt~obsolete.m4 +99 -0
- data/ext/libmspack/missing +215 -0
- data/ext/libmspack/mspack/cab.h +20 -7
- data/ext/libmspack/mspack/cabd.c +301 -236
- data/ext/libmspack/mspack/chmd.c +304 -319
- data/ext/libmspack/mspack/crc32.c +52 -52
- data/ext/libmspack/mspack/crc32.h +1 -1
- data/ext/libmspack/mspack/kwajd.c +178 -172
- data/ext/libmspack/mspack/lzss.h +4 -4
- data/ext/libmspack/mspack/lzssd.c +42 -42
- data/ext/libmspack/mspack/lzx.h +11 -11
- data/ext/libmspack/mspack/lzxd.c +370 -361
- data/ext/libmspack/mspack/mspack.h +109 -77
- data/ext/libmspack/mspack/mszip.h +6 -6
- data/ext/libmspack/mspack/mszipd.c +140 -139
- data/ext/libmspack/mspack/oab.h +1 -0
- data/ext/libmspack/mspack/oabd.c +71 -73
- data/ext/libmspack/mspack/qtm.h +4 -4
- data/ext/libmspack/mspack/qtmd.c +118 -117
- data/ext/libmspack/mspack/readbits.h +52 -52
- data/ext/libmspack/mspack/readhuff.h +61 -61
- data/ext/libmspack/mspack/system.c +15 -9
- data/ext/libmspack/mspack/system.h +38 -50
- data/ext/libmspack/mspack/szddd.c +35 -35
- data/ext/libmspack/test-driver +148 -0
- data/ext/x86_64-linux/libmspack.so +0 -0
- data/ext/x86_64-windows/mspack.dll +0 -0
- data/lib/libmspack/version.rb +2 -1
- data/lib/libmspack.rb +1 -1
- data/libmspack.gemspec +4 -4
- data/spec/libmspack_spec.rb +5 -4
- metadata +38 -105
- data/.travis.yml +0 -5
- data/ext/i386-windows/libmspack.dll +0 -0
- data/ext/libmspack/cleanup.sh +0 -9
- data/ext/libmspack/debian/changelog +0 -6
- data/ext/libmspack/debian/control +0 -14
- data/ext/libmspack/debian/rules +0 -101
- data/ext/libmspack/doc/Doxyfile.in +0 -22
- data/ext/libmspack/doc/Makefile.in +0 -14
- data/ext/libmspack/doc/szdd_kwaj_format.html +0 -331
- data/ext/libmspack/mspack/mspack.def +0 -28
- data/ext/libmspack/mspack/qtmc.c +0 -18
- data/ext/libmspack/rebuild.sh +0 -8
- data/ext/libmspack/test/cabd_c10 +0 -19
- data/ext/libmspack/test/cabd_compare +0 -34
- data/ext/libmspack/test/cabd_md5.c +0 -161
- data/ext/libmspack/test/cabd_memory.c +0 -179
- data/ext/libmspack/test/cabd_test.c +0 -386
- data/ext/libmspack/test/cabrip.c +0 -81
- data/ext/libmspack/test/chmd_compare +0 -38
- data/ext/libmspack/test/chmd_find.c +0 -95
- data/ext/libmspack/test/chmd_md5.c +0 -67
- data/ext/libmspack/test/chmd_order.c +0 -144
- data/ext/libmspack/test/chminfo.c +0 -284
- data/ext/libmspack/test/chmx.c +0 -216
- data/ext/libmspack/test/error.h +0 -22
- data/ext/libmspack/test/expand.c +0 -79
- data/ext/libmspack/test/md5.c +0 -457
- data/ext/libmspack/test/md5.h +0 -165
- data/ext/libmspack/test/md5_fh.h +0 -123
- data/ext/libmspack/test/msdecompile_md5 +0 -24
- data/ext/libmspack/test/msexpand_md5 +0 -39
- data/ext/libmspack/test/multifh.c +0 -435
- data/ext/libmspack/test/oabx.c +0 -41
- data/ext/libmspack/test/test_files/cabd/1.pl +0 -84
- data/ext/libmspack/test/test_files/cabd/2.pl +0 -75
- data/ext/libmspack/test/test_files/cabd/bad_folderindex.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/bad_nofiles.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/bad_nofolders.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/bad_signature.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/multi_basic_pt1.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/multi_basic_pt2.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/multi_basic_pt3.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/multi_basic_pt4.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/multi_basic_pt5.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/normal_255c_filename.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/normal_2files_1folder.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_nodata.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_nofiles.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_nofolder.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_shortextheader.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_shortfile1.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_shortfile2.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_shortfolder.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_shortheader.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_nofname.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_noninfo.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_nonname.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_nopinfo.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_nopname.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_shortfname.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_shortninfo.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_shortnname.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_shortpinfo.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/partial_str_shortpname.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_---.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_--D.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_-F-.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_-FD.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_H--.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_H-D.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_HF-.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/reserve_HFD.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/search_basic.cab +0 -0
- data/ext/libmspack/test/test_files/cabd/search_tricky1.cab +0 -0
- data/ext/libmspack/winbuild.sh +0 -26
- data/ext/libmspack.h +0 -259
- data/ext/x86_64-windows/libmspack.dll +0 -0
@@ -0,0 +1,215 @@
|
|
1
|
+
#! /bin/sh
|
2
|
+
# Common wrapper for a few potentially missing GNU programs.
|
3
|
+
|
4
|
+
scriptversion=2013-10-28.13; # UTC
|
5
|
+
|
6
|
+
# Copyright (C) 1996-2014 Free Software Foundation, Inc.
|
7
|
+
# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
|
8
|
+
|
9
|
+
# This program is free software; you can redistribute it and/or modify
|
10
|
+
# it under the terms of the GNU General Public License as published by
|
11
|
+
# the Free Software Foundation; either version 2, or (at your option)
|
12
|
+
# any later version.
|
13
|
+
|
14
|
+
# This program is distributed in the hope that it will be useful,
|
15
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
16
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
17
|
+
# GNU General Public License for more details.
|
18
|
+
|
19
|
+
# You should have received a copy of the GNU General Public License
|
20
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
21
|
+
|
22
|
+
# As a special exception to the GNU General Public License, if you
|
23
|
+
# distribute this file as part of a program that contains a
|
24
|
+
# configuration script generated by Autoconf, you may include it under
|
25
|
+
# the same distribution terms that you use for the rest of that program.
|
26
|
+
|
27
|
+
if test $# -eq 0; then
|
28
|
+
echo 1>&2 "Try '$0 --help' for more information"
|
29
|
+
exit 1
|
30
|
+
fi
|
31
|
+
|
32
|
+
case $1 in
|
33
|
+
|
34
|
+
--is-lightweight)
|
35
|
+
# Used by our autoconf macros to check whether the available missing
|
36
|
+
# script is modern enough.
|
37
|
+
exit 0
|
38
|
+
;;
|
39
|
+
|
40
|
+
--run)
|
41
|
+
# Back-compat with the calling convention used by older automake.
|
42
|
+
shift
|
43
|
+
;;
|
44
|
+
|
45
|
+
-h|--h|--he|--hel|--help)
|
46
|
+
echo "\
|
47
|
+
$0 [OPTION]... PROGRAM [ARGUMENT]...
|
48
|
+
|
49
|
+
Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
|
50
|
+
to PROGRAM being missing or too old.
|
51
|
+
|
52
|
+
Options:
|
53
|
+
-h, --help display this help and exit
|
54
|
+
-v, --version output version information and exit
|
55
|
+
|
56
|
+
Supported PROGRAM values:
|
57
|
+
aclocal autoconf autoheader autom4te automake makeinfo
|
58
|
+
bison yacc flex lex help2man
|
59
|
+
|
60
|
+
Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
|
61
|
+
'g' are ignored when checking the name.
|
62
|
+
|
63
|
+
Send bug reports to <bug-automake@gnu.org>."
|
64
|
+
exit $?
|
65
|
+
;;
|
66
|
+
|
67
|
+
-v|--v|--ve|--ver|--vers|--versi|--versio|--version)
|
68
|
+
echo "missing $scriptversion (GNU Automake)"
|
69
|
+
exit $?
|
70
|
+
;;
|
71
|
+
|
72
|
+
-*)
|
73
|
+
echo 1>&2 "$0: unknown '$1' option"
|
74
|
+
echo 1>&2 "Try '$0 --help' for more information"
|
75
|
+
exit 1
|
76
|
+
;;
|
77
|
+
|
78
|
+
esac
|
79
|
+
|
80
|
+
# Run the given program, remember its exit status.
|
81
|
+
"$@"; st=$?
|
82
|
+
|
83
|
+
# If it succeeded, we are done.
|
84
|
+
test $st -eq 0 && exit 0
|
85
|
+
|
86
|
+
# Also exit now if we it failed (or wasn't found), and '--version' was
|
87
|
+
# passed; such an option is passed most likely to detect whether the
|
88
|
+
# program is present and works.
|
89
|
+
case $2 in --version|--help) exit $st;; esac
|
90
|
+
|
91
|
+
# Exit code 63 means version mismatch. This often happens when the user
|
92
|
+
# tries to use an ancient version of a tool on a file that requires a
|
93
|
+
# minimum version.
|
94
|
+
if test $st -eq 63; then
|
95
|
+
msg="probably too old"
|
96
|
+
elif test $st -eq 127; then
|
97
|
+
# Program was missing.
|
98
|
+
msg="missing on your system"
|
99
|
+
else
|
100
|
+
# Program was found and executed, but failed. Give up.
|
101
|
+
exit $st
|
102
|
+
fi
|
103
|
+
|
104
|
+
perl_URL=http://www.perl.org/
|
105
|
+
flex_URL=http://flex.sourceforge.net/
|
106
|
+
gnu_software_URL=http://www.gnu.org/software
|
107
|
+
|
108
|
+
program_details ()
|
109
|
+
{
|
110
|
+
case $1 in
|
111
|
+
aclocal|automake)
|
112
|
+
echo "The '$1' program is part of the GNU Automake package:"
|
113
|
+
echo "<$gnu_software_URL/automake>"
|
114
|
+
echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
|
115
|
+
echo "<$gnu_software_URL/autoconf>"
|
116
|
+
echo "<$gnu_software_URL/m4/>"
|
117
|
+
echo "<$perl_URL>"
|
118
|
+
;;
|
119
|
+
autoconf|autom4te|autoheader)
|
120
|
+
echo "The '$1' program is part of the GNU Autoconf package:"
|
121
|
+
echo "<$gnu_software_URL/autoconf/>"
|
122
|
+
echo "It also requires GNU m4 and Perl in order to run:"
|
123
|
+
echo "<$gnu_software_URL/m4/>"
|
124
|
+
echo "<$perl_URL>"
|
125
|
+
;;
|
126
|
+
esac
|
127
|
+
}
|
128
|
+
|
129
|
+
give_advice ()
|
130
|
+
{
|
131
|
+
# Normalize program name to check for.
|
132
|
+
normalized_program=`echo "$1" | sed '
|
133
|
+
s/^gnu-//; t
|
134
|
+
s/^gnu//; t
|
135
|
+
s/^g//; t'`
|
136
|
+
|
137
|
+
printf '%s\n' "'$1' is $msg."
|
138
|
+
|
139
|
+
configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
|
140
|
+
case $normalized_program in
|
141
|
+
autoconf*)
|
142
|
+
echo "You should only need it if you modified 'configure.ac',"
|
143
|
+
echo "or m4 files included by it."
|
144
|
+
program_details 'autoconf'
|
145
|
+
;;
|
146
|
+
autoheader*)
|
147
|
+
echo "You should only need it if you modified 'acconfig.h' or"
|
148
|
+
echo "$configure_deps."
|
149
|
+
program_details 'autoheader'
|
150
|
+
;;
|
151
|
+
automake*)
|
152
|
+
echo "You should only need it if you modified 'Makefile.am' or"
|
153
|
+
echo "$configure_deps."
|
154
|
+
program_details 'automake'
|
155
|
+
;;
|
156
|
+
aclocal*)
|
157
|
+
echo "You should only need it if you modified 'acinclude.m4' or"
|
158
|
+
echo "$configure_deps."
|
159
|
+
program_details 'aclocal'
|
160
|
+
;;
|
161
|
+
autom4te*)
|
162
|
+
echo "You might have modified some maintainer files that require"
|
163
|
+
echo "the 'autom4te' program to be rebuilt."
|
164
|
+
program_details 'autom4te'
|
165
|
+
;;
|
166
|
+
bison*|yacc*)
|
167
|
+
echo "You should only need it if you modified a '.y' file."
|
168
|
+
echo "You may want to install the GNU Bison package:"
|
169
|
+
echo "<$gnu_software_URL/bison/>"
|
170
|
+
;;
|
171
|
+
lex*|flex*)
|
172
|
+
echo "You should only need it if you modified a '.l' file."
|
173
|
+
echo "You may want to install the Fast Lexical Analyzer package:"
|
174
|
+
echo "<$flex_URL>"
|
175
|
+
;;
|
176
|
+
help2man*)
|
177
|
+
echo "You should only need it if you modified a dependency" \
|
178
|
+
"of a man page."
|
179
|
+
echo "You may want to install the GNU Help2man package:"
|
180
|
+
echo "<$gnu_software_URL/help2man/>"
|
181
|
+
;;
|
182
|
+
makeinfo*)
|
183
|
+
echo "You should only need it if you modified a '.texi' file, or"
|
184
|
+
echo "any other file indirectly affecting the aspect of the manual."
|
185
|
+
echo "You might want to install the Texinfo package:"
|
186
|
+
echo "<$gnu_software_URL/texinfo/>"
|
187
|
+
echo "The spurious makeinfo call might also be the consequence of"
|
188
|
+
echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
|
189
|
+
echo "want to install GNU make:"
|
190
|
+
echo "<$gnu_software_URL/make/>"
|
191
|
+
;;
|
192
|
+
*)
|
193
|
+
echo "You might have modified some files without having the proper"
|
194
|
+
echo "tools for further handling them. Check the 'README' file, it"
|
195
|
+
echo "often tells you about the needed prerequisites for installing"
|
196
|
+
echo "this package. You may also peek at any GNU archive site, in"
|
197
|
+
echo "case some other package contains this missing '$1' program."
|
198
|
+
;;
|
199
|
+
esac
|
200
|
+
}
|
201
|
+
|
202
|
+
give_advice "$1" | sed -e '1s/^/WARNING: /' \
|
203
|
+
-e '2,$s/^/ /' >&2
|
204
|
+
|
205
|
+
# Propagate the correct exit status (expected to be 127 for a program
|
206
|
+
# not found, 63 for a program that failed due to version mismatch).
|
207
|
+
exit $st
|
208
|
+
|
209
|
+
# Local variables:
|
210
|
+
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
211
|
+
# time-stamp-start: "scriptversion="
|
212
|
+
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
213
|
+
# time-stamp-time-zone: "UTC"
|
214
|
+
# time-stamp-end: "; # UTC"
|
215
|
+
# End:
|
data/ext/libmspack/mspack/cab.h
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/* This file is part of libmspack.
|
2
|
-
* (C) 2003-
|
2
|
+
* (C) 2003-2018 Stuart Caie.
|
3
3
|
*
|
4
4
|
* libmspack is free software; you can redistribute it and/or modify it under
|
5
5
|
* the terms of the GNU Lesser General Public License (LGPL) version 2.1
|
@@ -10,10 +10,6 @@
|
|
10
10
|
#ifndef MSPACK_CAB_H
|
11
11
|
#define MSPACK_CAB_H 1
|
12
12
|
|
13
|
-
#include <mszip.h>
|
14
|
-
#include <qtm.h>
|
15
|
-
#include <lzx.h>
|
16
|
-
|
17
13
|
/* generic CAB definitions */
|
18
14
|
|
19
15
|
/* structure offsets */
|
@@ -70,6 +66,22 @@
|
|
70
66
|
#define CAB_BLOCKMAX (32768)
|
71
67
|
#define CAB_INPUTMAX (CAB_BLOCKMAX+6144)
|
72
68
|
|
69
|
+
/* input buffer needs to be CAB_INPUTMAX + 1 byte to allow for max-sized block
|
70
|
+
* plus 1 trailer byte added by cabd_sys_read_block() for Quantum alignment.
|
71
|
+
*
|
72
|
+
* When MSCABD_PARAM_SALVAGE is set, block size is not checked so can be
|
73
|
+
* up to 65535 bytes, so max input buffer size needed is 65535 + 1
|
74
|
+
*/
|
75
|
+
#define CAB_INPUTMAX_SALVAGE (65535)
|
76
|
+
#define CAB_INPUTBUF (CAB_INPUTMAX_SALVAGE + 1)
|
77
|
+
|
78
|
+
/* There are no more than 65535 data blocks per folder, so a folder cannot
|
79
|
+
* be more than 32768*65535 bytes in length. As files cannot span more than
|
80
|
+
* one folder, this is also their max offset, length and offset+length limit.
|
81
|
+
*/
|
82
|
+
#define CAB_FOLDERMAX (65535)
|
83
|
+
#define CAB_LENGTHMAX (CAB_BLOCKMAX * CAB_FOLDERMAX)
|
84
|
+
|
73
85
|
/* CAB compression definitions */
|
74
86
|
|
75
87
|
struct mscab_compressor_p {
|
@@ -85,6 +97,7 @@ struct mscabd_decompress_state {
|
|
85
97
|
struct mscabd_folder_data *data; /* current folder split we're in */
|
86
98
|
unsigned int offset; /* uncompressed offset within folder */
|
87
99
|
unsigned int block; /* which block are we decompressing? */
|
100
|
+
off_t outlen; /* cumulative sum of block output sizes */
|
88
101
|
struct mspack_system sys; /* special I/O code for decompressor */
|
89
102
|
int comp_type; /* type of compression used by folder */
|
90
103
|
int (*decompress)(void *, off_t); /* decompressor code */
|
@@ -93,14 +106,14 @@ struct mscabd_decompress_state {
|
|
93
106
|
struct mspack_file *infh; /* input file handle */
|
94
107
|
struct mspack_file *outfh; /* output file handle */
|
95
108
|
unsigned char *i_ptr, *i_end; /* input data consumed, end */
|
96
|
-
unsigned char input[
|
109
|
+
unsigned char input[CAB_INPUTBUF]; /* one input block of data */
|
97
110
|
};
|
98
111
|
|
99
112
|
struct mscab_decompressor_p {
|
100
113
|
struct mscab_decompressor base;
|
101
114
|
struct mscabd_decompress_state *d;
|
102
115
|
struct mspack_system *system;
|
103
|
-
int
|
116
|
+
int buf_size, searchbuf_size, fix_mszip, salvage; /* params */
|
104
117
|
int error, read_error;
|
105
118
|
};
|
106
119
|
|