libmspack 0.10.1 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (391) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +37 -0
  3. data/.gitignore +2 -0
  4. data/Rakefile +1 -1
  5. data/ext/Rakefile +1 -1
  6. data/ext/libmspack/ChangeLog +145 -0
  7. data/ext/libmspack/INSTALL +3 -3
  8. data/ext/libmspack/Makefile.am +7 -4
  9. data/ext/libmspack/Makefile.in +265 -147
  10. data/ext/libmspack/README +3 -2
  11. data/ext/libmspack/aclocal.m4 +111 -113
  12. data/ext/libmspack/ar-lib +10 -9
  13. data/ext/libmspack/compile +9 -8
  14. data/ext/libmspack/config.guess +887 -613
  15. data/ext/libmspack/config.h.in +6 -9
  16. data/ext/libmspack/config.sub +1349 -1260
  17. data/ext/libmspack/configure +3035 -2490
  18. data/ext/libmspack/configure.ac +3 -3
  19. data/ext/libmspack/depcomp +4 -4
  20. data/ext/libmspack/install-sh +107 -74
  21. data/ext/libmspack/libmscabd.la +1 -1
  22. data/ext/libmspack/libmschmd.la +1 -1
  23. data/ext/libmspack/libmspack.la +1 -1
  24. data/ext/libmspack/ltmain.sh +156 -61
  25. data/ext/libmspack/m4/libtool.m4 +19 -12
  26. data/ext/libmspack/missing +8 -8
  27. data/ext/libmspack/mspack/cabd.c +21 -19
  28. data/ext/libmspack/mspack/chm.h +3 -2
  29. data/ext/libmspack/mspack/chmd.c +137 -57
  30. data/ext/libmspack/mspack/kwajd.c +29 -29
  31. data/ext/libmspack/mspack/lzx.h +0 -1
  32. data/ext/libmspack/mspack/lzxd.c +30 -154
  33. data/ext/libmspack/mspack/macros.h +64 -0
  34. data/ext/libmspack/mspack/mszipd.c +7 -18
  35. data/ext/libmspack/mspack/qtmd.c +3 -5
  36. data/ext/libmspack/mspack/readbits.h +14 -5
  37. data/ext/libmspack/mspack/readhuff.h +26 -21
  38. data/ext/libmspack/mspack/system.c +0 -5
  39. data/ext/libmspack/mspack/system.h +20 -67
  40. data/ext/libmspack/test-driver +16 -11
  41. data/ext/x86_64-linux/libmspack.so +0 -0
  42. data/ext/x86_64-windows/mspack.dll +0 -0
  43. data/lib/libmspack/version.rb +1 -1
  44. data/lib/libmspack.rb +1 -1
  45. data/libmspack.gemspec +1 -1
  46. metadata +7 -348
  47. data/.travis.yml +0 -5
  48. data/ext/i386-windows/libmspack.dll +0 -0
  49. data/ext/libmspack/doc/Doxyfile +0 -9
  50. data/ext/libmspack/doc/Makefile +0 -8
  51. data/ext/libmspack/doc/html/annotated.html +0 -104
  52. data/ext/libmspack/doc/html/bc_s.png +0 -0
  53. data/ext/libmspack/doc/html/bdwn.png +0 -0
  54. data/ext/libmspack/doc/html/classes.html +0 -85
  55. data/ext/libmspack/doc/html/closed.png +0 -0
  56. data/ext/libmspack/doc/html/dir_f4d90282fe865f947a460986b93b960a.html +0 -83
  57. data/ext/libmspack/doc/html/doc.png +0 -0
  58. data/ext/libmspack/doc/html/doxygen.css +0 -1596
  59. data/ext/libmspack/doc/html/doxygen.png +0 -0
  60. data/ext/libmspack/doc/html/dynsections.js +0 -97
  61. data/ext/libmspack/doc/html/files.html +0 -78
  62. data/ext/libmspack/doc/html/folderclosed.png +0 -0
  63. data/ext/libmspack/doc/html/folderopen.png +0 -0
  64. data/ext/libmspack/doc/html/functions.html +0 -454
  65. data/ext/libmspack/doc/html/functions_vars.html +0 -454
  66. data/ext/libmspack/doc/html/globals.html +0 -406
  67. data/ext/libmspack/doc/html/globals_defs.html +0 -316
  68. data/ext/libmspack/doc/html/globals_func.html +0 -161
  69. data/ext/libmspack/doc/html/graph_legend.html +0 -102
  70. data/ext/libmspack/doc/html/graph_legend.md5 +0 -1
  71. data/ext/libmspack/doc/html/graph_legend.png +0 -0
  72. data/ext/libmspack/doc/html/index.html +0 -167
  73. data/ext/libmspack/doc/html/jquery.js +0 -87
  74. data/ext/libmspack/doc/html/menu.js +0 -26
  75. data/ext/libmspack/doc/html/menudata.js +0 -56
  76. data/ext/libmspack/doc/html/mspack_8h.html +0 -2664
  77. data/ext/libmspack/doc/html/mspack_8h__incl.map +0 -2
  78. data/ext/libmspack/doc/html/mspack_8h__incl.md5 +0 -1
  79. data/ext/libmspack/doc/html/mspack_8h__incl.png +0 -0
  80. data/ext/libmspack/doc/html/mspack_8h_source.html +0 -238
  81. data/ext/libmspack/doc/html/nav_f.png +0 -0
  82. data/ext/libmspack/doc/html/nav_g.png +0 -0
  83. data/ext/libmspack/doc/html/nav_h.png +0 -0
  84. data/ext/libmspack/doc/html/open.png +0 -0
  85. data/ext/libmspack/doc/html/search/all_0.html +0 -26
  86. data/ext/libmspack/doc/html/search/all_0.js +0 -6
  87. data/ext/libmspack/doc/html/search/all_1.html +0 -26
  88. data/ext/libmspack/doc/html/search/all_1.js +0 -5
  89. data/ext/libmspack/doc/html/search/all_10.html +0 -26
  90. data/ext/libmspack/doc/html/search/all_10.js +0 -8
  91. data/ext/libmspack/doc/html/search/all_11.html +0 -26
  92. data/ext/libmspack/doc/html/search/all_11.js +0 -4
  93. data/ext/libmspack/doc/html/search/all_12.html +0 -26
  94. data/ext/libmspack/doc/html/search/all_12.js +0 -4
  95. data/ext/libmspack/doc/html/search/all_13.html +0 -26
  96. data/ext/libmspack/doc/html/search/all_13.js +0 -4
  97. data/ext/libmspack/doc/html/search/all_2.html +0 -26
  98. data/ext/libmspack/doc/html/search/all_2.js +0 -14
  99. data/ext/libmspack/doc/html/search/all_3.html +0 -26
  100. data/ext/libmspack/doc/html/search/all_3.js +0 -13
  101. data/ext/libmspack/doc/html/search/all_4.html +0 -26
  102. data/ext/libmspack/doc/html/search/all_4.js +0 -6
  103. data/ext/libmspack/doc/html/search/all_5.html +0 -26
  104. data/ext/libmspack/doc/html/search/all_5.js +0 -13
  105. data/ext/libmspack/doc/html/search/all_6.html +0 -26
  106. data/ext/libmspack/doc/html/search/all_6.js +0 -4
  107. data/ext/libmspack/doc/html/search/all_7.html +0 -26
  108. data/ext/libmspack/doc/html/search/all_7.js +0 -5
  109. data/ext/libmspack/doc/html/search/all_8.html +0 -26
  110. data/ext/libmspack/doc/html/search/all_8.js +0 -5
  111. data/ext/libmspack/doc/html/search/all_9.html +0 -26
  112. data/ext/libmspack/doc/html/search/all_9.js +0 -7
  113. data/ext/libmspack/doc/html/search/all_a.html +0 -26
  114. data/ext/libmspack/doc/html/search/all_a.js +0 -144
  115. data/ext/libmspack/doc/html/search/all_b.html +0 -26
  116. data/ext/libmspack/doc/html/search/all_b.js +0 -10
  117. data/ext/libmspack/doc/html/search/all_c.html +0 -26
  118. data/ext/libmspack/doc/html/search/all_c.js +0 -5
  119. data/ext/libmspack/doc/html/search/all_d.html +0 -26
  120. data/ext/libmspack/doc/html/search/all_d.js +0 -7
  121. data/ext/libmspack/doc/html/search/all_e.html +0 -26
  122. data/ext/libmspack/doc/html/search/all_e.js +0 -5
  123. data/ext/libmspack/doc/html/search/all_f.html +0 -26
  124. data/ext/libmspack/doc/html/search/all_f.js +0 -15
  125. data/ext/libmspack/doc/html/search/classes_0.html +0 -26
  126. data/ext/libmspack/doc/html/search/classes_0.js +0 -30
  127. data/ext/libmspack/doc/html/search/close.png +0 -0
  128. data/ext/libmspack/doc/html/search/defines_0.html +0 -26
  129. data/ext/libmspack/doc/html/search/defines_0.js +0 -84
  130. data/ext/libmspack/doc/html/search/files_0.html +0 -26
  131. data/ext/libmspack/doc/html/search/files_0.js +0 -4
  132. data/ext/libmspack/doc/html/search/functions_0.html +0 -26
  133. data/ext/libmspack/doc/html/search/functions_0.js +0 -33
  134. data/ext/libmspack/doc/html/search/mag_sel.png +0 -0
  135. data/ext/libmspack/doc/html/search/nomatches.html +0 -12
  136. data/ext/libmspack/doc/html/search/search.css +0 -271
  137. data/ext/libmspack/doc/html/search/search.js +0 -791
  138. data/ext/libmspack/doc/html/search/search_l.png +0 -0
  139. data/ext/libmspack/doc/html/search/search_m.png +0 -0
  140. data/ext/libmspack/doc/html/search/search_r.png +0 -0
  141. data/ext/libmspack/doc/html/search/searchdata.js +0 -30
  142. data/ext/libmspack/doc/html/search/variables_0.html +0 -26
  143. data/ext/libmspack/doc/html/search/variables_0.js +0 -6
  144. data/ext/libmspack/doc/html/search/variables_1.html +0 -26
  145. data/ext/libmspack/doc/html/search/variables_1.js +0 -5
  146. data/ext/libmspack/doc/html/search/variables_10.html +0 -26
  147. data/ext/libmspack/doc/html/search/variables_10.js +0 -8
  148. data/ext/libmspack/doc/html/search/variables_11.html +0 -26
  149. data/ext/libmspack/doc/html/search/variables_11.js +0 -4
  150. data/ext/libmspack/doc/html/search/variables_12.html +0 -26
  151. data/ext/libmspack/doc/html/search/variables_12.js +0 -4
  152. data/ext/libmspack/doc/html/search/variables_13.html +0 -26
  153. data/ext/libmspack/doc/html/search/variables_13.js +0 -4
  154. data/ext/libmspack/doc/html/search/variables_2.html +0 -26
  155. data/ext/libmspack/doc/html/search/variables_2.js +0 -14
  156. data/ext/libmspack/doc/html/search/variables_3.html +0 -26
  157. data/ext/libmspack/doc/html/search/variables_3.js +0 -13
  158. data/ext/libmspack/doc/html/search/variables_4.html +0 -26
  159. data/ext/libmspack/doc/html/search/variables_4.js +0 -6
  160. data/ext/libmspack/doc/html/search/variables_5.html +0 -26
  161. data/ext/libmspack/doc/html/search/variables_5.js +0 -13
  162. data/ext/libmspack/doc/html/search/variables_6.html +0 -26
  163. data/ext/libmspack/doc/html/search/variables_6.js +0 -4
  164. data/ext/libmspack/doc/html/search/variables_7.html +0 -26
  165. data/ext/libmspack/doc/html/search/variables_7.js +0 -5
  166. data/ext/libmspack/doc/html/search/variables_8.html +0 -26
  167. data/ext/libmspack/doc/html/search/variables_8.js +0 -5
  168. data/ext/libmspack/doc/html/search/variables_9.html +0 -26
  169. data/ext/libmspack/doc/html/search/variables_9.js +0 -7
  170. data/ext/libmspack/doc/html/search/variables_a.html +0 -26
  171. data/ext/libmspack/doc/html/search/variables_a.js +0 -5
  172. data/ext/libmspack/doc/html/search/variables_b.html +0 -26
  173. data/ext/libmspack/doc/html/search/variables_b.js +0 -10
  174. data/ext/libmspack/doc/html/search/variables_c.html +0 -26
  175. data/ext/libmspack/doc/html/search/variables_c.js +0 -5
  176. data/ext/libmspack/doc/html/search/variables_d.html +0 -26
  177. data/ext/libmspack/doc/html/search/variables_d.js +0 -7
  178. data/ext/libmspack/doc/html/search/variables_e.html +0 -26
  179. data/ext/libmspack/doc/html/search/variables_e.js +0 -5
  180. data/ext/libmspack/doc/html/search/variables_f.html +0 -26
  181. data/ext/libmspack/doc/html/search/variables_f.js +0 -15
  182. data/ext/libmspack/doc/html/splitbar.png +0 -0
  183. data/ext/libmspack/doc/html/structmscab__compressor.html +0 -106
  184. data/ext/libmspack/doc/html/structmscab__decompressor.html +0 -361
  185. data/ext/libmspack/doc/html/structmscab__decompressor__coll__graph.map +0 -5
  186. data/ext/libmspack/doc/html/structmscab__decompressor__coll__graph.md5 +0 -1
  187. data/ext/libmspack/doc/html/structmscab__decompressor__coll__graph.png +0 -0
  188. data/ext/libmspack/doc/html/structmscabd__cabinet.html +0 -418
  189. data/ext/libmspack/doc/html/structmscabd__cabinet__coll__graph.map +0 -4
  190. data/ext/libmspack/doc/html/structmscabd__cabinet__coll__graph.md5 +0 -1
  191. data/ext/libmspack/doc/html/structmscabd__cabinet__coll__graph.png +0 -0
  192. data/ext/libmspack/doc/html/structmscabd__file.html +0 -337
  193. data/ext/libmspack/doc/html/structmscabd__file__coll__graph.map +0 -3
  194. data/ext/libmspack/doc/html/structmscabd__file__coll__graph.md5 +0 -1
  195. data/ext/libmspack/doc/html/structmscabd__file__coll__graph.png +0 -0
  196. data/ext/libmspack/doc/html/structmscabd__folder.html +0 -159
  197. data/ext/libmspack/doc/html/structmscabd__folder__coll__graph.map +0 -2
  198. data/ext/libmspack/doc/html/structmscabd__folder__coll__graph.md5 +0 -1
  199. data/ext/libmspack/doc/html/structmscabd__folder__coll__graph.png +0 -0
  200. data/ext/libmspack/doc/html/structmschm__compressor.html +0 -226
  201. data/ext/libmspack/doc/html/structmschm__decompressor.html +0 -299
  202. data/ext/libmspack/doc/html/structmschm__decompressor__coll__graph.map +0 -7
  203. data/ext/libmspack/doc/html/structmschm__decompressor__coll__graph.md5 +0 -1
  204. data/ext/libmspack/doc/html/structmschm__decompressor__coll__graph.png +0 -0
  205. data/ext/libmspack/doc/html/structmschmc__file.html +0 -169
  206. data/ext/libmspack/doc/html/structmschmd__file.html +0 -198
  207. data/ext/libmspack/doc/html/structmschmd__file__coll__graph.map +0 -6
  208. data/ext/libmspack/doc/html/structmschmd__file__coll__graph.md5 +0 -1
  209. data/ext/libmspack/doc/html/structmschmd__file__coll__graph.png +0 -0
  210. data/ext/libmspack/doc/html/structmschmd__header.html +0 -458
  211. data/ext/libmspack/doc/html/structmschmd__header__coll__graph.map +0 -6
  212. data/ext/libmspack/doc/html/structmschmd__header__coll__graph.md5 +0 -1
  213. data/ext/libmspack/doc/html/structmschmd__header__coll__graph.png +0 -0
  214. data/ext/libmspack/doc/html/structmschmd__sec__mscompressed.html +0 -198
  215. data/ext/libmspack/doc/html/structmschmd__sec__mscompressed__coll__graph.map +0 -6
  216. data/ext/libmspack/doc/html/structmschmd__sec__mscompressed__coll__graph.md5 +0 -1
  217. data/ext/libmspack/doc/html/structmschmd__sec__mscompressed__coll__graph.png +0 -0
  218. data/ext/libmspack/doc/html/structmschmd__sec__uncompressed.html +0 -140
  219. data/ext/libmspack/doc/html/structmschmd__sec__uncompressed__coll__graph.map +0 -6
  220. data/ext/libmspack/doc/html/structmschmd__sec__uncompressed__coll__graph.md5 +0 -1
  221. data/ext/libmspack/doc/html/structmschmd__sec__uncompressed__coll__graph.png +0 -0
  222. data/ext/libmspack/doc/html/structmschmd__section.html +0 -142
  223. data/ext/libmspack/doc/html/structmschmd__section__coll__graph.map +0 -6
  224. data/ext/libmspack/doc/html/structmschmd__section__coll__graph.md5 +0 -1
  225. data/ext/libmspack/doc/html/structmschmd__section__coll__graph.png +0 -0
  226. data/ext/libmspack/doc/html/structmshlp__compressor.html +0 -106
  227. data/ext/libmspack/doc/html/structmshlp__decompressor.html +0 -106
  228. data/ext/libmspack/doc/html/structmskwaj__compressor.html +0 -243
  229. data/ext/libmspack/doc/html/structmskwaj__decompressor.html +0 -245
  230. data/ext/libmspack/doc/html/structmskwaj__decompressor__coll__graph.map +0 -3
  231. data/ext/libmspack/doc/html/structmskwaj__decompressor__coll__graph.md5 +0 -1
  232. data/ext/libmspack/doc/html/structmskwaj__decompressor__coll__graph.png +0 -0
  233. data/ext/libmspack/doc/html/structmskwajd__header.html +0 -225
  234. data/ext/libmspack/doc/html/structmslit__compressor.html +0 -106
  235. data/ext/libmspack/doc/html/structmslit__decompressor.html +0 -106
  236. data/ext/libmspack/doc/html/structmsoab__compressor.html +0 -151
  237. data/ext/libmspack/doc/html/structmsoab__decompressor.html +0 -184
  238. data/ext/libmspack/doc/html/structmspack__file.html +0 -107
  239. data/ext/libmspack/doc/html/structmspack__system.html +0 -404
  240. data/ext/libmspack/doc/html/structmspack__system__coll__graph.map +0 -3
  241. data/ext/libmspack/doc/html/structmspack__system__coll__graph.md5 +0 -1
  242. data/ext/libmspack/doc/html/structmspack__system__coll__graph.png +0 -0
  243. data/ext/libmspack/doc/html/structmsszdd__compressor.html +0 -186
  244. data/ext/libmspack/doc/html/structmsszdd__decompressor.html +0 -246
  245. data/ext/libmspack/doc/html/structmsszdd__decompressor__coll__graph.map +0 -3
  246. data/ext/libmspack/doc/html/structmsszdd__decompressor__coll__graph.md5 +0 -1
  247. data/ext/libmspack/doc/html/structmsszdd__decompressor__coll__graph.png +0 -0
  248. data/ext/libmspack/doc/html/structmsszddd__header.html +0 -149
  249. data/ext/libmspack/doc/html/sync_off.png +0 -0
  250. data/ext/libmspack/doc/html/sync_on.png +0 -0
  251. data/ext/libmspack/doc/html/szdd_kwaj_format.html +0 -331
  252. data/ext/libmspack/doc/html/tab_a.png +0 -0
  253. data/ext/libmspack/doc/html/tab_b.png +0 -0
  254. data/ext/libmspack/doc/html/tab_h.png +0 -0
  255. data/ext/libmspack/doc/html/tab_s.png +0 -0
  256. data/ext/libmspack/doc/html/tabs.css +0 -1
  257. data/ext/libmspack/doc/szdd_kwaj_format.html +0 -331
  258. data/ext/libmspack/examples/cabd_memory.c +0 -179
  259. data/ext/libmspack/examples/cabrip.c +0 -85
  260. data/ext/libmspack/examples/chmextract.c +0 -121
  261. data/ext/libmspack/examples/msexpand.c +0 -48
  262. data/ext/libmspack/examples/multifh.c +0 -435
  263. data/ext/libmspack/examples/oabextract.c +0 -41
  264. data/ext/libmspack/test/cabd_md5.c +0 -161
  265. data/ext/libmspack/test/cabd_test.c +0 -468
  266. data/ext/libmspack/test/chmd_find.c +0 -95
  267. data/ext/libmspack/test/chmd_md5.c +0 -67
  268. data/ext/libmspack/test/chmd_order.c +0 -144
  269. data/ext/libmspack/test/chmd_test.c +0 -134
  270. data/ext/libmspack/test/chminfo.c +0 -285
  271. data/ext/libmspack/test/error.h +0 -22
  272. data/ext/libmspack/test/kwajd_test.c +0 -119
  273. data/ext/libmspack/test/md5.c +0 -450
  274. data/ext/libmspack/test/md5.h +0 -166
  275. data/ext/libmspack/test/md5_fh.h +0 -123
  276. data/ext/libmspack/test/test_files/cabd/1.pl +0 -84
  277. data/ext/libmspack/test/test_files/cabd/2.pl +0 -75
  278. data/ext/libmspack/test/test_files/cabd/bad_folderindex.cab +0 -0
  279. data/ext/libmspack/test/test_files/cabd/bad_nofiles.cab +0 -0
  280. data/ext/libmspack/test/test_files/cabd/bad_nofolders.cab +0 -0
  281. data/ext/libmspack/test/test_files/cabd/bad_signature.cab +0 -0
  282. data/ext/libmspack/test/test_files/cabd/cve-2010-2800-mszip-infinite-loop.cab +0 -0
  283. data/ext/libmspack/test/test_files/cabd/cve-2014-9556-qtm-infinite-loop.cab +0 -0
  284. data/ext/libmspack/test/test_files/cabd/cve-2014-9732-folders-segfault.cab +0 -0
  285. data/ext/libmspack/test/test_files/cabd/cve-2015-4470-mszip-over-read.cab +0 -0
  286. data/ext/libmspack/test/test_files/cabd/cve-2015-4471-lzx-under-read.cab +0 -0
  287. data/ext/libmspack/test/test_files/cabd/filename-read-violation-1.cab +0 -0
  288. data/ext/libmspack/test/test_files/cabd/filename-read-violation-2.cab +0 -0
  289. data/ext/libmspack/test/test_files/cabd/filename-read-violation-3.cab +0 -0
  290. data/ext/libmspack/test/test_files/cabd/filename-read-violation-4.cab +0 -0
  291. data/ext/libmspack/test/test_files/cabd/lzx-main-tree-no-lengths.cab +0 -0
  292. data/ext/libmspack/test/test_files/cabd/lzx-premature-matches.cab +0 -0
  293. data/ext/libmspack/test/test_files/cabd/mszip_lzx_qtm.cab +0 -0
  294. data/ext/libmspack/test/test_files/cabd/multi_basic_pt1.cab +0 -0
  295. data/ext/libmspack/test/test_files/cabd/multi_basic_pt2.cab +0 -0
  296. data/ext/libmspack/test/test_files/cabd/multi_basic_pt3.cab +0 -0
  297. data/ext/libmspack/test/test_files/cabd/multi_basic_pt4.cab +0 -0
  298. data/ext/libmspack/test/test_files/cabd/multi_basic_pt5.cab +0 -0
  299. data/ext/libmspack/test/test_files/cabd/normal_255c_filename.cab +0 -0
  300. data/ext/libmspack/test/test_files/cabd/normal_2files_1folder.cab +0 -0
  301. data/ext/libmspack/test/test_files/cabd/normal_2files_2folders.cab +0 -0
  302. data/ext/libmspack/test/test_files/cabd/partial_nodata.cab +0 -0
  303. data/ext/libmspack/test/test_files/cabd/partial_nofiles.cab +0 -0
  304. data/ext/libmspack/test/test_files/cabd/partial_nofolder.cab +0 -0
  305. data/ext/libmspack/test/test_files/cabd/partial_shortextheader.cab +0 -0
  306. data/ext/libmspack/test/test_files/cabd/partial_shortfile1.cab +0 -0
  307. data/ext/libmspack/test/test_files/cabd/partial_shortfile2.cab +0 -0
  308. data/ext/libmspack/test/test_files/cabd/partial_shortfolder.cab +0 -0
  309. data/ext/libmspack/test/test_files/cabd/partial_shortheader.cab +0 -0
  310. data/ext/libmspack/test/test_files/cabd/partial_str_nofname.cab +0 -0
  311. data/ext/libmspack/test/test_files/cabd/partial_str_noninfo.cab +0 -0
  312. data/ext/libmspack/test/test_files/cabd/partial_str_nonname.cab +0 -0
  313. data/ext/libmspack/test/test_files/cabd/partial_str_nopinfo.cab +0 -0
  314. data/ext/libmspack/test/test_files/cabd/partial_str_nopname.cab +0 -0
  315. data/ext/libmspack/test/test_files/cabd/partial_str_shortfname.cab +0 -0
  316. data/ext/libmspack/test/test_files/cabd/partial_str_shortninfo.cab +0 -0
  317. data/ext/libmspack/test/test_files/cabd/partial_str_shortnname.cab +0 -0
  318. data/ext/libmspack/test/test_files/cabd/partial_str_shortpinfo.cab +0 -0
  319. data/ext/libmspack/test/test_files/cabd/partial_str_shortpname.cab +0 -0
  320. data/ext/libmspack/test/test_files/cabd/qtm-max-size-block.cab +0 -0
  321. data/ext/libmspack/test/test_files/cabd/reserve_---.cab +0 -0
  322. data/ext/libmspack/test/test_files/cabd/reserve_--D.cab +0 -0
  323. data/ext/libmspack/test/test_files/cabd/reserve_-F-.cab +0 -0
  324. data/ext/libmspack/test/test_files/cabd/reserve_-FD.cab +0 -0
  325. data/ext/libmspack/test/test_files/cabd/reserve_H--.cab +0 -0
  326. data/ext/libmspack/test/test_files/cabd/reserve_H-D.cab +0 -0
  327. data/ext/libmspack/test/test_files/cabd/reserve_HF-.cab +0 -0
  328. data/ext/libmspack/test/test_files/cabd/reserve_HFD.cab +0 -0
  329. data/ext/libmspack/test/test_files/cabd/search_basic.cab +0 -0
  330. data/ext/libmspack/test/test_files/cabd/search_tricky1.cab +0 -0
  331. data/ext/libmspack/test/test_files/chmd/blank-filenames.chm +0 -0
  332. data/ext/libmspack/test/test_files/chmd/cve-2015-4467-reset-interval-zero.chm.xor +0 -0
  333. data/ext/libmspack/test/test_files/chmd/cve-2015-4468-namelen-bounds.chm +0 -0
  334. data/ext/libmspack/test/test_files/chmd/cve-2015-4469-namelen-bounds.chm +0 -0
  335. data/ext/libmspack/test/test_files/chmd/cve-2015-4472-namelen-bounds.chm +0 -0
  336. data/ext/libmspack/test/test_files/chmd/cve-2017-6419-lzx-negative-spaninfo.chm +0 -0
  337. data/ext/libmspack/test/test_files/chmd/short-system-filenames.chm +0 -0
  338. data/ext/libmspack/test/test_files/kwajd/f00.kwj +0 -0
  339. data/ext/libmspack/test/test_files/kwajd/f01.kwj +0 -0
  340. data/ext/libmspack/test/test_files/kwajd/f02.kwj +0 -0
  341. data/ext/libmspack/test/test_files/kwajd/f03.kwj +0 -0
  342. data/ext/libmspack/test/test_files/kwajd/f04.kwj +0 -0
  343. data/ext/libmspack/test/test_files/kwajd/f10.kwj +0 -0
  344. data/ext/libmspack/test/test_files/kwajd/f11.kwj +0 -0
  345. data/ext/libmspack/test/test_files/kwajd/f12.kwj +0 -0
  346. data/ext/libmspack/test/test_files/kwajd/f13.kwj +0 -0
  347. data/ext/libmspack/test/test_files/kwajd/f14.kwj +0 -0
  348. data/ext/libmspack/test/test_files/kwajd/f20.kwj +0 -0
  349. data/ext/libmspack/test/test_files/kwajd/f21.kwj +0 -0
  350. data/ext/libmspack/test/test_files/kwajd/f22.kwj +0 -0
  351. data/ext/libmspack/test/test_files/kwajd/f23.kwj +0 -0
  352. data/ext/libmspack/test/test_files/kwajd/f24.kwj +0 -0
  353. data/ext/libmspack/test/test_files/kwajd/f30.kwj +0 -0
  354. data/ext/libmspack/test/test_files/kwajd/f31.kwj +0 -0
  355. data/ext/libmspack/test/test_files/kwajd/f32.kwj +0 -0
  356. data/ext/libmspack/test/test_files/kwajd/f33.kwj +0 -0
  357. data/ext/libmspack/test/test_files/kwajd/f34.kwj +0 -0
  358. data/ext/libmspack/test/test_files/kwajd/f40.kwj +0 -0
  359. data/ext/libmspack/test/test_files/kwajd/f41.kwj +0 -0
  360. data/ext/libmspack/test/test_files/kwajd/f42.kwj +0 -0
  361. data/ext/libmspack/test/test_files/kwajd/f43.kwj +0 -0
  362. data/ext/libmspack/test/test_files/kwajd/f44.kwj +0 -0
  363. data/ext/libmspack/test/test_files/kwajd/f50.kwj +0 -0
  364. data/ext/libmspack/test/test_files/kwajd/f51.kwj +0 -0
  365. data/ext/libmspack/test/test_files/kwajd/f52.kwj +0 -0
  366. data/ext/libmspack/test/test_files/kwajd/f53.kwj +0 -0
  367. data/ext/libmspack/test/test_files/kwajd/f54.kwj +0 -0
  368. data/ext/libmspack/test/test_files/kwajd/f60.kwj +0 -0
  369. data/ext/libmspack/test/test_files/kwajd/f61.kwj +0 -0
  370. data/ext/libmspack/test/test_files/kwajd/f62.kwj +0 -0
  371. data/ext/libmspack/test/test_files/kwajd/f63.kwj +0 -0
  372. data/ext/libmspack/test/test_files/kwajd/f64.kwj +0 -0
  373. data/ext/libmspack/test/test_files/kwajd/f70.kwj +0 -0
  374. data/ext/libmspack/test/test_files/kwajd/f71.kwj +0 -0
  375. data/ext/libmspack/test/test_files/kwajd/f72.kwj +0 -0
  376. data/ext/libmspack/test/test_files/kwajd/f73.kwj +0 -0
  377. data/ext/libmspack/test/test_files/kwajd/f74.kwj +0 -0
  378. data/ext/libmspack/test/test_files/kwajd/f80.kwj +0 -0
  379. data/ext/libmspack/test/test_files/kwajd/f81.kwj +0 -0
  380. data/ext/libmspack/test/test_files/kwajd/f82.kwj +0 -0
  381. data/ext/libmspack/test/test_files/kwajd/f83.kwj +0 -0
  382. data/ext/libmspack/test/test_files/kwajd/f84.kwj +0 -0
  383. data/ext/libmspack/test/test_files/kwajd/f90.kwj +0 -0
  384. data/ext/libmspack/test/test_files/kwajd/f91.kwj +0 -0
  385. data/ext/libmspack/test/test_files/kwajd/f92.kwj +0 -0
  386. data/ext/libmspack/test/test_files/kwajd/f93.kwj +0 -0
  387. data/ext/libmspack/test/test_files/kwajd/f94.kwj +0 -0
  388. data/ext/libmspack/test/test_files/kwajd/make.pl +0 -17
  389. data/ext/x86_64-linux/liblibmspack.so +0 -0
  390. data/ext/x86_64-windows/libmspack.dll +0 -0
  391. data/ext/x86_64-windows-msys/libmspack.dll +0 -0
