libmspack 0.0.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/.gitignore +18 -0
- data/.travis.yml +5 -0
- data/.yardopts +1 -0
- data/Gemfile +4 -0
- data/README.md +75 -0
- data/Rakefile +22 -0
- data/UNLICENSE +24 -0
- data/ext/Rakefile +16 -0
- data/ext/i386-windows/libmspack.dll +0 -0
- data/ext/libmspack/AUTHORS +12 -0
- data/ext/libmspack/COPYING.LIB +504 -0
- data/ext/libmspack/ChangeLog +491 -0
- data/ext/libmspack/Makefile.am +100 -0
- data/ext/libmspack/NEWS +0 -0
- data/ext/libmspack/README +130 -0
- data/ext/libmspack/TODO +8 -0
- data/ext/libmspack/cleanup.sh +9 -0
- data/ext/libmspack/configure.ac +50 -0
- data/ext/libmspack/debian/changelog +6 -0
- data/ext/libmspack/debian/control +14 -0
- data/ext/libmspack/debian/rules +101 -0
- data/ext/libmspack/doc/Doxyfile.in +22 -0
- data/ext/libmspack/doc/Makefile.in +14 -0
- data/ext/libmspack/doc/szdd_kwaj_format.html +331 -0
- data/ext/libmspack/libmspack.pc.in +10 -0
- data/ext/libmspack/mspack/cab.h +127 -0
- data/ext/libmspack/mspack/cabc.c +24 -0
- data/ext/libmspack/mspack/cabd.c +1444 -0
- data/ext/libmspack/mspack/chm.h +122 -0
- data/ext/libmspack/mspack/chmc.c +24 -0
- data/ext/libmspack/mspack/chmd.c +1392 -0
- data/ext/libmspack/mspack/crc32.c +95 -0
- data/ext/libmspack/mspack/crc32.h +17 -0
- data/ext/libmspack/mspack/des.h +15 -0
- data/ext/libmspack/mspack/hlp.h +33 -0
- data/ext/libmspack/mspack/hlpc.c +24 -0
- data/ext/libmspack/mspack/hlpd.c +24 -0
- data/ext/libmspack/mspack/kwaj.h +118 -0
- data/ext/libmspack/mspack/kwajc.c +24 -0
- data/ext/libmspack/mspack/kwajd.c +561 -0
- data/ext/libmspack/mspack/lit.h +35 -0
- data/ext/libmspack/mspack/litc.c +24 -0
- data/ext/libmspack/mspack/litd.c +24 -0
- data/ext/libmspack/mspack/lzss.h +66 -0
- data/ext/libmspack/mspack/lzssd.c +93 -0
- data/ext/libmspack/mspack/lzx.h +221 -0
- data/ext/libmspack/mspack/lzxc.c +18 -0
- data/ext/libmspack/mspack/lzxd.c +895 -0
- data/ext/libmspack/mspack/mspack.def +28 -0
- data/ext/libmspack/mspack/mspack.h +2353 -0
- data/ext/libmspack/mspack/mszip.h +126 -0
- data/ext/libmspack/mspack/mszipc.c +18 -0
- data/ext/libmspack/mspack/mszipd.c +514 -0
- data/ext/libmspack/mspack/oab.h +60 -0
- data/ext/libmspack/mspack/oabc.c +24 -0
- data/ext/libmspack/mspack/oabd.c +408 -0
- data/ext/libmspack/mspack/qtm.h +128 -0
- data/ext/libmspack/mspack/qtmc.c +18 -0
- data/ext/libmspack/mspack/qtmd.c +489 -0
- data/ext/libmspack/mspack/readbits.h +207 -0
- data/ext/libmspack/mspack/readhuff.h +173 -0
- data/ext/libmspack/mspack/sha.h +15 -0
- data/ext/libmspack/mspack/system.c +239 -0
- data/ext/libmspack/mspack/system.h +124 -0
- data/ext/libmspack/mspack/szdd.h +39 -0
- data/ext/libmspack/mspack/szddc.c +24 -0
- data/ext/libmspack/mspack/szddd.c +247 -0
- data/ext/libmspack/rebuild.sh +8 -0
- data/ext/libmspack/test/cabd_c10 +19 -0
- data/ext/libmspack/test/cabd_compare +34 -0
- data/ext/libmspack/test/cabd_md5.c +161 -0
- data/ext/libmspack/test/cabd_memory.c +179 -0
- data/ext/libmspack/test/cabd_test.c +386 -0
- data/ext/libmspack/test/cabrip.c +81 -0
- data/ext/libmspack/test/chmd_compare +38 -0
- data/ext/libmspack/test/chmd_find.c +95 -0
- data/ext/libmspack/test/chmd_md5.c +67 -0
- data/ext/libmspack/test/chmd_order.c +144 -0
- data/ext/libmspack/test/chminfo.c +284 -0
- data/ext/libmspack/test/chmx.c +216 -0
- data/ext/libmspack/test/error.h +22 -0
- data/ext/libmspack/test/expand.c +79 -0
- data/ext/libmspack/test/md5.c +457 -0
- data/ext/libmspack/test/md5.h +165 -0
- data/ext/libmspack/test/md5_fh.h +123 -0
- data/ext/libmspack/test/msdecompile_md5 +24 -0
- data/ext/libmspack/test/msexpand_md5 +39 -0
- data/ext/libmspack/test/multifh.c +435 -0
- data/ext/libmspack/test/oabx.c +41 -0
- data/ext/libmspack/test/test_files/cabd/1.pl +84 -0
- data/ext/libmspack/test/test_files/cabd/2.pl +75 -0
- 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 +26 -0
- data/ext/x86_64-windows/libmspack.dll +0 -0
- data/lib/libmspack/constants.rb +9 -0
- data/lib/libmspack/exceptions.rb +12 -0
- data/lib/libmspack/mscab.rb +722 -0
- data/lib/libmspack/mschm.rb +301 -0
- data/lib/libmspack/mshlp.rb +15 -0
- data/lib/libmspack/mskwaj.rb +124 -0
- data/lib/libmspack/mslit.rb +18 -0
- data/lib/libmspack/msoab.rb +36 -0
- data/lib/libmspack/mspack.rb +208 -0
- data/lib/libmspack/msszdd.rb +81 -0
- data/lib/libmspack/system.rb +84 -0
- data/lib/libmspack/version.rb +4 -0
- data/lib/libmspack.rb +121 -0
- data/libmspack.gemspec +33 -0
- data/spec/libmspack_spec.rb +26 -0
- data/spec/spec_helper.rb +5 -0
- metadata +309 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
#!perl -w
|
|
2
|
+
use strict;
|
|
3
|
+
|
|
4
|
+
sub byte($) {pack 'c',$_[0]};
|
|
5
|
+
sub ubyte($) {pack 'C',$_[0]};
|
|
6
|
+
sub uword($) {pack 'v',$_[0]};
|
|
7
|
+
sub ulong($) {pack 'V',$_[0]};
|
|
8
|
+
|
|
9
|
+
my $RESV_HEADER = 'reserved header test 12345';
|
|
10
|
+
#my $RESV_HEADER = '';
|
|
11
|
+
#my $RESV_FOLDER = 'reserved folder test 12345';
|
|
12
|
+
my $RESV_FOLDER = '';
|
|
13
|
+
my $RESV_DATA = 'reserved data test 12345';
|
|
14
|
+
#my $RESV_DATA = '';
|
|
15
|
+
|
|
16
|
+
my $header
|
|
17
|
+
= 'MSCF' # 00 SIGNATURE
|
|
18
|
+
. ulong(0) # 04
|
|
19
|
+
. ulong(0) # 08 CABINET SIZE
|
|
20
|
+
. ulong(0) # 0C
|
|
21
|
+
. ulong(0) # 10 FILES OFFSET
|
|
22
|
+
. ulong(0) # 14
|
|
23
|
+
. ubyte(3) # 18 MINOR VERSION
|
|
24
|
+
. ubyte(1) # 19 MAJOR VERSION
|
|
25
|
+
. uword(1) # 1A number of folders
|
|
26
|
+
. uword(2) # 1C number of files
|
|
27
|
+
. uword(4) # 1E flags
|
|
28
|
+
. uword(1) # 20 set id
|
|
29
|
+
. uword(0) # 22 cab index
|
|
30
|
+
|
|
31
|
+
. uword(length($RESV_HEADER)) # 00 header reserved
|
|
32
|
+
. ubyte(length($RESV_FOLDER)) # 02 folder resv
|
|
33
|
+
. ubyte(length($RESV_DATA)) # 03 data resv
|
|
34
|
+
. $RESV_HEADER
|
|
35
|
+
;
|
|
36
|
+
|
|
37
|
+
my $folder
|
|
38
|
+
= ulong(0) # data offset
|
|
39
|
+
. uword(2) # number of blocks
|
|
40
|
+
. uword(0) # compression method
|
|
41
|
+
. $RESV_FOLDER
|
|
42
|
+
;
|
|
43
|
+
|
|
44
|
+
my $files
|
|
45
|
+
= ulong(5) # uncompressed size
|
|
46
|
+
. ulong(0) # folder offset
|
|
47
|
+
. uword(0) # folder index
|
|
48
|
+
. uword(0x226C) # time
|
|
49
|
+
. uword(0x59BA) # date
|
|
50
|
+
. uword(0x20) # attribs
|
|
51
|
+
. "test1.txt\0"
|
|
52
|
+
|
|
53
|
+
. ulong(5) # uncompressed size
|
|
54
|
+
. ulong(5) # folder offset
|
|
55
|
+
. uword(0) # folder index
|
|
56
|
+
. uword(0x226C) # time
|
|
57
|
+
. uword(0x59BA) # date
|
|
58
|
+
. uword(0x20) # attribs
|
|
59
|
+
. "test2.txt\0"
|
|
60
|
+
;
|
|
61
|
+
|
|
62
|
+
my $datablocks
|
|
63
|
+
= ulong(0) # checksum
|
|
64
|
+
. uword(5) # compressed size
|
|
65
|
+
. uword(5) # uncompressed size
|
|
66
|
+
. $RESV_DATA
|
|
67
|
+
. "TEST\n" # actual data
|
|
68
|
+
|
|
69
|
+
. ulong(0) # checksum
|
|
70
|
+
. uword(5) # compressed size
|
|
71
|
+
. uword(5) # uncompressed size
|
|
72
|
+
. $RESV_DATA
|
|
73
|
+
. "test\n" # actual data
|
|
74
|
+
;
|
|
75
|
+
|
|
76
|
+
my $pre_files = $header . $folder;
|
|
77
|
+
my $pre_data = $pre_files . $files;
|
|
78
|
+
my $cab = $pre_data . $datablocks;
|
|
79
|
+
|
|
80
|
+
substr($header, 0x08, 4, ulong(length($cab)));
|
|
81
|
+
substr($header, 0x10, 4, ulong(length($pre_files)));
|
|
82
|
+
substr($folder, 0x00, 4, ulong(length($pre_data)));
|
|
83
|
+
|
|
84
|
+
print $header . $folder . $files . $datablocks;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
#!perl -w
|
|
2
|
+
use strict;
|
|
3
|
+
|
|
4
|
+
sub byte($) {pack 'c',$_[0]};
|
|
5
|
+
sub ubyte($) {pack 'C',$_[0]};
|
|
6
|
+
sub uword($) {pack 'v',$_[0]};
|
|
7
|
+
sub ulong($) {pack 'V',$_[0]};
|
|
8
|
+
|
|
9
|
+
my $header
|
|
10
|
+
= 'MSCF' # 00 SIGNATURE
|
|
11
|
+
. ulong(0) # 04
|
|
12
|
+
. ulong(0) # 08 CABINET SIZE
|
|
13
|
+
. ulong(0) # 0C
|
|
14
|
+
. ulong(0) # 10 FILES OFFSET
|
|
15
|
+
. ulong(0) # 14
|
|
16
|
+
. ubyte(3) # 18 MINOR VERSION
|
|
17
|
+
. ubyte(1) # 19 MAJOR VERSION
|
|
18
|
+
. uword(1) # 1A number of folders
|
|
19
|
+
. uword(3) # 1C number of files
|
|
20
|
+
. uword(1) # 1E flags
|
|
21
|
+
. uword(12345) # 20 set id
|
|
22
|
+
. uword(4) # 22 cab index
|
|
23
|
+
. "cabd_multi_basic_pt4.cab\0"
|
|
24
|
+
. "basic multipart test part 4\0"
|
|
25
|
+
|
|
26
|
+
;
|
|
27
|
+
|
|
28
|
+
my $folder
|
|
29
|
+
= ulong(0) # data offset
|
|
30
|
+
. uword(1) # number of blocks
|
|
31
|
+
. uword(0) # compression method
|
|
32
|
+
;
|
|
33
|
+
|
|
34
|
+
my $files
|
|
35
|
+
= ulong(76) # uncompressed size
|
|
36
|
+
. ulong(0) # folder offset
|
|
37
|
+
. uword(0xFFFD) # folder index
|
|
38
|
+
. uword(0x226C) # time
|
|
39
|
+
. uword(0x59BA) # date
|
|
40
|
+
. uword(0x20) # attribs
|
|
41
|
+
. "test1.txt\0"
|
|
42
|
+
|
|
43
|
+
. ulong(38) # uncompressed size
|
|
44
|
+
. ulong(76) # folder offset
|
|
45
|
+
. uword(0xFFFD) # folder index
|
|
46
|
+
. uword(0x226C) # time
|
|
47
|
+
. uword(0x59BA) # date
|
|
48
|
+
. uword(0x20) # attribs
|
|
49
|
+
. "test2.txt\0"
|
|
50
|
+
|
|
51
|
+
. ulong(76) # uncompressed size
|
|
52
|
+
. ulong(76+38) # folder offset
|
|
53
|
+
. uword(0xFFFD) # folder index
|
|
54
|
+
. uword(0x226C) # time
|
|
55
|
+
. uword(0x59BA) # date
|
|
56
|
+
. uword(0x20) # attribs
|
|
57
|
+
. "test3.txt\0"
|
|
58
|
+
;
|
|
59
|
+
|
|
60
|
+
my $datablocks
|
|
61
|
+
= ulong(0) # checksum
|
|
62
|
+
. uword(38) # compressed size
|
|
63
|
+
. uword(190) # uncompressed size
|
|
64
|
+
. "This is the data from cabinet part 5.\n" # actual data
|
|
65
|
+
;
|
|
66
|
+
|
|
67
|
+
my $pre_files = $header . $folder;
|
|
68
|
+
my $pre_data = $pre_files . $files;
|
|
69
|
+
my $cab = $pre_data . $datablocks;
|
|
70
|
+
|
|
71
|
+
substr($header, 0x08, 4, ulong(length($cab)));
|
|
72
|
+
substr($header, 0x10, 4, ulong(length($pre_files)));
|
|
73
|
+
substr($folder, 0x00, 4, ulong(length($pre_data)));
|
|
74
|
+
|
|
75
|
+
print $header . $folder . $files . $datablocks;
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
cat <<END
|
|
3
|
+
!!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!!
|
|
4
|
+
This builds the libmspack into mspack.dll on
|
|
5
|
+
Windows with Microsoft compiler.
|
|
6
|
+
After compilation find the library in the
|
|
7
|
+
directory mspack
|
|
8
|
+
!!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!!
|
|
9
|
+
END
|
|
10
|
+
|
|
11
|
+
cat >config.h <<END
|
|
12
|
+
#define inline __inline
|
|
13
|
+
#define HAVE_STRING_H 1
|
|
14
|
+
#define HAVE_LIMITS_H 1
|
|
15
|
+
#define HAVE_MEMCMP 1
|
|
16
|
+
END
|
|
17
|
+
|
|
18
|
+
cd mspack
|
|
19
|
+
|
|
20
|
+
cl /O2 -I. /c *.c
|
|
21
|
+
link *.obj /DLL /DEF:mspack.def /IMPLIB:mspack.lib
|
|
22
|
+
|
|
23
|
+
cd ..
|
|
24
|
+
|
|
25
|
+
ls -l mspack/mspack.dll
|
|
26
|
+
ls -l mspack/mspack.lib
|
|
Binary file
|