@port-labs/jq-node-bindings 0.0.3 → 0.0.5

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 (286) hide show
  1. package/binding.gyp +3 -3
  2. package/configure +8 -6
  3. package/deps/jq/.travis.yml +184 -35
  4. package/deps/jq/AUTHORS +31 -30
  5. package/deps/jq/COPYING +2 -2
  6. package/deps/jq/KEYS +8 -0
  7. package/deps/jq/Makefile.am +85 -70
  8. package/deps/jq/NEWS +5 -4
  9. package/deps/jq/README.md +18 -9
  10. package/deps/jq/appveyor.yml +53 -0
  11. package/deps/jq/compile-ios.sh +5 -5
  12. package/deps/jq/config/m4/check-math-func.m4 +7 -2
  13. package/deps/jq/configure.ac +130 -68
  14. package/deps/jq/docs/Rakefile +14 -135
  15. package/deps/jq/docs/Rakefile.manual +49 -0
  16. package/deps/jq/docs/Rakefile.website +76 -0
  17. package/deps/jq/docs/content/2.download/default.yml +115 -39
  18. package/deps/jq/docs/content/3.manual/manual.yml +641 -231
  19. package/deps/jq/docs/content/3.manual/v1.3/manual.yml +130 -130
  20. package/deps/jq/docs/content/3.manual/v1.4/manual.yml +160 -160
  21. package/deps/jq/docs/content/3.manual/v1.5/manual.yml +2878 -0
  22. package/deps/jq/docs/content/3.manual/v1.6/manual.yml +3287 -0
  23. package/deps/jq/docs/content/index/index.yml +28 -6
  24. package/deps/jq/docs/public/.htaccess +2 -2
  25. package/deps/jq/docs/public/css/base.scss +141 -59
  26. package/deps/jq/docs/public/js/manual-search.js +52 -0
  27. package/deps/jq/docs/site.yml +1 -10
  28. package/deps/jq/docs/templates/default.liquid +10 -10
  29. package/deps/jq/docs/templates/index.liquid +45 -32
  30. package/deps/jq/docs/templates/manual.liquid +67 -90
  31. package/deps/jq/docs/templates/shared/_footer.liquid +10 -5
  32. package/deps/jq/docs/templates/shared/_head.liquid +17 -12
  33. package/deps/jq/docs/templates/shared/_navbar.liquid +27 -0
  34. package/deps/jq/jq.1.prebuilt +523 -139
  35. package/deps/jq/modules/oniguruma/AUTHORS +1 -0
  36. package/deps/jq/modules/oniguruma/CMakeLists.txt +86 -0
  37. package/deps/jq/modules/oniguruma/COPYING +28 -0
  38. package/deps/jq/modules/oniguruma/ChangeLog +0 -0
  39. package/deps/jq/modules/oniguruma/HISTORY +2138 -0
  40. package/deps/jq/modules/oniguruma/Makefile.am +33 -0
  41. package/deps/jq/modules/oniguruma/NEWS +0 -0
  42. package/deps/jq/modules/oniguruma/README +189 -0
  43. package/deps/jq/modules/oniguruma/README.ja +195 -0
  44. package/deps/jq/modules/oniguruma/README.md +203 -0
  45. package/deps/jq/modules/oniguruma/cmake/dist.cmake +321 -0
  46. package/deps/jq/modules/oniguruma/compile +348 -0
  47. package/deps/jq/modules/oniguruma/config.guess +1754 -0
  48. package/deps/jq/modules/oniguruma/config.sub +1890 -0
  49. package/deps/jq/modules/oniguruma/configure.ac +87 -0
  50. package/deps/jq/modules/oniguruma/contributed/libfuzzer-onig.cpp +31 -0
  51. package/deps/jq/modules/oniguruma/depcomp +791 -0
  52. package/deps/jq/modules/oniguruma/dist.info +10 -0
  53. package/deps/jq/modules/oniguruma/doc/API +660 -0
  54. package/deps/jq/modules/oniguruma/doc/API.ja +667 -0
  55. package/deps/jq/modules/oniguruma/doc/FAQ +12 -0
  56. package/deps/jq/modules/oniguruma/doc/FAQ.ja +22 -0
  57. package/deps/jq/modules/oniguruma/doc/RE +436 -0
  58. package/deps/jq/modules/oniguruma/doc/RE.ja +448 -0
  59. package/deps/jq/modules/oniguruma/doc/UNICODE_PROPERTIES +698 -0
  60. package/deps/jq/modules/oniguruma/index.html +181 -0
  61. package/deps/jq/modules/oniguruma/index_ja.html +184 -0
  62. package/deps/jq/modules/oniguruma/install-sh +541 -0
  63. package/deps/jq/modules/oniguruma/m4/.whatever +0 -0
  64. package/deps/jq/modules/oniguruma/make_win32.bat +3 -0
  65. package/deps/jq/modules/oniguruma/make_win64.bat +3 -0
  66. package/deps/jq/modules/oniguruma/missing +215 -0
  67. package/deps/jq/modules/oniguruma/onig-config.in +78 -0
  68. package/deps/jq/modules/oniguruma/oniguruma.pc.cmake.in +13 -0
  69. package/deps/jq/modules/oniguruma/oniguruma.pc.in +14 -0
  70. package/deps/jq/modules/oniguruma/sample/CMakeLists.txt +28 -0
  71. package/deps/jq/modules/oniguruma/sample/Makefile.am +34 -0
  72. package/deps/jq/modules/oniguruma/sample/bug_fix.c +131 -0
  73. package/deps/jq/modules/oniguruma/sample/crnl.c +127 -0
  74. package/deps/jq/modules/oniguruma/sample/encode.c +308 -0
  75. package/deps/jq/modules/oniguruma/sample/listcap.c +110 -0
  76. package/deps/jq/modules/oniguruma/sample/names.c +75 -0
  77. package/deps/jq/modules/oniguruma/sample/posix.c +96 -0
  78. package/deps/jq/modules/oniguruma/sample/scan.c +88 -0
  79. package/deps/jq/modules/oniguruma/sample/simple.c +59 -0
  80. package/deps/jq/modules/oniguruma/sample/sql.c +76 -0
  81. package/deps/jq/modules/oniguruma/sample/syntax.c +76 -0
  82. package/deps/jq/modules/oniguruma/sample/user_property.c +87 -0
  83. package/deps/jq/modules/oniguruma/src/Makefile.am +58 -0
  84. package/deps/jq/modules/oniguruma/src/Makefile.windows +183 -0
  85. package/deps/jq/modules/oniguruma/src/ascii.c +61 -0
  86. package/deps/jq/modules/oniguruma/src/big5.c +190 -0
  87. package/deps/jq/modules/oniguruma/src/config.h.cmake.in +71 -0
  88. package/deps/jq/modules/oniguruma/src/config.h.win32 +84 -0
  89. package/deps/jq/modules/oniguruma/src/config.h.win64 +84 -0
  90. package/deps/jq/modules/oniguruma/src/cp1251.c +203 -0
  91. package/deps/jq/modules/oniguruma/src/euc_jp.c +310 -0
  92. package/deps/jq/modules/oniguruma/src/euc_jp_prop.c +158 -0
  93. package/deps/jq/modules/oniguruma/src/euc_jp_prop.gperf +27 -0
  94. package/deps/jq/modules/oniguruma/src/euc_kr.c +188 -0
  95. package/deps/jq/modules/oniguruma/src/euc_tw.c +171 -0
  96. package/deps/jq/modules/oniguruma/src/gb18030.c +538 -0
  97. package/deps/jq/modules/oniguruma/src/gperf_fold_key_conv.py +67 -0
  98. package/deps/jq/modules/oniguruma/src/gperf_unfold_key_conv.py +55 -0
  99. package/deps/jq/modules/oniguruma/src/iso8859_1.c +275 -0
  100. package/deps/jq/modules/oniguruma/src/iso8859_10.c +242 -0
  101. package/deps/jq/modules/oniguruma/src/iso8859_11.c +99 -0
  102. package/deps/jq/modules/oniguruma/src/iso8859_13.c +231 -0
  103. package/deps/jq/modules/oniguruma/src/iso8859_14.c +244 -0
  104. package/deps/jq/modules/oniguruma/src/iso8859_15.c +238 -0
  105. package/deps/jq/modules/oniguruma/src/iso8859_16.c +240 -0
  106. package/deps/jq/modules/oniguruma/src/iso8859_2.c +238 -0
  107. package/deps/jq/modules/oniguruma/src/iso8859_3.c +238 -0
  108. package/deps/jq/modules/oniguruma/src/iso8859_4.c +240 -0
  109. package/deps/jq/modules/oniguruma/src/iso8859_5.c +229 -0
  110. package/deps/jq/modules/oniguruma/src/iso8859_6.c +99 -0
  111. package/deps/jq/modules/oniguruma/src/iso8859_7.c +225 -0
  112. package/deps/jq/modules/oniguruma/src/iso8859_8.c +99 -0
  113. package/deps/jq/modules/oniguruma/src/iso8859_9.c +231 -0
  114. package/deps/jq/modules/oniguruma/src/koi8.c +253 -0
  115. package/deps/jq/modules/oniguruma/src/koi8_r.c +215 -0
  116. package/deps/jq/modules/oniguruma/src/make_unicode_fold.sh +22 -0
  117. package/deps/jq/modules/oniguruma/src/make_unicode_fold_data.py +306 -0
  118. package/deps/jq/modules/oniguruma/src/make_unicode_property.sh +18 -0
  119. package/deps/jq/modules/oniguruma/src/make_unicode_property_data.py +545 -0
  120. package/deps/jq/modules/oniguruma/src/mktable.c +1184 -0
  121. package/deps/jq/modules/oniguruma/src/onig_init.c +45 -0
  122. package/deps/jq/modules/oniguruma/src/oniggnu.h +85 -0
  123. package/deps/jq/modules/oniguruma/src/onigposix.h +169 -0
  124. package/deps/jq/modules/oniguruma/src/oniguruma.h +841 -0
  125. package/deps/jq/modules/oniguruma/src/regcomp.c +6300 -0
  126. package/deps/jq/modules/oniguruma/src/regenc.c +917 -0
  127. package/deps/jq/modules/oniguruma/src/regenc.h +243 -0
  128. package/deps/jq/modules/oniguruma/src/regerror.c +393 -0
  129. package/deps/jq/modules/oniguruma/src/regexec.c +3856 -0
  130. package/deps/jq/modules/oniguruma/src/regext.c +202 -0
  131. package/deps/jq/modules/oniguruma/src/reggnu.c +147 -0
  132. package/deps/jq/modules/oniguruma/src/regint.h +779 -0
  133. package/deps/jq/modules/oniguruma/src/regparse.c +5403 -0
  134. package/deps/jq/modules/oniguruma/src/regparse.h +351 -0
  135. package/deps/jq/modules/oniguruma/src/regposerr.c +105 -0
  136. package/deps/jq/modules/oniguruma/src/regposix.c +306 -0
  137. package/deps/jq/modules/oniguruma/src/regsyntax.c +315 -0
  138. package/deps/jq/modules/oniguruma/src/regtrav.c +76 -0
  139. package/deps/jq/modules/oniguruma/src/regversion.c +57 -0
  140. package/deps/jq/modules/oniguruma/src/sjis.c +341 -0
  141. package/deps/jq/modules/oniguruma/src/sjis_prop.c +158 -0
  142. package/deps/jq/modules/oniguruma/src/sjis_prop.gperf +27 -0
  143. package/deps/jq/modules/oniguruma/src/st.c +589 -0
  144. package/deps/jq/modules/oniguruma/src/st.h +68 -0
  145. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold1_key.c +2250 -0
  146. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold2_key.c +203 -0
  147. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold3_key.c +113 -0
  148. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold_data.c +1225 -0
  149. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_property_data.c +24742 -0
  150. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_property_data_posix.c +4846 -0
  151. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_unfold_key.c +2571 -0
  152. package/deps/jq/modules/oniguruma/src/unicode.c +664 -0
  153. package/deps/jq/modules/oniguruma/src/unicode_fold1_key.c +2548 -0
  154. package/deps/jq/modules/oniguruma/src/unicode_fold2_key.c +203 -0
  155. package/deps/jq/modules/oniguruma/src/unicode_fold3_key.c +113 -0
  156. package/deps/jq/modules/oniguruma/src/unicode_fold_data.c +1366 -0
  157. package/deps/jq/modules/oniguruma/src/unicode_property_data.c +25306 -0
  158. package/deps/jq/modules/oniguruma/src/unicode_property_data_posix.c +4940 -0
  159. package/deps/jq/modules/oniguruma/src/unicode_unfold_key.c +2854 -0
  160. package/deps/jq/modules/oniguruma/src/utf16_be.c +235 -0
  161. package/deps/jq/modules/oniguruma/src/utf16_le.c +245 -0
  162. package/deps/jq/modules/oniguruma/src/utf32_be.c +194 -0
  163. package/deps/jq/modules/oniguruma/src/utf32_le.c +194 -0
  164. package/deps/jq/modules/oniguruma/src/utf8.c +335 -0
  165. package/deps/jq/modules/oniguruma/test/Makefile.am +28 -0
  166. package/deps/jq/modules/oniguruma/test/testc.c +874 -0
  167. package/deps/jq/modules/oniguruma/test/testu.c +916 -0
  168. package/deps/jq/modules/oniguruma/test-driver +153 -0
  169. package/deps/jq/modules/oniguruma/windows/testc.c +869 -0
  170. package/deps/jq/scripts/crosscompile +2 -1
  171. package/deps/jq/scripts/gen_utf8_tables.py +2 -3
  172. package/deps/jq/scripts/update-website +29 -0
  173. package/deps/jq/scripts/version +7 -2
  174. package/deps/jq/sig/jq-release.key +41 -0
  175. package/deps/jq/sig/v1.3/jq-linux-x86.asc +17 -0
  176. package/deps/jq/sig/v1.3/jq-linux-x86_64.asc +17 -0
  177. package/deps/jq/sig/v1.3/jq-osx-x86.asc +17 -0
  178. package/deps/jq/sig/v1.3/jq-osx-x86_64.asc +17 -0
  179. package/deps/jq/sig/v1.3/jq-win32.exe.asc +17 -0
  180. package/deps/jq/sig/v1.3/jq-win64.exe.asc +17 -0
  181. package/deps/jq/sig/v1.3/sha256sum.txt +6 -0
  182. package/deps/jq/sig/v1.4/jq-linux-x86.asc +17 -0
  183. package/deps/jq/sig/v1.4/jq-linux-x86_64.asc +17 -0
  184. package/deps/jq/sig/v1.4/jq-osx-x86.asc +17 -0
  185. package/deps/jq/sig/v1.4/jq-osx-x86_64.asc +17 -0
  186. package/deps/jq/sig/v1.4/jq-solaris11-32.asc +17 -0
  187. package/deps/jq/sig/v1.4/jq-solaris11-64.asc +17 -0
  188. package/deps/jq/sig/v1.4/jq-win32.exe.asc +17 -0
  189. package/deps/jq/sig/v1.4/jq-win64.exe.asc +17 -0
  190. package/deps/jq/sig/v1.4/sha256sum.txt +8 -0
  191. package/deps/jq/sig/v1.5/jq-linux32-no-oniguruma.asc +17 -0
  192. package/deps/jq/sig/v1.5/jq-linux32.asc +17 -0
  193. package/deps/jq/sig/v1.5/jq-linux64.asc +17 -0
  194. package/deps/jq/sig/v1.5/jq-osx-amd64.asc +17 -0
  195. package/deps/jq/sig/v1.5/jq-win32.exe.asc +17 -0
  196. package/deps/jq/sig/v1.5/jq-win64.exe.asc +17 -0
  197. package/deps/jq/sig/v1.5/sha256sum.txt +5 -0
  198. package/deps/jq/sig/v1.5rc1/jq-linux-x86_64-static.asc +17 -0
  199. package/deps/jq/sig/v1.5rc1/jq-win32.exe.asc +17 -0
  200. package/deps/jq/sig/v1.5rc1/jq-win64.exe.asc +17 -0
  201. package/deps/jq/sig/v1.5rc1/sha256sum.txt +3 -0
  202. package/deps/jq/sig/v1.5rc2/jq-linux-x86.asc +17 -0
  203. package/deps/jq/sig/v1.5rc2/jq-linux-x86_64.asc +17 -0
  204. package/deps/jq/sig/v1.5rc2/jq-osx-x86_64.asc +17 -0
  205. package/deps/jq/sig/v1.5rc2/jq-win32.exe.asc +17 -0
  206. package/deps/jq/sig/v1.5rc2/jq-win64.exe.asc +17 -0
  207. package/deps/jq/sig/v1.5rc2/sha256sum.txt +5 -0
  208. package/deps/jq/sig/v1.6/jq-linux32.asc +16 -0
  209. package/deps/jq/sig/v1.6/jq-linux64.asc +16 -0
  210. package/deps/jq/sig/v1.6/jq-osx-amd64.asc +16 -0
  211. package/deps/jq/sig/v1.6/jq-win32.exe.asc +16 -0
  212. package/deps/jq/sig/v1.6/jq-win64.exe.asc +16 -0
  213. package/deps/jq/sig/v1.6/sha256sum.txt +5 -0
  214. package/deps/jq/{builtin.c → src/builtin.c} +449 -344
  215. package/deps/jq/{builtin.h → src/builtin.h} +0 -0
  216. package/deps/jq/src/builtin.jq +311 -0
  217. package/deps/jq/{bytecode.c → src/bytecode.c} +0 -0
  218. package/deps/jq/{bytecode.h → src/bytecode.h} +0 -0
  219. package/deps/jq/{compile.c → src/compile.c} +213 -37
  220. package/deps/jq/{compile.h → src/compile.h} +7 -2
  221. package/deps/jq/{exec_stack.h → src/exec_stack.h} +0 -0
  222. package/deps/jq/{execute.c → src/execute.c} +127 -24
  223. package/deps/jq/{inject_errors.c → src/inject_errors.c} +0 -0
  224. package/deps/jq/{jq.h → src/jq.h} +13 -2
  225. package/deps/jq/{jq_parser.h → src/jq_parser.h} +0 -0
  226. package/deps/jq/{jq_test.c → src/jq_test.c} +1 -1
  227. package/deps/jq/{jv.c → src/jv.c} +24 -5
  228. package/deps/jq/{jv.h → src/jv.h} +46 -11
  229. package/deps/jq/{jv_alloc.c → src/jv_alloc.c} +0 -0
  230. package/deps/jq/{jv_alloc.h → src/jv_alloc.h} +0 -0
  231. package/deps/jq/{jv_aux.c → src/jv_aux.c} +38 -14
  232. package/deps/jq/{jv_dtoa.c → src/jv_dtoa.c} +4 -5
  233. package/deps/jq/{jv_dtoa.h → src/jv_dtoa.h} +0 -0
  234. package/deps/jq/src/jv_file.c +81 -0
  235. package/deps/jq/{jv_parse.c → src/jv_parse.c} +8 -2
  236. package/deps/jq/{jv_print.c → src/jv_print.c} +80 -27
  237. package/deps/jq/{jv_unicode.c → src/jv_unicode.c} +28 -4
  238. package/deps/jq/{jv_unicode.h → src/jv_unicode.h} +1 -0
  239. package/deps/jq/{jv_utf8_tables.h → src/jv_utf8_tables.h} +0 -0
  240. package/deps/jq/{lexer.c → src/lexer.c} +317 -292
  241. package/deps/jq/{lexer.h → src/lexer.h} +16 -12
  242. package/deps/jq/{lexer.l → src/lexer.l} +5 -4
  243. package/deps/jq/src/libm.h +291 -0
  244. package/deps/jq/{linker.c → src/linker.c} +5 -3
  245. package/deps/jq/{linker.h → src/linker.h} +0 -0
  246. package/deps/jq/{locfile.c → src/locfile.c} +1 -1
  247. package/deps/jq/{locfile.h → src/locfile.h} +0 -0
  248. package/deps/jq/{main.c → src/main.c} +202 -100
  249. package/deps/jq/{opcode_list.h → src/opcode_list.h} +4 -0
  250. package/deps/jq/{parser.c → src/parser.c} +1149 -1069
  251. package/deps/jq/{parser.h → src/parser.h} +28 -24
  252. package/deps/jq/{parser.y → src/parser.y} +108 -52
  253. package/deps/jq/{util.c → src/util.c} +12 -9
  254. package/deps/jq/{util.h → src/util.h} +0 -0
  255. package/deps/jq/tests/base64.test +35 -0
  256. package/deps/jq/tests/base64test +5 -0
  257. package/deps/jq/tests/jq-f-test.sh +4 -0
  258. package/deps/jq/tests/jq.test +305 -21
  259. package/deps/jq/tests/jqtest +1 -1
  260. package/deps/jq/tests/mantest +1 -1
  261. package/deps/jq/tests/onig.test +13 -0
  262. package/deps/jq/tests/onigtest +1 -1
  263. package/deps/jq/tests/optional.test +20 -0
  264. package/deps/jq/tests/optionaltest +5 -0
  265. package/deps/jq/tests/setup +7 -1
  266. package/deps/jq/tests/shtest +133 -29
  267. package/deps/jq/tests/utf8-truncate.jq +3 -0
  268. package/deps/jq/tests/utf8test +10 -0
  269. package/lib/index.js +7 -1
  270. package/package.json +3 -3
  271. package/test/santiy.test.js +24 -0
  272. package/deps/jq/docs/default_manpage.md +0 -22
  273. package/deps/jq/docs/public/bootstrap/css/bootstrap-responsive.css +0 -1058
  274. package/deps/jq/docs/public/bootstrap/css/bootstrap-responsive.min.css +0 -9
  275. package/deps/jq/docs/public/bootstrap/css/bootstrap.css +0 -5224
  276. package/deps/jq/docs/public/bootstrap/css/bootstrap.min.css +0 -9
  277. package/deps/jq/docs/public/bootstrap/img/glyphicons-halflings-white.png +0 -0
  278. package/deps/jq/docs/public/bootstrap/img/glyphicons-halflings.png +0 -0
  279. package/deps/jq/docs/public/bootstrap/js/bootstrap.js +0 -2027
  280. package/deps/jq/docs/public/bootstrap/js/bootstrap.min.js +0 -6
  281. package/deps/jq/docs/templates/shared/_header.liquid +0 -26
  282. package/deps/jq/jq.1.default +0 -39
  283. package/deps/jq/jv_file.c +0 -49
  284. package/deps/jq/libm.h +0 -160
  285. package/deps/jq/setup.sh +0 -33
  286. package/reports/jest-port-api.xml +0 -35
