libmspack 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +18 -0
  3. data/.travis.yml +5 -0
  4. data/.yardopts +1 -0
  5. data/Gemfile +4 -0
  6. data/README.md +75 -0
  7. data/Rakefile +22 -0
  8. data/UNLICENSE +24 -0
  9. data/ext/Rakefile +16 -0
  10. data/ext/i386-windows/libmspack.dll +0 -0
  11. data/ext/libmspack/AUTHORS +12 -0
  12. data/ext/libmspack/COPYING.LIB +504 -0
  13. data/ext/libmspack/ChangeLog +491 -0
  14. data/ext/libmspack/Makefile.am +100 -0
  15. data/ext/libmspack/NEWS +0 -0
  16. data/ext/libmspack/README +130 -0
  17. data/ext/libmspack/TODO +8 -0
  18. data/ext/libmspack/cleanup.sh +9 -0
  19. data/ext/libmspack/configure.ac +50 -0
  20. data/ext/libmspack/debian/changelog +6 -0
  21. data/ext/libmspack/debian/control +14 -0
  22. data/ext/libmspack/debian/rules +101 -0
  23. data/ext/libmspack/doc/Doxyfile.in +22 -0
  24. data/ext/libmspack/doc/Makefile.in +14 -0
  25. data/ext/libmspack/doc/szdd_kwaj_format.html +331 -0
  26. data/ext/libmspack/libmspack.pc.in +10 -0
  27. data/ext/libmspack/mspack/cab.h +127 -0
  28. data/ext/libmspack/mspack/cabc.c +24 -0
  29. data/ext/libmspack/mspack/cabd.c +1444 -0
  30. data/ext/libmspack/mspack/chm.h +122 -0
  31. data/ext/libmspack/mspack/chmc.c +24 -0
  32. data/ext/libmspack/mspack/chmd.c +1392 -0
  33. data/ext/libmspack/mspack/crc32.c +95 -0
  34. data/ext/libmspack/mspack/crc32.h +17 -0
  35. data/ext/libmspack/mspack/des.h +15 -0
  36. data/ext/libmspack/mspack/hlp.h +33 -0
  37. data/ext/libmspack/mspack/hlpc.c +24 -0
  38. data/ext/libmspack/mspack/hlpd.c +24 -0
  39. data/ext/libmspack/mspack/kwaj.h +118 -0
  40. data/ext/libmspack/mspack/kwajc.c +24 -0
  41. data/ext/libmspack/mspack/kwajd.c +561 -0
  42. data/ext/libmspack/mspack/lit.h +35 -0
  43. data/ext/libmspack/mspack/litc.c +24 -0
  44. data/ext/libmspack/mspack/litd.c +24 -0
  45. data/ext/libmspack/mspack/lzss.h +66 -0
  46. data/ext/libmspack/mspack/lzssd.c +93 -0
  47. data/ext/libmspack/mspack/lzx.h +221 -0
  48. data/ext/libmspack/mspack/lzxc.c +18 -0
  49. data/ext/libmspack/mspack/lzxd.c +895 -0
  50. data/ext/libmspack/mspack/mspack.def +28 -0
  51. data/ext/libmspack/mspack/mspack.h +2353 -0
  52. data/ext/libmspack/mspack/mszip.h +126 -0
  53. data/ext/libmspack/mspack/mszipc.c +18 -0
  54. data/ext/libmspack/mspack/mszipd.c +514 -0
  55. data/ext/libmspack/mspack/oab.h +60 -0
  56. data/ext/libmspack/mspack/oabc.c +24 -0
  57. data/ext/libmspack/mspack/oabd.c +408 -0
  58. data/ext/libmspack/mspack/qtm.h +128 -0
  59. data/ext/libmspack/mspack/qtmc.c +18 -0
  60. data/ext/libmspack/mspack/qtmd.c +489 -0
  61. data/ext/libmspack/mspack/readbits.h +207 -0
  62. data/ext/libmspack/mspack/readhuff.h +173 -0
  63. data/ext/libmspack/mspack/sha.h +15 -0
  64. data/ext/libmspack/mspack/system.c +239 -0
  65. data/ext/libmspack/mspack/system.h +124 -0
  66. data/ext/libmspack/mspack/szdd.h +39 -0
  67. data/ext/libmspack/mspack/szddc.c +24 -0
  68. data/ext/libmspack/mspack/szddd.c +247 -0
  69. data/ext/libmspack/rebuild.sh +8 -0
  70. data/ext/libmspack/test/cabd_c10 +19 -0
  71. data/ext/libmspack/test/cabd_compare +34 -0
  72. data/ext/libmspack/test/cabd_md5.c +161 -0
  73. data/ext/libmspack/test/cabd_memory.c +179 -0
  74. data/ext/libmspack/test/cabd_test.c +386 -0
  75. data/ext/libmspack/test/cabrip.c +81 -0
  76. data/ext/libmspack/test/chmd_compare +38 -0
  77. data/ext/libmspack/test/chmd_find.c +95 -0
  78. data/ext/libmspack/test/chmd_md5.c +67 -0
  79. data/ext/libmspack/test/chmd_order.c +144 -0
  80. data/ext/libmspack/test/chminfo.c +284 -0
  81. data/ext/libmspack/test/chmx.c +216 -0
  82. data/ext/libmspack/test/error.h +22 -0
  83. data/ext/libmspack/test/expand.c +79 -0
  84. data/ext/libmspack/test/md5.c +457 -0
  85. data/ext/libmspack/test/md5.h +165 -0
  86. data/ext/libmspack/test/md5_fh.h +123 -0
  87. data/ext/libmspack/test/msdecompile_md5 +24 -0
  88. data/ext/libmspack/test/msexpand_md5 +39 -0
  89. data/ext/libmspack/test/multifh.c +435 -0
  90. data/ext/libmspack/test/oabx.c +41 -0
  91. data/ext/libmspack/test/test_files/cabd/1.pl +84 -0
  92. data/ext/libmspack/test/test_files/cabd/2.pl +75 -0
  93. data/ext/libmspack/test/test_files/cabd/bad_folderindex.cab +0 -0
  94. data/ext/libmspack/test/test_files/cabd/bad_nofiles.cab +0 -0
  95. data/ext/libmspack/test/test_files/cabd/bad_nofolders.cab +0 -0
  96. data/ext/libmspack/test/test_files/cabd/bad_signature.cab +0 -0
  97. data/ext/libmspack/test/test_files/cabd/multi_basic_pt1.cab +0 -0
  98. data/ext/libmspack/test/test_files/cabd/multi_basic_pt2.cab +0 -0
  99. data/ext/libmspack/test/test_files/cabd/multi_basic_pt3.cab +0 -0
  100. data/ext/libmspack/test/test_files/cabd/multi_basic_pt4.cab +0 -0
  101. data/ext/libmspack/test/test_files/cabd/multi_basic_pt5.cab +0 -0
  102. data/ext/libmspack/test/test_files/cabd/normal_255c_filename.cab +0 -0
  103. data/ext/libmspack/test/test_files/cabd/normal_2files_1folder.cab +0 -0
  104. data/ext/libmspack/test/test_files/cabd/partial_nodata.cab +0 -0
  105. data/ext/libmspack/test/test_files/cabd/partial_nofiles.cab +0 -0
  106. data/ext/libmspack/test/test_files/cabd/partial_nofolder.cab +0 -0
  107. data/ext/libmspack/test/test_files/cabd/partial_shortextheader.cab +0 -0
  108. data/ext/libmspack/test/test_files/cabd/partial_shortfile1.cab +0 -0
  109. data/ext/libmspack/test/test_files/cabd/partial_shortfile2.cab +0 -0
  110. data/ext/libmspack/test/test_files/cabd/partial_shortfolder.cab +0 -0
  111. data/ext/libmspack/test/test_files/cabd/partial_shortheader.cab +0 -0
  112. data/ext/libmspack/test/test_files/cabd/partial_str_nofname.cab +0 -0
  113. data/ext/libmspack/test/test_files/cabd/partial_str_noninfo.cab +0 -0
  114. data/ext/libmspack/test/test_files/cabd/partial_str_nonname.cab +0 -0
  115. data/ext/libmspack/test/test_files/cabd/partial_str_nopinfo.cab +0 -0
  116. data/ext/libmspack/test/test_files/cabd/partial_str_nopname.cab +0 -0
  117. data/ext/libmspack/test/test_files/cabd/partial_str_shortfname.cab +0 -0
  118. data/ext/libmspack/test/test_files/cabd/partial_str_shortninfo.cab +0 -0
  119. data/ext/libmspack/test/test_files/cabd/partial_str_shortnname.cab +0 -0
  120. data/ext/libmspack/test/test_files/cabd/partial_str_shortpinfo.cab +0 -0
  121. data/ext/libmspack/test/test_files/cabd/partial_str_shortpname.cab +0 -0
  122. data/ext/libmspack/test/test_files/cabd/reserve_---.cab +0 -0
  123. data/ext/libmspack/test/test_files/cabd/reserve_--D.cab +0 -0
  124. data/ext/libmspack/test/test_files/cabd/reserve_-F-.cab +0 -0
  125. data/ext/libmspack/test/test_files/cabd/reserve_-FD.cab +0 -0
  126. data/ext/libmspack/test/test_files/cabd/reserve_H--.cab +0 -0
  127. data/ext/libmspack/test/test_files/cabd/reserve_H-D.cab +0 -0
  128. data/ext/libmspack/test/test_files/cabd/reserve_HF-.cab +0 -0
  129. data/ext/libmspack/test/test_files/cabd/reserve_HFD.cab +0 -0
  130. data/ext/libmspack/test/test_files/cabd/search_basic.cab +0 -0
  131. data/ext/libmspack/test/test_files/cabd/search_tricky1.cab +0 -0
  132. data/ext/libmspack/winbuild.sh +26 -0
  133. data/ext/x86_64-windows/libmspack.dll +0 -0
  134. data/lib/libmspack/constants.rb +9 -0
  135. data/lib/libmspack/exceptions.rb +12 -0
  136. data/lib/libmspack/mscab.rb +722 -0
  137. data/lib/libmspack/mschm.rb +301 -0
  138. data/lib/libmspack/mshlp.rb +15 -0
  139. data/lib/libmspack/mskwaj.rb +124 -0
  140. data/lib/libmspack/mslit.rb +18 -0
  141. data/lib/libmspack/msoab.rb +36 -0
  142. data/lib/libmspack/mspack.rb +208 -0
  143. data/lib/libmspack/msszdd.rb +81 -0
  144. data/lib/libmspack/system.rb +84 -0
  145. data/lib/libmspack/version.rb +4 -0
  146. data/lib/libmspack.rb +121 -0
  147. data/libmspack.gemspec +33 -0
  148. data/spec/libmspack_spec.rb +26 -0
  149. data/spec/spec_helper.rb +5 -0
  150. 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
+ }