libmspack 0.10.1 → 0.10.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (355) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +37 -0
  3. data/.gitignore +2 -0
  4. data/ext/Rakefile +1 -1
  5. data/ext/x86_64-linux/libmspack.so +0 -0
  6. data/ext/x86_64-windows/mspack.dll +0 -0
  7. data/lib/libmspack/version.rb +1 -1
  8. data/lib/libmspack.rb +1 -1
  9. data/libmspack.gemspec +1 -1
  10. metadata +6 -348
  11. data/.travis.yml +0 -5
  12. data/ext/i386-windows/libmspack.dll +0 -0
  13. data/ext/libmspack/doc/Doxyfile +0 -9
  14. data/ext/libmspack/doc/Makefile +0 -8
  15. data/ext/libmspack/doc/html/annotated.html +0 -104
  16. data/ext/libmspack/doc/html/bc_s.png +0 -0
  17. data/ext/libmspack/doc/html/bdwn.png +0 -0
  18. data/ext/libmspack/doc/html/classes.html +0 -85
  19. data/ext/libmspack/doc/html/closed.png +0 -0
  20. data/ext/libmspack/doc/html/dir_f4d90282fe865f947a460986b93b960a.html +0 -83
  21. data/ext/libmspack/doc/html/doc.png +0 -0
  22. data/ext/libmspack/doc/html/doxygen.css +0 -1596
  23. data/ext/libmspack/doc/html/doxygen.png +0 -0
  24. data/ext/libmspack/doc/html/dynsections.js +0 -97
  25. data/ext/libmspack/doc/html/files.html +0 -78
  26. data/ext/libmspack/doc/html/folderclosed.png +0 -0
  27. data/ext/libmspack/doc/html/folderopen.png +0 -0
  28. data/ext/libmspack/doc/html/functions.html +0 -454
  29. data/ext/libmspack/doc/html/functions_vars.html +0 -454
  30. data/ext/libmspack/doc/html/globals.html +0 -406
  31. data/ext/libmspack/doc/html/globals_defs.html +0 -316
  32. data/ext/libmspack/doc/html/globals_func.html +0 -161
  33. data/ext/libmspack/doc/html/graph_legend.html +0 -102
  34. data/ext/libmspack/doc/html/graph_legend.md5 +0 -1
  35. data/ext/libmspack/doc/html/graph_legend.png +0 -0
  36. data/ext/libmspack/doc/html/index.html +0 -167
  37. data/ext/libmspack/doc/html/jquery.js +0 -87
  38. data/ext/libmspack/doc/html/menu.js +0 -26
  39. data/ext/libmspack/doc/html/menudata.js +0 -56
  40. data/ext/libmspack/doc/html/mspack_8h.html +0 -2664
  41. data/ext/libmspack/doc/html/mspack_8h__incl.map +0 -2
  42. data/ext/libmspack/doc/html/mspack_8h__incl.md5 +0 -1
  43. data/ext/libmspack/doc/html/mspack_8h__incl.png +0 -0
  44. data/ext/libmspack/doc/html/mspack_8h_source.html +0 -238
  45. data/ext/libmspack/doc/html/nav_f.png +0 -0
  46. data/ext/libmspack/doc/html/nav_g.png +0 -0
  47. data/ext/libmspack/doc/html/nav_h.png +0 -0
  48. data/ext/libmspack/doc/html/open.png +0 -0
  49. data/ext/libmspack/doc/html/search/all_0.html +0 -26
  50. data/ext/libmspack/doc/html/search/all_0.js +0 -6
  51. data/ext/libmspack/doc/html/search/all_1.html +0 -26
  52. data/ext/libmspack/doc/html/search/all_1.js +0 -5
  53. data/ext/libmspack/doc/html/search/all_10.html +0 -26
  54. data/ext/libmspack/doc/html/search/all_10.js +0 -8
  55. data/ext/libmspack/doc/html/search/all_11.html +0 -26
  56. data/ext/libmspack/doc/html/search/all_11.js +0 -4
  57. data/ext/libmspack/doc/html/search/all_12.html +0 -26
  58. data/ext/libmspack/doc/html/search/all_12.js +0 -4
  59. data/ext/libmspack/doc/html/search/all_13.html +0 -26
  60. data/ext/libmspack/doc/html/search/all_13.js +0 -4
  61. data/ext/libmspack/doc/html/search/all_2.html +0 -26
  62. data/ext/libmspack/doc/html/search/all_2.js +0 -14
  63. data/ext/libmspack/doc/html/search/all_3.html +0 -26
  64. data/ext/libmspack/doc/html/search/all_3.js +0 -13
  65. data/ext/libmspack/doc/html/search/all_4.html +0 -26
  66. data/ext/libmspack/doc/html/search/all_4.js +0 -6
  67. data/ext/libmspack/doc/html/search/all_5.html +0 -26
  68. data/ext/libmspack/doc/html/search/all_5.js +0 -13
  69. data/ext/libmspack/doc/html/search/all_6.html +0 -26
  70. data/ext/libmspack/doc/html/search/all_6.js +0 -4
  71. data/ext/libmspack/doc/html/search/all_7.html +0 -26
  72. data/ext/libmspack/doc/html/search/all_7.js +0 -5
  73. data/ext/libmspack/doc/html/search/all_8.html +0 -26
  74. data/ext/libmspack/doc/html/search/all_8.js +0 -5
  75. data/ext/libmspack/doc/html/search/all_9.html +0 -26
  76. data/ext/libmspack/doc/html/search/all_9.js +0 -7
  77. data/ext/libmspack/doc/html/search/all_a.html +0 -26
  78. data/ext/libmspack/doc/html/search/all_a.js +0 -144
  79. data/ext/libmspack/doc/html/search/all_b.html +0 -26
  80. data/ext/libmspack/doc/html/search/all_b.js +0 -10
  81. data/ext/libmspack/doc/html/search/all_c.html +0 -26
  82. data/ext/libmspack/doc/html/search/all_c.js +0 -5
  83. data/ext/libmspack/doc/html/search/all_d.html +0 -26
  84. data/ext/libmspack/doc/html/search/all_d.js +0 -7
  85. data/ext/libmspack/doc/html/search/all_e.html +0 -26
  86. data/ext/libmspack/doc/html/search/all_e.js +0 -5
  87. data/ext/libmspack/doc/html/search/all_f.html +0 -26
  88. data/ext/libmspack/doc/html/search/all_f.js +0 -15
  89. data/ext/libmspack/doc/html/search/classes_0.html +0 -26
  90. data/ext/libmspack/doc/html/search/classes_0.js +0 -30
  91. data/ext/libmspack/doc/html/search/close.png +0 -0
  92. data/ext/libmspack/doc/html/search/defines_0.html +0 -26
  93. data/ext/libmspack/doc/html/search/defines_0.js +0 -84
  94. data/ext/libmspack/doc/html/search/files_0.html +0 -26
  95. data/ext/libmspack/doc/html/search/files_0.js +0 -4
  96. data/ext/libmspack/doc/html/search/functions_0.html +0 -26
  97. data/ext/libmspack/doc/html/search/functions_0.js +0 -33
  98. data/ext/libmspack/doc/html/search/mag_sel.png +0 -0
  99. data/ext/libmspack/doc/html/search/nomatches.html +0 -12
  100. data/ext/libmspack/doc/html/search/search.css +0 -271
  101. data/ext/libmspack/doc/html/search/search.js +0 -791
  102. data/ext/libmspack/doc/html/search/search_l.png +0 -0
  103. data/ext/libmspack/doc/html/search/search_m.png +0 -0
  104. data/ext/libmspack/doc/html/search/search_r.png +0 -0
  105. data/ext/libmspack/doc/html/search/searchdata.js +0 -30
  106. data/ext/libmspack/doc/html/search/variables_0.html +0 -26
  107. data/ext/libmspack/doc/html/search/variables_0.js +0 -6
  108. data/ext/libmspack/doc/html/search/variables_1.html +0 -26
  109. data/ext/libmspack/doc/html/search/variables_1.js +0 -5
  110. data/ext/libmspack/doc/html/search/variables_10.html +0 -26
  111. data/ext/libmspack/doc/html/search/variables_10.js +0 -8
  112. data/ext/libmspack/doc/html/search/variables_11.html +0 -26
  113. data/ext/libmspack/doc/html/search/variables_11.js +0 -4
  114. data/ext/libmspack/doc/html/search/variables_12.html +0 -26
  115. data/ext/libmspack/doc/html/search/variables_12.js +0 -4
  116. data/ext/libmspack/doc/html/search/variables_13.html +0 -26
  117. data/ext/libmspack/doc/html/search/variables_13.js +0 -4
  118. data/ext/libmspack/doc/html/search/variables_2.html +0 -26
  119. data/ext/libmspack/doc/html/search/variables_2.js +0 -14
  120. data/ext/libmspack/doc/html/search/variables_3.html +0 -26
  121. data/ext/libmspack/doc/html/search/variables_3.js +0 -13
  122. data/ext/libmspack/doc/html/search/variables_4.html +0 -26
  123. data/ext/libmspack/doc/html/search/variables_4.js +0 -6
  124. data/ext/libmspack/doc/html/search/variables_5.html +0 -26
  125. data/ext/libmspack/doc/html/search/variables_5.js +0 -13
  126. data/ext/libmspack/doc/html/search/variables_6.html +0 -26
  127. data/ext/libmspack/doc/html/search/variables_6.js +0 -4
  128. data/ext/libmspack/doc/html/search/variables_7.html +0 -26
  129. data/ext/libmspack/doc/html/search/variables_7.js +0 -5
  130. data/ext/libmspack/doc/html/search/variables_8.html +0 -26
  131. data/ext/libmspack/doc/html/search/variables_8.js +0 -5
  132. data/ext/libmspack/doc/html/search/variables_9.html +0 -26
  133. data/ext/libmspack/doc/html/search/variables_9.js +0 -7
  134. data/ext/libmspack/doc/html/search/variables_a.html +0 -26
  135. data/ext/libmspack/doc/html/search/variables_a.js +0 -5
  136. data/ext/libmspack/doc/html/search/variables_b.html +0 -26
  137. data/ext/libmspack/doc/html/search/variables_b.js +0 -10
  138. data/ext/libmspack/doc/html/search/variables_c.html +0 -26
  139. data/ext/libmspack/doc/html/search/variables_c.js +0 -5
  140. data/ext/libmspack/doc/html/search/variables_d.html +0 -26
  141. data/ext/libmspack/doc/html/search/variables_d.js +0 -7
  142. data/ext/libmspack/doc/html/search/variables_e.html +0 -26
  143. data/ext/libmspack/doc/html/search/variables_e.js +0 -5
  144. data/ext/libmspack/doc/html/search/variables_f.html +0 -26
  145. data/ext/libmspack/doc/html/search/variables_f.js +0 -15
  146. data/ext/libmspack/doc/html/splitbar.png +0 -0
  147. data/ext/libmspack/doc/html/structmscab__compressor.html +0 -106
  148. data/ext/libmspack/doc/html/structmscab__decompressor.html +0 -361
  149. data/ext/libmspack/doc/html/structmscab__decompressor__coll__graph.map +0 -5
  150. data/ext/libmspack/doc/html/structmscab__decompressor__coll__graph.md5 +0 -1
  151. data/ext/libmspack/doc/html/structmscab__decompressor__coll__graph.png +0 -0
  152. data/ext/libmspack/doc/html/structmscabd__cabinet.html +0 -418
  153. data/ext/libmspack/doc/html/structmscabd__cabinet__coll__graph.map +0 -4
  154. data/ext/libmspack/doc/html/structmscabd__cabinet__coll__graph.md5 +0 -1
  155. data/ext/libmspack/doc/html/structmscabd__cabinet__coll__graph.png +0 -0
  156. data/ext/libmspack/doc/html/structmscabd__file.html +0 -337
  157. data/ext/libmspack/doc/html/structmscabd__file__coll__graph.map +0 -3
  158. data/ext/libmspack/doc/html/structmscabd__file__coll__graph.md5 +0 -1
  159. data/ext/libmspack/doc/html/structmscabd__file__coll__graph.png +0 -0
  160. data/ext/libmspack/doc/html/structmscabd__folder.html +0 -159
  161. data/ext/libmspack/doc/html/structmscabd__folder__coll__graph.map +0 -2
  162. data/ext/libmspack/doc/html/structmscabd__folder__coll__graph.md5 +0 -1
  163. data/ext/libmspack/doc/html/structmscabd__folder__coll__graph.png +0 -0
  164. data/ext/libmspack/doc/html/structmschm__compressor.html +0 -226
  165. data/ext/libmspack/doc/html/structmschm__decompressor.html +0 -299
  166. data/ext/libmspack/doc/html/structmschm__decompressor__coll__graph.map +0 -7
  167. data/ext/libmspack/doc/html/structmschm__decompressor__coll__graph.md5 +0 -1
  168. data/ext/libmspack/doc/html/structmschm__decompressor__coll__graph.png +0 -0
  169. data/ext/libmspack/doc/html/structmschmc__file.html +0 -169
  170. data/ext/libmspack/doc/html/structmschmd__file.html +0 -198
  171. data/ext/libmspack/doc/html/structmschmd__file__coll__graph.map +0 -6
  172. data/ext/libmspack/doc/html/structmschmd__file__coll__graph.md5 +0 -1
  173. data/ext/libmspack/doc/html/structmschmd__file__coll__graph.png +0 -0
  174. data/ext/libmspack/doc/html/structmschmd__header.html +0 -458
  175. data/ext/libmspack/doc/html/structmschmd__header__coll__graph.map +0 -6
  176. data/ext/libmspack/doc/html/structmschmd__header__coll__graph.md5 +0 -1
  177. data/ext/libmspack/doc/html/structmschmd__header__coll__graph.png +0 -0
  178. data/ext/libmspack/doc/html/structmschmd__sec__mscompressed.html +0 -198
  179. data/ext/libmspack/doc/html/structmschmd__sec__mscompressed__coll__graph.map +0 -6
  180. data/ext/libmspack/doc/html/structmschmd__sec__mscompressed__coll__graph.md5 +0 -1
  181. data/ext/libmspack/doc/html/structmschmd__sec__mscompressed__coll__graph.png +0 -0
  182. data/ext/libmspack/doc/html/structmschmd__sec__uncompressed.html +0 -140
  183. data/ext/libmspack/doc/html/structmschmd__sec__uncompressed__coll__graph.map +0 -6
  184. data/ext/libmspack/doc/html/structmschmd__sec__uncompressed__coll__graph.md5 +0 -1
  185. data/ext/libmspack/doc/html/structmschmd__sec__uncompressed__coll__graph.png +0 -0
  186. data/ext/libmspack/doc/html/structmschmd__section.html +0 -142
  187. data/ext/libmspack/doc/html/structmschmd__section__coll__graph.map +0 -6
  188. data/ext/libmspack/doc/html/structmschmd__section__coll__graph.md5 +0 -1
  189. data/ext/libmspack/doc/html/structmschmd__section__coll__graph.png +0 -0
  190. data/ext/libmspack/doc/html/structmshlp__compressor.html +0 -106
  191. data/ext/libmspack/doc/html/structmshlp__decompressor.html +0 -106
  192. data/ext/libmspack/doc/html/structmskwaj__compressor.html +0 -243
  193. data/ext/libmspack/doc/html/structmskwaj__decompressor.html +0 -245
  194. data/ext/libmspack/doc/html/structmskwaj__decompressor__coll__graph.map +0 -3
  195. data/ext/libmspack/doc/html/structmskwaj__decompressor__coll__graph.md5 +0 -1
  196. data/ext/libmspack/doc/html/structmskwaj__decompressor__coll__graph.png +0 -0
  197. data/ext/libmspack/doc/html/structmskwajd__header.html +0 -225
  198. data/ext/libmspack/doc/html/structmslit__compressor.html +0 -106
  199. data/ext/libmspack/doc/html/structmslit__decompressor.html +0 -106
  200. data/ext/libmspack/doc/html/structmsoab__compressor.html +0 -151
  201. data/ext/libmspack/doc/html/structmsoab__decompressor.html +0 -184
  202. data/ext/libmspack/doc/html/structmspack__file.html +0 -107
  203. data/ext/libmspack/doc/html/structmspack__system.html +0 -404
  204. data/ext/libmspack/doc/html/structmspack__system__coll__graph.map +0 -3
  205. data/ext/libmspack/doc/html/structmspack__system__coll__graph.md5 +0 -1
  206. data/ext/libmspack/doc/html/structmspack__system__coll__graph.png +0 -0
  207. data/ext/libmspack/doc/html/structmsszdd__compressor.html +0 -186
  208. data/ext/libmspack/doc/html/structmsszdd__decompressor.html +0 -246
  209. data/ext/libmspack/doc/html/structmsszdd__decompressor__coll__graph.map +0 -3
  210. data/ext/libmspack/doc/html/structmsszdd__decompressor__coll__graph.md5 +0 -1
  211. data/ext/libmspack/doc/html/structmsszdd__decompressor__coll__graph.png +0 -0
  212. data/ext/libmspack/doc/html/structmsszddd__header.html +0 -149
  213. data/ext/libmspack/doc/html/sync_off.png +0 -0
  214. data/ext/libmspack/doc/html/sync_on.png +0 -0
  215. data/ext/libmspack/doc/html/szdd_kwaj_format.html +0 -331
  216. data/ext/libmspack/doc/html/tab_a.png +0 -0
  217. data/ext/libmspack/doc/html/tab_b.png +0 -0
  218. data/ext/libmspack/doc/html/tab_h.png +0 -0
  219. data/ext/libmspack/doc/html/tab_s.png +0 -0
  220. data/ext/libmspack/doc/html/tabs.css +0 -1
  221. data/ext/libmspack/doc/szdd_kwaj_format.html +0 -331
  222. data/ext/libmspack/examples/cabd_memory.c +0 -179
  223. data/ext/libmspack/examples/cabrip.c +0 -85
  224. data/ext/libmspack/examples/chmextract.c +0 -121
  225. data/ext/libmspack/examples/msexpand.c +0 -48
  226. data/ext/libmspack/examples/multifh.c +0 -435
  227. data/ext/libmspack/examples/oabextract.c +0 -41
  228. data/ext/libmspack/test/cabd_md5.c +0 -161
  229. data/ext/libmspack/test/cabd_test.c +0 -468
  230. data/ext/libmspack/test/chmd_find.c +0 -95
  231. data/ext/libmspack/test/chmd_md5.c +0 -67
  232. data/ext/libmspack/test/chmd_order.c +0 -144
  233. data/ext/libmspack/test/chmd_test.c +0 -134
  234. data/ext/libmspack/test/chminfo.c +0 -285
  235. data/ext/libmspack/test/error.h +0 -22
  236. data/ext/libmspack/test/kwajd_test.c +0 -119
  237. data/ext/libmspack/test/md5.c +0 -450
  238. data/ext/libmspack/test/md5.h +0 -166
  239. data/ext/libmspack/test/md5_fh.h +0 -123
  240. data/ext/libmspack/test/test_files/cabd/1.pl +0 -84
  241. data/ext/libmspack/test/test_files/cabd/2.pl +0 -75
  242. data/ext/libmspack/test/test_files/cabd/bad_folderindex.cab +0 -0
  243. data/ext/libmspack/test/test_files/cabd/bad_nofiles.cab +0 -0
  244. data/ext/libmspack/test/test_files/cabd/bad_nofolders.cab +0 -0
  245. data/ext/libmspack/test/test_files/cabd/bad_signature.cab +0 -0
  246. data/ext/libmspack/test/test_files/cabd/cve-2010-2800-mszip-infinite-loop.cab +0 -0
  247. data/ext/libmspack/test/test_files/cabd/cve-2014-9556-qtm-infinite-loop.cab +0 -0
  248. data/ext/libmspack/test/test_files/cabd/cve-2014-9732-folders-segfault.cab +0 -0
  249. data/ext/libmspack/test/test_files/cabd/cve-2015-4470-mszip-over-read.cab +0 -0
  250. data/ext/libmspack/test/test_files/cabd/cve-2015-4471-lzx-under-read.cab +0 -0
  251. data/ext/libmspack/test/test_files/cabd/filename-read-violation-1.cab +0 -0
  252. data/ext/libmspack/test/test_files/cabd/filename-read-violation-2.cab +0 -0
  253. data/ext/libmspack/test/test_files/cabd/filename-read-violation-3.cab +0 -0
  254. data/ext/libmspack/test/test_files/cabd/filename-read-violation-4.cab +0 -0
  255. data/ext/libmspack/test/test_files/cabd/lzx-main-tree-no-lengths.cab +0 -0
  256. data/ext/libmspack/test/test_files/cabd/lzx-premature-matches.cab +0 -0
  257. data/ext/libmspack/test/test_files/cabd/mszip_lzx_qtm.cab +0 -0
  258. data/ext/libmspack/test/test_files/cabd/multi_basic_pt1.cab +0 -0
  259. data/ext/libmspack/test/test_files/cabd/multi_basic_pt2.cab +0 -0
  260. data/ext/libmspack/test/test_files/cabd/multi_basic_pt3.cab +0 -0
  261. data/ext/libmspack/test/test_files/cabd/multi_basic_pt4.cab +0 -0
  262. data/ext/libmspack/test/test_files/cabd/multi_basic_pt5.cab +0 -0
  263. data/ext/libmspack/test/test_files/cabd/normal_255c_filename.cab +0 -0
  264. data/ext/libmspack/test/test_files/cabd/normal_2files_1folder.cab +0 -0
  265. data/ext/libmspack/test/test_files/cabd/normal_2files_2folders.cab +0 -0
  266. data/ext/libmspack/test/test_files/cabd/partial_nodata.cab +0 -0
  267. data/ext/libmspack/test/test_files/cabd/partial_nofiles.cab +0 -0
  268. data/ext/libmspack/test/test_files/cabd/partial_nofolder.cab +0 -0
  269. data/ext/libmspack/test/test_files/cabd/partial_shortextheader.cab +0 -0
  270. data/ext/libmspack/test/test_files/cabd/partial_shortfile1.cab +0 -0
  271. data/ext/libmspack/test/test_files/cabd/partial_shortfile2.cab +0 -0
  272. data/ext/libmspack/test/test_files/cabd/partial_shortfolder.cab +0 -0
  273. data/ext/libmspack/test/test_files/cabd/partial_shortheader.cab +0 -0
  274. data/ext/libmspack/test/test_files/cabd/partial_str_nofname.cab +0 -0
  275. data/ext/libmspack/test/test_files/cabd/partial_str_noninfo.cab +0 -0
  276. data/ext/libmspack/test/test_files/cabd/partial_str_nonname.cab +0 -0
  277. data/ext/libmspack/test/test_files/cabd/partial_str_nopinfo.cab +0 -0
  278. data/ext/libmspack/test/test_files/cabd/partial_str_nopname.cab +0 -0
  279. data/ext/libmspack/test/test_files/cabd/partial_str_shortfname.cab +0 -0
  280. data/ext/libmspack/test/test_files/cabd/partial_str_shortninfo.cab +0 -0
  281. data/ext/libmspack/test/test_files/cabd/partial_str_shortnname.cab +0 -0
  282. data/ext/libmspack/test/test_files/cabd/partial_str_shortpinfo.cab +0 -0
  283. data/ext/libmspack/test/test_files/cabd/partial_str_shortpname.cab +0 -0
  284. data/ext/libmspack/test/test_files/cabd/qtm-max-size-block.cab +0 -0
  285. data/ext/libmspack/test/test_files/cabd/reserve_---.cab +0 -0
  286. data/ext/libmspack/test/test_files/cabd/reserve_--D.cab +0 -0
  287. data/ext/libmspack/test/test_files/cabd/reserve_-F-.cab +0 -0
  288. data/ext/libmspack/test/test_files/cabd/reserve_-FD.cab +0 -0
  289. data/ext/libmspack/test/test_files/cabd/reserve_H--.cab +0 -0
  290. data/ext/libmspack/test/test_files/cabd/reserve_H-D.cab +0 -0
  291. data/ext/libmspack/test/test_files/cabd/reserve_HF-.cab +0 -0
  292. data/ext/libmspack/test/test_files/cabd/reserve_HFD.cab +0 -0
  293. data/ext/libmspack/test/test_files/cabd/search_basic.cab +0 -0
  294. data/ext/libmspack/test/test_files/cabd/search_tricky1.cab +0 -0
  295. data/ext/libmspack/test/test_files/chmd/blank-filenames.chm +0 -0
  296. data/ext/libmspack/test/test_files/chmd/cve-2015-4467-reset-interval-zero.chm.xor +0 -0
  297. data/ext/libmspack/test/test_files/chmd/cve-2015-4468-namelen-bounds.chm +0 -0
  298. data/ext/libmspack/test/test_files/chmd/cve-2015-4469-namelen-bounds.chm +0 -0
  299. data/ext/libmspack/test/test_files/chmd/cve-2015-4472-namelen-bounds.chm +0 -0
  300. data/ext/libmspack/test/test_files/chmd/cve-2017-6419-lzx-negative-spaninfo.chm +0 -0
  301. data/ext/libmspack/test/test_files/chmd/short-system-filenames.chm +0 -0
  302. data/ext/libmspack/test/test_files/kwajd/f00.kwj +0 -0
  303. data/ext/libmspack/test/test_files/kwajd/f01.kwj +0 -0
  304. data/ext/libmspack/test/test_files/kwajd/f02.kwj +0 -0
  305. data/ext/libmspack/test/test_files/kwajd/f03.kwj +0 -0
  306. data/ext/libmspack/test/test_files/kwajd/f04.kwj +0 -0
  307. data/ext/libmspack/test/test_files/kwajd/f10.kwj +0 -0
  308. data/ext/libmspack/test/test_files/kwajd/f11.kwj +0 -0
  309. data/ext/libmspack/test/test_files/kwajd/f12.kwj +0 -0
  310. data/ext/libmspack/test/test_files/kwajd/f13.kwj +0 -0
  311. data/ext/libmspack/test/test_files/kwajd/f14.kwj +0 -0
  312. data/ext/libmspack/test/test_files/kwajd/f20.kwj +0 -0
  313. data/ext/libmspack/test/test_files/kwajd/f21.kwj +0 -0
  314. data/ext/libmspack/test/test_files/kwajd/f22.kwj +0 -0
  315. data/ext/libmspack/test/test_files/kwajd/f23.kwj +0 -0
  316. data/ext/libmspack/test/test_files/kwajd/f24.kwj +0 -0
  317. data/ext/libmspack/test/test_files/kwajd/f30.kwj +0 -0
  318. data/ext/libmspack/test/test_files/kwajd/f31.kwj +0 -0
  319. data/ext/libmspack/test/test_files/kwajd/f32.kwj +0 -0
  320. data/ext/libmspack/test/test_files/kwajd/f33.kwj +0 -0
  321. data/ext/libmspack/test/test_files/kwajd/f34.kwj +0 -0
  322. data/ext/libmspack/test/test_files/kwajd/f40.kwj +0 -0
  323. data/ext/libmspack/test/test_files/kwajd/f41.kwj +0 -0
  324. data/ext/libmspack/test/test_files/kwajd/f42.kwj +0 -0
  325. data/ext/libmspack/test/test_files/kwajd/f43.kwj +0 -0
  326. data/ext/libmspack/test/test_files/kwajd/f44.kwj +0 -0
  327. data/ext/libmspack/test/test_files/kwajd/f50.kwj +0 -0
  328. data/ext/libmspack/test/test_files/kwajd/f51.kwj +0 -0
  329. data/ext/libmspack/test/test_files/kwajd/f52.kwj +0 -0
  330. data/ext/libmspack/test/test_files/kwajd/f53.kwj +0 -0
  331. data/ext/libmspack/test/test_files/kwajd/f54.kwj +0 -0
  332. data/ext/libmspack/test/test_files/kwajd/f60.kwj +0 -0
  333. data/ext/libmspack/test/test_files/kwajd/f61.kwj +0 -0
  334. data/ext/libmspack/test/test_files/kwajd/f62.kwj +0 -0
  335. data/ext/libmspack/test/test_files/kwajd/f63.kwj +0 -0
  336. data/ext/libmspack/test/test_files/kwajd/f64.kwj +0 -0
  337. data/ext/libmspack/test/test_files/kwajd/f70.kwj +0 -0
  338. data/ext/libmspack/test/test_files/kwajd/f71.kwj +0 -0
  339. data/ext/libmspack/test/test_files/kwajd/f72.kwj +0 -0
  340. data/ext/libmspack/test/test_files/kwajd/f73.kwj +0 -0
  341. data/ext/libmspack/test/test_files/kwajd/f74.kwj +0 -0
  342. data/ext/libmspack/test/test_files/kwajd/f80.kwj +0 -0
  343. data/ext/libmspack/test/test_files/kwajd/f81.kwj +0 -0
  344. data/ext/libmspack/test/test_files/kwajd/f82.kwj +0 -0
  345. data/ext/libmspack/test/test_files/kwajd/f83.kwj +0 -0
  346. data/ext/libmspack/test/test_files/kwajd/f84.kwj +0 -0
  347. data/ext/libmspack/test/test_files/kwajd/f90.kwj +0 -0
  348. data/ext/libmspack/test/test_files/kwajd/f91.kwj +0 -0
  349. data/ext/libmspack/test/test_files/kwajd/f92.kwj +0 -0
  350. data/ext/libmspack/test/test_files/kwajd/f93.kwj +0 -0
  351. data/ext/libmspack/test/test_files/kwajd/f94.kwj +0 -0
  352. data/ext/libmspack/test/test_files/kwajd/make.pl +0 -17
  353. data/ext/x86_64-linux/liblibmspack.so +0 -0
  354. data/ext/x86_64-windows/libmspack.dll +0 -0
  355. data/ext/x86_64-windows-msys/libmspack.dll +0 -0