@@ -0,0 +1,310 @@
1
+ /**********************************************************************
2
+ euc_jp.c - Oniguruma (regular expression library)
3
+ **********************************************************************/
4
+ /*-
5
+ * Copyright (c) 2002-2016 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
6
+ * All rights reserved.
7
+ *
8
+ * Redistribution and use in source and binary forms, with or without
9
+ * modification, are permitted provided that the following conditions
10
+ * are met:
11
+ * 1. Redistributions of source code must retain the above copyright
12
+ * notice, this list of conditions and the following disclaimer.
13
+ * 2. Redistributions in binary form must reproduce the above copyright
14
+ * notice, this list of conditions and the following disclaimer in the
15
+ * documentation and/or other materials provided with the distribution.
16
+ *
17
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
+ * SUCH DAMAGE.
28
+ */
29
+
30
+ #include "regint.h"
31
+
32
+ #define eucjp_islead(c) ((UChar )((c) - 0xa1) > 0xfe - 0xa1)
33
+
34
+ static const int EncLen_EUCJP[] = {
35
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
36
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
37
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
38
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
39
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
40
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
41
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
42
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
43
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
44
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
45
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
46
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
47
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
48
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
49
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
50
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1
51
+ };
52
+
53
+ static int
54
+ mbc_enc_len(const UChar* p)
55
+ {
56
+ return EncLen_EUCJP[*p];
57
+ }
58
+
59
+ static int
60
+ is_valid_mbc_string(const UChar* p, const UChar* end)
61
+ {
62
+ while (p < end) {
63
+ if (*p < 0x80) {
64
+ p++;
65
+ }
66
+ else if (*p > 0xa0) {
67
+ if (*p == 0xff) return FALSE;
68
+ p++;
69
+ if (p >= end) return FALSE;
70
+ if (*p < 0xa1 || *p == 0xff) return FALSE;
71
+ p++;
72
+ }
73
+ else if (*p == 0x8e) {
74
+ p++;
75
+ if (p >= end) return FALSE;
76
+ if (*p < 0xa1 || *p > 0xdf) return FALSE;
77
+ p++;
78
+ }
79
+ else if (*p == 0x8f) {
80
+ p++;
81
+ if (p >= end) return FALSE;
82
+ if (*p < 0xa1 || *p == 0xff) return FALSE;
83
+ p++;
84
+ if (p >= end) return FALSE;
85
+ if (*p < 0xa1 || *p == 0xff) return FALSE;
86
+ p++;
87
+ }
88
+ else
89
+ return FALSE;
90
+ }
91
+
92
+ return TRUE;
93
+ }
94
+
95
+ static OnigCodePoint
96
+ mbc_to_code(const UChar* p, const UChar* end)
97
+ {
98
+ int c, i, len;
99
+ OnigCodePoint n;
100
+
101
+ len = enclen(ONIG_ENCODING_EUC_JP, p);
102
+ n = (OnigCodePoint )*p++;
103
+ if (len == 1) return n;
104
+
105
+ for (i = 1; i < len; i++) {
106
+ if (p >= end) break;
107
+ c = *p++;
108
+ n <<= 8; n += c;
109
+ }
110
+ return n;
111
+ }
112
+
113
+ static int
114
+ code_to_mbclen(OnigCodePoint code)
115
+ {
116
+ if (ONIGENC_IS_CODE_ASCII(code)) return 1;
117
+ else if ((code & 0xff0000) != 0) return 3;
118
+ else if ((code & 0xff00) != 0) return 2;
119
+ else
120
+ return ONIGERR_INVALID_CODE_POINT_VALUE;
121
+ }
122
+
123
+ #if 0
124
+ static int
125
+ code_to_mbc_first(OnigCodePoint code)
126
+ {
127
+ int first;
128
+
129
+ if ((code & 0xff0000) != 0) {
130
+ first = (code >> 16) & 0xff;
131
+ }
132
+ else if ((code & 0xff00) != 0) {
133
+ first = (code >> 8) & 0xff;
134
+ }
135
+ else {
136
+ return (int )code;
137
+ }
138
+ return first;
139
+ }
140
+ #endif
141
+
142
+ static int
143
+ code_to_mbc(OnigCodePoint code, UChar *buf)
144
+ {
145
+ UChar *p = buf;
146
+
147
+ if ((code & 0xff0000) != 0) *p++ = (UChar )(((code >> 16) & 0xff));
148
+ if ((code & 0xff00) != 0) *p++ = (UChar )(((code >> 8) & 0xff));
149
+ *p++ = (UChar )(code & 0xff);
150
+
151
+ #if 1
152
+ if (enclen(ONIG_ENCODING_EUC_JP, buf) != (p - buf))
153
+ return ONIGERR_INVALID_CODE_POINT_VALUE;
154
+ #endif
155
+ return p - buf;
156
+ }
157
+
158
+ static int
159
+ mbc_case_fold(OnigCaseFoldType flag ARG_UNUSED,
160
+ const UChar** pp, const UChar* end ARG_UNUSED, UChar* lower)
161
+ {
162
+ int len;
163
+ const UChar* p = *pp;
164
+
165
+ if (ONIGENC_IS_MBC_ASCII(p)) {
166
+ *lower = ONIGENC_ASCII_CODE_TO_LOWER_CASE(*p);
167
+ (*pp)++;
168
+ return 1;
169
+ }
170
+ else {
171
+ int i;
172
+
173
+ len = enclen(ONIG_ENCODING_EUC_JP, p);
174
+ for (i = 0; i < len; i++) {
175
+ *lower++ = *p++;
176
+ }
177
+ (*pp) += len;
178
+ return len; /* return byte length of converted char to lower */
179
+ }
180
+ }
181
+
182
+ static UChar*
183
+ left_adjust_char_head(const UChar* start, const UChar* s)
184
+ {
185
+ /* In this encoding
186
+ mb-trail bytes doesn't mix with single bytes.
187
+ */
188
+ const UChar *p;
189
+ int len;
190
+
191
+ if (s <= start) return (UChar* )s;
192
+ p = s;
193
+
194
+ while (!eucjp_islead(*p) && p > start) p--;
195
+ len = enclen(ONIG_ENCODING_EUC_JP, p);
196
+ if (p + len > s) return (UChar* )p;
197
+ p += len;
198
+ return (UChar* )(p + ((s - p) & ~1));
199
+ }
200
+
201
+ static int
202
+ is_allowed_reverse_match(const UChar* s, const UChar* end ARG_UNUSED)
203
+ {
204
+ const UChar c = *s;
205
+ if (c <= 0x7e || c == 0x8e || c == 0x8f)
206
+ return TRUE;
207
+ else
208
+ return FALSE;
209
+ }
210
+
211
+
212
+ static const OnigCodePoint CR_Hiragana[] = {
213
+ 1,
214
+ 0xa4a1, 0xa4f3
215
+ }; /* CR_Hiragana */
216
+
217
+ static const OnigCodePoint CR_Katakana[] = {
218
+ 3,
219
+ 0xa5a1, 0xa5f6,
220
+ 0xaaa6, 0xaaaf,
221
+ 0xaab1, 0xaadd
222
+ }; /* CR_Katakana */
223
+
224
+ static const OnigCodePoint* PropertyList[] = {
225
+ CR_Hiragana,
226
+ CR_Katakana
227
+ };
228
+
229
+ static int
230
+ property_name_to_ctype(OnigEncoding enc, UChar* p, UChar* end)
231
+ {
232
+ struct PropertyNameCtype* pc;
233
+ int len = end - p;
234
+ char q[32];
235
+
236
+ if (len < sizeof(q) - 1) {
237
+ xmemcpy(q, p, (size_t )len);
238
+ q[len] = '\0';
239
+ pc = euc_jp_lookup_property_name(q, len);
240
+ if (pc != 0)
241
+ return pc->ctype;
242
+ }
243
+
244
+ return ONIGERR_INVALID_CHAR_PROPERTY_NAME;
245
+ }
246
+
247
+ static int
248
+ is_code_ctype(OnigCodePoint code, unsigned int ctype)
249
+ {
250
+ if (ctype <= ONIGENC_MAX_STD_CTYPE) {
251
+ if (code < 128)
252
+ return ONIGENC_IS_ASCII_CODE_CTYPE(code, ctype);
253
+ else {
254
+ if (CTYPE_IS_WORD_GRAPH_PRINT(ctype)) {
255
+ return (code_to_mbclen(code) > 1 ? TRUE : FALSE);
256
+ }
257
+ }
258
+ }
259
+ else {
260
+ ctype -= (ONIGENC_MAX_STD_CTYPE + 1);
261
+ if (ctype >= (unsigned int )(sizeof(PropertyList)/sizeof(PropertyList[0])))
262
+ return ONIGERR_TYPE_BUG;
263
+
264
+ return onig_is_in_code_range((UChar* )PropertyList[ctype], code);
265
+ }
266
+
267
+ return FALSE;
268
+ }
269
+
270
+ static int
271
+ get_ctype_code_range(OnigCtype ctype, OnigCodePoint* sb_out,
272
+ const OnigCodePoint* ranges[])
273
+ {
274
+ if (ctype <= ONIGENC_MAX_STD_CTYPE) {
275
+ return ONIG_NO_SUPPORT_CONFIG;
276
+ }
277
+ else {
278
+ *sb_out = 0x80;
279
+
280
+ ctype -= (ONIGENC_MAX_STD_CTYPE + 1);
281
+ if (ctype >= (OnigCtype )sizeof(PropertyList)/sizeof(PropertyList[0]))
282
+ return ONIGERR_TYPE_BUG;
283
+
284
+ *ranges = PropertyList[ctype];
285
+ return 0;
286
+ }
287
+ }
288
+
289
+
290
+ OnigEncodingType OnigEncodingEUC_JP = {
291
+ mbc_enc_len,
292
+ "EUC-JP", /* name */
293
+ 3, /* max enc length */
294
+ 1, /* min enc length */
295
+ onigenc_is_mbc_newline_0x0a,
296
+ mbc_to_code,
297
+ code_to_mbclen,
298
+ code_to_mbc,
299
+ mbc_case_fold,
300
+ onigenc_ascii_apply_all_case_fold,
301
+ onigenc_ascii_get_case_fold_codes_by_str,
302
+ property_name_to_ctype,
303
+ is_code_ctype,
304
+ get_ctype_code_range,
305
+ left_adjust_char_head,
306
+ is_allowed_reverse_match,
307
+ NULL, /* init */
308
+ NULL, /* is_initialized */
309
+ is_valid_mbc_string
310
+ };
@@ -0,0 +1,158 @@
1
+ /* ANSI-C code produced by gperf version 3.0.4 */
2
+ /* Command-line: gperf -pt -T -L ANSI-C -N euc_jp_lookup_property_name --output-file euc_jp_prop.c euc_jp_prop.gperf */
3
+ /* Computed positions: -k'1,3' */
4
+
5
+ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
6
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
7
+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
8
+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
9
+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
10
+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
11
+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
12
+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
13
+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
14
+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
15
+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
16
+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
17
+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
18
+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
19
+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
20
+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
21
+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
22
+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
23
+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
24
+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
25
+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
26
+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
27
+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
28
+ /* The character set is not based on ISO-646. */
29
+ #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
30
+ #endif
31
+
32
+ #line 1 "euc_jp_prop.gperf"
33
+
34
+ #include <string.h>
35
+ #include "regenc.h"
36
+
37
+ #define TOTAL_KEYWORDS 16
38
+ #define MIN_WORD_LENGTH 4
39
+ #define MAX_WORD_LENGTH 8
40
+ #define MIN_HASH_VALUE 4
41
+ #define MAX_HASH_VALUE 55
42
+ /* maximum key range = 52, duplicates = 0 */
43
+
44
+ #ifdef __GNUC__
45
+ __inline
46
+ #else
47
+ #ifdef __cplusplus
48
+ inline
49
+ #endif
50
+ #endif
51
+ static unsigned int
52
+ hash (register const char *str, register unsigned int len)
53
+ {
54
+ static unsigned char asso_values[] =
55
+ {
56
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
57
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
58
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
59
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
60
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
61
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
62
+ 56, 56, 56, 56, 56, 0, 3, 10, 25, 56,
63
+ 56, 30, 0, 56, 56, 0, 20, 56, 56, 56,
64
+ 15, 56, 56, 20, 56, 30, 56, 0, 0, 56,
65
+ 56, 56, 56, 56, 56, 56, 56, 15, 56, 56,
66
+ 56, 56, 56, 25, 56, 10, 56, 56, 56, 56,
67
+ 5, 56, 0, 56, 0, 56, 5, 56, 56, 20,
68
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
69
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
70
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
71
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
72
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
73
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
74
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
75
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
76
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
77
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
78
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
79
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
80
+ 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
81
+ 56, 56, 56, 56, 56, 56
82
+ };
83
+ return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]];
84
+ }
85
+
86
+ #ifdef __GNUC__
87
+ __inline
88
+ #if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
89
+ __attribute__ ((__gnu_inline__))
90
+ #endif
91
+ #endif
92
+ struct PropertyNameCtype *
93
+ euc_jp_lookup_property_name (register const char *str, register unsigned int len)
94
+ {
95
+ static struct PropertyNameCtype wordlist[] =
96
+ {
97
+ {""}, {""}, {""}, {""},
98
+ #line 23 "euc_jp_prop.gperf"
99
+ {"Word", 12},
100
+ #line 12 "euc_jp_prop.gperf"
101
+ {"Alpha", 1},
102
+ {""}, {""},
103
+ #line 26 "euc_jp_prop.gperf"
104
+ {"Hiragana", 15},
105
+ {""},
106
+ #line 24 "euc_jp_prop.gperf"
107
+ {"Alnum", 13},
108
+ {""}, {""},
109
+ #line 27 "euc_jp_prop.gperf"
110
+ {"Katakana", 16},
111
+ {""},
112
+ #line 25 "euc_jp_prop.gperf"
113
+ {"ASCII", 14},
114
+ #line 22 "euc_jp_prop.gperf"
115
+ {"XDigit", 11},
116
+ {""}, {""}, {""},
117
+ #line 14 "euc_jp_prop.gperf"
118
+ {"Cntrl", 3},
119
+ {""}, {""},
120
+ #line 13 "euc_jp_prop.gperf"
121
+ {"Blank", 2},
122
+ {""},
123
+ #line 19 "euc_jp_prop.gperf"
124
+ {"Punct", 8},
125
+ {""}, {""}, {""}, {""},
126
+ #line 18 "euc_jp_prop.gperf"
127
+ {"Print", 7},
128
+ {""}, {""}, {""}, {""},
129
+ #line 21 "euc_jp_prop.gperf"
130
+ {"Upper", 10},
131
+ {""}, {""}, {""}, {""},
132
+ #line 20 "euc_jp_prop.gperf"
133
+ {"Space", 9},
134
+ {""}, {""}, {""}, {""},
135
+ #line 17 "euc_jp_prop.gperf"
136
+ {"Lower", 6},
137
+ {""}, {""}, {""}, {""},
138
+ #line 16 "euc_jp_prop.gperf"
139
+ {"Graph", 5},
140
+ {""}, {""}, {""}, {""},
141
+ #line 15 "euc_jp_prop.gperf"
142
+ {"Digit", 4}
143
+ };
144
+
145
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
146
+ {
147
+ register int key = hash (str, len);
148
+
149
+ if (key <= MAX_HASH_VALUE && key >= 0)
150
+ {
151
+ register const char *s = wordlist[key].name;
152
+
153
+ if (*str == *s && !strcmp (str + 1, s + 1))
154
+ return &wordlist[key];
155
+ }
156
+ }
157
+ return 0;
158
+ }
@@ -0,0 +1,27 @@
1
+ %{
2
+ #include <string.h>
3
+ #include "regenc.h"
4
+ %}
5
+
6
+ struct PropertyNameCtype {
7
+ char *name;
8
+ int ctype;
9
+ };
10
+
11
+ %%
12
+ Alpha, 1
13
+ Blank, 2
14
+ Cntrl, 3
15
+ Digit, 4
16
+ Graph, 5
17
+ Lower, 6
18
+ Print, 7
19
+ Punct, 8
20
+ Space, 9
21
+ Upper, 10
22
+ XDigit, 11
23
+ Word, 12
24
+ Alnum, 13
25
+ ASCII, 14
26
+ Hiragana, 15
27
+ Katakana, 16
@@ -0,0 +1,188 @@
1
+ /**********************************************************************
2
+ euc_kr.c - Oniguruma (regular expression library)
3
+ **********************************************************************/
4
+ /*-
5
+ * Copyright (c) 2002-2016 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
6
+ * All rights reserved.
7
+ *
8
+ * Redistribution and use in source and binary forms, with or without
9
+ * modification, are permitted provided that the following conditions
10
+ * are met:
11
+ * 1. Redistributions of source code must retain the above copyright
12
+ * notice, this list of conditions and the following disclaimer.
13
+ * 2. Redistributions in binary form must reproduce the above copyright
14
+ * notice, this list of conditions and the following disclaimer in the
15
+ * documentation and/or other materials provided with the distribution.
16
+ *
17
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
+ * SUCH DAMAGE.
28
+ */
29
+
30
+ #include "regenc.h"
31
+
32
+ static const int EncLen_EUCKR[] = {
33
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
34
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
35
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
36
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
37
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
38
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
39
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
40
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
41
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
42
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
43
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
44
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
45
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
46
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
47
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
48
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1
49
+ };
50
+
51
+ static int
52
+ euckr_mbc_enc_len(const UChar* p)
53
+ {
54
+ return EncLen_EUCKR[*p];
55
+ }
56
+
57
+ static int
58
+ is_valid_mbc_string(const UChar* p, const UChar* end)
59
+ {
60
+ while (p < end) {
61
+ if (*p < 0x80) {
62
+ p++;
63
+ }
64
+ else if (*p < 0xa1) {
65
+ return FALSE;
66
+ }
67
+ else if (*p < 0xff) {
68
+ p++;
69
+ if (p >= end) return FALSE;
70
+ if (*p < 0xa1 || *p == 0xff)
71
+ return FALSE;
72
+ p++;
73
+ }
74
+ else
75
+ return FALSE;
76
+ }
77
+
78
+ return TRUE;
79
+ }
80
+
81
+ static OnigCodePoint
82
+ euckr_mbc_to_code(const UChar* p, const UChar* end)
83
+ {
84
+ return onigenc_mbn_mbc_to_code(ONIG_ENCODING_EUC_KR, p, end);
85
+ }
86
+
87
+ static int
88
+ euckr_code_to_mbc(OnigCodePoint code, UChar *buf)
89
+ {
90
+ return onigenc_mb2_code_to_mbc(ONIG_ENCODING_EUC_KR, code, buf);
91
+ }
92
+
93
+ static int
94
+ euckr_mbc_case_fold(OnigCaseFoldType flag, const UChar** pp, const UChar* end,
95
+ UChar* lower)
96
+ {
97
+ return onigenc_mbn_mbc_case_fold(ONIG_ENCODING_EUC_KR, flag,
98
+ pp, end, lower);
99
+ }
100
+
101
+ #if 0
102
+ static int
103
+ euckr_is_mbc_ambiguous(OnigCaseFoldType flag,
104
+ const UChar** pp, const UChar* end)
105
+ {
106
+ return onigenc_mbn_is_mbc_ambiguous(ONIG_ENCODING_EUC_KR, flag, pp, end);
107
+ }
108
+ #endif
109
+
110
+ static int
111
+ euckr_is_code_ctype(OnigCodePoint code, unsigned int ctype)
112
+ {
113
+ return onigenc_mb2_is_code_ctype(ONIG_ENCODING_EUC_KR, code, ctype);
114
+ }
115
+
116
+ #define euckr_islead(c) ((c) < 0xa1 || (c) == 0xff)
117
+
118
+ static UChar*
119
+ euckr_left_adjust_char_head(const UChar* start, const UChar* s)
120
+ {
121
+ /* Assumed in this encoding,
122
+ mb-trail bytes don't mix with single bytes.
123
+ */
124
+ const UChar *p;
125
+ int len;
126
+
127
+ if (s <= start) return (UChar* )s;
128
+ p = s;
129
+
130
+ while (!euckr_islead(*p) && p > start) p--;
131
+ len = enclen(ONIG_ENCODING_EUC_KR, p);
132
+ if (p + len > s) return (UChar* )p;
133
+ p += len;
134
+ return (UChar* )(p + ((s - p) & ~1));
135
+ }
136
+
137
+ static int
138
+ euckr_is_allowed_reverse_match(const UChar* s, const UChar* end ARG_UNUSED)
139
+ {
140
+ const UChar c = *s;
141
+ if (c <= 0x7e) return TRUE;
142
+ else return FALSE;
143
+ }
144
+
145
+ OnigEncodingType OnigEncodingEUC_KR = {
146
+ euckr_mbc_enc_len,
147
+ "EUC-KR", /* name */
148
+ 2, /* max enc length */
149
+ 1, /* min enc length */
150
+ onigenc_is_mbc_newline_0x0a,
151
+ euckr_mbc_to_code,
152
+ onigenc_mb2_code_to_mbclen,
153
+ euckr_code_to_mbc,
154
+ euckr_mbc_case_fold,
155
+ onigenc_ascii_apply_all_case_fold,
156
+ onigenc_ascii_get_case_fold_codes_by_str,
157
+ onigenc_minimum_property_name_to_ctype,
158
+ euckr_is_code_ctype,
159
+ onigenc_not_support_get_ctype_code_range,
160
+ euckr_left_adjust_char_head,
161
+ euckr_is_allowed_reverse_match,
162
+ NULL, /* init */
163
+ NULL, /* is_initialized */
164
+ is_valid_mbc_string
165
+ };
166
+
167
+ /* Same with OnigEncodingEUC_KR except the name */
168
+ OnigEncodingType OnigEncodingEUC_CN = {
169
+ euckr_mbc_enc_len,
170
+ "EUC-CN", /* name */
171
+ 2, /* max enc length */
172
+ 1, /* min enc length */
173
+ onigenc_is_mbc_newline_0x0a,
174
+ euckr_mbc_to_code,
175
+ onigenc_mb2_code_to_mbclen,
176
+ euckr_code_to_mbc,
177
+ euckr_mbc_case_fold,
178
+ onigenc_ascii_apply_all_case_fold,
179
+ onigenc_ascii_get_case_fold_codes_by_str,
180
+ onigenc_minimum_property_name_to_ctype,
181
+ euckr_is_code_ctype,
182
+ onigenc_not_support_get_ctype_code_range,
183
+ euckr_left_adjust_char_head,
184
+ euckr_is_allowed_reverse_match,
185
+ NULL, /* init */
186
+ NULL, /* is_initialized */
187
+ is_valid_mbc_string
188
+ };