libmspack 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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,122 @@
|
|
1
|
+
/* This file is part of libmspack.
|
2
|
+
* (C) 2003-2004 Stuart Caie.
|
3
|
+
*
|
4
|
+
* libmspack is free software; you can redistribute it and/or modify it under
|
5
|
+
* the terms of the GNU Lesser General Public License (LGPL) version 2.1
|
6
|
+
*
|
7
|
+
* For further details, see the file COPYING.LIB distributed with libmspack
|
8
|
+
*/
|
9
|
+
|
10
|
+
#ifndef MSPACK_CHM_H
|
11
|
+
#define MSPACK_CHM_H 1
|
12
|
+
|
13
|
+
#include <lzx.h>
|
14
|
+
|
15
|
+
/* generic CHM definitions */
|
16
|
+
|
17
|
+
#define chmhead_Signature (0x0000)
|
18
|
+
#define chmhead_Version (0x0004)
|
19
|
+
#define chmhead_HeaderLen (0x0008)
|
20
|
+
#define chmhead_Unknown1 (0x000C)
|
21
|
+
#define chmhead_Timestamp (0x0010)
|
22
|
+
#define chmhead_LanguageID (0x0014)
|
23
|
+
#define chmhead_GUID1 (0x0018)
|
24
|
+
#define chmhead_GUID2 (0x0028)
|
25
|
+
#define chmhead_SIZEOF (0x0038)
|
26
|
+
|
27
|
+
#define chmhst_OffsetHS0 (0x0000)
|
28
|
+
#define chmhst_LengthHS0 (0x0008)
|
29
|
+
#define chmhst_OffsetHS1 (0x0010)
|
30
|
+
#define chmhst_LengthHS1 (0x0018)
|
31
|
+
#define chmhst_SIZEOF (0x0020)
|
32
|
+
#define chmhst3_OffsetCS0 (0x0020)
|
33
|
+
#define chmhst3_SIZEOF (0x0028)
|
34
|
+
|
35
|
+
#define chmhs0_Unknown1 (0x0000)
|
36
|
+
#define chmhs0_Unknown2 (0x0004)
|
37
|
+
#define chmhs0_FileLen (0x0008)
|
38
|
+
#define chmhs0_Unknown3 (0x0010)
|
39
|
+
#define chmhs0_Unknown4 (0x0014)
|
40
|
+
#define chmhs0_SIZEOF (0x0018)
|
41
|
+
|
42
|
+
#define chmhs1_Signature (0x0000)
|
43
|
+
#define chmhs1_Version (0x0004)
|
44
|
+
#define chmhs1_HeaderLen (0x0008)
|
45
|
+
#define chmhs1_Unknown1 (0x000C)
|
46
|
+
#define chmhs1_ChunkSize (0x0010)
|
47
|
+
#define chmhs1_Density (0x0014)
|
48
|
+
#define chmhs1_Depth (0x0018)
|
49
|
+
#define chmhs1_IndexRoot (0x001C)
|
50
|
+
#define chmhs1_FirstPMGL (0x0020)
|
51
|
+
#define chmhs1_LastPMGL (0x0024)
|
52
|
+
#define chmhs1_Unknown2 (0x0028)
|
53
|
+
#define chmhs1_NumChunks (0x002C)
|
54
|
+
#define chmhs1_LanguageID (0x0030)
|
55
|
+
#define chmhs1_GUID (0x0034)
|
56
|
+
#define chmhs1_Unknown3 (0x0044)
|
57
|
+
#define chmhs1_Unknown4 (0x0048)
|
58
|
+
#define chmhs1_Unknown5 (0x004C)
|
59
|
+
#define chmhs1_Unknown6 (0x0050)
|
60
|
+
#define chmhs1_SIZEOF (0x0054)
|
61
|
+
|
62
|
+
#define pmgl_Signature (0x0000)
|
63
|
+
#define pmgl_QuickRefSize (0x0004)
|
64
|
+
#define pmgl_Unknown1 (0x0008)
|
65
|
+
#define pmgl_PrevChunk (0x000C)
|
66
|
+
#define pmgl_NextChunk (0x0010)
|
67
|
+
#define pmgl_Entries (0x0014)
|
68
|
+
#define pmgl_headerSIZEOF (0x0014)
|
69
|
+
|
70
|
+
#define pmgi_Signature (0x0000)
|
71
|
+
#define pmgi_QuickRefSize (0x0004)
|
72
|
+
#define pmgi_Entries (0x0008)
|
73
|
+
#define pmgi_headerSIZEOF (0x000C)
|
74
|
+
|
75
|
+
#define lzxcd_Length (0x0000)
|
76
|
+
#define lzxcd_Signature (0x0004)
|
77
|
+
#define lzxcd_Version (0x0008)
|
78
|
+
#define lzxcd_ResetInterval (0x000C)
|
79
|
+
#define lzxcd_WindowSize (0x0010)
|
80
|
+
#define lzxcd_CacheSize (0x0014)
|
81
|
+
#define lzxcd_Unknown1 (0x0018)
|
82
|
+
#define lzxcd_SIZEOF (0x001C)
|
83
|
+
|
84
|
+
#define lzxrt_Unknown1 (0x0000)
|
85
|
+
#define lzxrt_NumEntries (0x0004)
|
86
|
+
#define lzxrt_EntrySize (0x0008)
|
87
|
+
#define lzxrt_TableOffset (0x000C)
|
88
|
+
#define lzxrt_UncompLen (0x0010)
|
89
|
+
#define lzxrt_CompLen (0x0018)
|
90
|
+
#define lzxrt_FrameLen (0x0020)
|
91
|
+
#define lzxrt_Entries (0x0028)
|
92
|
+
#define lzxrt_headerSIZEOF (0x0028)
|
93
|
+
|
94
|
+
/* CHM compression definitions */
|
95
|
+
|
96
|
+
struct mschm_compressor_p {
|
97
|
+
struct mschm_compressor base;
|
98
|
+
struct mspack_system *system;
|
99
|
+
char *temp_file;
|
100
|
+
int use_temp_file;
|
101
|
+
int error;
|
102
|
+
};
|
103
|
+
|
104
|
+
/* CHM decompression definitions */
|
105
|
+
struct mschmd_decompress_state {
|
106
|
+
struct mschmd_header *chm; /* CHM file being decompressed */
|
107
|
+
off_t offset; /* uncompressed offset within folder */
|
108
|
+
off_t inoffset; /* offset in input file */
|
109
|
+
struct lzxd_stream *state; /* LZX decompressor state */
|
110
|
+
struct mspack_system sys; /* special I/O code for decompressor */
|
111
|
+
struct mspack_file *infh; /* input file handle */
|
112
|
+
struct mspack_file *outfh; /* output file handle */
|
113
|
+
};
|
114
|
+
|
115
|
+
struct mschm_decompressor_p {
|
116
|
+
struct mschm_decompressor base;
|
117
|
+
struct mspack_system *system;
|
118
|
+
struct mschmd_decompress_state *d;
|
119
|
+
int error;
|
120
|
+
};
|
121
|
+
|
122
|
+
#endif
|
@@ -0,0 +1,24 @@
|
|
1
|
+
/* This file is part of libmspack.
|
2
|
+
* (C) 2003-2004 Stuart Caie.
|
3
|
+
*
|
4
|
+
* libmspack is free software; you can redistribute it and/or modify it under
|
5
|
+
* the terms of the GNU Lesser General Public License (LGPL) version 2.1
|
6
|
+
*
|
7
|
+
* For further details, see the file COPYING.LIB distributed with libmspack
|
8
|
+
*/
|
9
|
+
|
10
|
+
/* CHM compression implementation */
|
11
|
+
|
12
|
+
#include <system.h>
|
13
|
+
#include <chm.h>
|
14
|
+
|
15
|
+
struct mschm_compressor *
|
16
|
+
mspack_create_chm_compressor(struct mspack_system *sys)
|
17
|
+
{
|
18
|
+
/* todo */
|
19
|
+
return NULL;
|
20
|
+
}
|
21
|
+
|
22
|
+
void mspack_destroy_chm_compressor(struct mschm_compressor *self) {
|
23
|
+
/* todo */
|
24
|
+
}
|