@@ -1,238 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
- <html xmlns="http://www.w3.org/1999/xhtml">
3
- <head>
4
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6
- <meta name="generator" content="Doxygen 1.8.13"/>
7
- <meta name="viewport" content="width=device-width, initial-scale=1"/>
8
- <title>libmspack: mspack.h Source File</title>
9
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
10
- <script type="text/javascript" src="jquery.js"></script>
11
- <script type="text/javascript" src="dynsections.js"></script>
12
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
13
- <script type="text/javascript" src="search/searchdata.js"></script>
14
- <script type="text/javascript" src="search/search.js"></script>
15
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
16
- </head>
17
- <body>
18
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
19
- <div id="titlearea">
20
- <table cellspacing="0" cellpadding="0">
21
- <tbody>
22
- <tr style="height: 56px;">
23
- <td id="projectalign" style="padding-left: 0.5em;">
24
- <div id="projectname">libmspack
25
- </div>
26
- </td>
27
- </tr>
28
- </tbody>
29
- </table>
30
- </div>
31
- <!-- end header part -->
32
- <!-- Generated by Doxygen 1.8.13 -->
33
- <script type="text/javascript">
34
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
35
- </script>
36
- <script type="text/javascript" src="menudata.js"></script>
37
- <script type="text/javascript" src="menu.js"></script>
38
- <script type="text/javascript">
39
- $(function() {
40
- initMenu('',true,false,'search.php','Search');
41
- $(document).ready(function() { init_search(); });
42
- });
43
- </script>
44
- <div id="main-nav"></div>
45
- <!-- window showing the filter options -->
46
- <div id="MSearchSelectWindow"
47
- onmouseover="return searchBox.OnSearchSelectShow()"
48
- onmouseout="return searchBox.OnSearchSelectHide()"
49
- onkeydown="return searchBox.OnSearchSelectKey(event)">
50
- </div>
51
-
52
- <!-- iframe showing the search results (closed by default) -->
53
- <div id="MSearchResultsWindow">
54
- <iframe src="javascript:void(0)" frameborder="0"
55
- name="MSearchResults" id="MSearchResults">
56
- </iframe>
57
- </div>
58
-
59
- <div id="nav-path" class="navpath">
60
- <ul>
61
- <li class="navelem"><a class="el" href="dir_f4d90282fe865f947a460986b93b960a.html">mspack</a></li> </ul>
62
- </div>
63
- </div><!-- top -->
64
- <div class="header">
65
- <div class="headertitle">
66
- <div class="title">mspack.h</div> </div>
67
- </div><!--header-->
68
- <div class="contents">
69
- <a href="mspack_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* libmspack -- a library for working with Microsoft compression formats.</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * (C) 2003-2019 Stuart Caie &lt;kyzer@cabextract.org.uk&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * libmspack is free software; you can redistribute it and/or modify it under</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * the terms of the GNU Lesser General Public License (LGPL) version 2.1</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * GNU Lesser General Public License for more details.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * You should have received a copy of the GNU Lesser General Public License</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="preprocessor">#ifndef LIB_MSPACK_H</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="preprocessor">#define LIB_MSPACK_H 1</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor">#include &lt;sys/types.h&gt;</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="mspack_8h.html#a3a94be2216dd1e835733acb7c4645fca"> 191</a></span>&#160;<span class="preprocessor">#define MSPACK_SYS_SELFTEST(result) do { \</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="preprocessor"> (result) = mspack_sys_selftest_internal(sizeof(off_t)); \</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor">} while (0)</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="mspack_8h.html#a799d00a8ea939a86f2ed4e5c0dadb00e">mspack_sys_selftest_internal</a>(<span class="keywordtype">int</span>);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="mspack_8h.html#a2194442b6f887014905c2f59e43213f7">mspack_version</a>(<span class="keywordtype">int</span> entity);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="mspack_8h.html#a8d4ce95586e45fe07a6927b9db45bb28"> 232</a></span>&#160;<span class="preprocessor">#define MSPACK_VER_LIBRARY (0)</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="mspack_8h.html#a2c88449deeffd838d78ec13e66dc33d5"> 234</a></span>&#160;<span class="preprocessor">#define MSPACK_VER_SYSTEM (1)</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="mspack_8h.html#a245b413d85c79f06b3293e16911c5a43"> 236</a></span>&#160;<span class="preprocessor">#define MSPACK_VER_MSCABD (2)</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="mspack_8h.html#acc27e0769e0d422928d5566f4d411b4f"> 238</a></span>&#160;<span class="preprocessor">#define MSPACK_VER_MSCABC (3)</span></div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="mspack_8h.html#a9b3431066a4a210354fee7b6dd5a21d8"> 240</a></span>&#160;<span class="preprocessor">#define MSPACK_VER_MSCHMD (4)</span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="mspack_8h.html#a247e8e86c98528004a71421bb17da869"> 242</a></span>&#160;<span class="preprocessor">#define MSPACK_VER_MSCHMC (5)</span></div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="mspack_8h.html#a4923ac5755690e603dfa10f02e05b9cf"> 244</a></span>&#160;<span class="preprocessor">#define MSPACK_VER_MSLITD (6)</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="mspack_8h.html#ac2e044afae30db7a3889ee5266b24b4c"> 246</a></span>&#160;<span class="preprocessor">#define MSPACK_VER_MSLITC (7)</span></div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="mspack_8h.html#aeef914819eb6ad5fc7e400ee034891d0"> 248</a></span>&#160;<span class="preprocessor">#define MSPACK_VER_MSHLPD (8)</span></div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="mspack_8h.html#a7e55e5894cfdca5f14ece25066b4dc92"> 250</a></span>&#160;<span class="preprocessor">#define MSPACK_VER_MSHLPC (9)</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="mspack_8h.html#ae0fcc17f5a63c506834ed0f4d81bb3da"> 252</a></span>&#160;<span class="preprocessor">#define MSPACK_VER_MSSZDDD (10)</span></div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="mspack_8h.html#aef8d6f2f5c1881e7e726c278140f634c"> 254</a></span>&#160;<span class="preprocessor">#define MSPACK_VER_MSSZDDC (11)</span></div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="mspack_8h.html#a37d8857d8e48024953d3cdf78ca84584"> 256</a></span>&#160;<span class="preprocessor">#define MSPACK_VER_MSKWAJD (12)</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="mspack_8h.html#a6788c51d5aee275d218f4a8de1642801"> 258</a></span>&#160;<span class="preprocessor">#define MSPACK_VER_MSKWAJC (13)</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="mspack_8h.html#a204b64fa390033d9aa6a90d9b9a2a959"> 260</a></span>&#160;<span class="preprocessor">#define MSPACK_VER_MSOABD (14)</span></div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="mspack_8h.html#a34df560840e50cdbf22bfec89183dac0"> 262</a></span>&#160;<span class="preprocessor">#define MSPACK_VER_MSOABC (15)</span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="comment">/* --- file I/O abstraction ------------------------------------------------ */</span></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="structmspack__system.html"> 285</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmspack__system.html">mspack_system</a> {</div><div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="structmspack__system.html#a908dd0c7eecc8fe0d61584f69896df0c"> 310</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmspack__file.html">mspack_file</a> * (*open)(<span class="keyword">struct </span><a class="code" href="structmspack__system.html">mspack_system</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *filename,</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordtype">int</span> mode);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="structmspack__system.html#a86073da10c2b30b1ff75dd0d82a3ba8d"> 321</a></span>&#160; void (*<a class="code" href="structmspack__system.html#a86073da10c2b30b1ff75dd0d82a3ba8d">close</a>)(<span class="keyword">struct </span><a class="code" href="structmspack__file.html">mspack_file</a> *file);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="structmspack__system.html#a121acf7277cde3b96d4c59e259b01ad6"> 336</a></span>&#160; int (*<a class="code" href="structmspack__system.html#a121acf7277cde3b96d4c59e259b01ad6">read</a>)(<span class="keyword">struct </span><a class="code" href="structmspack__file.html">mspack_file</a> *file,</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordtype">void</span> *buffer,</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordtype">int</span> bytes);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="structmspack__system.html#abac465118be5ef7a9f21a273c48769a5"> 353</a></span>&#160; int (*<a class="code" href="structmspack__system.html#abac465118be5ef7a9f21a273c48769a5">write</a>)(<span class="keyword">struct </span><a class="code" href="structmspack__file.html">mspack_file</a> *file,</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordtype">void</span> *buffer,</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordtype">int</span> bytes);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;</div><div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="structmspack__system.html#afb2a70ca48bbc9487c8f2d4c525f94c4"> 380</a></span>&#160; int (*<a class="code" href="structmspack__system.html#afb2a70ca48bbc9487c8f2d4c525f94c4">seek</a>)(<span class="keyword">struct </span><a class="code" href="structmspack__file.html">mspack_file</a> *file,</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; off_t offset,</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordtype">int</span> mode);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;</div><div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="structmspack__system.html#a91b831a5fbc3ad14908702d55d5cb9d8"> 391</a></span>&#160; off_t (*<a class="code" href="structmspack__system.html#a91b831a5fbc3ad14908702d55d5cb9d8">tell</a>)(<span class="keyword">struct </span><a class="code" href="structmspack__file.html">mspack_file</a> *file);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; </div><div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="structmspack__system.html#a9954de59172a04aac2a5edc4803e9e38"> 407</a></span>&#160; void (*<a class="code" href="structmspack__system.html#a9954de59172a04aac2a5edc4803e9e38">message</a>)(<span class="keyword">struct </span><a class="code" href="structmspack__file.html">mspack_file</a> *file,</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *format,</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; ...);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;</div><div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="structmspack__system.html#ab4542f055c67fb13ae96aef15b4d0646"> 421</a></span>&#160; <span class="keywordtype">void</span> * (*alloc)(<span class="keyword">struct </span><a class="code" href="structmspack__system.html">mspack_system</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordtype">size_t</span> bytes);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; </div><div class="line"><a name="l00430"></a><span class="lineno"><a class="line" href="structmspack__system.html#adc2493d00d2d6a4e442ae9a02cc2eba3"> 430</a></span>&#160; void (*<a class="code" href="structmspack__system.html#adc2493d00d2d6a4e442ae9a02cc2eba3">free</a>)(<span class="keywordtype">void</span> *ptr);</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;</div><div class="line"><a name="l00444"></a><span class="lineno"><a class="line" href="structmspack__system.html#a97c3960d5bdf646bae92de8fb64ba67b"> 444</a></span>&#160; void (*<a class="code" href="structmspack__system.html#a97c3960d5bdf646bae92de8fb64ba67b">copy</a>)(<span class="keywordtype">void</span> *src,</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordtype">void</span> *dest,</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordtype">size_t</span> bytes);</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;</div><div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="structmspack__system.html#a8c64d1bd9b6b0ac9455cfde19ccb61b2"> 454</a></span>&#160; <span class="keywordtype">void</span> *<a class="code" href="structmspack__system.html#a8c64d1bd9b6b0ac9455cfde19ccb61b2">null_ptr</a>;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;};</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div><div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="mspack_8h.html#a817255b35e433f4adcf907fc97f9b63f"> 458</a></span>&#160;<span class="preprocessor">#define MSPACK_SYS_OPEN_READ (0)</span></div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;</div><div class="line"><a name="l00460"></a><span class="lineno"><a class="line" href="mspack_8h.html#a77508ef49eff6a98f39a3b5021c5c51f"> 460</a></span>&#160;<span class="preprocessor">#define MSPACK_SYS_OPEN_WRITE (1)</span></div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div><div class="line"><a name="l00462"></a><span class="lineno"><a class="line" href="mspack_8h.html#ae9f356d2f22c7c236b9bdad87b25b18b"> 462</a></span>&#160;<span class="preprocessor">#define MSPACK_SYS_OPEN_UPDATE (2)</span></div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;</div><div class="line"><a name="l00464"></a><span class="lineno"><a class="line" href="mspack_8h.html#a05310a4221173aabf06ab99d09d7504e"> 464</a></span>&#160;<span class="preprocessor">#define MSPACK_SYS_OPEN_APPEND (3)</span></div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;</div><div class="line"><a name="l00467"></a><span class="lineno"><a class="line" href="mspack_8h.html#a80228888f03f72c392e138373acfc74e"> 467</a></span>&#160;<span class="preprocessor">#define MSPACK_SYS_SEEK_START (0)</span></div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div><div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="mspack_8h.html#a9b90c177e3582571d0155c4597f85168"> 469</a></span>&#160;<span class="preprocessor">#define MSPACK_SYS_SEEK_CUR (1)</span></div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;</div><div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="mspack_8h.html#a24e4d3889d52558e7f0c703db94270d6"> 471</a></span>&#160;<span class="preprocessor">#define MSPACK_SYS_SEEK_END (2)</span></div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;</div><div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="structmspack__file.html"> 478</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmspack__file.html">mspack_file</a> {</div><div class="line"><a name="l00479"></a><span class="lineno"><a class="line" href="structmspack__file.html#af92caf003ca38fb1ed1eb03761f9a2dc"> 479</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structmspack__file.html#af92caf003ca38fb1ed1eb03761f9a2dc">dummy</a>;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;};</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;<span class="comment">/* --- error codes --------------------------------------------------------- */</span></div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;</div><div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="mspack_8h.html#a30476cfa36ddee80950e715591cf8832"> 485</a></span>&#160;<span class="preprocessor">#define MSPACK_ERR_OK (0)</span></div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</div><div class="line"><a name="l00487"></a><span class="lineno"><a class="line" href="mspack_8h.html#aa55388352a27b45993bc8f1399218a75"> 487</a></span>&#160;<span class="preprocessor">#define MSPACK_ERR_ARGS (1)</span></div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div><div class="line"><a name="l00489"></a><span class="lineno"><a class="line" href="mspack_8h.html#a55cd1d9f2831f4568dc78a712548ae2d"> 489</a></span>&#160;<span class="preprocessor">#define MSPACK_ERR_OPEN (2)</span></div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;</div><div class="line"><a name="l00491"></a><span class="lineno"><a class="line" href="mspack_8h.html#ae3340b3e95a75e8a5b260fe27fdcfc80"> 491</a></span>&#160;<span class="preprocessor">#define MSPACK_ERR_READ (3)</span></div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;</div><div class="line"><a name="l00493"></a><span class="lineno"><a class="line" href="mspack_8h.html#a6c492a68e998d1b01247b76e2a87d9e4"> 493</a></span>&#160;<span class="preprocessor">#define MSPACK_ERR_WRITE (4)</span></div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;</div><div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="mspack_8h.html#a0ac9fe1b978784c7cadb221845bb8fb9"> 495</a></span>&#160;<span class="preprocessor">#define MSPACK_ERR_SEEK (5)</span></div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div><div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="mspack_8h.html#af875f31a569da5be5402ad63d07bf63f"> 497</a></span>&#160;<span class="preprocessor">#define MSPACK_ERR_NOMEMORY (6)</span></div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div><div class="line"><a name="l00499"></a><span class="lineno"><a class="line" href="mspack_8h.html#a95c571fa9e656de9f0a2976e5715706e"> 499</a></span>&#160;<span class="preprocessor">#define MSPACK_ERR_SIGNATURE (7)</span></div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;</div><div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="mspack_8h.html#ab8d3d7e4d3000333be6e500874bcee98"> 501</a></span>&#160;<span class="preprocessor">#define MSPACK_ERR_DATAFORMAT (8)</span></div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div><div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="mspack_8h.html#a94655174946aa06763341837d5fe8720"> 503</a></span>&#160;<span class="preprocessor">#define MSPACK_ERR_CHECKSUM (9)</span></div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;</div><div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="mspack_8h.html#a2d92886c9c02dd2ba2aa45fc36f8a477"> 505</a></span>&#160;<span class="preprocessor">#define MSPACK_ERR_CRUNCH (10)</span></div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;</div><div class="line"><a name="l00507"></a><span class="lineno"><a class="line" href="mspack_8h.html#ad2de97b7f91325169ca1646d123b1509"> 507</a></span>&#160;<span class="preprocessor">#define MSPACK_ERR_DECRUNCH (11)</span></div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="comment">/* --- functions available in library -------------------------------------- */</span></div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;<span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structmscab__compressor.html">mscab_compressor</a> *</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <a class="code" href="mspack_8h.html#aa11b092e00e6d4862d134a05b97b9c09">mspack_create_cab_compressor</a>(<span class="keyword">struct</span> <a class="code" href="structmspack__system.html">mspack_system</a> *sys);</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;<span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structmscab__decompressor.html">mscab_decompressor</a> *</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <a class="code" href="mspack_8h.html#a9964981ec0e6f49814301101e1708f95">mspack_create_cab_decompressor</a>(<span class="keyword">struct</span> <a class="code" href="structmspack__system.html">mspack_system</a> *sys);</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="mspack_8h.html#a23263871d8dc8d64830e8ff827d6e32d">mspack_destroy_cab_compressor</a>(<span class="keyword">struct</span> <a class="code" href="structmscab__compressor.html">mscab_compressor</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="mspack_8h.html#a13e9100ea34b16693cacb92b212ccadc">mspack_destroy_cab_decompressor</a>(<span class="keyword">struct</span> <a class="code" href="structmscab__decompressor.html">mscab_decompressor</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;<span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structmschm__compressor.html">mschm_compressor</a> *</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <a class="code" href="mspack_8h.html#a749d6b350987be706728e020e875b13f">mspack_create_chm_compressor</a>(<span class="keyword">struct</span> <a class="code" href="structmspack__system.html">mspack_system</a> *sys);</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;<span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structmschm__decompressor.html">mschm_decompressor</a> *</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <a class="code" href="mspack_8h.html#a5829a2023927ad4dc8bd452f3b294851">mspack_create_chm_decompressor</a>(<span class="keyword">struct</span> <a class="code" href="structmspack__system.html">mspack_system</a> *sys);</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="mspack_8h.html#a05c47f6572f3966d9495810332356b94">mspack_destroy_chm_compressor</a>(<span class="keyword">struct</span> <a class="code" href="structmschm__compressor.html">mschm_compressor</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="mspack_8h.html#a50c0799f5c1a128672c024a05c79cac8">mspack_destroy_chm_decompressor</a>(<span class="keyword">struct</span> <a class="code" href="structmschm__decompressor.html">mschm_decompressor</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;<span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structmslit__compressor.html">mslit_compressor</a> *</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <a class="code" href="mspack_8h.html#a9478967ec3cf95b0a312272d6e78afbe">mspack_create_lit_compressor</a>(<span class="keyword">struct</span> <a class="code" href="structmspack__system.html">mspack_system</a> *sys);</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;<span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structmslit__decompressor.html">mslit_decompressor</a> *</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <a class="code" href="mspack_8h.html#a019e19331c50d80a4d424395671219f2">mspack_create_lit_decompressor</a>(<span class="keyword">struct</span> <a class="code" href="structmspack__system.html">mspack_system</a> *sys);</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="mspack_8h.html#aba0e2b76f4998e914cc96db475e8b598">mspack_destroy_lit_compressor</a>(<span class="keyword">struct</span> <a class="code" href="structmslit__compressor.html">mslit_compressor</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="mspack_8h.html#a51fdfc5b9786dc914ec083510b11fe9f">mspack_destroy_lit_decompressor</a>(<span class="keyword">struct</span> <a class="code" href="structmslit__decompressor.html">mslit_decompressor</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;<span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structmshlp__compressor.html">mshlp_compressor</a> *</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <a class="code" href="mspack_8h.html#a9587b6c3bf2907d496a0c438c7904463">mspack_create_hlp_compressor</a>(<span class="keyword">struct</span> <a class="code" href="structmspack__system.html">mspack_system</a> *sys);</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structmshlp__decompressor.html">mshlp_decompressor</a> *</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <a class="code" href="mspack_8h.html#a0bd8ff2ddc155f3bf5ee4f47fdde7f4a">mspack_create_hlp_decompressor</a>(<span class="keyword">struct</span> <a class="code" href="structmspack__system.html">mspack_system</a> *sys);</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="mspack_8h.html#a5d7d5d89c674847821bb7f270be828c8">mspack_destroy_hlp_compressor</a>(<span class="keyword">struct</span> <a class="code" href="structmshlp__compressor.html">mshlp_compressor</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="mspack_8h.html#a1e2dbd38bdcc255d63c43bbad2f7786f">mspack_destroy_hlp_decompressor</a>(<span class="keyword">struct</span> <a class="code" href="structmshlp__decompressor.html">mshlp_decompressor</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;<span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structmsszdd__compressor.html">msszdd_compressor</a> *</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <a class="code" href="mspack_8h.html#a00c23794eac4dab60057cc5b84c2a7ea">mspack_create_szdd_compressor</a>(<span class="keyword">struct</span> <a class="code" href="structmspack__system.html">mspack_system</a> *sys);</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;<span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structmsszdd__decompressor.html">msszdd_decompressor</a> *</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <a class="code" href="mspack_8h.html#a81ec853a5fcfad25acdfab6bee1cd3cc">mspack_create_szdd_decompressor</a>(<span class="keyword">struct</span> <a class="code" href="structmspack__system.html">mspack_system</a> *sys);</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="mspack_8h.html#a4053f06c244cab5e880241ecd0a8a64f">mspack_destroy_szdd_compressor</a>(<span class="keyword">struct</span> <a class="code" href="structmsszdd__compressor.html">msszdd_compressor</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="mspack_8h.html#aaf070981f5d3a3a6bb430070cc2b3e73">mspack_destroy_szdd_decompressor</a>(<span class="keyword">struct</span> <a class="code" href="structmsszdd__decompressor.html">msszdd_decompressor</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structmskwaj__compressor.html">mskwaj_compressor</a> *</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <a class="code" href="mspack_8h.html#aa214297f2f85b56b2a556bf560dba9d2">mspack_create_kwaj_compressor</a>(<span class="keyword">struct</span> <a class="code" href="structmspack__system.html">mspack_system</a> *sys);</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;<span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structmskwaj__decompressor.html">mskwaj_decompressor</a> *</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <a class="code" href="mspack_8h.html#abeb6430c01e352502c8c5d4f285a2d97">mspack_create_kwaj_decompressor</a>(<span class="keyword">struct</span> <a class="code" href="structmspack__system.html">mspack_system</a> *sys);</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="mspack_8h.html#aca7c302fbca1abd91c6d00df191e221c">mspack_destroy_kwaj_compressor</a>(<span class="keyword">struct</span> <a class="code" href="structmskwaj__compressor.html">mskwaj_compressor</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="mspack_8h.html#ae1d6e6754279bad79e73af8fab761f50">mspack_destroy_kwaj_decompressor</a>(<span class="keyword">struct</span> <a class="code" href="structmskwaj__decompressor.html">mskwaj_decompressor</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;<span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structmsoab__compressor.html">msoab_compressor</a> *</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <a class="code" href="mspack_8h.html#a9b371f1ecbb8423ffe509e3a023ba962">mspack_create_oab_compressor</a>(<span class="keyword">struct</span> <a class="code" href="structmspack__system.html">mspack_system</a> *sys);</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;<span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structmsoab__decompressor.html">msoab_decompressor</a> *</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <a class="code" href="mspack_8h.html#a211700fd8b678d0d529f1cd40ce99e01">mspack_create_oab_decompressor</a>(<span class="keyword">struct</span> <a class="code" href="structmspack__system.html">mspack_system</a> *sys);</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="mspack_8h.html#af4a43cbea4701b86cf5c0363b46b7c71">mspack_destroy_oab_compressor</a>(<span class="keyword">struct</span> <a class="code" href="structmsoab__compressor.html">msoab_compressor</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="mspack_8h.html#a9a0e8aca53554d477705d81569968ca1">mspack_destroy_oab_decompressor</a>(<span class="keyword">struct</span> <a class="code" href="structmsoab__decompressor.html">msoab_decompressor</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;<span class="comment">/* --- support for .CAB (MS Cabinet) file format --------------------------- */</span></div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;</div><div class="line"><a name="l00699"></a><span class="lineno"><a class="line" href="structmscabd__cabinet.html"> 699</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmscabd__cabinet.html">mscabd_cabinet</a> {</div><div class="line"><a name="l00705"></a><span class="lineno"><a class="line" href="structmscabd__cabinet.html#a94d02cd4adb598945f544d77362d1658"> 705</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmscabd__cabinet.html">mscabd_cabinet</a> *<a class="code" href="structmscabd__cabinet.html#a94d02cd4adb598945f544d77362d1658">next</a>;</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;</div><div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="structmscabd__cabinet.html#a8e37f9e7834660a3b752e7c0f9a0da06"> 712</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structmscabd__cabinet.html#a8e37f9e7834660a3b752e7c0f9a0da06">filename</a>;</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; </div><div class="line"><a name="l00715"></a><span class="lineno"><a class="line" href="structmscabd__cabinet.html#ac0afbad793dbd0e21802bb2dafbcc0f1"> 715</a></span>&#160; off_t <a class="code" href="structmscabd__cabinet.html#ac0afbad793dbd0e21802bb2dafbcc0f1">base_offset</a>;</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;</div><div class="line"><a name="l00718"></a><span class="lineno"><a class="line" href="structmscabd__cabinet.html#a8714457bd807fe92e42fe2dcaf664796"> 718</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmscabd__cabinet.html#a8714457bd807fe92e42fe2dcaf664796">length</a>;</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;</div><div class="line"><a name="l00721"></a><span class="lineno"><a class="line" href="structmscabd__cabinet.html#ad915066d3781892754b6cfd87b08d378"> 721</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmscabd__cabinet.html">mscabd_cabinet</a> *<a class="code" href="structmscabd__cabinet.html#ad915066d3781892754b6cfd87b08d378">prevcab</a>;</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;</div><div class="line"><a name="l00724"></a><span class="lineno"><a class="line" href="structmscabd__cabinet.html#ae3ab25aa910ea50dca515659848ab5dc"> 724</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmscabd__cabinet.html">mscabd_cabinet</a> *<a class="code" href="structmscabd__cabinet.html#ae3ab25aa910ea50dca515659848ab5dc">nextcab</a>;</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;</div><div class="line"><a name="l00727"></a><span class="lineno"><a class="line" href="structmscabd__cabinet.html#a1f595a7655daa62ba709ecf40a0cb13c"> 727</a></span>&#160; <span class="keywordtype">char</span> *<a class="code" href="structmscabd__cabinet.html#a1f595a7655daa62ba709ecf40a0cb13c">prevname</a>;</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;</div><div class="line"><a name="l00730"></a><span class="lineno"><a class="line" href="structmscabd__cabinet.html#abe1b8a6ccc9eeeebf2a454bfbe2d4a1a"> 730</a></span>&#160; <span class="keywordtype">char</span> *<a class="code" href="structmscabd__cabinet.html#abe1b8a6ccc9eeeebf2a454bfbe2d4a1a">nextname</a>;</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;</div><div class="line"><a name="l00735"></a><span class="lineno"><a class="line" href="structmscabd__cabinet.html#ae66366dd077ee68f5207c7a93f1ed5b1"> 735</a></span>&#160; <span class="keywordtype">char</span> *<a class="code" href="structmscabd__cabinet.html#ae66366dd077ee68f5207c7a93f1ed5b1">previnfo</a>;</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;</div><div class="line"><a name="l00740"></a><span class="lineno"><a class="line" href="structmscabd__cabinet.html#ae541d57dba76b07e1badb4ad4a6f68bc"> 740</a></span>&#160; <span class="keywordtype">char</span> *<a class="code" href="structmscabd__cabinet.html#ae541d57dba76b07e1badb4ad4a6f68bc">nextinfo</a>;</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;</div><div class="line"><a name="l00743"></a><span class="lineno"><a class="line" href="structmscabd__cabinet.html#ac5cbac5940c3ebe068201bda234a7428"> 743</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmscabd__file.html">mscabd_file</a> *<a class="code" href="structmscabd__cabinet.html#ac5cbac5940c3ebe068201bda234a7428">files</a>;</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;</div><div class="line"><a name="l00746"></a><span class="lineno"><a class="line" href="structmscabd__cabinet.html#a40c125ef3821bb1b85baee532c9154ac"> 746</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmscabd__folder.html">mscabd_folder</a> *<a class="code" href="structmscabd__cabinet.html#a40c125ef3821bb1b85baee532c9154ac">folders</a>;</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;</div><div class="line"><a name="l00752"></a><span class="lineno"><a class="line" href="structmscabd__cabinet.html#a1ec19746e85dd1ede4a6568db68ae044"> 752</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="structmscabd__cabinet.html#a1ec19746e85dd1ede4a6568db68ae044">set_id</a>;</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;</div><div class="line"><a name="l00759"></a><span class="lineno"><a class="line" href="structmscabd__cabinet.html#a28b565bad65980597c4db3e7d91f1be2"> 759</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="structmscabd__cabinet.html#a28b565bad65980597c4db3e7d91f1be2">set_index</a>;</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;</div><div class="line"><a name="l00771"></a><span class="lineno"><a class="line" href="structmscabd__cabinet.html#a668bc2203adb0d6ac101eef1e53149d9"> 771</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="structmscabd__cabinet.html#a668bc2203adb0d6ac101eef1e53149d9">header_resv</a>;</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;</div><div class="line"><a name="l00784"></a><span class="lineno"><a class="line" href="structmscabd__cabinet.html#a6c5b8d1773e14b12c70d64d5b8867b01"> 784</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structmscabd__cabinet.html#a6c5b8d1773e14b12c70d64d5b8867b01">flags</a>;</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;};</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;</div><div class="line"><a name="l00788"></a><span class="lineno"><a class="line" href="mspack_8h.html#af5436d0bc295bfafe7c0f6698ac66253"> 788</a></span>&#160;<span class="preprocessor">#define MSCAB_HDR_RESV_OFFSET (0x28)</span></div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;</div><div class="line"><a name="l00791"></a><span class="lineno"><a class="line" href="mspack_8h.html#a81b3a9ace98ff7cad4e1775b5dff926d"> 791</a></span>&#160;<span class="preprocessor">#define MSCAB_HDR_PREVCAB (0x01)</span></div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;</div><div class="line"><a name="l00793"></a><span class="lineno"><a class="line" href="mspack_8h.html#a1f13e60315526e8ea02aed86563e622d"> 793</a></span>&#160;<span class="preprocessor">#define MSCAB_HDR_NEXTCAB (0x02)</span></div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;</div><div class="line"><a name="l00795"></a><span class="lineno"><a class="line" href="mspack_8h.html#a9e843577c73d9caf48f88f4577dc3e44"> 795</a></span>&#160;<span class="preprocessor">#define MSCAB_HDR_RESV (0x04)</span></div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;</div><div class="line"><a name="l00806"></a><span class="lineno"><a class="line" href="structmscabd__folder.html"> 806</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmscabd__folder.html">mscabd_folder</a> {</div><div class="line"><a name="l00811"></a><span class="lineno"><a class="line" href="structmscabd__folder.html#a6256ca9a2ee93dbbaa2124146cbad18e"> 811</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmscabd__folder.html">mscabd_folder</a> *<a class="code" href="structmscabd__folder.html#a6256ca9a2ee93dbbaa2124146cbad18e">next</a>;</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;</div><div class="line"><a name="l00822"></a><span class="lineno"><a class="line" href="structmscabd__folder.html#aede069b566ca8ae21998da02e81ec6f5"> 822</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structmscabd__folder.html#aede069b566ca8ae21998da02e81ec6f5">comp_type</a>;</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;</div><div class="line"><a name="l00829"></a><span class="lineno"><a class="line" href="structmscabd__folder.html#a784995a5f0632aa994ef1a5c9a24502a"> 829</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmscabd__folder.html#a784995a5f0632aa994ef1a5c9a24502a">num_blocks</a>;</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;};</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;</div><div class="line"><a name="l00839"></a><span class="lineno"><a class="line" href="mspack_8h.html#acb33fa8e4ca83111850aa4e42dc3df66"> 839</a></span>&#160;<span class="preprocessor">#define MSCABD_COMP_METHOD(comp_type) ((comp_type) &amp; 0x0F)</span></div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160;</div><div class="line"><a name="l00847"></a><span class="lineno"><a class="line" href="mspack_8h.html#aa8a723f78208feb998cc6e1247ede8ab"> 847</a></span>&#160;<span class="preprocessor">#define MSCABD_COMP_LEVEL(comp_type) (((comp_type) &gt;&gt; 8) &amp; 0x1F)</span></div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160;</div><div class="line"><a name="l00850"></a><span class="lineno"><a class="line" href="mspack_8h.html#aea2a3bd668e90fa8dee6d09fa92a291e"> 850</a></span>&#160;<span class="preprocessor">#define MSCAB_COMP_NONE (0)</span></div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;</div><div class="line"><a name="l00852"></a><span class="lineno"><a class="line" href="mspack_8h.html#a2f1650e9494e43445dbbd1ab1e68a8d4"> 852</a></span>&#160;<span class="preprocessor">#define MSCAB_COMP_MSZIP (1)</span></div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160;</div><div class="line"><a name="l00854"></a><span class="lineno"><a class="line" href="mspack_8h.html#adb1a28aee8ef97788b49f61d8a6fbf6f"> 854</a></span>&#160;<span class="preprocessor">#define MSCAB_COMP_QUANTUM (2)</span></div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160;</div><div class="line"><a name="l00856"></a><span class="lineno"><a class="line" href="mspack_8h.html#a2f8fa0eba3aab6ab520d1667f4b01278"> 856</a></span>&#160;<span class="preprocessor">#define MSCAB_COMP_LZX (3)</span></div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160;</div><div class="line"><a name="l00863"></a><span class="lineno"><a class="line" href="structmscabd__file.html"> 863</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmscabd__file.html">mscabd_file</a> {</div><div class="line"><a name="l00868"></a><span class="lineno"><a class="line" href="structmscabd__file.html#adc04f6cf28d372d235d141a0fd2de73a"> 868</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmscabd__file.html">mscabd_file</a> *<a class="code" href="structmscabd__file.html#adc04f6cf28d372d235d141a0fd2de73a">next</a>;</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;</div><div class="line"><a name="l00878"></a><span class="lineno"><a class="line" href="structmscabd__file.html#a181b45655523f55ed114b51249d305f8"> 878</a></span>&#160; <span class="keywordtype">char</span> *<a class="code" href="structmscabd__file.html#a181b45655523f55ed114b51249d305f8">filename</a>;</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160;</div><div class="line"><a name="l00881"></a><span class="lineno"><a class="line" href="structmscabd__file.html#a251c5d90bd1cf85114987f6da0070714"> 881</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmscabd__file.html#a251c5d90bd1cf85114987f6da0070714">length</a>;</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160;</div><div class="line"><a name="l00895"></a><span class="lineno"><a class="line" href="structmscabd__file.html#a77eb02b23393f5463e9e445f87bbfa9d"> 895</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structmscabd__file.html#a77eb02b23393f5463e9e445f87bbfa9d">attribs</a>;</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160;</div><div class="line"><a name="l00898"></a><span class="lineno"><a class="line" href="structmscabd__file.html#ab73696396840d7ed60dc2d376461e036"> 898</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="structmscabd__file.html#ab73696396840d7ed60dc2d376461e036">time_h</a>;</div><div class="line"><a name="l00900"></a><span class="lineno"><a class="line" href="structmscabd__file.html#a703b6af6638b34ff9905de6ca13a77df"> 900</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="structmscabd__file.html#a703b6af6638b34ff9905de6ca13a77df">time_m</a>;</div><div class="line"><a name="l00902"></a><span class="lineno"><a class="line" href="structmscabd__file.html#ad05e4a3fc108988cabbc918a53afd25a"> 902</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="structmscabd__file.html#ad05e4a3fc108988cabbc918a53afd25a">time_s</a>;</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160;</div><div class="line"><a name="l00905"></a><span class="lineno"><a class="line" href="structmscabd__file.html#aa7a6b5c44ad11982018afdb571608ffe"> 905</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="structmscabd__file.html#aa7a6b5c44ad11982018afdb571608ffe">date_d</a>;</div><div class="line"><a name="l00907"></a><span class="lineno"><a class="line" href="structmscabd__file.html#afd4e4b89ac6ca11a08f45a1582de024b"> 907</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="structmscabd__file.html#afd4e4b89ac6ca11a08f45a1582de024b">date_m</a>;</div><div class="line"><a name="l00909"></a><span class="lineno"><a class="line" href="structmscabd__file.html#ac76a68d9aa60c907a0d8c997c070dd2a"> 909</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structmscabd__file.html#ac76a68d9aa60c907a0d8c997c070dd2a">date_y</a>;</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160;</div><div class="line"><a name="l00912"></a><span class="lineno"><a class="line" href="structmscabd__file.html#a54846aab5d491cabedabe8ba11033ddb"> 912</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmscabd__folder.html">mscabd_folder</a> *<a class="code" href="structmscabd__file.html#a54846aab5d491cabedabe8ba11033ddb">folder</a>;</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160;</div><div class="line"><a name="l00915"></a><span class="lineno"><a class="line" href="structmscabd__file.html#ab71150ec878f202f8e4d8fab763c21e8"> 915</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmscabd__file.html#ab71150ec878f202f8e4d8fab763c21e8">offset</a>;</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160;};</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160;</div><div class="line"><a name="l00919"></a><span class="lineno"><a class="line" href="mspack_8h.html#aafd9a6de3c6f221cf92de71c0dfd0a93"> 919</a></span>&#160;<span class="preprocessor">#define MSCAB_ATTRIB_RDONLY (0x01)</span></div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160;</div><div class="line"><a name="l00921"></a><span class="lineno"><a class="line" href="mspack_8h.html#a0b83bb08ddc82d7fab46ae0531492063"> 921</a></span>&#160;<span class="preprocessor">#define MSCAB_ATTRIB_HIDDEN (0x02)</span></div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160;</div><div class="line"><a name="l00923"></a><span class="lineno"><a class="line" href="mspack_8h.html#afc5628ada27b9c183eff006d79f907b7"> 923</a></span>&#160;<span class="preprocessor">#define MSCAB_ATTRIB_SYSTEM (0x04)</span></div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160;</div><div class="line"><a name="l00925"></a><span class="lineno"><a class="line" href="mspack_8h.html#a51c521a8611963e5862d956f2dea5e35"> 925</a></span>&#160;<span class="preprocessor">#define MSCAB_ATTRIB_ARCH (0x20)</span></div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160;</div><div class="line"><a name="l00927"></a><span class="lineno"><a class="line" href="mspack_8h.html#a18ca3c974e5efc2e9f2f69bc8f758d0a"> 927</a></span>&#160;<span class="preprocessor">#define MSCAB_ATTRIB_EXEC (0x40)</span></div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160;</div><div class="line"><a name="l00929"></a><span class="lineno"><a class="line" href="mspack_8h.html#a2dd2069255f1c8fc9d25005d3ca22944"> 929</a></span>&#160;<span class="preprocessor">#define MSCAB_ATTRIB_UTF_NAME (0x80)</span></div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160;</div><div class="line"><a name="l00932"></a><span class="lineno"><a class="line" href="mspack_8h.html#a3888f5036eae320e691f5de290293a9f"> 932</a></span>&#160;<span class="preprocessor">#define MSCABD_PARAM_SEARCHBUF (0)</span></div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160;</div><div class="line"><a name="l00934"></a><span class="lineno"><a class="line" href="mspack_8h.html#a852a791d880d602989063128d4ce33d1"> 934</a></span>&#160;<span class="preprocessor">#define MSCABD_PARAM_FIXMSZIP (1)</span></div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160;</div><div class="line"><a name="l00936"></a><span class="lineno"><a class="line" href="mspack_8h.html#a197cc07b45645f807bd400ed576b2968"> 936</a></span>&#160;<span class="preprocessor">#define MSCABD_PARAM_DECOMPBUF (2)</span></div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160;</div><div class="line"><a name="l00943"></a><span class="lineno"><a class="line" href="mspack_8h.html#aa7e688cd79c7351a119672c3453fc884"> 943</a></span>&#160;<span class="preprocessor">#define MSCABD_PARAM_SALVAGE (3)</span></div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160;</div><div class="line"><a name="l00946"></a><span class="lineno"><a class="line" href="structmscab__compressor.html"> 946</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmscab__compressor.html">mscab_compressor</a> {</div><div class="line"><a name="l00947"></a><span class="lineno"><a class="line" href="structmscab__compressor.html#a7ee33e593f24d9ef35a78cc3d304a769"> 947</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structmscab__compressor.html#a7ee33e593f24d9ef35a78cc3d304a769">dummy</a>; </div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;};</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160;</div><div class="line"><a name="l00957"></a><span class="lineno"><a class="line" href="structmscab__decompressor.html"> 957</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmscab__decompressor.html">mscab_decompressor</a> {</div><div class="line"><a name="l00978"></a><span class="lineno"><a class="line" href="structmscab__decompressor.html#a37076a6eb7f46c66c3b180825b118d49"> 978</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmscabd__cabinet.html">mscabd_cabinet</a> * (*open) (<span class="keyword">struct </span><a class="code" href="structmscab__decompressor.html">mscab_decompressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *filename);</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;</div><div class="line"><a name="l01010"></a><span class="lineno"><a class="line" href="structmscab__decompressor.html#a50a79860e92ef580afe654fbe16f6758"> 1010</a></span>&#160; void (*<a class="code" href="structmspack__system.html#a86073da10c2b30b1ff75dd0d82a3ba8d">close</a>)(<span class="keyword">struct </span><a class="code" href="structmscab__decompressor.html">mscab_decompressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; <span class="keyword">struct </span><a class="code" href="structmscabd__cabinet.html">mscabd_cabinet</a> *cab);</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;</div><div class="line"><a name="l01047"></a><span class="lineno"><a class="line" href="structmscab__decompressor.html#a6eb77aa755605284b72c6ee89045ad74"> 1047</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmscabd__cabinet.html">mscabd_cabinet</a> * (*search) (<span class="keyword">struct </span><a class="code" href="structmscab__decompressor.html">mscab_decompressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *filename);</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;</div><div class="line"><a name="l01090"></a><span class="lineno"><a class="line" href="structmscab__decompressor.html#a3efd89b8cc66689ba56b87dbce36eb63"> 1090</a></span>&#160; int (*<a class="code" href="structmscab__decompressor.html#a3efd89b8cc66689ba56b87dbce36eb63">append</a>) (<span class="keyword">struct </span><a class="code" href="structmscab__decompressor.html">mscab_decompressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; <span class="keyword">struct </span><a class="code" href="structmscabd__cabinet.html">mscabd_cabinet</a> *cab,</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; <span class="keyword">struct </span><a class="code" href="structmscabd__cabinet.html">mscabd_cabinet</a> *<a class="code" href="structmscabd__cabinet.html#ae3ab25aa910ea50dca515659848ab5dc">nextcab</a>);</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;</div><div class="line"><a name="l01112"></a><span class="lineno"><a class="line" href="structmscab__decompressor.html#a3e93022538b4c27ebafb7ad969786a67"> 1112</a></span>&#160; int (*prepend) (<span class="keyword">struct </span><a class="code" href="structmscab__decompressor.html">mscab_decompressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; <span class="keyword">struct </span><a class="code" href="structmscabd__cabinet.html">mscabd_cabinet</a> *cab,</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; <span class="keyword">struct </span><a class="code" href="structmscabd__cabinet.html">mscabd_cabinet</a> *<a class="code" href="structmscabd__cabinet.html#ad915066d3781892754b6cfd87b08d378">prevcab</a>);</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;</div><div class="line"><a name="l01138"></a><span class="lineno"><a class="line" href="structmscab__decompressor.html#a0bb7f921f3972c7e679c693fafd4ac11"> 1138</a></span>&#160; int (*extract)(<span class="keyword">struct </span><a class="code" href="structmscab__decompressor.html">mscab_decompressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; <span class="keyword">struct </span><a class="code" href="structmscabd__file.html">mscabd_file</a> *file,</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structmscabd__file.html#a181b45655523f55ed114b51249d305f8">filename</a>);</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;</div><div class="line"><a name="l01164"></a><span class="lineno"><a class="line" href="structmscab__decompressor.html#a4a3d1afa0318084a7d1b90b9a61674fd"> 1164</a></span>&#160; int (*set_param)(<span class="keyword">struct </span><a class="code" href="structmscab__decompressor.html">mscab_decompressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; <span class="keywordtype">int</span> param,</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; <span class="keywordtype">int</span> value);</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;</div><div class="line"><a name="l01179"></a><span class="lineno"><a class="line" href="structmscab__decompressor.html#a52ce4ec6de535a4cee0432ce897124ca"> 1179</a></span>&#160; int (*<a class="code" href="structmscab__decompressor.html#a52ce4ec6de535a4cee0432ce897124ca">last_error</a>)(<span class="keyword">struct </span><a class="code" href="structmscab__decompressor.html">mscab_decompressor</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;};</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;<span class="comment">/* --- support for .CHM (HTMLHelp) file format ----------------------------- */</span></div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;</div><div class="line"><a name="l01192"></a><span class="lineno"><a class="line" href="structmschmc__file.html"> 1192</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmschmc__file.html">mschmc_file</a> {</div><div class="line"><a name="l01194"></a><span class="lineno"><a class="line" href="structmschmc__file.html#a11c5bd77b0142d3c3a94c5a24126e030"> 1194</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structmschmc__file.html#a11c5bd77b0142d3c3a94c5a24126e030">section</a>;</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;</div><div class="line"><a name="l01198"></a><span class="lineno"><a class="line" href="structmschmc__file.html#a60dcb986ab210e9f9674daaa813c6ca6"> 1198</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structmschmc__file.html#a60dcb986ab210e9f9674daaa813c6ca6">filename</a>;</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;</div><div class="line"><a name="l01202"></a><span class="lineno"><a class="line" href="structmschmc__file.html#ab2979483302579db0111fe5cff3d4eb5"> 1202</a></span>&#160; <span class="keywordtype">char</span> *<a class="code" href="structmschmc__file.html#ab2979483302579db0111fe5cff3d4eb5">chm_filename</a>;</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;</div><div class="line"><a name="l01207"></a><span class="lineno"><a class="line" href="structmschmc__file.html#aee5c029845e1ce6112c8d050d9b23fda"> 1207</a></span>&#160; off_t <a class="code" href="structmschmc__file.html#aee5c029845e1ce6112c8d050d9b23fda">length</a>;</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;};</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;</div><div class="line"><a name="l01218"></a><span class="lineno"><a class="line" href="structmschmd__section.html"> 1218</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmschmd__section.html">mschmd_section</a> {</div><div class="line"><a name="l01220"></a><span class="lineno"><a class="line" href="structmschmd__section.html#af1291ed269c7387b416e9ade36875621"> 1220</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmschmd__header.html">mschmd_header</a> *<a class="code" href="structmschmd__section.html#af1291ed269c7387b416e9ade36875621">chm</a>;</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;</div><div class="line"><a name="l01227"></a><span class="lineno"><a class="line" href="structmschmd__section.html#a68d357e2150602c47a9cd5c4b5ce0465"> 1227</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmschmd__section.html#a68d357e2150602c47a9cd5c4b5ce0465">id</a>;</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;};</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;</div><div class="line"><a name="l01235"></a><span class="lineno"><a class="line" href="structmschmd__sec__uncompressed.html"> 1235</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmschmd__sec__uncompressed.html">mschmd_sec_uncompressed</a> {</div><div class="line"><a name="l01237"></a><span class="lineno"><a class="line" href="structmschmd__sec__uncompressed.html#adc27f4dcbfa0d906da01020c71759d4b"> 1237</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmschmd__section.html">mschmd_section</a> base;</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;</div><div class="line"><a name="l01240"></a><span class="lineno"><a class="line" href="structmschmd__sec__uncompressed.html#af8b34d247b2e197f5d835f8eed564e64"> 1240</a></span>&#160; off_t <a class="code" href="structmschmd__sec__uncompressed.html#af8b34d247b2e197f5d835f8eed564e64">offset</a>;</div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;};</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;</div><div class="line"><a name="l01248"></a><span class="lineno"><a class="line" href="structmschmd__sec__mscompressed.html"> 1248</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmschmd__sec__mscompressed.html">mschmd_sec_mscompressed</a> {</div><div class="line"><a name="l01250"></a><span class="lineno"><a class="line" href="structmschmd__sec__mscompressed.html#a875b322e139225194ec6d0f9e1762e32"> 1250</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmschmd__section.html">mschmd_section</a> base;</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;</div><div class="line"><a name="l01253"></a><span class="lineno"><a class="line" href="structmschmd__sec__mscompressed.html#aab9eb91f43471abcdbcb075c8264a787"> 1253</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmschmd__file.html">mschmd_file</a> *<a class="code" href="structmschmd__sec__mscompressed.html#aab9eb91f43471abcdbcb075c8264a787">content</a>;</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;</div><div class="line"><a name="l01256"></a><span class="lineno"><a class="line" href="structmschmd__sec__mscompressed.html#a5d5406ee96c11e096301bdbae930c744"> 1256</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmschmd__file.html">mschmd_file</a> *<a class="code" href="structmschmd__sec__mscompressed.html#a5d5406ee96c11e096301bdbae930c744">control</a>;</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;</div><div class="line"><a name="l01259"></a><span class="lineno"><a class="line" href="structmschmd__sec__mscompressed.html#ab00872a655bd36de99d3c960458c3bc3"> 1259</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmschmd__file.html">mschmd_file</a> *<a class="code" href="structmschmd__sec__mscompressed.html#ab00872a655bd36de99d3c960458c3bc3">rtable</a>;</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;</div><div class="line"><a name="l01264"></a><span class="lineno"><a class="line" href="structmschmd__sec__mscompressed.html#afd6f3b28b37e10704d8584d9b4c093f1"> 1264</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmschmd__file.html">mschmd_file</a> *<a class="code" href="structmschmd__sec__mscompressed.html#afd6f3b28b37e10704d8584d9b4c093f1">spaninfo</a>;</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;};</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;</div><div class="line"><a name="l01272"></a><span class="lineno"><a class="line" href="structmschmd__header.html"> 1272</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmschmd__header.html">mschmd_header</a> {</div><div class="line"><a name="l01274"></a><span class="lineno"><a class="line" href="structmschmd__header.html#a273b8a0f48ba7d9c3ffb01426585925c"> 1274</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmschmd__header.html#a273b8a0f48ba7d9c3ffb01426585925c">version</a>;</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;</div><div class="line"><a name="l01283"></a><span class="lineno"><a class="line" href="structmschmd__header.html#ab844b2365051d8c99ce41ae0a0f4c106"> 1283</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmschmd__header.html#ab844b2365051d8c99ce41ae0a0f4c106">timestamp</a>;</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; </div><div class="line"><a name="l01289"></a><span class="lineno"><a class="line" href="structmschmd__header.html#abc4bb0ece1933982ebc18263cbc18166"> 1289</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmschmd__header.html#abc4bb0ece1933982ebc18263cbc18166">language</a>;</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;</div><div class="line"><a name="l01295"></a><span class="lineno"><a class="line" href="structmschmd__header.html#a278de93cf1e7de82ab32189ce190dd46"> 1295</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structmschmd__header.html#a278de93cf1e7de82ab32189ce190dd46">filename</a>;</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;</div><div class="line"><a name="l01298"></a><span class="lineno"><a class="line" href="structmschmd__header.html#a33ec169354d6d373667847435c566a12"> 1298</a></span>&#160; off_t <a class="code" href="structmschmd__header.html#a33ec169354d6d373667847435c566a12">length</a>;</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;</div><div class="line"><a name="l01301"></a><span class="lineno"><a class="line" href="structmschmd__header.html#aecdd3b5e84606785e9620a70e8f0d0ed"> 1301</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmschmd__file.html">mschmd_file</a> *<a class="code" href="structmschmd__header.html#aecdd3b5e84606785e9620a70e8f0d0ed">files</a>;</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;</div><div class="line"><a name="l01309"></a><span class="lineno"><a class="line" href="structmschmd__header.html#ac38b56f77e2a44d998e57ba9301e39d5"> 1309</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmschmd__file.html">mschmd_file</a> *<a class="code" href="structmschmd__header.html#ac38b56f77e2a44d998e57ba9301e39d5">sysfiles</a>;</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;</div><div class="line"><a name="l01312"></a><span class="lineno"><a class="line" href="structmschmd__header.html#aec45cc37c1baeb665336fc93265ca027"> 1312</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmschmd__sec__uncompressed.html">mschmd_sec_uncompressed</a> sec0;</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;</div><div class="line"><a name="l01315"></a><span class="lineno"><a class="line" href="structmschmd__header.html#ace16a8ee32fb28f8c4c1ec85a8bbb5e6"> 1315</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmschmd__sec__mscompressed.html">mschmd_sec_mscompressed</a> sec1;</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;</div><div class="line"><a name="l01318"></a><span class="lineno"><a class="line" href="structmschmd__header.html#a01db28807e9a802d2bb876a44a9dd588"> 1318</a></span>&#160; off_t <a class="code" href="structmschmd__header.html#a01db28807e9a802d2bb876a44a9dd588">dir_offset</a>;</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;</div><div class="line"><a name="l01321"></a><span class="lineno"><a class="line" href="structmschmd__header.html#ae68d7261646d8ab18f1191a47d4f5161"> 1321</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmschmd__header.html#ae68d7261646d8ab18f1191a47d4f5161">num_chunks</a>;</div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;</div><div class="line"><a name="l01324"></a><span class="lineno"><a class="line" href="structmschmd__header.html#ad1322c4778bd1690b2a20766c01e5024"> 1324</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmschmd__header.html#ad1322c4778bd1690b2a20766c01e5024">chunk_size</a>;</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;</div><div class="line"><a name="l01327"></a><span class="lineno"><a class="line" href="structmschmd__header.html#aec85ac3ed9362995fb8aaf98dc515f03"> 1327</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmschmd__header.html#aec85ac3ed9362995fb8aaf98dc515f03">density</a>;</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;</div><div class="line"><a name="l01337"></a><span class="lineno"><a class="line" href="structmschmd__header.html#a40832bde453ea8dc77a07d51c81813d3"> 1337</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmschmd__header.html#a40832bde453ea8dc77a07d51c81813d3">depth</a>;</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;</div><div class="line"><a name="l01344"></a><span class="lineno"><a class="line" href="structmschmd__header.html#ab53047ee0b1be25b3329d69396f68e9f"> 1344</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmschmd__header.html#ab53047ee0b1be25b3329d69396f68e9f">index_root</a>;</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;</div><div class="line"><a name="l01350"></a><span class="lineno"><a class="line" href="structmschmd__header.html#ab3ce14be6b72650d65644c74d9d430d8"> 1350</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmschmd__header.html#ab3ce14be6b72650d65644c74d9d430d8">first_pmgl</a>;</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160;</div><div class="line"><a name="l01356"></a><span class="lineno"><a class="line" href="structmschmd__header.html#a4931f8fa07c04da9a2fbf30c7e59cbda"> 1356</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structmschmd__header.html#a4931f8fa07c04da9a2fbf30c7e59cbda">last_pmgl</a>;</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;</div><div class="line"><a name="l01362"></a><span class="lineno"><a class="line" href="structmschmd__header.html#a59ebd608e30b578dd5bb4cd9ceaf9bcb"> 1362</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> **<a class="code" href="structmschmd__header.html#a59ebd608e30b578dd5bb4cd9ceaf9bcb">chunk_cache</a>;</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;};</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;</div><div class="line"><a name="l01370"></a><span class="lineno"><a class="line" href="structmschmd__file.html"> 1370</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmschmd__file.html">mschmd_file</a> {</div><div class="line"><a name="l01375"></a><span class="lineno"><a class="line" href="structmschmd__file.html#aacdeb0d33c01266beb36e0b48af09055"> 1375</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmschmd__file.html">mschmd_file</a> *<a class="code" href="structmschmd__file.html#aacdeb0d33c01266beb36e0b48af09055">next</a>;</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;</div><div class="line"><a name="l01381"></a><span class="lineno"><a class="line" href="structmschmd__file.html#ab8c413e3759fae57732a09e7060c1225"> 1381</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmschmd__section.html">mschmd_section</a> *<a class="code" href="structmschmd__file.html#ab8c413e3759fae57732a09e7060c1225">section</a>;</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;</div><div class="line"><a name="l01384"></a><span class="lineno"><a class="line" href="structmschmd__file.html#ad085b530903f47a4d908d04ce0a37499"> 1384</a></span>&#160; off_t <a class="code" href="structmschmd__file.html#ad085b530903f47a4d908d04ce0a37499">offset</a>;</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;</div><div class="line"><a name="l01387"></a><span class="lineno"><a class="line" href="structmschmd__file.html#a95fd0339c2cca86fe152924ac1777521"> 1387</a></span>&#160; off_t <a class="code" href="structmschmd__file.html#a95fd0339c2cca86fe152924ac1777521">length</a>;</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;</div><div class="line"><a name="l01390"></a><span class="lineno"><a class="line" href="structmschmd__file.html#a80b7f519909795b2cfe0cc7baf6d4e30"> 1390</a></span>&#160; <span class="keywordtype">char</span> *<a class="code" href="structmschmd__file.html#a80b7f519909795b2cfe0cc7baf6d4e30">filename</a>;</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;};</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;</div><div class="line"><a name="l01394"></a><span class="lineno"><a class="line" href="mspack_8h.html#a80f996d3fbc7800630b9542d5e4620ec"> 1394</a></span>&#160;<span class="preprocessor">#define MSCHMC_ENDLIST (0)</span></div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;</div><div class="line"><a name="l01396"></a><span class="lineno"><a class="line" href="mspack_8h.html#aa015256b5218d8a85f9be15dac719fa9"> 1396</a></span>&#160;<span class="preprocessor">#define MSCHMC_UNCOMP (1)</span></div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;</div><div class="line"><a name="l01398"></a><span class="lineno"><a class="line" href="mspack_8h.html#aa7b2bc5521ce3004703fd808662017be"> 1398</a></span>&#160;<span class="preprocessor">#define MSCHMC_MSCOMP (2)</span></div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160; </div><div class="line"><a name="l01401"></a><span class="lineno"><a class="line" href="mspack_8h.html#aa33210e31d2272c1c015849281bc8028"> 1401</a></span>&#160;<span class="preprocessor">#define MSCHMC_PARAM_TIMESTAMP (0)</span></div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;</div><div class="line"><a name="l01403"></a><span class="lineno"><a class="line" href="mspack_8h.html#a0ad26bd80adf64598352066814153335"> 1403</a></span>&#160;<span class="preprocessor">#define MSCHMC_PARAM_LANGUAGE (1)</span></div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;</div><div class="line"><a name="l01405"></a><span class="lineno"><a class="line" href="mspack_8h.html#a0ee4a588079a3f6bf65b63ce388c9a45"> 1405</a></span>&#160;<span class="preprocessor">#define MSCHMC_PARAM_LZXWINDOW (2)</span></div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;</div><div class="line"><a name="l01407"></a><span class="lineno"><a class="line" href="mspack_8h.html#ad17047eb4450c7476d29d47fb5f1ce35"> 1407</a></span>&#160;<span class="preprocessor">#define MSCHMC_PARAM_DENSITY (3)</span></div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;</div><div class="line"><a name="l01409"></a><span class="lineno"><a class="line" href="mspack_8h.html#ac6c61f24c4d9ad2a5a9bcdbb8057723a"> 1409</a></span>&#160;<span class="preprocessor">#define MSCHMC_PARAM_INDEX (4)</span></div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;</div><div class="line"><a name="l01418"></a><span class="lineno"><a class="line" href="structmschm__compressor.html"> 1418</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmschm__compressor.html">mschm_compressor</a> {</div><div class="line"><a name="l01450"></a><span class="lineno"><a class="line" href="structmschm__compressor.html#adee7fe634e4745b010bd8f71ad7777b0"> 1450</a></span>&#160; int (*generate)(<span class="keyword">struct </span><a class="code" href="structmschm__compressor.html">mschm_compressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160; <span class="keyword">struct </span><a class="code" href="structmschmc__file.html">mschmc_file</a> file_list[],</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160; const char *output_file);</div><div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160;</div><div class="line"><a name="l01507"></a><span class="lineno"><a class="line" href="structmschm__compressor.html#a53e3b040b50b03786db790f7d7bfddd7"> 1507</a></span>&#160; int (*use_temporary_file)(<span class="keyword">struct </span><a class="code" href="structmschm__compressor.html">mschm_compressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160; <span class="keywordtype">int</span> use_temp_file,</div><div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *temp_file);</div><div class="line"><a name="l01555"></a><span class="lineno"><a class="line" href="structmschm__compressor.html#a2b72f4c7596071a07b0668cb66fac872"> 1555</a></span>&#160; int (*<a class="code" href="structmschm__compressor.html#a2b72f4c7596071a07b0668cb66fac872">set_param</a>)(<span class="keyword">struct </span><a class="code" href="structmschm__compressor.html">mschm_compressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160; <span class="keywordtype">int</span> param,</div><div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160; <span class="keywordtype">int</span> value);</div><div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;</div><div class="line"><a name="l01567"></a><span class="lineno"><a class="line" href="structmschm__compressor.html#ad855497c3aeafa9a2e1631e8d8d03dd9"> 1567</a></span>&#160; int (*<a class="code" href="structmschm__compressor.html#ad855497c3aeafa9a2e1631e8d8d03dd9">last_error</a>)(<span class="keyword">struct </span><a class="code" href="structmschm__compressor.html">mschm_compressor</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;};</div><div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160;</div><div class="line"><a name="l01577"></a><span class="lineno"><a class="line" href="structmschm__decompressor.html"> 1577</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmschm__decompressor.html">mschm_decompressor</a> {</div><div class="line"><a name="l01598"></a><span class="lineno"><a class="line" href="structmschm__decompressor.html#ac43207276b00521cde8014353ae16f34"> 1598</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmschmd__header.html">mschmd_header</a> *(*open)(<span class="keyword">struct </span><a class="code" href="structmschm__decompressor.html">mschm_decompressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *filename);</div><div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;</div><div class="line"><a name="l01618"></a><span class="lineno"><a class="line" href="structmschm__decompressor.html#aa3ead0cd30ee28cbe13ee05210162b5c"> 1618</a></span>&#160; void (*<a class="code" href="structmspack__system.html#a86073da10c2b30b1ff75dd0d82a3ba8d">close</a>)(<span class="keyword">struct </span><a class="code" href="structmschm__decompressor.html">mschm_decompressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160; <span class="keyword">struct </span><a class="code" href="structmschmd__header.html">mschmd_header</a> *chm);</div><div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160;</div><div class="line"><a name="l01639"></a><span class="lineno"><a class="line" href="structmschm__decompressor.html#a9809c5a004f6377d8889af18a7448213"> 1639</a></span>&#160; int (*extract)(<span class="keyword">struct </span><a class="code" href="structmschm__decompressor.html">mschm_decompressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160; <span class="keyword">struct </span><a class="code" href="structmschmd__file.html">mschmd_file</a> *file,</div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structmschmd__file.html#a80b7f519909795b2cfe0cc7baf6d4e30">filename</a>);</div><div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;</div><div class="line"><a name="l01654"></a><span class="lineno"><a class="line" href="structmschm__decompressor.html#ae7c840a5374a0c916daf5c33a884fefa"> 1654</a></span>&#160; int (*last_error)(<span class="keyword">struct </span><a class="code" href="structmschm__decompressor.html">mschm_decompressor</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;</div><div class="line"><a name="l01678"></a><span class="lineno"><a class="line" href="structmschm__decompressor.html#ae7df232ac27eded95850fea2648985f9"> 1678</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmschmd__header.html">mschmd_header</a> *(*fast_open)(<span class="keyword">struct </span><a class="code" href="structmschm__decompressor.html">mschm_decompressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *filename);</div><div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;</div><div class="line"><a name="l01719"></a><span class="lineno"><a class="line" href="structmschm__decompressor.html#a5d80bc6dc6c08ae0ae064e66e73c48f8"> 1719</a></span>&#160; int (*<a class="code" href="structmschm__decompressor.html#a5d80bc6dc6c08ae0ae064e66e73c48f8">fast_find</a>)(<span class="keyword">struct </span><a class="code" href="structmschm__decompressor.html">mschm_decompressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160; <span class="keyword">struct </span><a class="code" href="structmschmd__header.html">mschmd_header</a> *chm,</div><div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structmschmd__header.html#a278de93cf1e7de82ab32189ce190dd46">filename</a>,</div><div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160; <span class="keyword">struct </span><a class="code" href="structmschmd__file.html">mschmd_file</a> *f_ptr,</div><div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160; <span class="keywordtype">int</span> f_size);</div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;};</div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;</div><div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;<span class="comment">/* --- support for .LIT (EBook) file format -------------------------------- */</span></div><div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;</div><div class="line"><a name="l01729"></a><span class="lineno"><a class="line" href="structmslit__compressor.html"> 1729</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmslit__compressor.html">mslit_compressor</a> {</div><div class="line"><a name="l01730"></a><span class="lineno"><a class="line" href="structmslit__compressor.html#a04223946071ea2bc11b0ae297d54c787"> 1730</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structmslit__compressor.html#a04223946071ea2bc11b0ae297d54c787">dummy</a>; </div><div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160;};</div><div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160;</div><div class="line"><a name="l01734"></a><span class="lineno"><a class="line" href="structmslit__decompressor.html"> 1734</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmslit__decompressor.html">mslit_decompressor</a> {</div><div class="line"><a name="l01735"></a><span class="lineno"><a class="line" href="structmslit__decompressor.html#af8297f10d4276bf794a290261ad9f0fe"> 1735</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structmslit__decompressor.html#af8297f10d4276bf794a290261ad9f0fe">dummy</a>; </div><div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160;};</div><div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160;</div><div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;</div><div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160;<span class="comment">/* --- support for .HLP (MS Help) file format ------------------------------ */</span></div><div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;</div><div class="line"><a name="l01742"></a><span class="lineno"><a class="line" href="structmshlp__compressor.html"> 1742</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmshlp__compressor.html">mshlp_compressor</a> {</div><div class="line"><a name="l01743"></a><span class="lineno"><a class="line" href="structmshlp__compressor.html#a74080b8a522b2b793df2bd0cbaedb144"> 1743</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structmshlp__compressor.html#a74080b8a522b2b793df2bd0cbaedb144">dummy</a>; </div><div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160;};</div><div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;</div><div class="line"><a name="l01747"></a><span class="lineno"><a class="line" href="structmshlp__decompressor.html"> 1747</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmshlp__decompressor.html">mshlp_decompressor</a> {</div><div class="line"><a name="l01748"></a><span class="lineno"><a class="line" href="structmshlp__decompressor.html#a13b976323edd534de4e3d9dda435893d"> 1748</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structmshlp__decompressor.html#a13b976323edd534de4e3d9dda435893d">dummy</a>; </div><div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160;};</div><div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;</div><div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;</div><div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;<span class="comment">/* --- support for SZDD file format ---------------------------------------- */</span></div><div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;</div><div class="line"><a name="l01755"></a><span class="lineno"><a class="line" href="mspack_8h.html#aadada238862d04556488c0da24517a30"> 1755</a></span>&#160;<span class="preprocessor">#define MSSZDDC_PARAM_MISSINGCHAR (0)</span></div><div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160;</div><div class="line"><a name="l01758"></a><span class="lineno"><a class="line" href="mspack_8h.html#a100f40cf4f4acfeb5e5226c099ed8bcc"> 1758</a></span>&#160;<span class="preprocessor">#define MSSZDD_FMT_NORMAL (0)</span></div><div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160;</div><div class="line"><a name="l01761"></a><span class="lineno"><a class="line" href="mspack_8h.html#ac39767cd5bb89a70cc3a43c392f7c410"> 1761</a></span>&#160;<span class="preprocessor">#define MSSZDD_FMT_QBASIC (1)</span></div><div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160;</div><div class="line"><a name="l01768"></a><span class="lineno"><a class="line" href="structmsszddd__header.html"> 1768</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmsszddd__header.html">msszddd_header</a> {</div><div class="line"><a name="l01770"></a><span class="lineno"><a class="line" href="structmsszddd__header.html#a8cef0aad40e715b84d1a2206e16634a0"> 1770</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structmsszddd__header.html#a8cef0aad40e715b84d1a2206e16634a0">format</a>;</div><div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160;</div><div class="line"><a name="l01773"></a><span class="lineno"><a class="line" href="structmsszddd__header.html#a294653b0ad896a0fa736457dbe455341"> 1773</a></span>&#160; off_t <a class="code" href="structmsszddd__header.html#a294653b0ad896a0fa736457dbe455341">length</a>;</div><div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160;</div><div class="line"><a name="l01782"></a><span class="lineno"><a class="line" href="structmsszddd__header.html#a9f06c9f3b46051a677cd7ce6c67ee53d"> 1782</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="structmsszddd__header.html#a9f06c9f3b46051a677cd7ce6c67ee53d">missing_char</a>;</div><div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160;};</div><div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160;</div><div class="line"><a name="l01792"></a><span class="lineno"><a class="line" href="structmsszdd__compressor.html"> 1792</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmsszdd__compressor.html">msszdd_compressor</a> {</div><div class="line"><a name="l01828"></a><span class="lineno"><a class="line" href="structmsszdd__compressor.html#ae98e1fccf36034309baf5adda4d105aa"> 1828</a></span>&#160; int (*compress)(<span class="keyword">struct </span><a class="code" href="structmsszdd__compressor.html">msszdd_compressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *input,</div><div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *output,</div><div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160; off_t length);</div><div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160;</div><div class="line"><a name="l01854"></a><span class="lineno"><a class="line" href="structmsszdd__compressor.html#a3fc065bde8543e1feaf020823af0d86f"> 1854</a></span>&#160; int (*<a class="code" href="structmsszdd__compressor.html#a3fc065bde8543e1feaf020823af0d86f">set_param</a>)(<span class="keyword">struct </span><a class="code" href="structmsszdd__compressor.html">msszdd_compressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160; <span class="keywordtype">int</span> param,</div><div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160; <span class="keywordtype">int</span> value);</div><div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160;</div><div class="line"><a name="l01866"></a><span class="lineno"><a class="line" href="structmsszdd__compressor.html#a8a7b26eabe0eb42f7572165e9fb81f28"> 1866</a></span>&#160; int (*<a class="code" href="structmsszdd__compressor.html#a8a7b26eabe0eb42f7572165e9fb81f28">last_error</a>)(<span class="keyword">struct </span><a class="code" href="structmschm__decompressor.html">mschm_decompressor</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160;};</div><div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;</div><div class="line"><a name="l01876"></a><span class="lineno"><a class="line" href="structmsszdd__decompressor.html"> 1876</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmsszdd__decompressor.html">msszdd_decompressor</a> {</div><div class="line"><a name="l01896"></a><span class="lineno"><a class="line" href="structmsszdd__decompressor.html#a9a1597912630e21b737550a53491672c"> 1896</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmsszddd__header.html">msszddd_header</a> *(*open)(<span class="keyword">struct </span><a class="code" href="structmsszdd__decompressor.html">msszdd_decompressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *filename);</div><div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160;</div><div class="line"><a name="l01912"></a><span class="lineno"><a class="line" href="structmsszdd__decompressor.html#a22c8c41ebd85a57b80c1e110d09aedaa"> 1912</a></span>&#160; void (*<a class="code" href="structmspack__system.html#a86073da10c2b30b1ff75dd0d82a3ba8d">close</a>)(<span class="keyword">struct </span><a class="code" href="structmsszdd__decompressor.html">msszdd_decompressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160; <span class="keyword">struct </span><a class="code" href="structmsszddd__header.html">msszddd_header</a> *szdd);</div><div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160;</div><div class="line"><a name="l01928"></a><span class="lineno"><a class="line" href="structmsszdd__decompressor.html#a199c2c12882c497ed726a16f5f075081"> 1928</a></span>&#160; int (*extract)(<span class="keyword">struct </span><a class="code" href="structmsszdd__decompressor.html">msszdd_decompressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160; <span class="keyword">struct </span><a class="code" href="structmsszddd__header.html">msszddd_header</a> *szdd,</div><div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *filename);</div><div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160;</div><div class="line"><a name="l01949"></a><span class="lineno"><a class="line" href="structmsszdd__decompressor.html#ab86a2efbbef82897a24a7abc8eccc803"> 1949</a></span>&#160; int (*decompress)(<span class="keyword">struct </span><a class="code" href="structmsszdd__decompressor.html">msszdd_decompressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *input,</div><div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *output);</div><div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160;</div><div class="line"><a name="l01964"></a><span class="lineno"><a class="line" href="structmsszdd__decompressor.html#ae148b0a204129f681c661f6e22f1d45e"> 1964</a></span>&#160; int (*<a class="code" href="structmsszdd__decompressor.html#ae148b0a204129f681c661f6e22f1d45e">last_error</a>)(<span class="keyword">struct </span><a class="code" href="structmsszdd__decompressor.html">msszdd_decompressor</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160;};</div><div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160;</div><div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160;<span class="comment">/* --- support for KWAJ file format ---------------------------------------- */</span></div><div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160;</div><div class="line"><a name="l01970"></a><span class="lineno"><a class="line" href="mspack_8h.html#a9075a9264cc87f05e1d27e39982fe722"> 1970</a></span>&#160;<span class="preprocessor">#define MSKWAJC_PARAM_COMP_TYPE (0)</span></div><div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160;</div><div class="line"><a name="l01975"></a><span class="lineno"><a class="line" href="mspack_8h.html#aa5b7b5364e70f3c3c134a6a7ec5847c7"> 1975</a></span>&#160;<span class="preprocessor">#define MSKWAJC_PARAM_INCLUDE_LENGTH (1)</span></div><div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160;</div><div class="line"><a name="l01978"></a><span class="lineno"><a class="line" href="mspack_8h.html#a7a422bbe045d6c4d2137432ccaa87287"> 1978</a></span>&#160;<span class="preprocessor">#define MSKWAJ_COMP_NONE (0)</span></div><div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160;</div><div class="line"><a name="l01980"></a><span class="lineno"><a class="line" href="mspack_8h.html#a1921fcc0b096f13ee40eb78328f8e1c9"> 1980</a></span>&#160;<span class="preprocessor">#define MSKWAJ_COMP_XOR (1)</span></div><div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160;</div><div class="line"><a name="l01982"></a><span class="lineno"><a class="line" href="mspack_8h.html#a10b39d2b4edb12e70d92ede3b2290cf7"> 1982</a></span>&#160;<span class="preprocessor">#define MSKWAJ_COMP_SZDD (2)</span></div><div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160;</div><div class="line"><a name="l01984"></a><span class="lineno"><a class="line" href="mspack_8h.html#af61a7a99713aab5cbb64bc0d58189e02"> 1984</a></span>&#160;<span class="preprocessor">#define MSKWAJ_COMP_LZH (3)</span></div><div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160;</div><div class="line"><a name="l01986"></a><span class="lineno"><a class="line" href="mspack_8h.html#ad0652e954399690b969625397969e0b1"> 1986</a></span>&#160;<span class="preprocessor">#define MSKWAJ_COMP_MSZIP (4)</span></div><div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160;</div><div class="line"><a name="l01989"></a><span class="lineno"><a class="line" href="mspack_8h.html#a208332840889024ba383d4e9f79ac5e0"> 1989</a></span>&#160;<span class="preprocessor">#define MSKWAJ_HDR_HASLENGTH (0x01)</span></div><div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160;</div><div class="line"><a name="l01992"></a><span class="lineno"><a class="line" href="mspack_8h.html#a0cdbfc4dc7b50c221dbecb3fb30ca09a"> 1992</a></span>&#160;<span class="preprocessor">#define MSKWAJ_HDR_HASUNKNOWN1 (0x02)</span></div><div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160;</div><div class="line"><a name="l01995"></a><span class="lineno"><a class="line" href="mspack_8h.html#abefc89852b5f2f1621696caeac1d502a"> 1995</a></span>&#160;<span class="preprocessor">#define MSKWAJ_HDR_HASUNKNOWN2 (0x04)</span></div><div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160;</div><div class="line"><a name="l01998"></a><span class="lineno"><a class="line" href="mspack_8h.html#a4e00bc8b9c084c0d10fbdbdc20a0d581"> 1998</a></span>&#160;<span class="preprocessor">#define MSKWAJ_HDR_HASFILENAME (0x08)</span></div><div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160;</div><div class="line"><a name="l02001"></a><span class="lineno"><a class="line" href="mspack_8h.html#a96fcc79aa6be1e00c8384d4b12802dc6"> 2001</a></span>&#160;<span class="preprocessor">#define MSKWAJ_HDR_HASFILEEXT (0x10)</span></div><div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160;</div><div class="line"><a name="l02004"></a><span class="lineno"><a class="line" href="mspack_8h.html#ab7c5d1a390217716b2e780afdfc5837a"> 2004</a></span>&#160;<span class="preprocessor">#define MSKWAJ_HDR_HASEXTRATEXT (0x20)</span></div><div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160;</div><div class="line"><a name="l02011"></a><span class="lineno"><a class="line" href="structmskwajd__header.html"> 2011</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmskwajd__header.html">mskwajd_header</a> {</div><div class="line"><a name="l02015"></a><span class="lineno"><a class="line" href="structmskwajd__header.html#a3e715be39a9022552f730948d13085ab"> 2015</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="structmskwajd__header.html#a3e715be39a9022552f730948d13085ab">comp_type</a>;</div><div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160;</div><div class="line"><a name="l02018"></a><span class="lineno"><a class="line" href="structmskwajd__header.html#ace36762bb483edb0f8365b6463708d72"> 2018</a></span>&#160; off_t <a class="code" href="structmskwajd__header.html#ace36762bb483edb0f8365b6463708d72">data_offset</a>;</div><div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160;</div><div class="line"><a name="l02021"></a><span class="lineno"><a class="line" href="structmskwajd__header.html#a62b3852fcc90781f98a1017b32679fab"> 2021</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="structmskwajd__header.html#a62b3852fcc90781f98a1017b32679fab">headers</a>;</div><div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160;</div><div class="line"><a name="l02024"></a><span class="lineno"><a class="line" href="structmskwajd__header.html#afac7807b7f2ae032cd765ec7b875fef1"> 2024</a></span>&#160; off_t <a class="code" href="structmskwajd__header.html#afac7807b7f2ae032cd765ec7b875fef1">length</a>;</div><div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160;</div><div class="line"><a name="l02027"></a><span class="lineno"><a class="line" href="structmskwajd__header.html#a1f6bdf2cdb6bf2425327eb3c8a480564"> 2027</a></span>&#160; <span class="keywordtype">char</span> *<a class="code" href="structmskwajd__header.html#a1f6bdf2cdb6bf2425327eb3c8a480564">filename</a>;</div><div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160;</div><div class="line"><a name="l02032"></a><span class="lineno"><a class="line" href="structmskwajd__header.html#a67205e9e87199ec6ce1e1d6569cd077c"> 2032</a></span>&#160; <span class="keywordtype">char</span> *<a class="code" href="structmskwajd__header.html#a67205e9e87199ec6ce1e1d6569cd077c">extra</a>;</div><div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160;</div><div class="line"><a name="l02035"></a><span class="lineno"><a class="line" href="structmskwajd__header.html#a150dd01507ddef57a4d77c5f4f9914fa"> 2035</a></span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="structmskwajd__header.html#a150dd01507ddef57a4d77c5f4f9914fa">extra_length</a>;</div><div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160;};</div><div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160;</div><div class="line"><a name="l02045"></a><span class="lineno"><a class="line" href="structmskwaj__compressor.html"> 2045</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmskwaj__compressor.html">mskwaj_compressor</a> {</div><div class="line"><a name="l02064"></a><span class="lineno"><a class="line" href="structmskwaj__compressor.html#ae7e641dd0f7ddde95748291f6777740e"> 2064</a></span>&#160; int (*compress)(<span class="keyword">struct </span><a class="code" href="structmskwaj__compressor.html">mskwaj_compressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *input,</div><div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *output,</div><div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160; off_t length);</div><div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160;</div><div class="line"><a name="l02092"></a><span class="lineno"><a class="line" href="structmskwaj__compressor.html#aadc9e0d3c53881629ef5db9b48450b8d"> 2092</a></span>&#160; int (*<a class="code" href="structmskwaj__compressor.html#aadc9e0d3c53881629ef5db9b48450b8d">set_param</a>)(<span class="keyword">struct </span><a class="code" href="structmskwaj__compressor.html">mskwaj_compressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160; <span class="keywordtype">int</span> param,</div><div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160; <span class="keywordtype">int</span> value);</div><div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;</div><div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160;</div><div class="line"><a name="l02114"></a><span class="lineno"><a class="line" href="structmskwaj__compressor.html#a08116e61b95130886597f0b69de1301a"> 2114</a></span>&#160; int (*<a class="code" href="structmskwaj__compressor.html#a08116e61b95130886597f0b69de1301a">set_filename</a>)(<span class="keyword">struct </span><a class="code" href="structmskwaj__compressor.html">mskwaj_compressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *filename);</div><div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160;</div><div class="line"><a name="l02134"></a><span class="lineno"><a class="line" href="structmskwaj__compressor.html#a49771cf61d7c3c0df2aca939494350e6"> 2134</a></span>&#160; int (*<a class="code" href="structmskwaj__compressor.html#a49771cf61d7c3c0df2aca939494350e6">set_extra_data</a>)(<span class="keyword">struct </span><a class="code" href="structmskwaj__compressor.html">mskwaj_compressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160; <span class="keywordtype">void</span> *data,</div><div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160; <span class="keywordtype">size_t</span> bytes);</div><div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160;</div><div class="line"><a name="l02146"></a><span class="lineno"><a class="line" href="structmskwaj__compressor.html#a2544f4ce0b393512509e1298b1368594"> 2146</a></span>&#160; int (*<a class="code" href="structmskwaj__compressor.html#a2544f4ce0b393512509e1298b1368594">last_error</a>)(<span class="keyword">struct </span><a class="code" href="structmschm__decompressor.html">mschm_decompressor</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160;};</div><div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;</div><div class="line"><a name="l02156"></a><span class="lineno"><a class="line" href="structmskwaj__decompressor.html"> 2156</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmskwaj__decompressor.html">mskwaj_decompressor</a> {</div><div class="line"><a name="l02176"></a><span class="lineno"><a class="line" href="structmskwaj__decompressor.html#ae45c09cc2823e2014b156a3422d058e6"> 2176</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structmskwajd__header.html">mskwajd_header</a> *(*open)(<span class="keyword">struct </span><a class="code" href="structmskwaj__decompressor.html">mskwaj_decompressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *filename);</div><div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160;</div><div class="line"><a name="l02191"></a><span class="lineno"><a class="line" href="structmskwaj__decompressor.html#a6264571f8ddc381a522f813fb871bd43"> 2191</a></span>&#160; void (*<a class="code" href="structmspack__system.html#a86073da10c2b30b1ff75dd0d82a3ba8d">close</a>)(<span class="keyword">struct </span><a class="code" href="structmskwaj__decompressor.html">mskwaj_decompressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160; <span class="keyword">struct </span><a class="code" href="structmskwajd__header.html">mskwajd_header</a> *kwaj);</div><div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160;</div><div class="line"><a name="l02207"></a><span class="lineno"><a class="line" href="structmskwaj__decompressor.html#a70fbcd2255e70f7a303b20e85cc6bdcc"> 2207</a></span>&#160; int (*extract)(<span class="keyword">struct </span><a class="code" href="structmskwaj__decompressor.html">mskwaj_decompressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160; <span class="keyword">struct </span><a class="code" href="structmskwajd__header.html">mskwajd_header</a> *kwaj,</div><div class="line"><a name="l02209"></a><span class="lineno"> 2209</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structmskwajd__header.html#a1f6bdf2cdb6bf2425327eb3c8a480564">filename</a>);</div><div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>&#160;</div><div class="line"><a name="l02228"></a><span class="lineno"><a class="line" href="structmskwaj__decompressor.html#abc7d7a0d557f434c685a30f3f307c4a5"> 2228</a></span>&#160; int (*decompress)(<span class="keyword">struct </span><a class="code" href="structmskwaj__decompressor.html">mskwaj_decompressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *input,</div><div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *output);</div><div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160;</div><div class="line"><a name="l02243"></a><span class="lineno"><a class="line" href="structmskwaj__decompressor.html#aed17dfe9c4346b2e98a20d6eb9003ac1"> 2243</a></span>&#160; int (*<a class="code" href="structmskwaj__decompressor.html#aed17dfe9c4346b2e98a20d6eb9003ac1">last_error</a>)(<span class="keyword">struct </span><a class="code" href="structmskwaj__decompressor.html">mskwaj_decompressor</a> *<span class="keyword">self</span>);</div><div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160;};</div><div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160;</div><div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160;<span class="comment">/* --- support for .LZX (Offline Address Book) file format ----------------- */</span></div><div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>&#160;</div><div class="line"><a name="l02255"></a><span class="lineno"><a class="line" href="structmsoab__compressor.html"> 2255</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmsoab__compressor.html">msoab_compressor</a> {</div><div class="line"><a name="l02270"></a><span class="lineno"><a class="line" href="structmsoab__compressor.html#a427757b81674d85ebf7c61d48e742ec4"> 2270</a></span>&#160; int (*compress) (<span class="keyword">struct </span><a class="code" href="structmsoab__compressor.html">msoab_compressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *input,</div><div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *output);</div><div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>&#160;</div><div class="line"><a name="l02294"></a><span class="lineno"><a class="line" href="structmsoab__compressor.html#a71b9f0660e87cd9d62eceb26613f265d"> 2294</a></span>&#160; int (*<a class="code" href="structmsoab__compressor.html#a71b9f0660e87cd9d62eceb26613f265d">compress_incremental</a>) (<span class="keyword">struct </span><a class="code" href="structmsoab__compressor.html">msoab_compressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *input,</div><div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *base,</div><div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *output);</div><div class="line"><a name="l02298"></a><span class="lineno"> 2298</span>&#160;};</div><div class="line"><a name="l02299"></a><span class="lineno"> 2299</span>&#160;</div><div class="line"><a name="l02307"></a><span class="lineno"><a class="line" href="structmsoab__decompressor.html"> 2307</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmsoab__decompressor.html">msoab_decompressor</a> {</div><div class="line"><a name="l02323"></a><span class="lineno"><a class="line" href="structmsoab__decompressor.html#acf6c058a42f7dd99070d29424552382f"> 2323</a></span>&#160; int (*decompress) (<span class="keyword">struct </span><a class="code" href="structmsoab__decompressor.html">msoab_decompressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l02324"></a><span class="lineno"> 2324</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *input,</div><div class="line"><a name="l02325"></a><span class="lineno"> 2325</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *output);</div><div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>&#160;</div><div class="line"><a name="l02352"></a><span class="lineno"><a class="line" href="structmsoab__decompressor.html#ae86164087ac082f2e81156d76a3c49b0"> 2352</a></span>&#160; int (*<a class="code" href="structmsoab__decompressor.html#ae86164087ac082f2e81156d76a3c49b0">decompress_incremental</a>) (<span class="keyword">struct </span><a class="code" href="structmsoab__decompressor.html">msoab_decompressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l02353"></a><span class="lineno"> 2353</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *input,</div><div class="line"><a name="l02354"></a><span class="lineno"> 2354</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *base,</div><div class="line"><a name="l02355"></a><span class="lineno"> 2355</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span> *output);</div><div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>&#160;</div><div class="line"><a name="l02372"></a><span class="lineno"><a class="line" href="structmsoab__decompressor.html#a53c879fea969edc9d0b03fc35fcc23e5"> 2372</a></span>&#160; int (*<a class="code" href="structmsoab__decompressor.html#a53c879fea969edc9d0b03fc35fcc23e5">set_param</a>)(<span class="keyword">struct </span><a class="code" href="structmsoab__decompressor.html">msoab_decompressor</a> *<span class="keyword">self</span>,</div><div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>&#160; <span class="keywordtype">int</span> param,</div><div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>&#160; <span class="keywordtype">int</span> value);</div><div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>&#160;</div><div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>&#160;};</div><div class="line"><a name="l02377"></a><span class="lineno"> 2377</span>&#160;</div><div class="line"><a name="l02379"></a><span class="lineno"><a class="line" href="mspack_8h.html#aac9d818e3d6c4721db0f7b1145da3f5f"> 2379</a></span>&#160;<span class="preprocessor">#define MSOABD_PARAM_DECOMPBUF (0)</span></div><div class="line"><a name="l02380"></a><span class="lineno"> 2380</span>&#160;</div><div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div><div class="line"><a name="l02382"></a><span class="lineno"> 2382</span>&#160;}</div><div class="line"><a name="l02383"></a><span class="lineno"> 2383</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02384"></a><span class="lineno"> 2384</span>&#160;</div><div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>&#160;<span class="preprocessor">#endif</span></div><div class="ttc" id="structmspack__system_html_a97c3960d5bdf646bae92de8fb64ba67b"><div class="ttname"><a href="structmspack__system.html#a97c3960d5bdf646bae92de8fb64ba67b">mspack_system::copy</a></div><div class="ttdeci">void(* copy)(void *src, void *dest, size_t bytes)</div><div class="ttdoc">Copies from one region of memory to another. </div><div class="ttdef"><b>Definition:</b> mspack.h:444</div></div>
70
- <div class="ttc" id="structmsszdd__decompressor_html"><div class="ttname"><a href="structmsszdd__decompressor.html">msszdd_decompressor</a></div><div class="ttdoc">A decompressor for SZDD compressed files. </div><div class="ttdef"><b>Definition:</b> mspack.h:1876</div></div>
71
- <div class="ttc" id="structmscabd__file_html_ab71150ec878f202f8e4d8fab763c21e8"><div class="ttname"><a href="structmscabd__file.html#ab71150ec878f202f8e4d8fab763c21e8">mscabd_file::offset</a></div><div class="ttdeci">unsigned int offset</div><div class="ttdoc">The uncompressed offset of this file in its folder. </div><div class="ttdef"><b>Definition:</b> mspack.h:915</div></div>
72
- <div class="ttc" id="mspack_8h_html_a211700fd8b678d0d529f1cd40ce99e01"><div class="ttname"><a href="mspack_8h.html#a211700fd8b678d0d529f1cd40ce99e01">mspack_create_oab_decompressor</a></div><div class="ttdeci">struct msoab_decompressor * mspack_create_oab_decompressor(struct mspack_system *sys)</div><div class="ttdoc">Creates a new OAB decompressor. </div></div>
73
- <div class="ttc" id="structmskwaj__compressor_html"><div class="ttname"><a href="structmskwaj__compressor.html">mskwaj_compressor</a></div><div class="ttdoc">A compressor for the KWAJ file format. </div><div class="ttdef"><b>Definition:</b> mspack.h:2045</div></div>
74
- <div class="ttc" id="mspack_8h_html_a00c23794eac4dab60057cc5b84c2a7ea"><div class="ttname"><a href="mspack_8h.html#a00c23794eac4dab60057cc5b84c2a7ea">mspack_create_szdd_compressor</a></div><div class="ttdeci">struct msszdd_compressor * mspack_create_szdd_compressor(struct mspack_system *sys)</div><div class="ttdoc">Creates a new SZDD compressor. </div></div>
75
- <div class="ttc" id="mspack_8h_html_aba0e2b76f4998e914cc96db475e8b598"><div class="ttname"><a href="mspack_8h.html#aba0e2b76f4998e914cc96db475e8b598">mspack_destroy_lit_compressor</a></div><div class="ttdeci">void mspack_destroy_lit_compressor(struct mslit_compressor *self)</div><div class="ttdoc">Destroys an existing LIT compressor. </div></div>
76
- <div class="ttc" id="structmspack__system_html_a9954de59172a04aac2a5edc4803e9e38"><div class="ttname"><a href="structmspack__system.html#a9954de59172a04aac2a5edc4803e9e38">mspack_system::message</a></div><div class="ttdeci">void(* message)(struct mspack_file *file, const char *format,...)</div><div class="ttdoc">Used to send messages from the library to the user. </div><div class="ttdef"><b>Definition:</b> mspack.h:407</div></div>
77
- <div class="ttc" id="mspack_8h_html_aa11b092e00e6d4862d134a05b97b9c09"><div class="ttname"><a href="mspack_8h.html#aa11b092e00e6d4862d134a05b97b9c09">mspack_create_cab_compressor</a></div><div class="ttdeci">struct mscab_compressor * mspack_create_cab_compressor(struct mspack_system *sys)</div><div class="ttdoc">Creates a new CAB compressor. </div></div>
78
- <div class="ttc" id="structmscabd__file_html_a181b45655523f55ed114b51249d305f8"><div class="ttname"><a href="structmscabd__file.html#a181b45655523f55ed114b51249d305f8">mscabd_file::filename</a></div><div class="ttdeci">char * filename</div><div class="ttdoc">The filename of the file. </div><div class="ttdef"><b>Definition:</b> mspack.h:878</div></div>
79
- <div class="ttc" id="mspack_8h_html_a5829a2023927ad4dc8bd452f3b294851"><div class="ttname"><a href="mspack_8h.html#a5829a2023927ad4dc8bd452f3b294851">mspack_create_chm_decompressor</a></div><div class="ttdeci">struct mschm_decompressor * mspack_create_chm_decompressor(struct mspack_system *sys)</div><div class="ttdoc">Creates a new CHM decompressor. </div></div>
80
- <div class="ttc" id="structmspack__system_html_a91b831a5fbc3ad14908702d55d5cb9d8"><div class="ttname"><a href="structmspack__system.html#a91b831a5fbc3ad14908702d55d5cb9d8">mspack_system::tell</a></div><div class="ttdeci">off_t(* tell)(struct mspack_file *file)</div><div class="ttdoc">Returns the current file position (in bytes) of the given file. </div><div class="ttdef"><b>Definition:</b> mspack.h:391</div></div>
81
- <div class="ttc" id="structmspack__system_html_abac465118be5ef7a9f21a273c48769a5"><div class="ttname"><a href="structmspack__system.html#abac465118be5ef7a9f21a273c48769a5">mspack_system::write</a></div><div class="ttdeci">int(* write)(struct mspack_file *file, void *buffer, int bytes)</div><div class="ttdoc">Writes a given number of bytes to an open file. </div><div class="ttdef"><b>Definition:</b> mspack.h:353</div></div>
82
- <div class="ttc" id="structmschmd__file_html_ad085b530903f47a4d908d04ce0a37499"><div class="ttname"><a href="structmschmd__file.html#ad085b530903f47a4d908d04ce0a37499">mschmd_file::offset</a></div><div class="ttdeci">off_t offset</div><div class="ttdoc">The offset within the section data that this file is located at. </div><div class="ttdef"><b>Definition:</b> mspack.h:1384</div></div>
83
- <div class="ttc" id="mspack_8h_html_a5d7d5d89c674847821bb7f270be828c8"><div class="ttname"><a href="mspack_8h.html#a5d7d5d89c674847821bb7f270be828c8">mspack_destroy_hlp_compressor</a></div><div class="ttdeci">void mspack_destroy_hlp_compressor(struct mshlp_compressor *self)</div><div class="ttdoc">Destroys an existing hlp compressor. </div></div>
84
- <div class="ttc" id="structmsszddd__header_html_a9f06c9f3b46051a677cd7ce6c67ee53d"><div class="ttname"><a href="structmsszddd__header.html#a9f06c9f3b46051a677cd7ce6c67ee53d">msszddd_header::missing_char</a></div><div class="ttdeci">char missing_char</div><div class="ttdoc">The last character in the filename, traditionally replaced with an underscore to show the file is com...</div><div class="ttdef"><b>Definition:</b> mspack.h:1782</div></div>
85
- <div class="ttc" id="structmschmd__header_html_abc4bb0ece1933982ebc18263cbc18166"><div class="ttname"><a href="structmschmd__header.html#abc4bb0ece1933982ebc18263cbc18166">mschmd_header::language</a></div><div class="ttdeci">unsigned int language</div><div class="ttdoc">The default Language and Country ID (LCID) of the user who ran the HTMLHelp Compiler. </div><div class="ttdef"><b>Definition:</b> mspack.h:1289</div></div>
86
- <div class="ttc" id="structmschmc__file_html"><div class="ttname"><a href="structmschmc__file.html">mschmc_file</a></div><div class="ttdoc">A structure which represents a file to be placed in a CHM helpfile. </div><div class="ttdef"><b>Definition:</b> mspack.h:1192</div></div>
87
- <div class="ttc" id="structmspack__file_html_af92caf003ca38fb1ed1eb03761f9a2dc"><div class="ttname"><a href="structmspack__file.html#af92caf003ca38fb1ed1eb03761f9a2dc">mspack_file::dummy</a></div><div class="ttdeci">int dummy</div><div class="ttdef"><b>Definition:</b> mspack.h:479</div></div>
88
- <div class="ttc" id="mspack_8h_html_a81ec853a5fcfad25acdfab6bee1cd3cc"><div class="ttname"><a href="mspack_8h.html#a81ec853a5fcfad25acdfab6bee1cd3cc">mspack_create_szdd_decompressor</a></div><div class="ttdeci">struct msszdd_decompressor * mspack_create_szdd_decompressor(struct mspack_system *sys)</div><div class="ttdoc">Creates a new SZDD decompressor. </div></div>
89
- <div class="ttc" id="structmscabd__cabinet_html_a1ec19746e85dd1ede4a6568db68ae044"><div class="ttname"><a href="structmscabd__cabinet.html#a1ec19746e85dd1ede4a6568db68ae044">mscabd_cabinet::set_id</a></div><div class="ttdeci">unsigned short set_id</div><div class="ttdoc">The set ID of the cabinet. </div><div class="ttdef"><b>Definition:</b> mspack.h:752</div></div>
90
- <div class="ttc" id="structmschmd__sec__mscompressed_html"><div class="ttname"><a href="structmschmd__sec__mscompressed.html">mschmd_sec_mscompressed</a></div><div class="ttdoc">A structure which represents the LZX compressed section of a CHM helpfile. </div><div class="ttdef"><b>Definition:</b> mspack.h:1248</div></div>
91
- <div class="ttc" id="structmscabd__file_html_aa7a6b5c44ad11982018afdb571608ffe"><div class="ttname"><a href="structmscabd__file.html#aa7a6b5c44ad11982018afdb571608ffe">mscabd_file::date_d</a></div><div class="ttdeci">char date_d</div><div class="ttdoc">File&amp;#39;s last modified date, day field. </div><div class="ttdef"><b>Definition:</b> mspack.h:905</div></div>
92
- <div class="ttc" id="mspack_8h_html_a9587b6c3bf2907d496a0c438c7904463"><div class="ttname"><a href="mspack_8h.html#a9587b6c3bf2907d496a0c438c7904463">mspack_create_hlp_compressor</a></div><div class="ttdeci">struct mshlp_compressor * mspack_create_hlp_compressor(struct mspack_system *sys)</div><div class="ttdoc">Creates a new HLP compressor. </div></div>
93
- <div class="ttc" id="structmscabd__folder_html_aede069b566ca8ae21998da02e81ec6f5"><div class="ttname"><a href="structmscabd__folder.html#aede069b566ca8ae21998da02e81ec6f5">mscabd_folder::comp_type</a></div><div class="ttdeci">int comp_type</div><div class="ttdoc">The compression format used by this folder. </div><div class="ttdef"><b>Definition:</b> mspack.h:822</div></div>
94
- <div class="ttc" id="mspack_8h_html_abeb6430c01e352502c8c5d4f285a2d97"><div class="ttname"><a href="mspack_8h.html#abeb6430c01e352502c8c5d4f285a2d97">mspack_create_kwaj_decompressor</a></div><div class="ttdeci">struct mskwaj_decompressor * mspack_create_kwaj_decompressor(struct mspack_system *sys)</div><div class="ttdoc">Creates a new KWAJ decompressor. </div></div>
95
- <div class="ttc" id="mspack_8h_html_a4053f06c244cab5e880241ecd0a8a64f"><div class="ttname"><a href="mspack_8h.html#a4053f06c244cab5e880241ecd0a8a64f">mspack_destroy_szdd_compressor</a></div><div class="ttdeci">void mspack_destroy_szdd_compressor(struct msszdd_compressor *self)</div><div class="ttdoc">Destroys an existing SZDD compressor. </div></div>
96
- <div class="ttc" id="structmscabd__cabinet_html_ae541d57dba76b07e1badb4ad4a6f68bc"><div class="ttname"><a href="structmscabd__cabinet.html#ae541d57dba76b07e1badb4ad4a6f68bc">mscabd_cabinet::nextinfo</a></div><div class="ttdeci">char * nextinfo</div><div class="ttdoc">The name of the disk containing the next cabinet in a cabinet set, or NULL. </div><div class="ttdef"><b>Definition:</b> mspack.h:740</div></div>
97
- <div class="ttc" id="mspack_8h_html_a1e2dbd38bdcc255d63c43bbad2f7786f"><div class="ttname"><a href="mspack_8h.html#a1e2dbd38bdcc255d63c43bbad2f7786f">mspack_destroy_hlp_decompressor</a></div><div class="ttdeci">void mspack_destroy_hlp_decompressor(struct mshlp_decompressor *self)</div><div class="ttdoc">Destroys an existing hlp decompressor. </div></div>
98
- <div class="ttc" id="structmscabd__file_html_a54846aab5d491cabedabe8ba11033ddb"><div class="ttname"><a href="structmscabd__file.html#a54846aab5d491cabedabe8ba11033ddb">mscabd_file::folder</a></div><div class="ttdeci">struct mscabd_folder * folder</div><div class="ttdoc">A pointer to the folder that contains this file. </div><div class="ttdef"><b>Definition:</b> mspack.h:912</div></div>
99
- <div class="ttc" id="structmsszdd__compressor_html_a8a7b26eabe0eb42f7572165e9fb81f28"><div class="ttname"><a href="structmsszdd__compressor.html#a8a7b26eabe0eb42f7572165e9fb81f28">msszdd_compressor::last_error</a></div><div class="ttdeci">int(* last_error)(struct mschm_decompressor *self)</div><div class="ttdoc">Returns the error code set by the most recently called method. </div><div class="ttdef"><b>Definition:</b> mspack.h:1866</div></div>
100
- <div class="ttc" id="structmschm__decompressor_html"><div class="ttname"><a href="structmschm__decompressor.html">mschm_decompressor</a></div><div class="ttdoc">A decompressor for .CHM (Microsoft HTMLHelp) files. </div><div class="ttdef"><b>Definition:</b> mspack.h:1577</div></div>
101
- <div class="ttc" id="structmspack__system_html"><div class="ttname"><a href="structmspack__system.html">mspack_system</a></div><div class="ttdoc">A structure which abstracts file I/O and memory management. </div><div class="ttdef"><b>Definition:</b> mspack.h:285</div></div>
102
- <div class="ttc" id="structmschmd__section_html"><div class="ttname"><a href="structmschmd__section.html">mschmd_section</a></div><div class="ttdoc">A structure which represents a section of a CHM helpfile. </div><div class="ttdef"><b>Definition:</b> mspack.h:1218</div></div>
103
- <div class="ttc" id="structmshlp__decompressor_html"><div class="ttname"><a href="structmshlp__decompressor.html">mshlp_decompressor</a></div><div class="ttdoc">TODO. </div><div class="ttdef"><b>Definition:</b> mspack.h:1747</div></div>
104
- <div class="ttc" id="mspack_8h_html_a799d00a8ea939a86f2ed4e5c0dadb00e"><div class="ttname"><a href="mspack_8h.html#a799d00a8ea939a86f2ed4e5c0dadb00e">mspack_sys_selftest_internal</a></div><div class="ttdeci">int mspack_sys_selftest_internal(int)</div><div class="ttdoc">Part of the MSPACK_SYS_SELFTEST() macro, must not be used directly. </div></div>
105
- <div class="ttc" id="structmschmd__section_html_af1291ed269c7387b416e9ade36875621"><div class="ttname"><a href="structmschmd__section.html#af1291ed269c7387b416e9ade36875621">mschmd_section::chm</a></div><div class="ttdeci">struct mschmd_header * chm</div><div class="ttdoc">A pointer to the CHM helpfile that contains this section. </div><div class="ttdef"><b>Definition:</b> mspack.h:1220</div></div>
106
- <div class="ttc" id="structmsszdd__decompressor_html_ae148b0a204129f681c661f6e22f1d45e"><div class="ttname"><a href="structmsszdd__decompressor.html#ae148b0a204129f681c661f6e22f1d45e">msszdd_decompressor::last_error</a></div><div class="ttdeci">int(* last_error)(struct msszdd_decompressor *self)</div><div class="ttdoc">Returns the error code set by the most recently called method. </div><div class="ttdef"><b>Definition:</b> mspack.h:1964</div></div>
107
- <div class="ttc" id="structmschmd__file_html_a80b7f519909795b2cfe0cc7baf6d4e30"><div class="ttname"><a href="structmschmd__file.html#a80b7f519909795b2cfe0cc7baf6d4e30">mschmd_file::filename</a></div><div class="ttdeci">char * filename</div><div class="ttdoc">The filename of this file – a null terminated string in UTF-8. </div><div class="ttdef"><b>Definition:</b> mspack.h:1390</div></div>
108
- <div class="ttc" id="structmschm__decompressor_html_a5d80bc6dc6c08ae0ae064e66e73c48f8"><div class="ttname"><a href="structmschm__decompressor.html#a5d80bc6dc6c08ae0ae064e66e73c48f8">mschm_decompressor::fast_find</a></div><div class="ttdeci">int(* fast_find)(struct mschm_decompressor *self, struct mschmd_header *chm, const char *filename, struct mschmd_file *f_ptr, int f_size)</div><div class="ttdoc">Finds file details quickly. </div><div class="ttdef"><b>Definition:</b> mspack.h:1719</div></div>
109
- <div class="ttc" id="structmslit__decompressor_html"><div class="ttname"><a href="structmslit__decompressor.html">mslit_decompressor</a></div><div class="ttdoc">TODO. </div><div class="ttdef"><b>Definition:</b> mspack.h:1734</div></div>
110
- <div class="ttc" id="structmscab__decompressor_html_a3efd89b8cc66689ba56b87dbce36eb63"><div class="ttname"><a href="structmscab__decompressor.html#a3efd89b8cc66689ba56b87dbce36eb63">mscab_decompressor::append</a></div><div class="ttdeci">int(* append)(struct mscab_decompressor *self, struct mscabd_cabinet *cab, struct mscabd_cabinet *nextcab)</div><div class="ttdoc">Appends one mscabd_cabinet to another, forming or extending a cabinet set. </div><div class="ttdef"><b>Definition:</b> mspack.h:1090</div></div>
111
- <div class="ttc" id="structmsoab__compressor_html"><div class="ttname"><a href="structmsoab__compressor.html">msoab_compressor</a></div><div class="ttdoc">A compressor for the Offline Address Book (OAB) format. </div><div class="ttdef"><b>Definition:</b> mspack.h:2255</div></div>
112
- <div class="ttc" id="structmscabd__cabinet_html_a94d02cd4adb598945f544d77362d1658"><div class="ttname"><a href="structmscabd__cabinet.html#a94d02cd4adb598945f544d77362d1658">mscabd_cabinet::next</a></div><div class="ttdeci">struct mscabd_cabinet * next</div><div class="ttdoc">The next cabinet in a chained list, if this cabinet was opened with mscab_decompressor::search(). </div><div class="ttdef"><b>Definition:</b> mspack.h:705</div></div>
113
- <div class="ttc" id="structmscabd__cabinet_html_a1f595a7655daa62ba709ecf40a0cb13c"><div class="ttname"><a href="structmscabd__cabinet.html#a1f595a7655daa62ba709ecf40a0cb13c">mscabd_cabinet::prevname</a></div><div class="ttdeci">char * prevname</div><div class="ttdoc">The filename of the previous cabinet in a cabinet set, or NULL. </div><div class="ttdef"><b>Definition:</b> mspack.h:727</div></div>
114
- <div class="ttc" id="structmsszddd__header_html_a8cef0aad40e715b84d1a2206e16634a0"><div class="ttname"><a href="structmsszddd__header.html#a8cef0aad40e715b84d1a2206e16634a0">msszddd_header::format</a></div><div class="ttdeci">int format</div><div class="ttdoc">The file format; either MSSZDD_FMT_NORMAL or MSSZDD_FMT_QBASIC. </div><div class="ttdef"><b>Definition:</b> mspack.h:1770</div></div>
115
- <div class="ttc" id="structmscabd__folder_html"><div class="ttname"><a href="structmscabd__folder.html">mscabd_folder</a></div><div class="ttdoc">A structure which represents a single folder in a cabinet or cabinet set. </div><div class="ttdef"><b>Definition:</b> mspack.h:806</div></div>
116
- <div class="ttc" id="structmscabd__folder_html_a784995a5f0632aa994ef1a5c9a24502a"><div class="ttname"><a href="structmscabd__folder.html#a784995a5f0632aa994ef1a5c9a24502a">mscabd_folder::num_blocks</a></div><div class="ttdeci">unsigned int num_blocks</div><div class="ttdoc">The total number of data blocks used by this folder. </div><div class="ttdef"><b>Definition:</b> mspack.h:829</div></div>
117
- <div class="ttc" id="structmschmd__header_html_ab53047ee0b1be25b3329d69396f68e9f"><div class="ttname"><a href="structmschmd__header.html#ab53047ee0b1be25b3329d69396f68e9f">mschmd_header::index_root</a></div><div class="ttdeci">unsigned int index_root</div><div class="ttdoc">The number of the root PMGI chunk. </div><div class="ttdef"><b>Definition:</b> mspack.h:1344</div></div>
118
- <div class="ttc" id="structmsoab__decompressor_html"><div class="ttname"><a href="structmsoab__decompressor.html">msoab_decompressor</a></div><div class="ttdoc">A decompressor for .LZX (Offline Address Book) files. </div><div class="ttdef"><b>Definition:</b> mspack.h:2307</div></div>
119
- <div class="ttc" id="structmscabd__file_html_a77eb02b23393f5463e9e445f87bbfa9d"><div class="ttname"><a href="structmscabd__file.html#a77eb02b23393f5463e9e445f87bbfa9d">mscabd_file::attribs</a></div><div class="ttdeci">int attribs</div><div class="ttdoc">File attributes. </div><div class="ttdef"><b>Definition:</b> mspack.h:895</div></div>
120
- <div class="ttc" id="structmscab__compressor_html"><div class="ttname"><a href="structmscab__compressor.html">mscab_compressor</a></div><div class="ttdoc">TODO. </div><div class="ttdef"><b>Definition:</b> mspack.h:946</div></div>
121
- <div class="ttc" id="structmskwajd__header_html"><div class="ttname"><a href="structmskwajd__header.html">mskwajd_header</a></div><div class="ttdoc">A structure which represents an KWAJ compressed file. </div><div class="ttdef"><b>Definition:</b> mspack.h:2011</div></div>
122
- <div class="ttc" id="structmspack__system_html_a121acf7277cde3b96d4c59e259b01ad6"><div class="ttname"><a href="structmspack__system.html#a121acf7277cde3b96d4c59e259b01ad6">mspack_system::read</a></div><div class="ttdeci">int(* read)(struct mspack_file *file, void *buffer, int bytes)</div><div class="ttdoc">Reads a given number of bytes from an open file. </div><div class="ttdef"><b>Definition:</b> mspack.h:336</div></div>
123
- <div class="ttc" id="structmspack__system_html_afb2a70ca48bbc9487c8f2d4c525f94c4"><div class="ttname"><a href="structmspack__system.html#afb2a70ca48bbc9487c8f2d4c525f94c4">mspack_system::seek</a></div><div class="ttdeci">int(* seek)(struct mspack_file *file, off_t offset, int mode)</div><div class="ttdoc">Seeks to a specific file offset within an open file. </div><div class="ttdef"><b>Definition:</b> mspack.h:380</div></div>
124
- <div class="ttc" id="mspack_8h_html_a9478967ec3cf95b0a312272d6e78afbe"><div class="ttname"><a href="mspack_8h.html#a9478967ec3cf95b0a312272d6e78afbe">mspack_create_lit_compressor</a></div><div class="ttdeci">struct mslit_compressor * mspack_create_lit_compressor(struct mspack_system *sys)</div><div class="ttdoc">Creates a new LIT compressor. </div></div>
125
- <div class="ttc" id="structmschmd__sec__mscompressed_html_ab00872a655bd36de99d3c960458c3bc3"><div class="ttname"><a href="structmschmd__sec__mscompressed.html#ab00872a655bd36de99d3c960458c3bc3">mschmd_sec_mscompressed::rtable</a></div><div class="ttdeci">struct mschmd_file * rtable</div><div class="ttdoc">A pointer to the file which contains the LZX reset table. </div><div class="ttdef"><b>Definition:</b> mspack.h:1259</div></div>
126
- <div class="ttc" id="structmscabd__cabinet_html_ad915066d3781892754b6cfd87b08d378"><div class="ttname"><a href="structmscabd__cabinet.html#ad915066d3781892754b6cfd87b08d378">mscabd_cabinet::prevcab</a></div><div class="ttdeci">struct mscabd_cabinet * prevcab</div><div class="ttdoc">The previous cabinet in a cabinet set, or NULL. </div><div class="ttdef"><b>Definition:</b> mspack.h:721</div></div>
127
- <div class="ttc" id="structmschmd__sec__mscompressed_html_afd6f3b28b37e10704d8584d9b4c093f1"><div class="ttname"><a href="structmschmd__sec__mscompressed.html#afd6f3b28b37e10704d8584d9b4c093f1">mschmd_sec_mscompressed::spaninfo</a></div><div class="ttdeci">struct mschmd_file * spaninfo</div><div class="ttdoc">A pointer to the file which contains the LZX span information. </div><div class="ttdef"><b>Definition:</b> mspack.h:1264</div></div>
128
- <div class="ttc" id="mspack_8h_html_a51fdfc5b9786dc914ec083510b11fe9f"><div class="ttname"><a href="mspack_8h.html#a51fdfc5b9786dc914ec083510b11fe9f">mspack_destroy_lit_decompressor</a></div><div class="ttdeci">void mspack_destroy_lit_decompressor(struct mslit_decompressor *self)</div><div class="ttdoc">Destroys an existing LIT decompressor. </div></div>
129
- <div class="ttc" id="structmscabd__cabinet_html_ac5cbac5940c3ebe068201bda234a7428"><div class="ttname"><a href="structmscabd__cabinet.html#ac5cbac5940c3ebe068201bda234a7428">mscabd_cabinet::files</a></div><div class="ttdeci">struct mscabd_file * files</div><div class="ttdoc">A list of all files in the cabinet or cabinet set. </div><div class="ttdef"><b>Definition:</b> mspack.h:743</div></div>
130
- <div class="ttc" id="structmschmd__sec__mscompressed_html_aab9eb91f43471abcdbcb075c8264a787"><div class="ttname"><a href="structmschmd__sec__mscompressed.html#aab9eb91f43471abcdbcb075c8264a787">mschmd_sec_mscompressed::content</a></div><div class="ttdeci">struct mschmd_file * content</div><div class="ttdoc">A pointer to the meta-file which represents all LZX compressed data. </div><div class="ttdef"><b>Definition:</b> mspack.h:1253</div></div>
131
- <div class="ttc" id="structmschmd__header_html_ac38b56f77e2a44d998e57ba9301e39d5"><div class="ttname"><a href="structmschmd__header.html#ac38b56f77e2a44d998e57ba9301e39d5">mschmd_header::sysfiles</a></div><div class="ttdeci">struct mschmd_file * sysfiles</div><div class="ttdoc">A list of all system files in the CHM helpfile. </div><div class="ttdef"><b>Definition:</b> mspack.h:1309</div></div>
132
- <div class="ttc" id="structmskwaj__compressor_html_aadc9e0d3c53881629ef5db9b48450b8d"><div class="ttname"><a href="structmskwaj__compressor.html#aadc9e0d3c53881629ef5db9b48450b8d">mskwaj_compressor::set_param</a></div><div class="ttdeci">int(* set_param)(struct mskwaj_compressor *self, int param, int value)</div><div class="ttdoc">Sets an KWAJ compression engine parameter. </div><div class="ttdef"><b>Definition:</b> mspack.h:2092</div></div>
133
- <div class="ttc" id="structmsoab__decompressor_html_ae86164087ac082f2e81156d76a3c49b0"><div class="ttname"><a href="structmsoab__decompressor.html#ae86164087ac082f2e81156d76a3c49b0">msoab_decompressor::decompress_incremental</a></div><div class="ttdeci">int(* decompress_incremental)(struct msoab_decompressor *self, const char *input, const char *base, const char *output)</div><div class="ttdoc">Decompresses an Offline Address Book with an incremental patch file. </div><div class="ttdef"><b>Definition:</b> mspack.h:2352</div></div>
134
- <div class="ttc" id="mspack_8h_html_aaf070981f5d3a3a6bb430070cc2b3e73"><div class="ttname"><a href="mspack_8h.html#aaf070981f5d3a3a6bb430070cc2b3e73">mspack_destroy_szdd_decompressor</a></div><div class="ttdeci">void mspack_destroy_szdd_decompressor(struct msszdd_decompressor *self)</div><div class="ttdoc">Destroys an existing SZDD decompressor. </div></div>
135
- <div class="ttc" id="structmschmd__sec__uncompressed_html_af8b34d247b2e197f5d835f8eed564e64"><div class="ttname"><a href="structmschmd__sec__uncompressed.html#af8b34d247b2e197f5d835f8eed564e64">mschmd_sec_uncompressed::offset</a></div><div class="ttdeci">off_t offset</div><div class="ttdoc">The file offset of where this section begins in the CHM helpfile. </div><div class="ttdef"><b>Definition:</b> mspack.h:1240</div></div>
136
- <div class="ttc" id="mspack_8h_html_a749d6b350987be706728e020e875b13f"><div class="ttname"><a href="mspack_8h.html#a749d6b350987be706728e020e875b13f">mspack_create_chm_compressor</a></div><div class="ttdeci">struct mschm_compressor * mspack_create_chm_compressor(struct mspack_system *sys)</div><div class="ttdoc">Creates a new CHM compressor. </div></div>
137
- <div class="ttc" id="structmspack__system_html_a86073da10c2b30b1ff75dd0d82a3ba8d"><div class="ttname"><a href="structmspack__system.html#a86073da10c2b30b1ff75dd0d82a3ba8d">mspack_system::close</a></div><div class="ttdeci">void(* close)(struct mspack_file *file)</div><div class="ttdoc">Closes a previously opened file. </div><div class="ttdef"><b>Definition:</b> mspack.h:321</div></div>
138
- <div class="ttc" id="structmspack__system_html_a8c64d1bd9b6b0ac9455cfde19ccb61b2"><div class="ttname"><a href="structmspack__system.html#a8c64d1bd9b6b0ac9455cfde19ccb61b2">mspack_system::null_ptr</a></div><div class="ttdeci">void * null_ptr</div><div class="ttdoc">A null pointer to mark the end of mspack_system. </div><div class="ttdef"><b>Definition:</b> mspack.h:454</div></div>
139
- <div class="ttc" id="structmspack__file_html"><div class="ttname"><a href="structmspack__file.html">mspack_file</a></div><div class="ttdoc">A structure which represents an open file handle. </div><div class="ttdef"><b>Definition:</b> mspack.h:478</div></div>
140
- <div class="ttc" id="structmskwaj__decompressor_html_aed17dfe9c4346b2e98a20d6eb9003ac1"><div class="ttname"><a href="structmskwaj__decompressor.html#aed17dfe9c4346b2e98a20d6eb9003ac1">mskwaj_decompressor::last_error</a></div><div class="ttdeci">int(* last_error)(struct mskwaj_decompressor *self)</div><div class="ttdoc">Returns the error code set by the most recently called method. </div><div class="ttdef"><b>Definition:</b> mspack.h:2243</div></div>
141
- <div class="ttc" id="structmschmd__header_html_a33ec169354d6d373667847435c566a12"><div class="ttname"><a href="structmschmd__header.html#a33ec169354d6d373667847435c566a12">mschmd_header::length</a></div><div class="ttdeci">off_t length</div><div class="ttdoc">The length of the CHM helpfile, in bytes. </div><div class="ttdef"><b>Definition:</b> mspack.h:1298</div></div>
142
- <div class="ttc" id="structmspack__system_html_adc2493d00d2d6a4e442ae9a02cc2eba3"><div class="ttname"><a href="structmspack__system.html#adc2493d00d2d6a4e442ae9a02cc2eba3">mspack_system::free</a></div><div class="ttdeci">void(* free)(void *ptr)</div><div class="ttdoc">Frees memory. </div><div class="ttdef"><b>Definition:</b> mspack.h:430</div></div>
143
- <div class="ttc" id="structmscabd__cabinet_html_ae66366dd077ee68f5207c7a93f1ed5b1"><div class="ttname"><a href="structmscabd__cabinet.html#ae66366dd077ee68f5207c7a93f1ed5b1">mscabd_cabinet::previnfo</a></div><div class="ttdeci">char * previnfo</div><div class="ttdoc">The name of the disk containing the previous cabinet in a cabinet set, or NULL. </div><div class="ttdef"><b>Definition:</b> mspack.h:735</div></div>
144
- <div class="ttc" id="structmschmd__header_html_aecdd3b5e84606785e9620a70e8f0d0ed"><div class="ttname"><a href="structmschmd__header.html#aecdd3b5e84606785e9620a70e8f0d0ed">mschmd_header::files</a></div><div class="ttdeci">struct mschmd_file * files</div><div class="ttdoc">A list of all non-system files in the CHM helpfile. </div><div class="ttdef"><b>Definition:</b> mspack.h:1301</div></div>
145
- <div class="ttc" id="structmskwajd__header_html_afac7807b7f2ae032cd765ec7b875fef1"><div class="ttname"><a href="structmskwajd__header.html#afac7807b7f2ae032cd765ec7b875fef1">mskwajd_header::length</a></div><div class="ttdeci">off_t length</div><div class="ttdoc">The amount of uncompressed data in the file, or 0 if not present. </div><div class="ttdef"><b>Definition:</b> mspack.h:2024</div></div>
146
- <div class="ttc" id="structmskwaj__compressor_html_a2544f4ce0b393512509e1298b1368594"><div class="ttname"><a href="structmskwaj__compressor.html#a2544f4ce0b393512509e1298b1368594">mskwaj_compressor::last_error</a></div><div class="ttdeci">int(* last_error)(struct mschm_decompressor *self)</div><div class="ttdoc">Returns the error code set by the most recently called method. </div><div class="ttdef"><b>Definition:</b> mspack.h:2146</div></div>
147
- <div class="ttc" id="structmshlp__compressor_html_a74080b8a522b2b793df2bd0cbaedb144"><div class="ttname"><a href="structmshlp__compressor.html#a74080b8a522b2b793df2bd0cbaedb144">mshlp_compressor::dummy</a></div><div class="ttdeci">int dummy</div><div class="ttdef"><b>Definition:</b> mspack.h:1743</div></div>
148
- <div class="ttc" id="structmscabd__file_html_ab73696396840d7ed60dc2d376461e036"><div class="ttname"><a href="structmscabd__file.html#ab73696396840d7ed60dc2d376461e036">mscabd_file::time_h</a></div><div class="ttdeci">char time_h</div><div class="ttdoc">File&amp;#39;s last modified time, hour field. </div><div class="ttdef"><b>Definition:</b> mspack.h:898</div></div>
149
- <div class="ttc" id="mspack_8h_html_a2194442b6f887014905c2f59e43213f7"><div class="ttname"><a href="mspack_8h.html#a2194442b6f887014905c2f59e43213f7">mspack_version</a></div><div class="ttdeci">int mspack_version(int entity)</div><div class="ttdoc">Enquire about the binary compatibility version of a specific interface in the library. </div></div>
150
- <div class="ttc" id="structmscabd__file_html"><div class="ttname"><a href="structmscabd__file.html">mscabd_file</a></div><div class="ttdoc">A structure which represents a single file in a cabinet or cabinet set. </div><div class="ttdef"><b>Definition:</b> mspack.h:863</div></div>
151
- <div class="ttc" id="structmscabd__folder_html_a6256ca9a2ee93dbbaa2124146cbad18e"><div class="ttname"><a href="structmscabd__folder.html#a6256ca9a2ee93dbbaa2124146cbad18e">mscabd_folder::next</a></div><div class="ttdeci">struct mscabd_folder * next</div><div class="ttdoc">A pointer to the next folder in this cabinet or cabinet set, or NULL if this is the final folder...</div><div class="ttdef"><b>Definition:</b> mspack.h:811</div></div>
152
- <div class="ttc" id="structmschmd__header_html_ab3ce14be6b72650d65644c74d9d430d8"><div class="ttname"><a href="structmschmd__header.html#ab3ce14be6b72650d65644c74d9d430d8">mschmd_header::first_pmgl</a></div><div class="ttdeci">unsigned int first_pmgl</div><div class="ttdoc">The number of the first PMGL chunk. </div><div class="ttdef"><b>Definition:</b> mspack.h:1350</div></div>
153
- <div class="ttc" id="structmschmd__file_html"><div class="ttname"><a href="structmschmd__file.html">mschmd_file</a></div><div class="ttdoc">A structure which represents a file stored in a CHM helpfile. </div><div class="ttdef"><b>Definition:</b> mspack.h:1370</div></div>
154
- <div class="ttc" id="structmscabd__file_html_afd4e4b89ac6ca11a08f45a1582de024b"><div class="ttname"><a href="structmscabd__file.html#afd4e4b89ac6ca11a08f45a1582de024b">mscabd_file::date_m</a></div><div class="ttdeci">char date_m</div><div class="ttdoc">File&amp;#39;s last modified date, month field. </div><div class="ttdef"><b>Definition:</b> mspack.h:907</div></div>
155
- <div class="ttc" id="structmschmd__header_html_ae68d7261646d8ab18f1191a47d4f5161"><div class="ttname"><a href="structmschmd__header.html#ae68d7261646d8ab18f1191a47d4f5161">mschmd_header::num_chunks</a></div><div class="ttdeci">unsigned int num_chunks</div><div class="ttdoc">The number of PMGL/PMGI directory chunks in this CHM helpfile. </div><div class="ttdef"><b>Definition:</b> mspack.h:1321</div></div>
156
- <div class="ttc" id="structmschmd__header_html_ad1322c4778bd1690b2a20766c01e5024"><div class="ttname"><a href="structmschmd__header.html#ad1322c4778bd1690b2a20766c01e5024">mschmd_header::chunk_size</a></div><div class="ttdeci">unsigned int chunk_size</div><div class="ttdoc">The size of each PMGL/PMGI chunk, in bytes. </div><div class="ttdef"><b>Definition:</b> mspack.h:1324</div></div>
157
- <div class="ttc" id="structmscab__decompressor_html"><div class="ttname"><a href="structmscab__decompressor.html">mscab_decompressor</a></div><div class="ttdoc">A decompressor for .CAB (Microsoft Cabinet) files. </div><div class="ttdef"><b>Definition:</b> mspack.h:957</div></div>
158
- <div class="ttc" id="structmschmd__header_html_a4931f8fa07c04da9a2fbf30c7e59cbda"><div class="ttname"><a href="structmschmd__header.html#a4931f8fa07c04da9a2fbf30c7e59cbda">mschmd_header::last_pmgl</a></div><div class="ttdeci">unsigned int last_pmgl</div><div class="ttdoc">The number of the last PMGL chunk. </div><div class="ttdef"><b>Definition:</b> mspack.h:1356</div></div>
159
- <div class="ttc" id="structmschmd__header_html_a273b8a0f48ba7d9c3ffb01426585925c"><div class="ttname"><a href="structmschmd__header.html#a273b8a0f48ba7d9c3ffb01426585925c">mschmd_header::version</a></div><div class="ttdeci">unsigned int version</div><div class="ttdoc">The version of the CHM file format used in this file. </div><div class="ttdef"><b>Definition:</b> mspack.h:1274</div></div>
160
- <div class="ttc" id="structmscabd__cabinet_html_abe1b8a6ccc9eeeebf2a454bfbe2d4a1a"><div class="ttname"><a href="structmscabd__cabinet.html#abe1b8a6ccc9eeeebf2a454bfbe2d4a1a">mscabd_cabinet::nextname</a></div><div class="ttdeci">char * nextname</div><div class="ttdoc">The filename of the next cabinet in a cabinet set, or NULL. </div><div class="ttdef"><b>Definition:</b> mspack.h:730</div></div>
161
- <div class="ttc" id="structmsoab__decompressor_html_a53c879fea969edc9d0b03fc35fcc23e5"><div class="ttname"><a href="structmsoab__decompressor.html#a53c879fea969edc9d0b03fc35fcc23e5">msoab_decompressor::set_param</a></div><div class="ttdeci">int(* set_param)(struct msoab_decompressor *self, int param, int value)</div><div class="ttdoc">Sets an OAB decompression engine parameter. </div><div class="ttdef"><b>Definition:</b> mspack.h:2372</div></div>
162
- <div class="ttc" id="mspack_8h_html_a23263871d8dc8d64830e8ff827d6e32d"><div class="ttname"><a href="mspack_8h.html#a23263871d8dc8d64830e8ff827d6e32d">mspack_destroy_cab_compressor</a></div><div class="ttdeci">void mspack_destroy_cab_compressor(struct mscab_compressor *self)</div><div class="ttdoc">Destroys an existing CAB compressor. </div></div>
163
- <div class="ttc" id="structmschmd__file_html_ab8c413e3759fae57732a09e7060c1225"><div class="ttname"><a href="structmschmd__file.html#ab8c413e3759fae57732a09e7060c1225">mschmd_file::section</a></div><div class="ttdeci">struct mschmd_section * section</div><div class="ttdoc">A pointer to the section that this file is located in. </div><div class="ttdef"><b>Definition:</b> mspack.h:1381</div></div>
164
- <div class="ttc" id="structmscab__decompressor_html_a52ce4ec6de535a4cee0432ce897124ca"><div class="ttname"><a href="structmscab__decompressor.html#a52ce4ec6de535a4cee0432ce897124ca">mscab_decompressor::last_error</a></div><div class="ttdeci">int(* last_error)(struct mscab_decompressor *self)</div><div class="ttdoc">Returns the error code set by the most recently called method. </div><div class="ttdef"><b>Definition:</b> mspack.h:1179</div></div>
165
- <div class="ttc" id="structmscabd__file_html_ad05e4a3fc108988cabbc918a53afd25a"><div class="ttname"><a href="structmscabd__file.html#ad05e4a3fc108988cabbc918a53afd25a">mscabd_file::time_s</a></div><div class="ttdeci">char time_s</div><div class="ttdoc">File&amp;#39;s last modified time, second field. </div><div class="ttdef"><b>Definition:</b> mspack.h:902</div></div>
166
- <div class="ttc" id="structmschmd__header_html"><div class="ttname"><a href="structmschmd__header.html">mschmd_header</a></div><div class="ttdoc">A structure which represents a CHM helpfile. </div><div class="ttdef"><b>Definition:</b> mspack.h:1272</div></div>
167
- <div class="ttc" id="structmscabd__cabinet_html_ae3ab25aa910ea50dca515659848ab5dc"><div class="ttname"><a href="structmscabd__cabinet.html#ae3ab25aa910ea50dca515659848ab5dc">mscabd_cabinet::nextcab</a></div><div class="ttdeci">struct mscabd_cabinet * nextcab</div><div class="ttdoc">The next cabinet in a cabinet set, or NULL. </div><div class="ttdef"><b>Definition:</b> mspack.h:724</div></div>
168
- <div class="ttc" id="structmschmd__file_html_a95fd0339c2cca86fe152924ac1777521"><div class="ttname"><a href="structmschmd__file.html#a95fd0339c2cca86fe152924ac1777521">mschmd_file::length</a></div><div class="ttdeci">off_t length</div><div class="ttdoc">The length of this file, in bytes. </div><div class="ttdef"><b>Definition:</b> mspack.h:1387</div></div>
169
- <div class="ttc" id="structmscabd__cabinet_html"><div class="ttname"><a href="structmscabd__cabinet.html">mscabd_cabinet</a></div><div class="ttdoc">A structure which represents a single cabinet file. </div><div class="ttdef"><b>Definition:</b> mspack.h:699</div></div>
170
- <div class="ttc" id="structmscabd__cabinet_html_a28b565bad65980597c4db3e7d91f1be2"><div class="ttname"><a href="structmscabd__cabinet.html#a28b565bad65980597c4db3e7d91f1be2">mscabd_cabinet::set_index</a></div><div class="ttdeci">unsigned short set_index</div><div class="ttdoc">The index number of the cabinet within the set. </div><div class="ttdef"><b>Definition:</b> mspack.h:759</div></div>
171
- <div class="ttc" id="structmschmc__file_html_a11c5bd77b0142d3c3a94c5a24126e030"><div class="ttname"><a href="structmschmc__file.html#a11c5bd77b0142d3c3a94c5a24126e030">mschmc_file::section</a></div><div class="ttdeci">int section</div><div class="ttdoc">One of MSCHMC_ENDLIST, MSCHMC_UNCOMP or MSCHMC_MSCOMP. </div><div class="ttdef"><b>Definition:</b> mspack.h:1194</div></div>
172
- <div class="ttc" id="structmskwajd__header_html_a67205e9e87199ec6ce1e1d6569cd077c"><div class="ttname"><a href="structmskwajd__header.html#a67205e9e87199ec6ce1e1d6569cd077c">mskwajd_header::extra</a></div><div class="ttdeci">char * extra</div><div class="ttdoc">extra uncompressed data (usually text) in the header. </div><div class="ttdef"><b>Definition:</b> mspack.h:2032</div></div>
173
- <div class="ttc" id="structmschmd__header_html_a01db28807e9a802d2bb876a44a9dd588"><div class="ttname"><a href="structmschmd__header.html#a01db28807e9a802d2bb876a44a9dd588">mschmd_header::dir_offset</a></div><div class="ttdeci">off_t dir_offset</div><div class="ttdoc">The file offset of the first PMGL/PMGI directory chunk. </div><div class="ttdef"><b>Definition:</b> mspack.h:1318</div></div>
174
- <div class="ttc" id="structmskwajd__header_html_a1f6bdf2cdb6bf2425327eb3c8a480564"><div class="ttname"><a href="structmskwajd__header.html#a1f6bdf2cdb6bf2425327eb3c8a480564">mskwajd_header::filename</a></div><div class="ttdeci">char * filename</div><div class="ttdoc">output filename, or NULL if not present </div><div class="ttdef"><b>Definition:</b> mspack.h:2027</div></div>
175
- <div class="ttc" id="mspack_8h_html_ae1d6e6754279bad79e73af8fab761f50"><div class="ttname"><a href="mspack_8h.html#ae1d6e6754279bad79e73af8fab761f50">mspack_destroy_kwaj_decompressor</a></div><div class="ttdeci">void mspack_destroy_kwaj_decompressor(struct mskwaj_decompressor *self)</div><div class="ttdoc">Destroys an existing KWAJ decompressor. </div></div>
176
- <div class="ttc" id="structmsszdd__compressor_html"><div class="ttname"><a href="structmsszdd__compressor.html">msszdd_compressor</a></div><div class="ttdoc">A compressor for the SZDD file format. </div><div class="ttdef"><b>Definition:</b> mspack.h:1792</div></div>
177
- <div class="ttc" id="structmschmd__header_html_a59ebd608e30b578dd5bb4cd9ceaf9bcb"><div class="ttname"><a href="structmschmd__header.html#a59ebd608e30b578dd5bb4cd9ceaf9bcb">mschmd_header::chunk_cache</a></div><div class="ttdeci">unsigned char ** chunk_cache</div><div class="ttdoc">A cache of loaded chunks, filled in by mschm_decoder::fast_find(). </div><div class="ttdef"><b>Definition:</b> mspack.h:1362</div></div>
178
- <div class="ttc" id="mspack_8h_html_a9964981ec0e6f49814301101e1708f95"><div class="ttname"><a href="mspack_8h.html#a9964981ec0e6f49814301101e1708f95">mspack_create_cab_decompressor</a></div><div class="ttdeci">struct mscab_decompressor * mspack_create_cab_decompressor(struct mspack_system *sys)</div><div class="ttdoc">Creates a new CAB decompressor. </div></div>
179
- <div class="ttc" id="structmscabd__cabinet_html_a8e37f9e7834660a3b752e7c0f9a0da06"><div class="ttname"><a href="structmscabd__cabinet.html#a8e37f9e7834660a3b752e7c0f9a0da06">mscabd_cabinet::filename</a></div><div class="ttdeci">const char * filename</div><div class="ttdoc">The filename of the cabinet. </div><div class="ttdef"><b>Definition:</b> mspack.h:712</div></div>
180
- <div class="ttc" id="structmshlp__compressor_html"><div class="ttname"><a href="structmshlp__compressor.html">mshlp_compressor</a></div><div class="ttdoc">TODO. </div><div class="ttdef"><b>Definition:</b> mspack.h:1742</div></div>
181
- <div class="ttc" id="structmslit__compressor_html"><div class="ttname"><a href="structmslit__compressor.html">mslit_compressor</a></div><div class="ttdoc">TODO. </div><div class="ttdef"><b>Definition:</b> mspack.h:1729</div></div>
182
- <div class="ttc" id="structmsszddd__header_html_a294653b0ad896a0fa736457dbe455341"><div class="ttname"><a href="structmsszddd__header.html#a294653b0ad896a0fa736457dbe455341">msszddd_header::length</a></div><div class="ttdeci">off_t length</div><div class="ttdoc">The amount of data in the SZDD file once uncompressed. </div><div class="ttdef"><b>Definition:</b> mspack.h:1773</div></div>
183
- <div class="ttc" id="structmshlp__decompressor_html_a13b976323edd534de4e3d9dda435893d"><div class="ttname"><a href="structmshlp__decompressor.html#a13b976323edd534de4e3d9dda435893d">mshlp_decompressor::dummy</a></div><div class="ttdeci">int dummy</div><div class="ttdef"><b>Definition:</b> mspack.h:1748</div></div>
184
- <div class="ttc" id="structmschmd__file_html_aacdeb0d33c01266beb36e0b48af09055"><div class="ttname"><a href="structmschmd__file.html#aacdeb0d33c01266beb36e0b48af09055">mschmd_file::next</a></div><div class="ttdeci">struct mschmd_file * next</div><div class="ttdoc">A pointer to the next file in the list, or NULL if this is the final file. </div><div class="ttdef"><b>Definition:</b> mspack.h:1375</div></div>
185
- <div class="ttc" id="structmslit__compressor_html_a04223946071ea2bc11b0ae297d54c787"><div class="ttname"><a href="structmslit__compressor.html#a04223946071ea2bc11b0ae297d54c787">mslit_compressor::dummy</a></div><div class="ttdeci">int dummy</div><div class="ttdef"><b>Definition:</b> mspack.h:1730</div></div>
186
- <div class="ttc" id="structmsszdd__compressor_html_a3fc065bde8543e1feaf020823af0d86f"><div class="ttname"><a href="structmsszdd__compressor.html#a3fc065bde8543e1feaf020823af0d86f">msszdd_compressor::set_param</a></div><div class="ttdeci">int(* set_param)(struct msszdd_compressor *self, int param, int value)</div><div class="ttdoc">Sets an SZDD compression engine parameter. </div><div class="ttdef"><b>Definition:</b> mspack.h:1854</div></div>
187
- <div class="ttc" id="structmschmd__header_html_a278de93cf1e7de82ab32189ce190dd46"><div class="ttname"><a href="structmschmd__header.html#a278de93cf1e7de82ab32189ce190dd46">mschmd_header::filename</a></div><div class="ttdeci">const char * filename</div><div class="ttdoc">The filename of the CHM helpfile. </div><div class="ttdef"><b>Definition:</b> mspack.h:1295</div></div>
188
- <div class="ttc" id="mspack_8h_html_a019e19331c50d80a4d424395671219f2"><div class="ttname"><a href="mspack_8h.html#a019e19331c50d80a4d424395671219f2">mspack_create_lit_decompressor</a></div><div class="ttdeci">struct mslit_decompressor * mspack_create_lit_decompressor(struct mspack_system *sys)</div><div class="ttdoc">Creates a new LIT decompressor. </div></div>
189
- <div class="ttc" id="structmscabd__file_html_ac76a68d9aa60c907a0d8c997c070dd2a"><div class="ttname"><a href="structmscabd__file.html#ac76a68d9aa60c907a0d8c997c070dd2a">mscabd_file::date_y</a></div><div class="ttdeci">int date_y</div><div class="ttdoc">File&amp;#39;s last modified date, year field. </div><div class="ttdef"><b>Definition:</b> mspack.h:909</div></div>
190
- <div class="ttc" id="structmskwaj__compressor_html_a08116e61b95130886597f0b69de1301a"><div class="ttname"><a href="structmskwaj__compressor.html#a08116e61b95130886597f0b69de1301a">mskwaj_compressor::set_filename</a></div><div class="ttdeci">int(* set_filename)(struct mskwaj_compressor *self, const char *filename)</div><div class="ttdoc">Sets the original filename of the file before compression, which will be stored in the header of the ...</div><div class="ttdef"><b>Definition:</b> mspack.h:2114</div></div>
191
- <div class="ttc" id="structmskwajd__header_html_a3e715be39a9022552f730948d13085ab"><div class="ttname"><a href="structmskwajd__header.html#a3e715be39a9022552f730948d13085ab">mskwajd_header::comp_type</a></div><div class="ttdeci">unsigned short comp_type</div><div class="ttdoc">The compression type; should be one of MSKWAJ_COMP_NONE, MSKWAJ_COMP_XOR, MSKWAJ_COMP_SZDD or MSKWAJ_...</div><div class="ttdef"><b>Definition:</b> mspack.h:2015</div></div>
192
- <div class="ttc" id="structmscabd__cabinet_html_a6c5b8d1773e14b12c70d64d5b8867b01"><div class="ttname"><a href="structmscabd__cabinet.html#a6c5b8d1773e14b12c70d64d5b8867b01">mscabd_cabinet::flags</a></div><div class="ttdeci">int flags</div><div class="ttdoc">Header flags. </div><div class="ttdef"><b>Definition:</b> mspack.h:784</div></div>
193
- <div class="ttc" id="structmscabd__file_html_a703b6af6638b34ff9905de6ca13a77df"><div class="ttname"><a href="structmscabd__file.html#a703b6af6638b34ff9905de6ca13a77df">mscabd_file::time_m</a></div><div class="ttdeci">char time_m</div><div class="ttdoc">File&amp;#39;s last modified time, minute field. </div><div class="ttdef"><b>Definition:</b> mspack.h:900</div></div>
194
- <div class="ttc" id="structmskwaj__compressor_html_a49771cf61d7c3c0df2aca939494350e6"><div class="ttname"><a href="structmskwaj__compressor.html#a49771cf61d7c3c0df2aca939494350e6">mskwaj_compressor::set_extra_data</a></div><div class="ttdeci">int(* set_extra_data)(struct mskwaj_compressor *self, void *data, size_t bytes)</div><div class="ttdoc">Sets arbitrary data that will be stored in the header of the output file, uncompressed. </div><div class="ttdef"><b>Definition:</b> mspack.h:2134</div></div>
195
- <div class="ttc" id="structmschmc__file_html_aee5c029845e1ce6112c8d050d9b23fda"><div class="ttname"><a href="structmschmc__file.html#aee5c029845e1ce6112c8d050d9b23fda">mschmc_file::length</a></div><div class="ttdeci">off_t length</div><div class="ttdoc">The length of the file, in bytes. </div><div class="ttdef"><b>Definition:</b> mspack.h:1207</div></div>
196
- <div class="ttc" id="structmscab__compressor_html_a7ee33e593f24d9ef35a78cc3d304a769"><div class="ttname"><a href="structmscab__compressor.html#a7ee33e593f24d9ef35a78cc3d304a769">mscab_compressor::dummy</a></div><div class="ttdeci">int dummy</div><div class="ttdef"><b>Definition:</b> mspack.h:947</div></div>
197
- <div class="ttc" id="structmschm__compressor_html_ad855497c3aeafa9a2e1631e8d8d03dd9"><div class="ttname"><a href="structmschm__compressor.html#ad855497c3aeafa9a2e1631e8d8d03dd9">mschm_compressor::last_error</a></div><div class="ttdeci">int(* last_error)(struct mschm_compressor *self)</div><div class="ttdoc">Returns the error code set by the most recently called method. </div><div class="ttdef"><b>Definition:</b> mspack.h:1567</div></div>
198
- <div class="ttc" id="structmslit__decompressor_html_af8297f10d4276bf794a290261ad9f0fe"><div class="ttname"><a href="structmslit__decompressor.html#af8297f10d4276bf794a290261ad9f0fe">mslit_decompressor::dummy</a></div><div class="ttdeci">int dummy</div><div class="ttdef"><b>Definition:</b> mspack.h:1735</div></div>
199
- <div class="ttc" id="structmschmd__section_html_a68d357e2150602c47a9cd5c4b5ce0465"><div class="ttname"><a href="structmschmd__section.html#a68d357e2150602c47a9cd5c4b5ce0465">mschmd_section::id</a></div><div class="ttdeci">unsigned int id</div><div class="ttdoc">The section ID. </div><div class="ttdef"><b>Definition:</b> mspack.h:1227</div></div>
200
- <div class="ttc" id="structmskwajd__header_html_a150dd01507ddef57a4d77c5f4f9914fa"><div class="ttname"><a href="structmskwajd__header.html#a150dd01507ddef57a4d77c5f4f9914fa">mskwajd_header::extra_length</a></div><div class="ttdeci">unsigned short extra_length</div><div class="ttdoc">length of extra uncompressed data in the header </div><div class="ttdef"><b>Definition:</b> mspack.h:2035</div></div>
201
- <div class="ttc" id="structmschmd__header_html_a40832bde453ea8dc77a07d51c81813d3"><div class="ttname"><a href="structmschmd__header.html#a40832bde453ea8dc77a07d51c81813d3">mschmd_header::depth</a></div><div class="ttdeci">unsigned int depth</div><div class="ttdoc">The depth of the index tree. </div><div class="ttdef"><b>Definition:</b> mspack.h:1337</div></div>
202
- <div class="ttc" id="structmsszddd__header_html"><div class="ttname"><a href="structmsszddd__header.html">msszddd_header</a></div><div class="ttdoc">A structure which represents an SZDD compressed file. </div><div class="ttdef"><b>Definition:</b> mspack.h:1768</div></div>
203
- <div class="ttc" id="structmschm__compressor_html_a2b72f4c7596071a07b0668cb66fac872"><div class="ttname"><a href="structmschm__compressor.html#a2b72f4c7596071a07b0668cb66fac872">mschm_compressor::set_param</a></div><div class="ttdeci">int(* set_param)(struct mschm_compressor *self, int param, int value)</div><div class="ttdoc">Sets a CHM compression engine parameter. </div><div class="ttdef"><b>Definition:</b> mspack.h:1555</div></div>
204
- <div class="ttc" id="structmschmd__sec__mscompressed_html_a5d5406ee96c11e096301bdbae930c744"><div class="ttname"><a href="structmschmd__sec__mscompressed.html#a5d5406ee96c11e096301bdbae930c744">mschmd_sec_mscompressed::control</a></div><div class="ttdeci">struct mschmd_file * control</div><div class="ttdoc">A pointer to the file which contains the LZX control data. </div><div class="ttdef"><b>Definition:</b> mspack.h:1256</div></div>
205
- <div class="ttc" id="mspack_8h_html_a50c0799f5c1a128672c024a05c79cac8"><div class="ttname"><a href="mspack_8h.html#a50c0799f5c1a128672c024a05c79cac8">mspack_destroy_chm_decompressor</a></div><div class="ttdeci">void mspack_destroy_chm_decompressor(struct mschm_decompressor *self)</div><div class="ttdoc">Destroys an existing CHM decompressor. </div></div>
206
- <div class="ttc" id="structmscabd__cabinet_html_a40c125ef3821bb1b85baee532c9154ac"><div class="ttname"><a href="structmscabd__cabinet.html#a40c125ef3821bb1b85baee532c9154ac">mscabd_cabinet::folders</a></div><div class="ttdeci">struct mscabd_folder * folders</div><div class="ttdoc">A list of all folders in the cabinet or cabinet set. </div><div class="ttdef"><b>Definition:</b> mspack.h:746</div></div>
207
- <div class="ttc" id="structmskwajd__header_html_ace36762bb483edb0f8365b6463708d72"><div class="ttname"><a href="structmskwajd__header.html#ace36762bb483edb0f8365b6463708d72">mskwajd_header::data_offset</a></div><div class="ttdeci">off_t data_offset</div><div class="ttdoc">The offset in the file where the compressed data stream begins. </div><div class="ttdef"><b>Definition:</b> mspack.h:2018</div></div>
208
- <div class="ttc" id="structmskwaj__decompressor_html"><div class="ttname"><a href="structmskwaj__decompressor.html">mskwaj_decompressor</a></div><div class="ttdoc">A decompressor for KWAJ compressed files. </div><div class="ttdef"><b>Definition:</b> mspack.h:2156</div></div>
209
- <div class="ttc" id="structmschmc__file_html_ab2979483302579db0111fe5cff3d4eb5"><div class="ttname"><a href="structmschmc__file.html#ab2979483302579db0111fe5cff3d4eb5">mschmc_file::chm_filename</a></div><div class="ttdeci">char * chm_filename</div><div class="ttdoc">The full path and filename of the file within the CHM helpfile, a UTF-1 encoded null-terminated strin...</div><div class="ttdef"><b>Definition:</b> mspack.h:1202</div></div>
210
- <div class="ttc" id="mspack_8h_html_a13e9100ea34b16693cacb92b212ccadc"><div class="ttname"><a href="mspack_8h.html#a13e9100ea34b16693cacb92b212ccadc">mspack_destroy_cab_decompressor</a></div><div class="ttdeci">void mspack_destroy_cab_decompressor(struct mscab_decompressor *self)</div><div class="ttdoc">Destroys an existing CAB decompressor. </div></div>
211
- <div class="ttc" id="mspack_8h_html_af4a43cbea4701b86cf5c0363b46b7c71"><div class="ttname"><a href="mspack_8h.html#af4a43cbea4701b86cf5c0363b46b7c71">mspack_destroy_oab_compressor</a></div><div class="ttdeci">void mspack_destroy_oab_compressor(struct msoab_compressor *self)</div><div class="ttdoc">Destroys an existing OAB compressor. </div></div>
212
- <div class="ttc" id="structmschmd__sec__uncompressed_html"><div class="ttname"><a href="structmschmd__sec__uncompressed.html">mschmd_sec_uncompressed</a></div><div class="ttdoc">A structure which represents the uncompressed section of a CHM helpfile. </div><div class="ttdef"><b>Definition:</b> mspack.h:1235</div></div>
213
- <div class="ttc" id="structmscabd__cabinet_html_ac0afbad793dbd0e21802bb2dafbcc0f1"><div class="ttname"><a href="structmscabd__cabinet.html#ac0afbad793dbd0e21802bb2dafbcc0f1">mscabd_cabinet::base_offset</a></div><div class="ttdeci">off_t base_offset</div><div class="ttdoc">The file offset of cabinet within the physical file it resides in. </div><div class="ttdef"><b>Definition:</b> mspack.h:715</div></div>
214
- <div class="ttc" id="structmscabd__cabinet_html_a668bc2203adb0d6ac101eef1e53149d9"><div class="ttname"><a href="structmscabd__cabinet.html#a668bc2203adb0d6ac101eef1e53149d9">mscabd_cabinet::header_resv</a></div><div class="ttdeci">unsigned short header_resv</div><div class="ttdoc">The number of bytes reserved in the header area of the cabinet. </div><div class="ttdef"><b>Definition:</b> mspack.h:771</div></div>
215
- <div class="ttc" id="mspack_8h_html_a0bd8ff2ddc155f3bf5ee4f47fdde7f4a"><div class="ttname"><a href="mspack_8h.html#a0bd8ff2ddc155f3bf5ee4f47fdde7f4a">mspack_create_hlp_decompressor</a></div><div class="ttdeci">struct mshlp_decompressor * mspack_create_hlp_decompressor(struct mspack_system *sys)</div><div class="ttdoc">Creates a new HLP decompressor. </div></div>
216
- <div class="ttc" id="mspack_8h_html_aa214297f2f85b56b2a556bf560dba9d2"><div class="ttname"><a href="mspack_8h.html#aa214297f2f85b56b2a556bf560dba9d2">mspack_create_kwaj_compressor</a></div><div class="ttdeci">struct mskwaj_compressor * mspack_create_kwaj_compressor(struct mspack_system *sys)</div><div class="ttdoc">Creates a new KWAJ compressor. </div></div>
217
- <div class="ttc" id="mspack_8h_html_aca7c302fbca1abd91c6d00df191e221c"><div class="ttname"><a href="mspack_8h.html#aca7c302fbca1abd91c6d00df191e221c">mspack_destroy_kwaj_compressor</a></div><div class="ttdeci">void mspack_destroy_kwaj_compressor(struct mskwaj_compressor *self)</div><div class="ttdoc">Destroys an existing KWAJ compressor. </div></div>
218
- <div class="ttc" id="structmscabd__file_html_a251c5d90bd1cf85114987f6da0070714"><div class="ttname"><a href="structmscabd__file.html#a251c5d90bd1cf85114987f6da0070714">mscabd_file::length</a></div><div class="ttdeci">unsigned int length</div><div class="ttdoc">The uncompressed length of the file, in bytes. </div><div class="ttdef"><b>Definition:</b> mspack.h:881</div></div>
219
- <div class="ttc" id="structmschmd__header_html_ab844b2365051d8c99ce41ae0a0f4c106"><div class="ttname"><a href="structmschmd__header.html#ab844b2365051d8c99ce41ae0a0f4c106">mschmd_header::timestamp</a></div><div class="ttdeci">unsigned int timestamp</div><div class="ttdoc">The &quot;timestamp&quot; of the CHM helpfile. </div><div class="ttdef"><b>Definition:</b> mspack.h:1283</div></div>
220
- <div class="ttc" id="structmscabd__file_html_adc04f6cf28d372d235d141a0fd2de73a"><div class="ttname"><a href="structmscabd__file.html#adc04f6cf28d372d235d141a0fd2de73a">mscabd_file::next</a></div><div class="ttdeci">struct mscabd_file * next</div><div class="ttdoc">The next file in the cabinet or cabinet set, or NULL if this is the final file. </div><div class="ttdef"><b>Definition:</b> mspack.h:868</div></div>
221
- <div class="ttc" id="structmscabd__cabinet_html_a8714457bd807fe92e42fe2dcaf664796"><div class="ttname"><a href="structmscabd__cabinet.html#a8714457bd807fe92e42fe2dcaf664796">mscabd_cabinet::length</a></div><div class="ttdeci">unsigned int length</div><div class="ttdoc">The length of the cabinet file in bytes. </div><div class="ttdef"><b>Definition:</b> mspack.h:718</div></div>
222
- <div class="ttc" id="structmschm__compressor_html"><div class="ttname"><a href="structmschm__compressor.html">mschm_compressor</a></div><div class="ttdoc">A compressor for .CHM (Microsoft HTMLHelp) files. </div><div class="ttdef"><b>Definition:</b> mspack.h:1418</div></div>
223
- <div class="ttc" id="structmschmc__file_html_a60dcb986ab210e9f9674daaa813c6ca6"><div class="ttname"><a href="structmschmc__file.html#a60dcb986ab210e9f9674daaa813c6ca6">mschmc_file::filename</a></div><div class="ttdeci">const char * filename</div><div class="ttdoc">The filename of the source file that will be added to the CHM. </div><div class="ttdef"><b>Definition:</b> mspack.h:1198</div></div>
224
- <div class="ttc" id="structmskwajd__header_html_a62b3852fcc90781f98a1017b32679fab"><div class="ttname"><a href="structmskwajd__header.html#a62b3852fcc90781f98a1017b32679fab">mskwajd_header::headers</a></div><div class="ttdeci">int headers</div><div class="ttdoc">Flags indicating which optional headers were included. </div><div class="ttdef"><b>Definition:</b> mspack.h:2021</div></div>
225
- <div class="ttc" id="mspack_8h_html_a9b371f1ecbb8423ffe509e3a023ba962"><div class="ttname"><a href="mspack_8h.html#a9b371f1ecbb8423ffe509e3a023ba962">mspack_create_oab_compressor</a></div><div class="ttdeci">struct msoab_compressor * mspack_create_oab_compressor(struct mspack_system *sys)</div><div class="ttdoc">Creates a new OAB compressor. </div></div>
226
- <div class="ttc" id="mspack_8h_html_a9a0e8aca53554d477705d81569968ca1"><div class="ttname"><a href="mspack_8h.html#a9a0e8aca53554d477705d81569968ca1">mspack_destroy_oab_decompressor</a></div><div class="ttdeci">void mspack_destroy_oab_decompressor(struct msoab_decompressor *self)</div><div class="ttdoc">Destroys an existing OAB decompressor. </div></div>
227
- <div class="ttc" id="mspack_8h_html_a05c47f6572f3966d9495810332356b94"><div class="ttname"><a href="mspack_8h.html#a05c47f6572f3966d9495810332356b94">mspack_destroy_chm_compressor</a></div><div class="ttdeci">void mspack_destroy_chm_compressor(struct mschm_compressor *self)</div><div class="ttdoc">Destroys an existing CHM compressor. </div></div>
228
- <div class="ttc" id="structmschmd__header_html_aec85ac3ed9362995fb8aaf98dc515f03"><div class="ttname"><a href="structmschmd__header.html#aec85ac3ed9362995fb8aaf98dc515f03">mschmd_header::density</a></div><div class="ttdeci">unsigned int density</div><div class="ttdoc">The &quot;density&quot; of the quick-reference section in PMGL/PMGI chunks. </div><div class="ttdef"><b>Definition:</b> mspack.h:1327</div></div>
229
- <div class="ttc" id="structmsoab__compressor_html_a71b9f0660e87cd9d62eceb26613f265d"><div class="ttname"><a href="structmsoab__compressor.html#a71b9f0660e87cd9d62eceb26613f265d">msoab_compressor::compress_incremental</a></div><div class="ttdeci">int(* compress_incremental)(struct msoab_compressor *self, const char *input, const char *base, const char *output)</div><div class="ttdoc">Generate a compressed incremental OAB patch file. </div><div class="ttdef"><b>Definition:</b> mspack.h:2294</div></div>
230
- </div><!-- fragment --></div><!-- contents -->
231
- <!-- start footer part -->
232
- <hr class="footer"/><address class="footer"><small>
233
- Generated by &#160;<a href="http://www.doxygen.org/index.html">
234
- <img class="footer" src="doxygen.png" alt="doxygen"/>
235
- </a> 1.8.13
236
- </small></address>
237
- </body>
238
- </html>