@@ -1,791 +0,0 @@
1
- function convertToId(search)
2
- {
3
- var result = '';
4
- for (i=0;i<search.length;i++)
5
- {
6
- var c = search.charAt(i);
7
- var cn = c.charCodeAt(0);
8
- if (c.match(/[a-z0-9\u0080-\uFFFF]/))
9
- {
10
- result+=c;
11
- }
12
- else if (cn<16)
13
- {
14
- result+="_0"+cn.toString(16);
15
- }
16
- else
17
- {
18
- result+="_"+cn.toString(16);
19
- }
20
- }
21
- return result;
22
- }
23
-
24
- function getXPos(item)
25
- {
26
- var x = 0;
27
- if (item.offsetWidth)
28
- {
29
- while (item && item!=document.body)
30
- {
31
- x += item.offsetLeft;
32
- item = item.offsetParent;
33
- }
34
- }
35
- return x;
36
- }
37
-
38
- function getYPos(item)
39
- {
40
- var y = 0;
41
- if (item.offsetWidth)
42
- {
43
- while (item && item!=document.body)
44
- {
45
- y += item.offsetTop;
46
- item = item.offsetParent;
47
- }
48
- }
49
- return y;
50
- }
51
-
52
- /* A class handling everything associated with the search panel.
53
-
54
- Parameters:
55
- name - The name of the global variable that will be
56
- storing this instance. Is needed to be able to set timeouts.
57
- resultPath - path to use for external files
58
- */
59
- function SearchBox(name, resultsPath, inFrame, label)
60
- {
61
- if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); }
62
-
63
- // ---------- Instance variables
64
- this.name = name;
65
- this.resultsPath = resultsPath;
66
- this.keyTimeout = 0;
67
- this.keyTimeoutLength = 500;
68
- this.closeSelectionTimeout = 300;
69
- this.lastSearchValue = "";
70
- this.lastResultsPage = "";
71
- this.hideTimeout = 0;
72
- this.searchIndex = 0;
73
- this.searchActive = false;
74
- this.insideFrame = inFrame;
75
- this.searchLabel = label;
76
-
77
- // ----------- DOM Elements
78
-
79
- this.DOMSearchField = function()
80
- { return document.getElementById("MSearchField"); }
81
-
82
- this.DOMSearchSelect = function()
83
- { return document.getElementById("MSearchSelect"); }
84
-
85
- this.DOMSearchSelectWindow = function()
86
- { return document.getElementById("MSearchSelectWindow"); }
87
-
88
- this.DOMPopupSearchResults = function()
89
- { return document.getElementById("MSearchResults"); }
90
-
91
- this.DOMPopupSearchResultsWindow = function()
92
- { return document.getElementById("MSearchResultsWindow"); }
93
-
94
- this.DOMSearchClose = function()
95
- { return document.getElementById("MSearchClose"); }
96
-
97
- this.DOMSearchBox = function()
98
- { return document.getElementById("MSearchBox"); }
99
-
100
- // ------------ Event Handlers
101
-
102
- // Called when focus is added or removed from the search field.
103
- this.OnSearchFieldFocus = function(isActive)
104
- {
105
- this.Activate(isActive);
106
- }
107
-
108
- this.OnSearchSelectShow = function()
109
- {
110
- var searchSelectWindow = this.DOMSearchSelectWindow();
111
- var searchField = this.DOMSearchSelect();
112
-
113
- if (this.insideFrame)
114
- {
115
- var left = getXPos(searchField);
116
- var top = getYPos(searchField);
117
- left += searchField.offsetWidth + 6;
118
- top += searchField.offsetHeight;
119
-
120
- // show search selection popup
121
- searchSelectWindow.style.display='block';
122
- left -= searchSelectWindow.offsetWidth;
123
- searchSelectWindow.style.left = left + 'px';
124
- searchSelectWindow.style.top = top + 'px';
125
- }
126
- else
127
- {
128
- var left = getXPos(searchField);
129
- var top = getYPos(searchField);
130
- top += searchField.offsetHeight;
131
-
132
- // show search selection popup
133
- searchSelectWindow.style.display='block';
134
- searchSelectWindow.style.left = left + 'px';
135
- searchSelectWindow.style.top = top + 'px';
136
- }
137
-
138
- // stop selection hide timer
139
- if (this.hideTimeout)
140
- {
141
- clearTimeout(this.hideTimeout);
142
- this.hideTimeout=0;
143
- }
144
- return false; // to avoid "image drag" default event
145
- }
146
-
147
- this.OnSearchSelectHide = function()
148
- {
149
- this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
150
- this.closeSelectionTimeout);
151
- }
152
-
153
- // Called when the content of the search field is changed.
154
- this.OnSearchFieldChange = function(evt)
155
- {
156
- if (this.keyTimeout) // kill running timer
157
- {
158
- clearTimeout(this.keyTimeout);
159
- this.keyTimeout = 0;
160
- }
161
-
162
- var e = (evt) ? evt : window.event; // for IE
163
- if (e.keyCode==40 || e.keyCode==13)
164
- {
165
- if (e.shiftKey==1)
166
- {
167
- this.OnSearchSelectShow();
168
- var win=this.DOMSearchSelectWindow();
169
- for (i=0;i<win.childNodes.length;i++)
170
- {
171
- var child = win.childNodes[i]; // get span within a
172
- if (child.className=='SelectItem')
173
- {
174
- child.focus();
175
- return;
176
- }
177
- }
178
- return;
179
- }
180
- else if (window.frames.MSearchResults.searchResults)
181
- {
182
- var elem = window.frames.MSearchResults.searchResults.NavNext(0);
183
- if (elem) elem.focus();
184
- }
185
- }
186
- else if (e.keyCode==27) // Escape out of the search field
187
- {
188
- this.DOMSearchField().blur();
189
- this.DOMPopupSearchResultsWindow().style.display = 'none';
190
- this.DOMSearchClose().style.display = 'none';
191
- this.lastSearchValue = '';
192
- this.Activate(false);
193
- return;
194
- }
195
-
196
- // strip whitespaces
197
- var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
198
-
199
- if (searchValue != this.lastSearchValue) // search value has changed
200
- {
201
- if (searchValue != "") // non-empty search
202
- {
203
- // set timer for search update
204
- this.keyTimeout = setTimeout(this.name + '.Search()',
205
- this.keyTimeoutLength);
206
- }
207
- else // empty search field
208
- {
209
- this.DOMPopupSearchResultsWindow().style.display = 'none';
210
- this.DOMSearchClose().style.display = 'none';
211
- this.lastSearchValue = '';
212
- }
213
- }
214
- }
215
-
216
- this.SelectItemCount = function(id)
217
- {
218
- var count=0;
219
- var win=this.DOMSearchSelectWindow();
220
- for (i=0;i<win.childNodes.length;i++)
221
- {
222
- var child = win.childNodes[i]; // get span within a
223
- if (child.className=='SelectItem')
224
- {
225
- count++;
226
- }
227
- }
228
- return count;
229
- }
230
-
231
- this.SelectItemSet = function(id)
232
- {
233
- var i,j=0;
234
- var win=this.DOMSearchSelectWindow();
235
- for (i=0;i<win.childNodes.length;i++)
236
- {
237
- var child = win.childNodes[i]; // get span within a
238
- if (child.className=='SelectItem')
239
- {
240
- var node = child.firstChild;
241
- if (j==id)
242
- {
243
- node.innerHTML='&#8226;';
244
- }
245
- else
246
- {
247
- node.innerHTML='&#160;';
248
- }
249
- j++;
250
- }
251
- }
252
- }
253
-
254
- // Called when an search filter selection is made.
255
- // set item with index id as the active item
256
- this.OnSelectItem = function(id)
257
- {
258
- this.searchIndex = id;
259
- this.SelectItemSet(id);
260
- var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
261
- if (searchValue!="" && this.searchActive) // something was found -> do a search
262
- {
263
- this.Search();
264
- }
265
- }
266
-
267
- this.OnSearchSelectKey = function(evt)
268
- {
269
- var e = (evt) ? evt : window.event; // for IE
270
- if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
271
- {
272
- this.searchIndex++;
273
- this.OnSelectItem(this.searchIndex);
274
- }
275
- else if (e.keyCode==38 && this.searchIndex>0) // Up
276
- {
277
- this.searchIndex--;
278
- this.OnSelectItem(this.searchIndex);
279
- }
280
- else if (e.keyCode==13 || e.keyCode==27)
281
- {
282
- this.OnSelectItem(this.searchIndex);
283
- this.CloseSelectionWindow();
284
- this.DOMSearchField().focus();
285
- }
286
- return false;
287
- }
288
-
289
- // --------- Actions
290
-
291
- // Closes the results window.
292
- this.CloseResultsWindow = function()
293
- {
294
- this.DOMPopupSearchResultsWindow().style.display = 'none';
295
- this.DOMSearchClose().style.display = 'none';
296
- this.Activate(false);
297
- }
298
-
299
- this.CloseSelectionWindow = function()
300
- {
301
- this.DOMSearchSelectWindow().style.display = 'none';
302
- }
303
-
304
- // Performs a search.
305
- this.Search = function()
306
- {
307
- this.keyTimeout = 0;
308
-
309
- // strip leading whitespace
310
- var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
311
-
312
- var code = searchValue.toLowerCase().charCodeAt(0);
313
- var idxChar = searchValue.substr(0, 1).toLowerCase();
314
- if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
315
- {
316
- idxChar = searchValue.substr(0, 2);
317
- }
318
-
319
- var resultsPage;
320
- var resultsPageWithSearch;
321
- var hasResultsPage;
322
-
323
- var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
324
- if (idx!=-1)
325
- {
326
- var hexCode=idx.toString(16);
327
- resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
328
- resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
329
- hasResultsPage = true;
330
- }
331
- else // nothing available for this search term
332
- {
333
- resultsPage = this.resultsPath + '/nomatches.html';
334
- resultsPageWithSearch = resultsPage;
335
- hasResultsPage = false;
336
- }
337
-
338
- window.frames.MSearchResults.location = resultsPageWithSearch;
339
- var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
340
-
341
- if (domPopupSearchResultsWindow.style.display!='block')
342
- {
343
- var domSearchBox = this.DOMSearchBox();
344
- this.DOMSearchClose().style.display = 'inline';
345
- if (this.insideFrame)
346
- {
347
- var domPopupSearchResults = this.DOMPopupSearchResults();
348
- domPopupSearchResultsWindow.style.position = 'relative';
349
- domPopupSearchResultsWindow.style.display = 'block';
350
- var width = document.body.clientWidth - 8; // the -8 is for IE :-(
351
- domPopupSearchResultsWindow.style.width = width + 'px';
352
- domPopupSearchResults.style.width = width + 'px';
353
- }
354
- else
355
- {
356
- var domPopupSearchResults = this.DOMPopupSearchResults();
357
- var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
358
- var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1;
359
- domPopupSearchResultsWindow.style.display = 'block';
360
- left -= domPopupSearchResults.offsetWidth;
361
- domPopupSearchResultsWindow.style.top = top + 'px';
362
- domPopupSearchResultsWindow.style.left = left + 'px';
363
- }
364
- }
365
-
366
- this.lastSearchValue = searchValue;
367
- this.lastResultsPage = resultsPage;
368
- }
369
-
370
- // -------- Activation Functions
371
-
372
- // Activates or deactivates the search panel, resetting things to
373
- // their default values if necessary.
374
- this.Activate = function(isActive)
375
- {
376
- if (isActive || // open it
377
- this.DOMPopupSearchResultsWindow().style.display == 'block'
378
- )
379
- {
380
- this.DOMSearchBox().className = 'MSearchBoxActive';
381
-
382
- var searchField = this.DOMSearchField();
383
-
384
- if (searchField.value == this.searchLabel) // clear "Search" term upon entry
385
- {
386
- searchField.value = '';
387
- this.searchActive = true;
388
- }
389
- }
390
- else if (!isActive) // directly remove the panel
391
- {
392
- this.DOMSearchBox().className = 'MSearchBoxInactive';
393
- this.DOMSearchField().value = this.searchLabel;
394
- this.searchActive = false;
395
- this.lastSearchValue = ''
396
- this.lastResultsPage = '';
397
- }
398
- }
399
- }
400
-
401
- // -----------------------------------------------------------------------
402
-
403
- // The class that handles everything on the search results page.
404
- function SearchResults(name)
405
- {
406
- // The number of matches from the last run of <Search()>.
407
- this.lastMatchCount = 0;
408
- this.lastKey = 0;
409
- this.repeatOn = false;
410
-
411
- // Toggles the visibility of the passed element ID.
412
- this.FindChildElement = function(id)
413
- {
414
- var parentElement = document.getElementById(id);
415
- var element = parentElement.firstChild;
416
-
417
- while (element && element!=parentElement)
418
- {
419
- if (element.nodeName == 'DIV' && element.className == 'SRChildren')
420
- {
421
- return element;
422
- }
423
-
424
- if (element.nodeName == 'DIV' && element.hasChildNodes())
425
- {
426
- element = element.firstChild;
427
- }
428
- else if (element.nextSibling)
429
- {
430
- element = element.nextSibling;
431
- }
432
- else
433
- {
434
- do
435
- {
436
- element = element.parentNode;
437
- }
438
- while (element && element!=parentElement && !element.nextSibling);
439
-
440
- if (element && element!=parentElement)
441
- {
442
- element = element.nextSibling;
443
- }
444
- }
445
- }
446
- }
447
-
448
- this.Toggle = function(id)
449
- {
450
- var element = this.FindChildElement(id);
451
- if (element)
452
- {
453
- if (element.style.display == 'block')
454
- {
455
- element.style.display = 'none';
456
- }
457
- else
458
- {
459
- element.style.display = 'block';
460
- }
461
- }
462
- }
463
-
464
- // Searches for the passed string. If there is no parameter,
465
- // it takes it from the URL query.
466
- //
467
- // Always returns true, since other documents may try to call it
468
- // and that may or may not be possible.
469
- this.Search = function(search)
470
- {
471
- if (!search) // get search word from URL
472
- {
473
- search = window.location.search;
474
- search = search.substring(1); // Remove the leading '?'
475
- search = unescape(search);
476
- }
477
-
478
- search = search.replace(/^ +/, ""); // strip leading spaces
479
- search = search.replace(/ +$/, ""); // strip trailing spaces
480
- search = search.toLowerCase();
481
- search = convertToId(search);
482
-
483
- var resultRows = document.getElementsByTagName("div");
484
- var matches = 0;
485
-
486
- var i = 0;
487
- while (i < resultRows.length)
488
- {
489
- var row = resultRows.item(i);
490
- if (row.className == "SRResult")
491
- {
492
- var rowMatchName = row.id.toLowerCase();
493
- rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
494
-
495
- if (search.length<=rowMatchName.length &&
496
- rowMatchName.substr(0, search.length)==search)
497
- {
498
- row.style.display = 'block';
499
- matches++;
500
- }
501
- else
502
- {
503
- row.style.display = 'none';
504
- }
505
- }
506
- i++;
507
- }
508
- document.getElementById("Searching").style.display='none';
509
- if (matches == 0) // no results
510
- {
511
- document.getElementById("NoMatches").style.display='block';
512
- }
513
- else // at least one result
514
- {
515
- document.getElementById("NoMatches").style.display='none';
516
- }
517
- this.lastMatchCount = matches;
518
- return true;
519
- }
520
-
521
- // return the first item with index index or higher that is visible
522
- this.NavNext = function(index)
523
- {
524
- var focusItem;
525
- while (1)
526
- {
527
- var focusName = 'Item'+index;
528
- focusItem = document.getElementById(focusName);
529
- if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
530
- {
531
- break;
532
- }
533
- else if (!focusItem) // last element
534
- {
535
- break;
536
- }
537
- focusItem=null;
538
- index++;
539
- }
540
- return focusItem;
541
- }
542
-
543
- this.NavPrev = function(index)
544
- {
545
- var focusItem;
546
- while (1)
547
- {
548
- var focusName = 'Item'+index;
549
- focusItem = document.getElementById(focusName);
550
- if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
551
- {
552
- break;
553
- }
554
- else if (!focusItem) // last element
555
- {
556
- break;
557
- }
558
- focusItem=null;
559
- index--;
560
- }
561
- return focusItem;
562
- }
563
-
564
- this.ProcessKeys = function(e)
565
- {
566
- if (e.type == "keydown")
567
- {
568
- this.repeatOn = false;
569
- this.lastKey = e.keyCode;
570
- }
571
- else if (e.type == "keypress")
572
- {
573
- if (!this.repeatOn)
574
- {
575
- if (this.lastKey) this.repeatOn = true;
576
- return false; // ignore first keypress after keydown
577
- }
578
- }
579
- else if (e.type == "keyup")
580
- {
581
- this.lastKey = 0;
582
- this.repeatOn = false;
583
- }
584
- return this.lastKey!=0;
585
- }
586
-
587
- this.Nav = function(evt,itemIndex)
588
- {
589
- var e = (evt) ? evt : window.event; // for IE
590
- if (e.keyCode==13) return true;
591
- if (!this.ProcessKeys(e)) return false;
592
-
593
- if (this.lastKey==38) // Up
594
- {
595
- var newIndex = itemIndex-1;
596
- var focusItem = this.NavPrev(newIndex);
597
- if (focusItem)
598
- {
599
- var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
600
- if (child && child.style.display == 'block') // children visible
601
- {
602
- var n=0;
603
- var tmpElem;
604
- while (1) // search for last child
605
- {
606
- tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
607
- if (tmpElem)
608
- {
609
- focusItem = tmpElem;
610
- }
611
- else // found it!
612
- {
613
- break;
614
- }
615
- n++;
616
- }
617
- }
618
- }
619
- if (focusItem)
620
- {
621
- focusItem.focus();
622
- }
623
- else // return focus to search field
624
- {
625
- parent.document.getElementById("MSearchField").focus();
626
- }
627
- }
628
- else if (this.lastKey==40) // Down
629
- {
630
- var newIndex = itemIndex+1;
631
- var focusItem;
632
- var item = document.getElementById('Item'+itemIndex);
633
- var elem = this.FindChildElement(item.parentNode.parentNode.id);
634
- if (elem && elem.style.display == 'block') // children visible
635
- {
636
- focusItem = document.getElementById('Item'+itemIndex+'_c0');
637
- }
638
- if (!focusItem) focusItem = this.NavNext(newIndex);
639
- if (focusItem) focusItem.focus();
640
- }
641
- else if (this.lastKey==39) // Right
642
- {
643
- var item = document.getElementById('Item'+itemIndex);
644
- var elem = this.FindChildElement(item.parentNode.parentNode.id);
645
- if (elem) elem.style.display = 'block';
646
- }
647
- else if (this.lastKey==37) // Left
648
- {
649
- var item = document.getElementById('Item'+itemIndex);
650
- var elem = this.FindChildElement(item.parentNode.parentNode.id);
651
- if (elem) elem.style.display = 'none';
652
- }
653
- else if (this.lastKey==27) // Escape
654
- {
655
- parent.searchBox.CloseResultsWindow();
656
- parent.document.getElementById("MSearchField").focus();
657
- }
658
- else if (this.lastKey==13) // Enter
659
- {
660
- return true;
661
- }
662
- return false;
663
- }
664
-
665
- this.NavChild = function(evt,itemIndex,childIndex)
666
- {
667
- var e = (evt) ? evt : window.event; // for IE
668
- if (e.keyCode==13) return true;
669
- if (!this.ProcessKeys(e)) return false;
670
-
671
- if (this.lastKey==38) // Up
672
- {
673
- if (childIndex>0)
674
- {
675
- var newIndex = childIndex-1;
676
- document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
677
- }
678
- else // already at first child, jump to parent
679
- {
680
- document.getElementById('Item'+itemIndex).focus();
681
- }
682
- }
683
- else if (this.lastKey==40) // Down
684
- {
685
- var newIndex = childIndex+1;
686
- var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
687
- if (!elem) // last child, jump to parent next parent
688
- {
689
- elem = this.NavNext(itemIndex+1);
690
- }
691
- if (elem)
692
- {
693
- elem.focus();
694
- }
695
- }
696
- else if (this.lastKey==27) // Escape
697
- {
698
- parent.searchBox.CloseResultsWindow();
699
- parent.document.getElementById("MSearchField").focus();
700
- }
701
- else if (this.lastKey==13) // Enter
702
- {
703
- return true;
704
- }
705
- return false;
706
- }
707
- }
708
-
709
- function setKeyActions(elem,action)
710
- {
711
- elem.setAttribute('onkeydown',action);
712
- elem.setAttribute('onkeypress',action);
713
- elem.setAttribute('onkeyup',action);
714
- }
715
-
716
- function setClassAttr(elem,attr)
717
- {
718
- elem.setAttribute('class',attr);
719
- elem.setAttribute('className',attr);
720
- }
721
-
722
- function createResults()
723
- {
724
- var results = document.getElementById("SRResults");
725
- for (var e=0; e<searchData.length; e++)
726
- {
727
- var id = searchData[e][0];
728
- var srResult = document.createElement('div');
729
- srResult.setAttribute('id','SR_'+id);
730
- setClassAttr(srResult,'SRResult');
731
- var srEntry = document.createElement('div');
732
- setClassAttr(srEntry,'SREntry');
733
- var srLink = document.createElement('a');
734
- srLink.setAttribute('id','Item'+e);
735
- setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
736
- setClassAttr(srLink,'SRSymbol');
737
- srLink.innerHTML = searchData[e][1][0];
738
- srEntry.appendChild(srLink);
739
- if (searchData[e][1].length==2) // single result
740
- {
741
- srLink.setAttribute('href',searchData[e][1][1][0]);
742
- if (searchData[e][1][1][1])
743
- {
744
- srLink.setAttribute('target','_parent');
745
- }
746
- var srScope = document.createElement('span');
747
- setClassAttr(srScope,'SRScope');
748
- srScope.innerHTML = searchData[e][1][1][2];
749
- srEntry.appendChild(srScope);
750
- }
751
- else // multiple results
752
- {
753
- srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
754
- var srChildren = document.createElement('div');
755
- setClassAttr(srChildren,'SRChildren');
756
- for (var c=0; c<searchData[e][1].length-1; c++)
757
- {
758
- var srChild = document.createElement('a');
759
- srChild.setAttribute('id','Item'+e+'_c'+c);
760
- setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
761
- setClassAttr(srChild,'SRScope');
762
- srChild.setAttribute('href',searchData[e][1][c+1][0]);
763
- if (searchData[e][1][c+1][1])
764
- {
765
- srChild.setAttribute('target','_parent');
766
- }
767
- srChild.innerHTML = searchData[e][1][c+1][2];
768
- srChildren.appendChild(srChild);
769
- }
770
- srEntry.appendChild(srChildren);
771
- }
772
- srResult.appendChild(srEntry);
773
- results.appendChild(srResult);
774
- }
775
- }
776
-
777
- function init_search()
778
- {
779
- var results = document.getElementById("MSearchSelectWindow");
780
- for (var key in indexSectionLabels)
781
- {
782
- var link = document.createElement('a');
783
- link.setAttribute('class','SelectItem');
784
- link.setAttribute('onclick','searchBox.OnSelectItem('+key+')');
785
- link.href='javascript:void(0)';
786
- link.innerHTML='<span class="SelectionMark">&#160;</span>'+indexSectionLabels[key];
787
- results.appendChild(link);
788
- }
789
- searchBox.OnSelectItem(0);
790
- }
791
-