@port-labs/jq-node-bindings 0.0.14 → 0.0.15-dev1

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 (453) hide show
  1. package/README.md +6 -1
  2. package/binding.gyp +41 -19
  3. package/configure +1 -1
  4. package/deps/jq/.gitattributes +12 -0
  5. package/deps/jq/AUTHORS +149 -43
  6. package/deps/jq/COPYING +75 -1
  7. package/deps/jq/ChangeLog +2 -2
  8. package/deps/jq/Makefile.am +106 -65
  9. package/deps/jq/NEWS.md +391 -0
  10. package/deps/jq/README.md +54 -52
  11. package/deps/jq/SECURITY.md +7 -0
  12. package/deps/jq/compile-ios.sh +106 -102
  13. package/deps/jq/configure.ac +72 -59
  14. package/deps/jq/docs/Pipfile +14 -0
  15. package/deps/jq/docs/Pipfile.lock +415 -0
  16. package/deps/jq/docs/README.md +15 -14
  17. package/deps/jq/docs/build_manpage.py +251 -0
  18. package/deps/jq/docs/build_mantests.py +21 -0
  19. package/deps/jq/docs/build_website.py +95 -0
  20. package/deps/jq/docs/content/download/default.yml +249 -0
  21. package/deps/jq/docs/content/index.yml +83 -0
  22. package/deps/jq/docs/content/{3.manual/v1.6 → manual/dev}/manual.yml +992 -452
  23. package/deps/jq/docs/content/{3.manual → manual}/v1.3/manual.yml +105 -116
  24. package/deps/jq/docs/content/{3.manual → manual}/v1.4/manual.yml +122 -129
  25. package/deps/jq/docs/content/{3.manual → manual}/v1.5/manual.yml +313 -262
  26. package/deps/jq/docs/content/{3.manual → manual/v1.6}/manual.yml +407 -332
  27. package/deps/jq/docs/content/manual/v1.7/manual.yml +3697 -0
  28. package/deps/jq/docs/content/tutorial/default.yml +337 -0
  29. package/deps/jq/docs/manual_schema.yml +60 -0
  30. package/deps/jq/docs/public/css/style.css +99 -0
  31. package/deps/jq/docs/public/icon.png +0 -0
  32. package/deps/jq/docs/public/icon.svg +1 -0
  33. package/deps/jq/docs/public/jq.svg +1 -0
  34. package/deps/jq/docs/public/js/manual-search.js +31 -49
  35. package/deps/jq/docs/templates/default.html.j2 +31 -0
  36. package/deps/jq/docs/templates/index.html.j2 +58 -0
  37. package/deps/jq/docs/templates/manual.html.j2 +120 -0
  38. package/deps/jq/docs/templates/shared/_footer.html.j2 +14 -0
  39. package/deps/jq/docs/templates/shared/_head.html.j2 +23 -0
  40. package/deps/jq/docs/templates/shared/_navbar.html.j2 +40 -0
  41. package/deps/jq/docs/validate_manual_schema.py +19 -0
  42. package/deps/jq/jq.1.prebuilt +1102 -294
  43. package/deps/jq/jq.spec +2 -3
  44. package/deps/jq/libjq.pc.in +11 -0
  45. package/deps/jq/m4/ax_pthread.m4 +522 -0
  46. package/deps/jq/modules/oniguruma/.travis.yml +17 -0
  47. package/deps/jq/modules/oniguruma/CMakeLists.txt +206 -41
  48. package/deps/jq/modules/oniguruma/COPYING +23 -25
  49. package/deps/jq/modules/oniguruma/HISTORY +368 -23
  50. package/deps/jq/modules/oniguruma/Makefile.am +61 -7
  51. package/deps/jq/modules/oniguruma/README +34 -20
  52. package/deps/jq/modules/oniguruma/README.md +106 -33
  53. package/deps/jq/modules/oniguruma/README_japanese +183 -0
  54. package/deps/jq/modules/oniguruma/autogen.sh +9 -0
  55. package/deps/jq/modules/oniguruma/cmake/Config.cmake.in +4 -0
  56. package/deps/jq/modules/oniguruma/configure.ac +66 -55
  57. package/deps/jq/modules/oniguruma/doc/API +485 -42
  58. package/deps/jq/modules/oniguruma/doc/API.ja +732 -293
  59. package/deps/jq/modules/oniguruma/doc/CALLOUTS.API +397 -0
  60. package/deps/jq/modules/oniguruma/doc/CALLOUTS.API.ja +393 -0
  61. package/deps/jq/modules/oniguruma/doc/CALLOUTS.BUILTIN +95 -0
  62. package/deps/jq/modules/oniguruma/doc/CALLOUTS.BUILTIN.ja +93 -0
  63. package/deps/jq/modules/oniguruma/doc/FAQ +3 -3
  64. package/deps/jq/modules/oniguruma/doc/FAQ.ja +8 -8
  65. package/deps/jq/modules/oniguruma/doc/RE +223 -63
  66. package/deps/jq/modules/oniguruma/doc/RE.ja +420 -265
  67. package/deps/jq/modules/oniguruma/doc/SYNTAX.md +1091 -0
  68. package/deps/jq/modules/oniguruma/doc/UNICODE_PROPERTIES +840 -697
  69. package/deps/jq/modules/oniguruma/harnesses/ascii_compatible.dict +113 -0
  70. package/deps/jq/modules/oniguruma/harnesses/base.c +749 -0
  71. package/deps/jq/modules/oniguruma/harnesses/deluxe.c +206 -0
  72. package/deps/jq/modules/oniguruma/harnesses/dict_conv.py +72 -0
  73. package/deps/jq/modules/oniguruma/harnesses/fuzzer.options +2 -0
  74. package/deps/jq/modules/oniguruma/harnesses/libfuzzer-onig.cpp +45 -0
  75. package/deps/jq/modules/oniguruma/harnesses/regset.c +392 -0
  76. package/deps/jq/modules/oniguruma/index.html +16 -5
  77. package/deps/jq/modules/oniguruma/index_ja.html +16 -5
  78. package/deps/jq/modules/oniguruma/make_win.bat +5 -0
  79. package/deps/jq/modules/oniguruma/make_win32.bat +5 -3
  80. package/deps/jq/modules/oniguruma/make_win64.bat +5 -3
  81. package/deps/jq/modules/oniguruma/onig-config.cmake.in +80 -0
  82. package/deps/jq/modules/oniguruma/onig-config.in +1 -1
  83. package/deps/jq/modules/oniguruma/oniguruma.pc.cmake.in +1 -1
  84. package/deps/jq/modules/oniguruma/oniguruma.pc.in +0 -1
  85. package/deps/jq/modules/oniguruma/sample/CMakeLists.txt +9 -2
  86. package/deps/jq/modules/oniguruma/sample/Makefile.am +24 -5
  87. package/deps/jq/modules/oniguruma/sample/bug_fix.c +13 -51
  88. package/deps/jq/modules/oniguruma/sample/callback_each_match.c +168 -0
  89. package/deps/jq/modules/oniguruma/sample/callout.c +268 -0
  90. package/deps/jq/modules/oniguruma/sample/count.c +125 -0
  91. package/deps/jq/modules/oniguruma/sample/crnl.c +6 -4
  92. package/deps/jq/modules/oniguruma/sample/echo.c +136 -0
  93. package/deps/jq/modules/oniguruma/sample/encode.c +53 -146
  94. package/deps/jq/modules/oniguruma/sample/listcap.c +18 -10
  95. package/deps/jq/modules/oniguruma/sample/names.c +10 -6
  96. package/deps/jq/modules/oniguruma/sample/posix.c +13 -2
  97. package/deps/jq/modules/oniguruma/sample/regset.c +95 -0
  98. package/deps/jq/modules/oniguruma/sample/scan.c +20 -6
  99. package/deps/jq/modules/oniguruma/sample/simple.c +8 -4
  100. package/deps/jq/modules/oniguruma/sample/sql.c +13 -8
  101. package/deps/jq/modules/oniguruma/sample/syntax.c +11 -10
  102. package/deps/jq/modules/oniguruma/sample/user_property.c +12 -7
  103. package/deps/jq/modules/oniguruma/src/Makefile.am +41 -15
  104. package/deps/jq/modules/oniguruma/src/Makefile.windows +196 -183
  105. package/deps/jq/modules/oniguruma/src/ascii.c +64 -7
  106. package/deps/jq/modules/oniguruma/src/big5.c +25 -15
  107. package/deps/jq/modules/oniguruma/src/config.h.cmake.in +7 -22
  108. package/deps/jq/modules/oniguruma/src/config.h.win32 +56 -84
  109. package/deps/jq/modules/oniguruma/src/config.h.win64 +56 -84
  110. package/deps/jq/modules/oniguruma/src/config.h.windows.in +62 -0
  111. package/deps/jq/modules/oniguruma/src/cp1251.c +14 -8
  112. package/deps/jq/modules/oniguruma/src/euc_jp.c +28 -30
  113. package/deps/jq/modules/oniguruma/src/euc_jp_prop.c +25 -32
  114. package/deps/jq/modules/oniguruma/src/euc_jp_prop.gperf +1 -2
  115. package/deps/jq/modules/oniguruma/src/euc_kr.c +27 -15
  116. package/deps/jq/modules/oniguruma/src/euc_tw.c +40 -17
  117. package/deps/jq/modules/oniguruma/src/gb18030.c +177 -119
  118. package/deps/jq/modules/oniguruma/src/gperf_fold_key_conv.py +12 -8
  119. package/deps/jq/modules/oniguruma/src/gperf_unfold_key_conv.py +8 -6
  120. package/deps/jq/modules/oniguruma/src/iso8859_1.c +92 -91
  121. package/deps/jq/modules/oniguruma/src/iso8859_10.c +13 -29
  122. package/deps/jq/modules/oniguruma/src/iso8859_11.c +4 -2
  123. package/deps/jq/modules/oniguruma/src/iso8859_13.c +13 -33
  124. package/deps/jq/modules/oniguruma/src/iso8859_14.c +13 -30
  125. package/deps/jq/modules/oniguruma/src/iso8859_15.c +13 -34
  126. package/deps/jq/modules/oniguruma/src/iso8859_16.c +13 -29
  127. package/deps/jq/modules/oniguruma/src/iso8859_2.c +13 -29
  128. package/deps/jq/modules/oniguruma/src/iso8859_3.c +13 -33
  129. package/deps/jq/modules/oniguruma/src/iso8859_4.c +13 -32
  130. package/deps/jq/modules/oniguruma/src/iso8859_5.c +16 -23
  131. package/deps/jq/modules/oniguruma/src/iso8859_6.c +4 -2
  132. package/deps/jq/modules/oniguruma/src/iso8859_7.c +14 -29
  133. package/deps/jq/modules/oniguruma/src/iso8859_8.c +4 -2
  134. package/deps/jq/modules/oniguruma/src/iso8859_9.c +13 -33
  135. package/deps/jq/modules/oniguruma/src/koi8.c +14 -27
  136. package/deps/jq/modules/oniguruma/src/koi8_r.c +12 -19
  137. package/deps/jq/modules/oniguruma/src/make_property.sh +21 -0
  138. package/deps/jq/modules/oniguruma/src/make_unicode_egcb.sh +7 -0
  139. package/deps/jq/modules/oniguruma/src/make_unicode_egcb_data.py +267 -0
  140. package/deps/jq/modules/oniguruma/src/make_unicode_fold.sh +25 -11
  141. package/deps/jq/modules/oniguruma/src/make_unicode_fold_data.py +206 -26
  142. package/deps/jq/modules/oniguruma/src/make_unicode_property.sh +19 -10
  143. package/deps/jq/modules/oniguruma/src/make_unicode_property_data.py +474 -375
  144. package/deps/jq/modules/oniguruma/src/make_unicode_wb.sh +7 -0
  145. package/deps/jq/modules/oniguruma/src/make_unicode_wb_data.py +267 -0
  146. package/deps/jq/modules/oniguruma/src/mktable.c +28 -24
  147. package/deps/jq/modules/oniguruma/src/onig_init.c +2 -2
  148. package/deps/jq/modules/oniguruma/src/oniggnu.h +7 -5
  149. package/deps/jq/modules/oniguruma/src/onigposix.h +40 -16
  150. package/deps/jq/modules/oniguruma/src/oniguruma.h +357 -107
  151. package/deps/jq/modules/oniguruma/src/regcomp.c +6214 -3933
  152. package/deps/jq/modules/oniguruma/src/regenc.c +197 -120
  153. package/deps/jq/modules/oniguruma/src/regenc.h +106 -63
  154. package/deps/jq/modules/oniguruma/src/regerror.c +112 -91
  155. package/deps/jq/modules/oniguruma/src/regexec.c +4876 -2010
  156. package/deps/jq/modules/oniguruma/src/regext.c +8 -8
  157. package/deps/jq/modules/oniguruma/src/reggnu.c +13 -17
  158. package/deps/jq/modules/oniguruma/src/regint.h +757 -491
  159. package/deps/jq/modules/oniguruma/src/regparse.c +7204 -3240
  160. package/deps/jq/modules/oniguruma/src/regparse.h +361 -218
  161. package/deps/jq/modules/oniguruma/src/regposerr.c +49 -9
  162. package/deps/jq/modules/oniguruma/src/regposix.c +106 -24
  163. package/deps/jq/modules/oniguruma/src/regsyntax.c +66 -13
  164. package/deps/jq/modules/oniguruma/src/regtrav.c +1 -1
  165. package/deps/jq/modules/oniguruma/src/regversion.c +6 -4
  166. package/deps/jq/modules/oniguruma/src/sjis.c +23 -52
  167. package/deps/jq/modules/oniguruma/src/sjis_prop.c +25 -32
  168. package/deps/jq/modules/oniguruma/src/sjis_prop.gperf +1 -2
  169. package/deps/jq/modules/oniguruma/src/st.c +248 -249
  170. package/deps/jq/modules/oniguruma/src/st.h +4 -5
  171. package/deps/jq/modules/oniguruma/src/unicode.c +869 -294
  172. package/deps/jq/modules/oniguruma/src/unicode_egcb_data.c +1419 -0
  173. package/deps/jq/modules/oniguruma/src/unicode_fold1_key.c +1829 -1300
  174. package/deps/jq/modules/oniguruma/src/unicode_fold2_key.c +32 -9
  175. package/deps/jq/modules/oniguruma/src/unicode_fold3_key.c +32 -9
  176. package/deps/jq/modules/oniguruma/src/unicode_fold_data.c +1210 -984
  177. package/deps/jq/modules/oniguruma/src/unicode_property_data.c +22480 -15198
  178. package/deps/jq/modules/oniguruma/src/unicode_property_data_posix.c +1463 -591
  179. package/deps/jq/modules/oniguruma/src/unicode_unfold_key.c +1958 -1418
  180. package/deps/jq/modules/oniguruma/src/unicode_wb_data.c +1106 -0
  181. package/deps/jq/modules/oniguruma/src/utf16_be.c +90 -49
  182. package/deps/jq/modules/oniguruma/src/utf16_le.c +80 -49
  183. package/deps/jq/modules/oniguruma/src/utf32_be.c +14 -42
  184. package/deps/jq/modules/oniguruma/src/utf32_le.c +13 -40
  185. package/deps/jq/modules/oniguruma/src/utf8.c +33 -78
  186. package/deps/jq/modules/oniguruma/test/CMakeLists.txt +55 -0
  187. package/deps/jq/modules/oniguruma/test/Makefile.am +65 -10
  188. package/deps/jq/modules/oniguruma/test/test.sh +17 -0
  189. package/deps/jq/modules/oniguruma/test/test_back.c +1450 -0
  190. package/deps/jq/modules/oniguruma/test/test_options.c +228 -0
  191. package/deps/jq/modules/oniguruma/test/test_regset.c +466 -0
  192. package/deps/jq/modules/oniguruma/test/test_syntax.c +365 -0
  193. package/deps/jq/modules/oniguruma/test/test_utf8.c +1761 -0
  194. package/deps/jq/modules/oniguruma/test/testc.c +128 -88
  195. package/deps/jq/modules/oniguruma/test/testp.c +613 -0
  196. package/deps/jq/modules/oniguruma/test/testu.c +75 -28
  197. package/deps/jq/modules/oniguruma/tis-ci/stub.c +3 -0
  198. package/deps/jq/modules/oniguruma/tis-ci/test_back.config +26 -0
  199. package/deps/jq/modules/oniguruma/tis-ci/test_regset.config +20 -0
  200. package/deps/jq/modules/oniguruma/tis-ci/test_syntax.config +26 -0
  201. package/deps/jq/modules/oniguruma/tis-ci/test_utf8.config +25 -0
  202. package/deps/jq/modules/oniguruma/tis-ci/testc.config +26 -0
  203. package/deps/jq/modules/oniguruma/tis-ci/testu.config +24 -0
  204. package/deps/jq/modules/oniguruma/tis.config +1336 -0
  205. package/deps/jq/modules/oniguruma/windows/CMakeLists.txt +8 -0
  206. package/deps/jq/modules/oniguruma/windows/testc.c +865 -869
  207. package/deps/jq/scripts/update-website +6 -5
  208. package/deps/jq/scripts/version +10 -7
  209. package/deps/jq/sig/jq-release-new.key +29 -0
  210. package/deps/jq/sig/v1.4/sha256sum.txt +1 -0
  211. package/deps/jq/sig/v1.5/sha256sum.txt +2 -0
  212. package/deps/jq/sig/v1.5rc1/sha256sum.txt +1 -0
  213. package/deps/jq/sig/v1.5rc2/sha256sum.txt +2 -0
  214. package/deps/jq/sig/v1.6/sha256sum.txt +2 -0
  215. package/deps/jq/sig/v1.7/jq-1.7.tar.gz.asc +16 -0
  216. package/deps/jq/sig/v1.7/jq-1.7.zip.asc +16 -0
  217. package/deps/jq/sig/v1.7/jq-linux-amd64.asc +16 -0
  218. package/deps/jq/sig/v1.7/jq-linux-arm64.asc +16 -0
  219. package/deps/jq/sig/v1.7/jq-linux-armel.asc +16 -0
  220. package/deps/jq/sig/v1.7/jq-linux-armhf.asc +16 -0
  221. package/deps/jq/sig/v1.7/jq-linux-i386.asc +16 -0
  222. package/deps/jq/sig/v1.7/jq-linux-mips.asc +16 -0
  223. package/deps/jq/sig/v1.7/jq-linux-mips64.asc +16 -0
  224. package/deps/jq/sig/v1.7/jq-linux-mips64el.asc +16 -0
  225. package/deps/jq/sig/v1.7/jq-linux-mips64r6.asc +16 -0
  226. package/deps/jq/sig/v1.7/jq-linux-mips64r6el.asc +16 -0
  227. package/deps/jq/sig/v1.7/jq-linux-mipsel.asc +16 -0
  228. package/deps/jq/sig/v1.7/jq-linux-mipsr6.asc +16 -0
  229. package/deps/jq/sig/v1.7/jq-linux-mipsr6el.asc +16 -0
  230. package/deps/jq/sig/v1.7/jq-linux-powerpc.asc +16 -0
  231. package/deps/jq/sig/v1.7/jq-linux-ppc64el.asc +16 -0
  232. package/deps/jq/sig/v1.7/jq-linux-riscv64.asc +16 -0
  233. package/deps/jq/sig/v1.7/jq-linux-s390x.asc +16 -0
  234. package/deps/jq/sig/v1.7/jq-macos-amd64.asc +16 -0
  235. package/deps/jq/sig/v1.7/jq-macos-arm64.asc +16 -0
  236. package/deps/jq/sig/v1.7/jq-windows-amd64.exe.asc +16 -0
  237. package/deps/jq/sig/v1.7/jq-windows-i386.exe.asc +16 -0
  238. package/deps/jq/sig/v1.7/sha256sum.txt +23 -0
  239. package/deps/jq/sig/v1.7.1/jq-1.7.1.tar.gz.asc +16 -0
  240. package/deps/jq/sig/v1.7.1/jq-1.7.1.zip.asc +16 -0
  241. package/deps/jq/sig/v1.7.1/jq-linux-amd64.asc +16 -0
  242. package/deps/jq/sig/v1.7.1/jq-linux-arm64.asc +16 -0
  243. package/deps/jq/sig/v1.7.1/jq-linux-armel.asc +16 -0
  244. package/deps/jq/sig/v1.7.1/jq-linux-armhf.asc +16 -0
  245. package/deps/jq/sig/v1.7.1/jq-linux-i386.asc +16 -0
  246. package/deps/jq/sig/v1.7.1/jq-linux-mips.asc +16 -0
  247. package/deps/jq/sig/v1.7.1/jq-linux-mips64.asc +16 -0
  248. package/deps/jq/sig/v1.7.1/jq-linux-mips64el.asc +16 -0
  249. package/deps/jq/sig/v1.7.1/jq-linux-mips64r6.asc +16 -0
  250. package/deps/jq/sig/v1.7.1/jq-linux-mips64r6el.asc +16 -0
  251. package/deps/jq/sig/v1.7.1/jq-linux-mipsel.asc +16 -0
  252. package/deps/jq/sig/v1.7.1/jq-linux-mipsr6.asc +16 -0
  253. package/deps/jq/sig/v1.7.1/jq-linux-mipsr6el.asc +16 -0
  254. package/deps/jq/sig/v1.7.1/jq-linux-powerpc.asc +16 -0
  255. package/deps/jq/sig/v1.7.1/jq-linux-ppc64el.asc +16 -0
  256. package/deps/jq/sig/v1.7.1/jq-linux-riscv64.asc +16 -0
  257. package/deps/jq/sig/v1.7.1/jq-linux-s390x.asc +16 -0
  258. package/deps/jq/sig/v1.7.1/jq-linux64.asc +16 -0
  259. package/deps/jq/sig/v1.7.1/jq-macos-amd64.asc +16 -0
  260. package/deps/jq/sig/v1.7.1/jq-macos-arm64.asc +16 -0
  261. package/deps/jq/sig/v1.7.1/jq-osx-amd64.asc +16 -0
  262. package/deps/jq/sig/v1.7.1/jq-win64.exe.asc +16 -0
  263. package/deps/jq/sig/v1.7.1/jq-windows-amd64.exe.asc +16 -0
  264. package/deps/jq/sig/v1.7.1/jq-windows-i386.exe.asc +16 -0
  265. package/deps/jq/sig/v1.7.1/sha256sum.txt +26 -0
  266. package/deps/jq/sig/v1.7rc1/jq-1.7rc1.tar.gz.asc +16 -0
  267. package/deps/jq/sig/v1.7rc1/jq-1.7rc1.zip.asc +16 -0
  268. package/deps/jq/sig/v1.7rc1/jq-linux-amd64.asc +16 -0
  269. package/deps/jq/sig/v1.7rc1/jq-linux-arm64.asc +16 -0
  270. package/deps/jq/sig/v1.7rc1/jq-linux-armel.asc +16 -0
  271. package/deps/jq/sig/v1.7rc1/jq-linux-armhf.asc +16 -0
  272. package/deps/jq/sig/v1.7rc1/jq-linux-i386.asc +16 -0
  273. package/deps/jq/sig/v1.7rc1/jq-linux-mips.asc +16 -0
  274. package/deps/jq/sig/v1.7rc1/jq-linux-mips64.asc +16 -0
  275. package/deps/jq/sig/v1.7rc1/jq-linux-mips64el.asc +16 -0
  276. package/deps/jq/sig/v1.7rc1/jq-linux-mips64r6.asc +16 -0
  277. package/deps/jq/sig/v1.7rc1/jq-linux-mips64r6el.asc +16 -0
  278. package/deps/jq/sig/v1.7rc1/jq-linux-mipsel.asc +16 -0
  279. package/deps/jq/sig/v1.7rc1/jq-linux-mipsr6.asc +16 -0
  280. package/deps/jq/sig/v1.7rc1/jq-linux-mipsr6el.asc +16 -0
  281. package/deps/jq/sig/v1.7rc1/jq-linux-powerpc.asc +16 -0
  282. package/deps/jq/sig/v1.7rc1/jq-linux-ppc64el.asc +16 -0
  283. package/deps/jq/sig/v1.7rc1/jq-linux-riscv64.asc +16 -0
  284. package/deps/jq/sig/v1.7rc1/jq-linux-s390x.asc +16 -0
  285. package/deps/jq/sig/v1.7rc1/jq-macos-amd64.asc +16 -0
  286. package/deps/jq/sig/v1.7rc1/jq-macos-arm64.asc +16 -0
  287. package/deps/jq/sig/v1.7rc1/jq-windows-amd64.exe.asc +16 -0
  288. package/deps/jq/sig/v1.7rc1/jq-windows-i386.exe.asc +16 -0
  289. package/deps/jq/sig/v1.7rc1/sha256sum.txt +23 -0
  290. package/deps/jq/sig/v1.7rc2/jq-1.7rc2.tar.gz.asc +16 -0
  291. package/deps/jq/sig/v1.7rc2/jq-1.7rc2.zip.asc +16 -0
  292. package/deps/jq/sig/v1.7rc2/jq-linux-amd64.asc +16 -0
  293. package/deps/jq/sig/v1.7rc2/jq-linux-arm64.asc +16 -0
  294. package/deps/jq/sig/v1.7rc2/jq-linux-armel.asc +16 -0
  295. package/deps/jq/sig/v1.7rc2/jq-linux-armhf.asc +16 -0
  296. package/deps/jq/sig/v1.7rc2/jq-linux-i386.asc +16 -0
  297. package/deps/jq/sig/v1.7rc2/jq-linux-mips.asc +16 -0
  298. package/deps/jq/sig/v1.7rc2/jq-linux-mips64.asc +16 -0
  299. package/deps/jq/sig/v1.7rc2/jq-linux-mips64el.asc +16 -0
  300. package/deps/jq/sig/v1.7rc2/jq-linux-mips64r6.asc +16 -0
  301. package/deps/jq/sig/v1.7rc2/jq-linux-mips64r6el.asc +16 -0
  302. package/deps/jq/sig/v1.7rc2/jq-linux-mipsel.asc +16 -0
  303. package/deps/jq/sig/v1.7rc2/jq-linux-mipsr6.asc +16 -0
  304. package/deps/jq/sig/v1.7rc2/jq-linux-mipsr6el.asc +16 -0
  305. package/deps/jq/sig/v1.7rc2/jq-linux-powerpc.asc +16 -0
  306. package/deps/jq/sig/v1.7rc2/jq-linux-ppc64el.asc +16 -0
  307. package/deps/jq/sig/v1.7rc2/jq-linux-riscv64.asc +16 -0
  308. package/deps/jq/sig/v1.7rc2/jq-linux-s390x.asc +16 -0
  309. package/deps/jq/sig/v1.7rc2/jq-macos-amd64.asc +16 -0
  310. package/deps/jq/sig/v1.7rc2/jq-macos-arm64.asc +16 -0
  311. package/deps/jq/sig/v1.7rc2/jq-windows-amd64.exe.asc +16 -0
  312. package/deps/jq/sig/v1.7rc2/jq-windows-i386.exe.asc +16 -0
  313. package/deps/jq/sig/v1.7rc2/sha256sum.txt +23 -0
  314. package/deps/jq/src/builtin.c +537 -343
  315. package/deps/jq/src/builtin.h +18 -0
  316. package/deps/jq/src/builtin.jq +116 -143
  317. package/deps/jq/src/bytecode.h +8 -4
  318. package/deps/jq/src/compile.c +157 -143
  319. package/deps/jq/src/compile.h +3 -4
  320. package/deps/jq/src/decNumber/ICU-license.html +45 -0
  321. package/deps/jq/src/decNumber/decBasic.c +3908 -0
  322. package/deps/jq/src/decNumber/decCommon.c +1835 -0
  323. package/deps/jq/src/decNumber/decContext.c +437 -0
  324. package/deps/jq/src/decNumber/decContext.h +254 -0
  325. package/deps/jq/src/decNumber/decDPD.h +1185 -0
  326. package/deps/jq/src/decNumber/decDouble.c +140 -0
  327. package/deps/jq/src/decNumber/decDouble.h +155 -0
  328. package/deps/jq/src/decNumber/decNumber.c +8143 -0
  329. package/deps/jq/src/decNumber/decNumber.h +182 -0
  330. package/deps/jq/src/decNumber/decNumberLocal.h +757 -0
  331. package/deps/jq/src/decNumber/decPacked.c +220 -0
  332. package/deps/jq/src/decNumber/decPacked.h +52 -0
  333. package/deps/jq/src/decNumber/decQuad.c +135 -0
  334. package/deps/jq/src/decNumber/decQuad.h +177 -0
  335. package/deps/jq/src/decNumber/decSingle.c +71 -0
  336. package/deps/jq/src/decNumber/decSingle.h +86 -0
  337. package/deps/jq/src/decNumber/decimal128.c +553 -0
  338. package/deps/jq/src/decNumber/decimal128.h +81 -0
  339. package/deps/jq/src/decNumber/decimal32.c +476 -0
  340. package/deps/jq/src/decNumber/decimal32.h +81 -0
  341. package/deps/jq/src/decNumber/decimal64.c +839 -0
  342. package/deps/jq/src/decNumber/decimal64.h +83 -0
  343. package/deps/jq/src/decNumber/decnumber.pdf +0 -0
  344. package/deps/jq/src/decNumber/example1.c +38 -0
  345. package/deps/jq/src/decNumber/example2.c +52 -0
  346. package/deps/jq/src/decNumber/example3.c +64 -0
  347. package/deps/jq/src/decNumber/example4.c +61 -0
  348. package/deps/jq/src/decNumber/example5.c +36 -0
  349. package/deps/jq/src/decNumber/example6.c +61 -0
  350. package/deps/jq/src/decNumber/example7.c +35 -0
  351. package/deps/jq/src/decNumber/example8.c +39 -0
  352. package/deps/jq/src/decNumber/readme.txt +81 -0
  353. package/deps/jq/src/exec_stack.h +5 -3
  354. package/deps/jq/src/execute.c +126 -44
  355. package/deps/jq/src/inject_errors.c +0 -2
  356. package/deps/jq/src/jq.h +10 -1
  357. package/deps/jq/src/jq_test.c +222 -11
  358. package/deps/jq/src/jv.c +807 -176
  359. package/deps/jq/src/jv.h +22 -1
  360. package/deps/jq/src/jv_alloc.c +33 -26
  361. package/deps/jq/src/jv_alloc.h +0 -11
  362. package/deps/jq/src/jv_aux.c +153 -67
  363. package/deps/jq/src/jv_dtoa.c +12 -2
  364. package/deps/jq/src/jv_dtoa_tsd.c +51 -0
  365. package/deps/jq/src/jv_dtoa_tsd.h +4 -0
  366. package/deps/jq/src/jv_parse.c +70 -15
  367. package/deps/jq/src/jv_print.c +56 -60
  368. package/deps/jq/src/jv_private.h +7 -0
  369. package/deps/jq/src/jv_thread.h +76 -0
  370. package/deps/jq/src/jv_unicode.c +18 -0
  371. package/deps/jq/src/jv_unicode.h +2 -0
  372. package/deps/jq/src/lexer.c +782 -543
  373. package/deps/jq/src/lexer.h +438 -64
  374. package/deps/jq/src/lexer.l +10 -3
  375. package/deps/jq/src/libm.h +16 -6
  376. package/deps/jq/src/linker.c +97 -40
  377. package/deps/jq/src/locfile.c +2 -1
  378. package/deps/jq/src/main.c +384 -336
  379. package/deps/jq/src/opcode_list.h +5 -2
  380. package/deps/jq/src/parser.c +2260 -1898
  381. package/deps/jq/src/parser.h +115 -98
  382. package/deps/jq/src/parser.y +124 -89
  383. package/deps/jq/src/util.c +854 -55
  384. package/deps/jq/src/util.h +6 -4
  385. package/deps/jq/tests/jq.test +762 -26
  386. package/deps/jq/tests/jq_fuzz_compile.c +27 -0
  387. package/deps/jq/tests/jq_fuzz_execute.cpp +42 -0
  388. package/deps/jq/tests/jq_fuzz_fixed.cpp +297 -0
  389. package/deps/jq/tests/jq_fuzz_load_file.c +28 -0
  390. package/deps/jq/tests/jq_fuzz_parse.c +21 -0
  391. package/deps/jq/tests/jq_fuzz_parse_extended.c +36 -0
  392. package/deps/jq/tests/jq_fuzz_parse_stream.c +21 -0
  393. package/deps/jq/tests/local.supp +14 -0
  394. package/deps/jq/tests/man.test +979 -0
  395. package/deps/jq/tests/manonig.test +76 -0
  396. package/deps/jq/tests/manonigtest +5 -0
  397. package/deps/jq/tests/mantest +1 -2
  398. package/deps/jq/tests/modules/home2/.jq/g.jq +1 -0
  399. package/deps/jq/tests/modules/shadow1.jq +2 -0
  400. package/deps/jq/tests/modules/shadow2.jq +1 -0
  401. package/deps/jq/tests/modules/test_bind_order0.jq +1 -0
  402. package/deps/jq/tests/modules/test_bind_order1.jq +1 -1
  403. package/deps/jq/tests/modules/test_bind_order2.jq +0 -1
  404. package/deps/jq/tests/no-main-program.jq +1 -0
  405. package/deps/jq/tests/onig.test +77 -2
  406. package/deps/jq/tests/setup +7 -2
  407. package/deps/jq/tests/shtest +478 -59
  408. package/deps/jq/tests/uri.test +38 -0
  409. package/deps/jq/tests/uritest +5 -0
  410. package/deps/jq/tests/yes-main-program.jq +2 -0
  411. package/lib/index.js +3 -0
  412. package/lib/jq.js +15 -1
  413. package/lib/templateAsync.js +137 -0
  414. package/package.json +4 -3
  415. package/src/binding.cc +623 -146
  416. package/src/binding.h +3 -4
  417. package/test/santiy-async.test.js +171 -0
  418. package/test/santiy.test.js +2 -2
  419. package/test/template-async.test.js +182 -0
  420. package/test/template.test.js +3 -3
  421. package/deps/jq/.travis.yml +0 -202
  422. package/deps/jq/NEWS +0 -89
  423. package/deps/jq/appveyor.yml +0 -53
  424. package/deps/jq/docs/Gemfile +0 -7
  425. package/deps/jq/docs/Gemfile.lock +0 -63
  426. package/deps/jq/docs/Rakefile +0 -24
  427. package/deps/jq/docs/Rakefile.manual +0 -49
  428. package/deps/jq/docs/Rakefile.website +0 -76
  429. package/deps/jq/docs/content/1.tutorial/default.yml +0 -327
  430. package/deps/jq/docs/content/2.download/default.yml +0 -193
  431. package/deps/jq/docs/content/index/index.yml +0 -73
  432. package/deps/jq/docs/public/css/base.scss +0 -181
  433. package/deps/jq/docs/public/jq.png +0 -0
  434. package/deps/jq/docs/site.yml +0 -9
  435. package/deps/jq/docs/templates/default.liquid +0 -34
  436. package/deps/jq/docs/templates/index.liquid +0 -73
  437. package/deps/jq/docs/templates/manual.liquid +0 -99
  438. package/deps/jq/docs/templates/shared/_footer.liquid +0 -10
  439. package/deps/jq/docs/templates/shared/_head.liquid +0 -17
  440. package/deps/jq/docs/templates/shared/_navbar.liquid +0 -27
  441. package/deps/jq/modules/oniguruma/README.ja +0 -195
  442. package/deps/jq/modules/oniguruma/cmake/dist.cmake +0 -321
  443. package/deps/jq/modules/oniguruma/contributed/libfuzzer-onig.cpp +0 -31
  444. package/deps/jq/modules/oniguruma/dist.info +0 -10
  445. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold1_key.c +0 -2250
  446. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold2_key.c +0 -203
  447. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold3_key.c +0 -113
  448. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_fold_data.c +0 -1225
  449. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_property_data.c +0 -24742
  450. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_property_data_posix.c +0 -4846
  451. package/deps/jq/modules/oniguruma/src/unicode-7.0/unicode_unfold_key.c +0 -2571
  452. /package/deps/jq/sig/{jq-release.key → jq-release-old.key} +0 -0
  453. /package/deps/jq/tests/modules/{.jq → home1/.jq} +0 -0
@@ -2,7 +2,7 @@
2
2
  unicode.c - Oniguruma (regular expression library)
3
3
  **********************************************************************/
4
4
  /*-
5
- * Copyright (c) 2002-2016 K.Kosako <sndgk393 AT ybb DOT ne DOT jp>
5
+ * Copyright (c) 2002-2020 K.Kosako
6
6
  * All rights reserved.
7
7
  *
8
8
  * Redistribution and use in source and binary forms, with or without
@@ -29,6 +29,11 @@
29
29
 
30
30
  #include "regint.h"
31
31
 
32
+ struct PoolPropertyNameCtype {
33
+ short int name;
34
+ short int ctype;
35
+ };
36
+
32
37
  #define ONIGENC_IS_UNICODE_ISO_8859_1_CTYPE(code,ctype) \
33
38
  ((EncUNICODE_ISO_8859_1_CtypeTable[code] & CTYPE_TO_BIT(ctype)) != 0)
34
39
 
@@ -53,199 +58,27 @@ static const unsigned short EncUNICODE_ISO_8859_1_CtypeTable[256] = {
53
58
  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,
54
59
  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,
55
60
  0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008, 0x0008,
56
- 0x0284, 0x01a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0, 0x00a0,
57
- 0x00a0, 0x00a0, 0x30e2, 0x01a0, 0x00a0, 0x00a8, 0x00a0, 0x00a0,
58
- 0x00a0, 0x00a0, 0x10a0, 0x10a0, 0x00a0, 0x30e2, 0x00a0, 0x01a0,
59
- 0x00a0, 0x10a0, 0x30e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x01a0,
61
+ 0x0284, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0, 0x01a0,
62
+ 0x01a0, 0x01a0, 0x30e2, 0x01a0, 0x01a0, 0x00a8, 0x01a0, 0x01a0,
63
+ 0x01a0, 0x01a0, 0x10a0, 0x10a0, 0x01a0, 0x30e2, 0x01a0, 0x01a0,
64
+ 0x01a0, 0x10a0, 0x30e2, 0x01a0, 0x10a0, 0x10a0, 0x10a0, 0x01a0,
60
65
  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,
61
66
  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2,
62
- 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x00a0,
67
+ 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x01a0,
63
68
  0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x34a2, 0x30e2,
64
69
  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,
65
70
  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2,
66
- 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x00a0,
71
+ 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x01a0,
67
72
  0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2, 0x30e2
68
73
  };
69
74
 
70
- #ifdef USE_UNICODE_PROPERTIES
71
- #include "unicode_property_data.c"
72
- #else
73
- #include "unicode_property_data_posix.c"
74
- #endif
75
-
76
75
  #include "st.h"
77
76
 
78
- #define USER_DEFINED_PROPERTY_MAX_NUM 20
79
-
80
- typedef struct {
81
- int ctype;
82
- OnigCodePoint* ranges;
83
- } UserDefinedPropertyValue;
84
-
85
- static int UserDefinedPropertyNum;
86
- static UserDefinedPropertyValue
87
- UserDefinedPropertyRanges[USER_DEFINED_PROPERTY_MAX_NUM];
88
- static st_table* UserDefinedPropertyTable;
89
-
90
- extern int
91
- onig_unicode_define_user_property(const char* name, OnigCodePoint* ranges)
92
- {
93
- UserDefinedPropertyValue* e;
94
- int i;
95
- int n;
96
- int len;
97
- int c;
98
- char* s;
99
-
100
- if (UserDefinedPropertyNum >= USER_DEFINED_PROPERTY_MAX_NUM)
101
- return ONIGERR_TOO_MANY_USER_DEFINED_OBJECTS;
102
-
103
- len = strlen(name);
104
- if (len >= PROPERTY_NAME_MAX_SIZE)
105
- return ONIGERR_TOO_LONG_PROPERTY_NAME;
106
-
107
- s = (char* )xmalloc(len + 1);
108
- if (s == 0)
109
- return ONIGERR_MEMORY;
110
-
111
- n = 0;
112
- for (i = 0; i < len; i++) {
113
- c = name[i];
114
- if (c <= 0 || c >= 0x80) {
115
- xfree(s);
116
- return ONIGERR_INVALID_CHAR_PROPERTY_NAME;
117
- }
118
-
119
- if (c != ' ' && c != '-' && c != '_') {
120
- s[n] = c;
121
- n++;
122
- }
123
- }
124
- s[n] = '\0';
125
-
126
- if (UserDefinedPropertyTable == 0) {
127
- UserDefinedPropertyTable = onig_st_init_strend_table_with_size(10);
128
- }
129
-
130
- e = UserDefinedPropertyRanges + UserDefinedPropertyNum;
131
- e->ctype = CODE_RANGES_NUM + UserDefinedPropertyNum;
132
- e->ranges = ranges;
133
- onig_st_insert_strend(UserDefinedPropertyTable,
134
- (const UChar* )s, (const UChar* )s + n,
135
- (hash_data_type )((void* )e));
136
-
137
- UserDefinedPropertyNum++;
138
- return 0;
139
- }
140
-
141
- extern int
142
- onigenc_unicode_is_code_ctype(OnigCodePoint code, unsigned int ctype)
143
- {
144
- if (
145
- #ifdef USE_UNICODE_PROPERTIES
146
- ctype <= ONIGENC_MAX_STD_CTYPE &&
147
- #endif
148
- code < 256) {
149
- return ONIGENC_IS_UNICODE_ISO_8859_1_CTYPE(code, ctype);
150
- }
151
-
152
- if (ctype >= CODE_RANGES_NUM) {
153
- int index = ctype - CODE_RANGES_NUM;
154
- if (index < UserDefinedPropertyNum)
155
- return onig_is_in_code_range((UChar* )UserDefinedPropertyRanges[index].ranges, code);
156
- else
157
- return ONIGERR_TYPE_BUG;
158
- }
159
-
160
- return onig_is_in_code_range((UChar* )CodeRanges[ctype], code);
161
- }
162
-
163
-
164
- extern int
165
- onigenc_unicode_ctype_code_range(int ctype, const OnigCodePoint* ranges[])
166
- {
167
- if (ctype >= CODE_RANGES_NUM) {
168
- int index = ctype - CODE_RANGES_NUM;
169
- if (index < UserDefinedPropertyNum) {
170
- *ranges = UserDefinedPropertyRanges[index].ranges;
171
- return 0;
172
- }
173
- else
174
- return ONIGERR_TYPE_BUG;
175
- }
176
-
177
- *ranges = CodeRanges[ctype];
178
- return 0;
179
- }
180
-
181
- extern int
182
- onigenc_utf16_32_get_ctype_code_range(OnigCtype ctype, OnigCodePoint* sb_out,
183
- const OnigCodePoint* ranges[])
184
- {
185
- *sb_out = 0x00;
186
- return onigenc_unicode_ctype_code_range(ctype, ranges);
187
- }
188
-
189
- extern int
190
- onigenc_unicode_property_name_to_ctype(OnigEncoding enc, UChar* name, UChar* end)
191
- {
192
- int len;
193
- UChar *p;
194
- OnigCodePoint code;
195
- const struct PropertyNameCtype* pc;
196
- char buf[PROPERTY_NAME_MAX_SIZE];
197
-
198
- p = name;
199
- len = 0;
200
- while (p < end) {
201
- code = ONIGENC_MBC_TO_CODE(enc, p, end);
202
- if (code >= 0x80)
203
- return ONIGERR_INVALID_CHAR_PROPERTY_NAME;
204
-
205
- if (code != ' ' && code != '-' && code != '_') {
206
- buf[len++] = (char )code;
207
- if (len >= PROPERTY_NAME_MAX_SIZE)
208
- return ONIGERR_INVALID_CHAR_PROPERTY_NAME;
209
- }
210
-
211
- p += enclen(enc, p);
212
- }
213
-
214
- buf[len] = 0;
215
-
216
- if (UserDefinedPropertyTable != 0) {
217
- UserDefinedPropertyValue* e;
218
- e = (UserDefinedPropertyValue* )NULL;
219
- onig_st_lookup_strend(UserDefinedPropertyTable,
220
- (const UChar* )buf, (const UChar* )buf + len,
221
- (hash_data_type* )((void* )(&e)));
222
- if (e != 0) {
223
- return e->ctype;
224
- }
225
- }
226
-
227
- pc = unicode_lookup_property_name(buf, len);
228
- if (pc != 0) {
229
- /* fprintf(stderr, "LOOKUP: %s: %d\n", buf, pc->ctype); */
230
- #ifndef USE_UNICODE_PROPERTIES
231
- if (pc->ctype > ONIGENC_MAX_STD_CTYPE)
232
- return ONIGERR_INVALID_CHAR_PROPERTY_NAME;
233
- #endif
234
-
235
- return pc->ctype;
236
- }
237
-
238
- return ONIGERR_INVALID_CHAR_PROPERTY_NAME;
239
- }
240
-
241
- /* for use macros in unicode_fold_data.c */
242
77
  #include "unicode_fold_data.c"
243
78
 
244
-
245
79
  extern int
246
- onigenc_unicode_mbc_case_fold(OnigEncoding enc,
247
- OnigCaseFoldType flag ARG_UNUSED, const UChar** pp, const UChar* end,
248
- UChar* fold)
80
+ onigenc_unicode_mbc_case_fold(OnigEncoding enc, OnigCaseFoldType flag,
81
+ const UChar** pp, const UChar* end, UChar* fold)
249
82
  {
250
83
  const struct ByUnfoldKey* buk;
251
84
 
@@ -270,23 +103,27 @@ onigenc_unicode_mbc_case_fold(OnigEncoding enc,
270
103
  }
271
104
  #endif
272
105
 
273
- buk = unicode_unfold_key(code);
274
- if (buk != 0) {
275
- if (buk->fold_len == 1) {
276
- return ONIGENC_CODE_TO_MBC(enc, *FOLDS1_FOLD(buk->index), fold);
277
- }
278
- else {
279
- OnigCodePoint* addr;
280
-
281
- FOLDS_FOLD_ADDR_BUK(buk, addr);
282
- rlen = 0;
283
- for (i = 0; i < buk->fold_len; i++) {
284
- OnigCodePoint c = addr[i];
285
- len = ONIGENC_CODE_TO_MBC(enc, c, fold);
286
- fold += len;
287
- rlen += len;
106
+ if (CASE_FOLD_IS_NOT_ASCII_ONLY(flag) || ONIGENC_IS_ASCII_CODE(code)) {
107
+ buk = onigenc_unicode_unfold_key(code);
108
+ if (buk != 0) {
109
+ if (buk->fold_len == 1) {
110
+ if (CASE_FOLD_IS_NOT_ASCII_ONLY(flag) ||
111
+ ONIGENC_IS_ASCII_CODE(*FOLDS1_FOLD(buk->index)))
112
+ return ONIGENC_CODE_TO_MBC(enc, *FOLDS1_FOLD(buk->index), fold);
113
+ }
114
+ else {
115
+ OnigCodePoint* addr;
116
+
117
+ FOLDS_FOLD_ADDR_BUK(buk, addr);
118
+ rlen = 0;
119
+ for (i = 0; i < buk->fold_len; i++) {
120
+ OnigCodePoint c = addr[i];
121
+ len = ONIGENC_CODE_TO_MBC(enc, c, fold);
122
+ fold += len;
123
+ rlen += len;
124
+ }
125
+ return rlen;
288
126
  }
289
- return rlen;
290
127
  }
291
128
  }
292
129
 
@@ -297,16 +134,22 @@ onigenc_unicode_mbc_case_fold(OnigEncoding enc,
297
134
  }
298
135
 
299
136
  static int
300
- apply_case_fold1(int from, int to, OnigApplyAllCaseFoldFunc f, void* arg)
137
+ apply_case_fold1(OnigCaseFoldType flag, int from, int to,
138
+ OnigApplyAllCaseFoldFunc f, void* arg)
301
139
  {
302
140
  int i, j, k, n, r;
303
141
 
304
142
  for (i = from; i < to; ) {
305
143
  OnigCodePoint fold = *FOLDS1_FOLD(i);
144
+ if (CASE_FOLD_IS_ASCII_ONLY(flag) && ! ONIGENC_IS_ASCII_CODE(fold)) break;
145
+
306
146
  n = FOLDS1_UNFOLDS_NUM(i);
307
147
  for (j = 0; j < n; j++) {
308
148
  OnigCodePoint unfold = FOLDS1_UNFOLDS(i)[j];
309
149
 
150
+ if (CASE_FOLD_IS_ASCII_ONLY(flag) && ! ONIGENC_IS_ASCII_CODE(unfold))
151
+ continue;
152
+
310
153
  r = (*f)(fold, &unfold, 1, arg);
311
154
  if (r != 0) return r;
312
155
  r = (*f)(unfold, &fold, 1, arg);
@@ -314,6 +157,9 @@ apply_case_fold1(int from, int to, OnigApplyAllCaseFoldFunc f, void* arg)
314
157
 
315
158
  for (k = 0; k < j; k++) {
316
159
  OnigCodePoint unfold2 = FOLDS1_UNFOLDS(i)[k];
160
+ if (CASE_FOLD_IS_ASCII_ONLY(flag) &&
161
+ ! ONIGENC_IS_ASCII_CODE(unfold2)) continue;
162
+
317
163
  r = (*f)(unfold, &unfold2, 1, arg);
318
164
  if (r != 0) return r;
319
165
  r = (*f)(unfold2, &unfold, 1, arg);
@@ -387,11 +233,11 @@ apply_case_fold3(int from, int to, OnigApplyAllCaseFoldFunc f, void* arg)
387
233
 
388
234
  extern int
389
235
  onigenc_unicode_apply_all_case_fold(OnigCaseFoldType flag,
390
- OnigApplyAllCaseFoldFunc f, void* arg)
236
+ OnigApplyAllCaseFoldFunc f, void* arg)
391
237
  {
392
238
  int r;
393
239
 
394
- r = apply_case_fold1(0, FOLDS1_NORMAL_END_INDEX, f, arg);
240
+ r = apply_case_fold1(flag, 0, FOLDS1_NORMAL_END_INDEX, f, arg);
395
241
  if (r != 0) return r;
396
242
 
397
243
  #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI
@@ -412,7 +258,7 @@ onigenc_unicode_apply_all_case_fold(OnigCaseFoldType flag,
412
258
  }
413
259
  else {
414
260
  #endif
415
- r = apply_case_fold1(FOLDS1_NORMAL_END_INDEX, FOLDS1_END_INDEX, f, arg);
261
+ r = apply_case_fold1(flag, FOLDS1_NORMAL_END_INDEX, FOLDS1_END_INDEX, f, arg);
416
262
  if (r != 0) return r;
417
263
  #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI
418
264
  }
@@ -444,13 +290,19 @@ onigenc_unicode_get_case_fold_codes_by_str(OnigEncoding enc,
444
290
  OnigCaseFoldType flag, const OnigUChar* p, const OnigUChar* end,
445
291
  OnigCaseFoldCodeItem items[])
446
292
  {
447
- int n, m, i, j, k, len;
448
- OnigCodePoint code, codes[3];
449
- const struct ByUnfoldKey* buk;
293
+ int n, m, i, j, k, len, lens[3];
294
+ int index;
295
+ int fn, ncs[3];
296
+ OnigCodePoint cs[3][4];
297
+ OnigCodePoint code, codes[3], orig_codes[3];
298
+ const struct ByUnfoldKey* buk1;
450
299
 
451
300
  n = 0;
452
301
 
453
302
  code = ONIGENC_MBC_TO_CODE(enc, p, end);
303
+ if (CASE_FOLD_IS_ASCII_ONLY(flag)) {
304
+ if (! ONIGENC_IS_ASCII_CODE(code)) return n;
305
+ }
454
306
  len = enclen(enc, p);
455
307
 
456
308
  #ifdef USE_UNICODE_CASE_FOLD_TURKISH_AZERI
@@ -482,38 +334,167 @@ onigenc_unicode_get_case_fold_codes_by_str(OnigEncoding enc,
482
334
  }
483
335
  #endif
484
336
 
485
- buk = unicode_unfold_key(code);
486
- if (buk != 0) {
487
- if (buk->fold_len == 1) {
488
- int un;
489
- items[0].byte_len = len;
490
- items[0].code_len = 1;
491
- items[0].code[0] = *FOLDS1_FOLD(buk->index);
492
- n++;
337
+ orig_codes[0] = code;
338
+ lens[0] = len;
339
+ p += len;
493
340
 
494
- un = FOLDS1_UNFOLDS_NUM(buk->index);
495
- for (i = 0; i < un; i++) {
496
- OnigCodePoint unfold = FOLDS1_UNFOLDS(buk->index)[i];
497
- if (unfold != code) {
498
- items[n].byte_len = len;
341
+ buk1 = onigenc_unicode_unfold_key(orig_codes[0]);
342
+ if (buk1 != 0 && buk1->fold_len == 1) {
343
+ codes[0] = *FOLDS1_FOLD(buk1->index);
344
+ }
345
+ else
346
+ codes[0] = orig_codes[0];
347
+
348
+ if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) == 0)
349
+ goto fold1;
350
+
351
+ if (p < end) {
352
+ const struct ByUnfoldKey* buk;
353
+
354
+ code = ONIGENC_MBC_TO_CODE(enc, p, end);
355
+ orig_codes[1] = code;
356
+ len = enclen(enc, p);
357
+ lens[1] = lens[0] + len;
358
+ buk = onigenc_unicode_unfold_key(orig_codes[1]);
359
+ if (buk != 0 && buk->fold_len == 1) {
360
+ codes[1] = *FOLDS1_FOLD(buk->index);
361
+ }
362
+ else
363
+ codes[1] = orig_codes[1];
364
+
365
+ p += len;
366
+ if (p < end) {
367
+ code = ONIGENC_MBC_TO_CODE(enc, p, end);
368
+ orig_codes[2] = code;
369
+ len = enclen(enc, p);
370
+ lens[2] = lens[1] + len;
371
+ buk = onigenc_unicode_unfold_key(orig_codes[2]);
372
+ if (buk != 0 && buk->fold_len == 1) {
373
+ codes[2] = *FOLDS1_FOLD(buk->index);
374
+ }
375
+ else
376
+ codes[2] = orig_codes[2];
377
+
378
+ index = onigenc_unicode_fold3_key(codes);
379
+ if (index >= 0) {
380
+ m = FOLDS3_UNFOLDS_NUM(index);
381
+ for (i = 0; i < m; i++) {
382
+ items[n].byte_len = lens[2];
499
383
  items[n].code_len = 1;
500
- items[n].code[0] = unfold;
384
+ items[n].code[0] = FOLDS3_UNFOLDS(index)[i];
501
385
  n++;
502
386
  }
387
+
388
+ for (fn = 0; fn < 3; fn++) {
389
+ int sindex;
390
+ cs[fn][0] = FOLDS3_FOLD(index)[fn];
391
+ ncs[fn] = 1;
392
+ sindex = onigenc_unicode_fold1_key(&cs[fn][0]);
393
+ if (sindex >= 0) {
394
+ int m = FOLDS1_UNFOLDS_NUM(sindex);
395
+ for (i = 0; i < m; i++) {
396
+ cs[fn][i+1] = FOLDS1_UNFOLDS(sindex)[i];
397
+ }
398
+ ncs[fn] += m;
399
+ }
400
+ }
401
+
402
+ for (i = 0; i < ncs[0]; i++) {
403
+ for (j = 0; j < ncs[1]; j++) {
404
+ for (k = 0; k < ncs[2]; k++) {
405
+ if (cs[0][i] == orig_codes[0] && cs[1][j] == orig_codes[1] &&
406
+ cs[2][k] == orig_codes[2])
407
+ continue;
408
+
409
+ items[n].byte_len = lens[2];
410
+ items[n].code_len = 3;
411
+ items[n].code[0] = cs[0][i];
412
+ items[n].code[1] = cs[1][j];
413
+ items[n].code[2] = cs[2][k];
414
+ n++;
415
+ }
416
+ }
417
+ }
418
+
419
+ return n;
503
420
  }
504
- code = items[0].code[0]; // for multi-code to unfold search.
505
421
  }
506
- else if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {
507
- OnigCodePoint cs[3][4];
508
- int fn, ncs[3];
509
422
 
510
- if (buk->fold_len == 2) {
511
- m = FOLDS2_UNFOLDS_NUM(buk->index);
423
+ index = onigenc_unicode_fold2_key(codes);
424
+ if (index >= 0) {
425
+ m = FOLDS2_UNFOLDS_NUM(index);
426
+ for (i = 0; i < m; i++) {
427
+ items[n].byte_len = lens[1];
428
+ items[n].code_len = 1;
429
+ items[n].code[0] = FOLDS2_UNFOLDS(index)[i];
430
+ n++;
431
+ }
432
+
433
+ for (fn = 0; fn < 2; fn++) {
434
+ int sindex;
435
+ cs[fn][0] = FOLDS2_FOLD(index)[fn];
436
+ ncs[fn] = 1;
437
+ sindex = onigenc_unicode_fold1_key(&cs[fn][0]);
438
+ if (sindex >= 0) {
439
+ int m = FOLDS1_UNFOLDS_NUM(sindex);
440
+ for (i = 0; i < m; i++) {
441
+ cs[fn][i+1] = FOLDS1_UNFOLDS(sindex)[i];
442
+ }
443
+ ncs[fn] += m;
444
+ }
445
+ }
446
+
447
+ for (i = 0; i < ncs[0]; i++) {
448
+ for (j = 0; j < ncs[1]; j++) {
449
+ if (cs[0][i] == orig_codes[0] && cs[1][j] == orig_codes[1])
450
+ continue;
451
+ items[n].byte_len = lens[1];
452
+ items[n].code_len = 2;
453
+ items[n].code[0] = cs[0][i];
454
+ items[n].code[1] = cs[1][j];
455
+ n++;
456
+ }
457
+ }
458
+
459
+ return n;
460
+ }
461
+ }
462
+
463
+ fold1:
464
+ if (buk1 != 0) {
465
+ if (buk1->fold_len == 1) {
466
+ int un;
467
+
468
+ if (CASE_FOLD_IS_NOT_ASCII_ONLY(flag) ||
469
+ ONIGENC_IS_ASCII_CODE(*FOLDS1_FOLD(buk1->index))) {
470
+ items[0].byte_len = lens[0];
471
+ items[0].code_len = 1;
472
+ items[0].code[0] = *FOLDS1_FOLD(buk1->index);
473
+ n++;
474
+ }
475
+
476
+ un = FOLDS1_UNFOLDS_NUM(buk1->index);
477
+ for (i = 0; i < un; i++) {
478
+ OnigCodePoint unfold = FOLDS1_UNFOLDS(buk1->index)[i];
479
+ if (unfold != orig_codes[0]) {
480
+ if (CASE_FOLD_IS_NOT_ASCII_ONLY(flag) ||
481
+ ONIGENC_IS_ASCII_CODE(unfold)) {
482
+ items[n].byte_len = lens[0];
483
+ items[n].code_len = 1;
484
+ items[n].code[0] = unfold;
485
+ n++;
486
+ }
487
+ }
488
+ }
489
+ }
490
+ else if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) != 0) {
491
+ if (buk1->fold_len == 2) {
492
+ m = FOLDS2_UNFOLDS_NUM(buk1->index);
512
493
  for (i = 0; i < m; i++) {
513
- OnigCodePoint unfold = FOLDS2_UNFOLDS(buk->index)[i];
514
- if (unfold == code) continue;
494
+ OnigCodePoint unfold = FOLDS2_UNFOLDS(buk1->index)[i];
495
+ if (unfold == orig_codes[0]) continue;
515
496
 
516
- items[n].byte_len = len;
497
+ items[n].byte_len = lens[0];
517
498
  items[n].code_len = 1;
518
499
  items[n].code[0] = unfold;
519
500
  n++;
@@ -521,22 +502,21 @@ onigenc_unicode_get_case_fold_codes_by_str(OnigEncoding enc,
521
502
 
522
503
  for (fn = 0; fn < 2; fn++) {
523
504
  int index;
524
- cs[fn][0] = FOLDS2_FOLD(buk->index)[fn];
525
- index = unicode_fold1_key(&cs[fn][0]);
505
+ cs[fn][0] = FOLDS2_FOLD(buk1->index)[fn];
506
+ ncs[fn] = 1;
507
+ index = onigenc_unicode_fold1_key(&cs[fn][0]);
526
508
  if (index >= 0) {
527
509
  int m = FOLDS1_UNFOLDS_NUM(index);
528
510
  for (i = 0; i < m; i++) {
529
511
  cs[fn][i+1] = FOLDS1_UNFOLDS(index)[i];
530
512
  }
531
- ncs[fn] = m + 1;
513
+ ncs[fn] += m;
532
514
  }
533
- else
534
- ncs[fn] = 1;
535
515
  }
536
516
 
537
517
  for (i = 0; i < ncs[0]; i++) {
538
518
  for (j = 0; j < ncs[1]; j++) {
539
- items[n].byte_len = len;
519
+ items[n].byte_len = lens[0];
540
520
  items[n].code_len = 2;
541
521
  items[n].code[0] = cs[0][i];
542
522
  items[n].code[1] = cs[1][j];
@@ -545,12 +525,12 @@ onigenc_unicode_get_case_fold_codes_by_str(OnigEncoding enc,
545
525
  }
546
526
  }
547
527
  else { /* fold_len == 3 */
548
- m = FOLDS3_UNFOLDS_NUM(buk->index);
528
+ m = FOLDS3_UNFOLDS_NUM(buk1->index);
549
529
  for (i = 0; i < m; i++) {
550
- OnigCodePoint unfold = FOLDS3_UNFOLDS(buk->index)[i];
551
- if (unfold == code) continue;
530
+ OnigCodePoint unfold = FOLDS3_UNFOLDS(buk1->index)[i];
531
+ if (unfold == orig_codes[0]) continue;
552
532
 
553
- items[n].byte_len = len;
533
+ items[n].byte_len = lens[0];
554
534
  items[n].code_len = 1;
555
535
  items[n].code[0] = unfold;
556
536
  n++;
@@ -558,23 +538,22 @@ onigenc_unicode_get_case_fold_codes_by_str(OnigEncoding enc,
558
538
 
559
539
  for (fn = 0; fn < 3; fn++) {
560
540
  int index;
561
- cs[fn][0] = FOLDS3_FOLD(buk->index)[fn];
562
- index = unicode_fold1_key(&cs[fn][0]);
541
+ cs[fn][0] = FOLDS3_FOLD(buk1->index)[fn];
542
+ ncs[fn] = 1;
543
+ index = onigenc_unicode_fold1_key(&cs[fn][0]);
563
544
  if (index >= 0) {
564
545
  int m = FOLDS1_UNFOLDS_NUM(index);
565
546
  for (i = 0; i < m; i++) {
566
547
  cs[fn][i+1] = FOLDS1_UNFOLDS(index)[i];
567
548
  }
568
- ncs[fn] = m + 1;
549
+ ncs[fn] += m;
569
550
  }
570
- else
571
- ncs[fn] = 1;
572
551
  }
573
552
 
574
553
  for (i = 0; i < ncs[0]; i++) {
575
554
  for (j = 0; j < ncs[1]; j++) {
576
555
  for (k = 0; k < ncs[2]; k++) {
577
- items[n].byte_len = len;
556
+ items[n].byte_len = lens[0];
578
557
  items[n].code_len = 3;
579
558
  items[n].code[0] = cs[0][i];
580
559
  items[n].code[1] = cs[1][j];
@@ -584,81 +563,677 @@ onigenc_unicode_get_case_fold_codes_by_str(OnigEncoding enc,
584
563
  }
585
564
  }
586
565
  }
587
-
588
- /* multi char folded code is not head of another folded multi char */
589
- return n;
590
566
  }
591
567
  }
592
568
  else {
593
- int index = unicode_fold1_key(&code);
569
+ int index = onigenc_unicode_fold1_key(orig_codes);
594
570
  if (index >= 0) {
595
571
  int m = FOLDS1_UNFOLDS_NUM(index);
596
572
  for (i = 0; i < m; i++) {
597
- items[n].byte_len = len;
598
- items[n].code_len = 1;
599
- items[n].code[0] = FOLDS1_UNFOLDS(index)[i];
600
- n++;
601
- }
573
+ code = FOLDS1_UNFOLDS(index)[i];
574
+ if (CASE_FOLD_IS_NOT_ASCII_ONLY(flag)||ONIGENC_IS_ASCII_CODE(code)) {
575
+ items[n].byte_len = lens[0];
576
+ items[n].code_len = 1;
577
+ items[n].code[0] = code;
578
+ n++;
579
+ }
580
+ }
602
581
  }
603
582
  }
604
583
 
605
- if ((flag & INTERNAL_ONIGENC_CASE_FOLD_MULTI_CHAR) == 0)
606
- return n;
584
+ return n;
585
+ }
607
586
 
608
- p += len;
609
- if (p < end) {
610
- int clen;
611
- int index;
587
+ #ifdef USE_UNICODE_PROPERTIES
588
+ #include "unicode_property_data.c"
589
+ #else
590
+ #include "unicode_property_data_posix.c"
591
+ #endif
592
+
593
+
594
+ #ifdef USE_UNICODE_WORD_BREAK
595
+
596
+ enum WB_TYPE {
597
+ WB_Any = 0,
598
+ WB_ALetter,
599
+ WB_CR,
600
+ WB_Double_Quote,
601
+ WB_Extend,
602
+ WB_ExtendNumLet,
603
+ WB_Format,
604
+ WB_Hebrew_Letter,
605
+ WB_Katakana,
606
+ WB_LF,
607
+ WB_MidLetter,
608
+ WB_MidNum,
609
+ WB_MidNumLet,
610
+ WB_Newline,
611
+ WB_Numeric,
612
+ WB_Regional_Indicator,
613
+ WB_Single_Quote,
614
+ WB_WSegSpace,
615
+ WB_ZWJ,
616
+ };
617
+
618
+ typedef struct {
619
+ OnigCodePoint start;
620
+ OnigCodePoint end;
621
+ enum WB_TYPE type;
622
+ } WB_RANGE_TYPE;
623
+
624
+ #include "unicode_wb_data.c"
625
+
626
+ static enum WB_TYPE
627
+ wb_get_type(OnigCodePoint code)
628
+ {
629
+ OnigCodePoint low, high, x;
630
+ enum WB_TYPE type;
631
+
632
+ for (low = 0, high = (OnigCodePoint )WB_RANGE_NUM; low < high; ) {
633
+ x = (low + high) >> 1;
634
+ if (code > WB_RANGES[x].end)
635
+ low = x + 1;
636
+ else
637
+ high = x;
638
+ }
639
+
640
+ type = (low < (OnigCodePoint )WB_RANGE_NUM &&
641
+ code >= WB_RANGES[low].start) ?
642
+ WB_RANGES[low].type : WB_Any;
643
+
644
+ return type;
645
+ }
646
+
647
+ #define IS_WB_IGNORE_TAIL(t) ((t) == WB_Extend || (t) == WB_Format || (t) == WB_ZWJ)
648
+ #define IS_WB_AHLetter(t) ((t) == WB_ALetter || (t) == WB_Hebrew_Letter)
649
+ #define IS_WB_MidNumLetQ(t) ((t) == WB_MidNumLet || (t) == WB_Single_Quote)
650
+
651
+ static int
652
+ wb_get_next_main_code(OnigEncoding enc, UChar* p, const UChar* end,
653
+ OnigCodePoint* rcode, enum WB_TYPE* rtype)
654
+ {
655
+ OnigCodePoint code;
656
+ enum WB_TYPE type;
657
+
658
+ while (TRUE) {
659
+ p += enclen(enc, p);
660
+ if (p >= end) break;
612
661
 
613
- codes[0] = code;
614
662
  code = ONIGENC_MBC_TO_CODE(enc, p, end);
663
+ type = wb_get_type(code);
664
+ if (! IS_WB_IGNORE_TAIL(type)) {
665
+ *rcode = code;
666
+ *rtype = type;
667
+ return 1;
668
+ }
669
+ }
615
670
 
616
- buk = unicode_unfold_key(code);
617
- if (buk != 0 && buk->fold_len == 1) {
618
- codes[1] = *FOLDS1_FOLD(buk->index);
671
+ return 0;
672
+ }
673
+
674
+ extern int
675
+ onigenc_wb_is_break_position(OnigEncoding enc, UChar* p, UChar* prev,
676
+ const UChar* start, const UChar* end)
677
+ {
678
+ int r;
679
+ UChar* pp;
680
+ OnigCodePoint cfrom;
681
+ OnigCodePoint cfrom2;
682
+ OnigCodePoint cto;
683
+ OnigCodePoint cto2;
684
+ enum WB_TYPE from;
685
+ enum WB_TYPE from2;
686
+ enum WB_TYPE to;
687
+ enum WB_TYPE to2;
688
+
689
+ /* WB1: sot / Any */
690
+ if (p == start) return TRUE;
691
+ /* WB2: Any / eot */
692
+ if (p == end) return TRUE;
693
+
694
+ if (IS_NULL(prev)) {
695
+ prev = onigenc_get_prev_char_head(enc, start, p);
696
+ if (IS_NULL(prev)) return TRUE;
697
+ }
698
+
699
+ cfrom = ONIGENC_MBC_TO_CODE(enc, prev, end);
700
+ cto = ONIGENC_MBC_TO_CODE(enc, p, end);
701
+
702
+ from = wb_get_type(cfrom);
703
+ to = wb_get_type(cto);
704
+
705
+ /* short cut */
706
+ if (from == 0 && to == 0) goto WB999;
707
+
708
+ /* WB3: CR + LF */
709
+ if (from == WB_CR && to == WB_LF) return FALSE;
710
+
711
+ /* WB3a: (Newline|CR|LF) / */
712
+ if (from == WB_Newline || from == WB_CR || from == WB_LF) return TRUE;
713
+ /* WB3b: / (Newline|CR|LF) */
714
+ if (to == WB_Newline || to == WB_CR || to == WB_LF) return TRUE;
715
+
716
+ /* WB3c: ZWJ + {Extended_Pictographic} */
717
+ if (from == WB_ZWJ) {
718
+ if (onigenc_unicode_is_code_ctype(cto, PROP_INDEX_EXTENDEDPICTOGRAPHIC))
719
+ return FALSE;
720
+ }
721
+
722
+ /* WB3d: WSegSpace + WSegSpace */
723
+ if (from == WB_WSegSpace && to == WB_WSegSpace) return FALSE;
724
+
725
+ /* WB4: X (Extend|Format|ZWJ)* -> X */
726
+ if (IS_WB_IGNORE_TAIL(to)) return FALSE;
727
+ if (IS_WB_IGNORE_TAIL(from)) {
728
+ while ((pp = onigenc_get_prev_char_head(enc, start, prev)) != NULL) {
729
+ prev = pp;
730
+ cfrom = ONIGENC_MBC_TO_CODE(enc, prev, end);
731
+ from = wb_get_type(cfrom);
732
+ if (! IS_WB_IGNORE_TAIL(from))
733
+ break;
619
734
  }
620
- else
621
- codes[1] = code;
735
+ }
622
736
 
623
- clen = enclen(enc, p);
624
- len += clen;
737
+ if (IS_WB_AHLetter(from)) {
738
+ /* WB5: AHLetter + AHLetter */
739
+ if (IS_WB_AHLetter(to)) return FALSE;
625
740
 
626
- index = unicode_fold2_key(codes);
627
- if (index >= 0) {
628
- m = FOLDS2_UNFOLDS_NUM(index);
629
- for (i = 0; i < m; i++) {
630
- items[n].byte_len = len;
631
- items[n].code_len = 1;
632
- items[n].code[0] = FOLDS2_UNFOLDS(index)[i];
633
- n++;
741
+ /* WB6: AHLetter + (MidLetter | MidNumLetQ) AHLetter */
742
+ if (to == WB_MidLetter || IS_WB_MidNumLetQ(to)) {
743
+ r = wb_get_next_main_code(enc, p, end, &cto2, &to2);
744
+ if (r == 1) {
745
+ if (IS_WB_AHLetter(to2)) return FALSE;
634
746
  }
635
747
  }
748
+ }
636
749
 
637
- p += clen;
638
- if (p < end) {
639
- code = ONIGENC_MBC_TO_CODE(enc, p, end);
640
- buk = unicode_unfold_key(code);
641
- if (buk != 0 && buk->fold_len == 1) {
642
- codes[2] = *FOLDS1_FOLD(buk->index);
750
+ /* WB7: AHLetter (MidLetter | MidNumLetQ) + AHLetter */
751
+ if (from == WB_MidLetter || IS_WB_MidNumLetQ(from)) {
752
+ if (IS_WB_AHLetter(to)) {
753
+ from2 = WB_Any;
754
+ while ((pp = onigenc_get_prev_char_head(enc, start, prev)) != NULL) {
755
+ prev = pp;
756
+ cfrom2 = ONIGENC_MBC_TO_CODE(enc, prev, end);
757
+ from2 = wb_get_type(cfrom2);
758
+ if (! IS_WB_IGNORE_TAIL(from2))
759
+ break;
643
760
  }
644
- else
645
- codes[2] = code;
646
761
 
647
- clen = enclen(enc, p);
648
- len += clen;
762
+ if (IS_WB_AHLetter(from2)) return FALSE;
763
+ }
764
+ }
765
+
766
+ if (from == WB_Hebrew_Letter) {
767
+ /* WB7a: Hebrew_Letter + Single_Quote */
768
+ if (to == WB_Single_Quote) return FALSE;
649
769
 
650
- index = unicode_fold3_key(codes);
651
- if (index >= 0) {
652
- m = FOLDS3_UNFOLDS_NUM(index);
653
- for (i = 0; i < m; i++) {
654
- items[n].byte_len = len;
655
- items[n].code_len = 1;
656
- items[n].code[0] = FOLDS3_UNFOLDS(index)[i];
657
- n++;
658
- }
770
+ /* WB7b: Hebrew_Letter + Double_Quote Hebrew_Letter */
771
+ if (to == WB_Double_Quote) {
772
+ r = wb_get_next_main_code(enc, p, end, &cto2, &to2);
773
+ if (r == 1) {
774
+ if (to2 == WB_Hebrew_Letter) return FALSE;
659
775
  }
660
776
  }
661
777
  }
662
778
 
663
- return n;
779
+ /* WB7c: Hebrew_Letter Double_Quote + Hebrew_Letter */
780
+ if (from == WB_Double_Quote) {
781
+ if (to == WB_Hebrew_Letter) {
782
+ from2 = WB_Any;
783
+ while ((pp = onigenc_get_prev_char_head(enc, start, prev)) != NULL) {
784
+ prev = pp;
785
+ cfrom2 = ONIGENC_MBC_TO_CODE(enc, prev, end);
786
+ from2 = wb_get_type(cfrom2);
787
+ if (! IS_WB_IGNORE_TAIL(from2))
788
+ break;
789
+ }
790
+
791
+ if (from2 == WB_Hebrew_Letter) return FALSE;
792
+ }
793
+ }
794
+
795
+ if (to == WB_Numeric) {
796
+ /* WB8: Numeric + Numeric */
797
+ if (from == WB_Numeric) return FALSE;
798
+
799
+ /* WB9: AHLetter + Numeric */
800
+ if (IS_WB_AHLetter(from)) return FALSE;
801
+
802
+ /* WB11: Numeric (MidNum | MidNumLetQ) + Numeric */
803
+ if (from == WB_MidNum || IS_WB_MidNumLetQ(from)) {
804
+ from2 = WB_Any;
805
+ while ((pp = onigenc_get_prev_char_head(enc, start, prev)) != NULL) {
806
+ prev = pp;
807
+ cfrom2 = ONIGENC_MBC_TO_CODE(enc, prev, end);
808
+ from2 = wb_get_type(cfrom2);
809
+ if (! IS_WB_IGNORE_TAIL(from2))
810
+ break;
811
+ }
812
+
813
+ if (from2 == WB_Numeric) return FALSE;
814
+ }
815
+ }
816
+
817
+ if (from == WB_Numeric) {
818
+ /* WB10: Numeric + AHLetter */
819
+ if (IS_WB_AHLetter(to)) return FALSE;
820
+
821
+ /* WB12: Numeric + (MidNum | MidNumLetQ) Numeric */
822
+ if (to == WB_MidNum || IS_WB_MidNumLetQ(to)) {
823
+ r = wb_get_next_main_code(enc, p, end, &cto2, &to2);
824
+ if (r == 1) {
825
+ if (to2 == WB_Numeric) return FALSE;
826
+ }
827
+ }
828
+ }
829
+
830
+ /* WB13: Katakana + Katakana */
831
+ if (from == WB_Katakana && to == WB_Katakana) return FALSE;
832
+
833
+ /* WB13a: (AHLetter | Numeric | Katakana | ExtendNumLet) + ExtendNumLet */
834
+ if (IS_WB_AHLetter(from) || from == WB_Numeric || from == WB_Katakana
835
+ || from == WB_ExtendNumLet) {
836
+ if (to == WB_ExtendNumLet) return FALSE;
837
+ }
838
+
839
+ /* WB13b: ExtendNumLet + (AHLetter | Numeric | Katakana) */
840
+ if (from == WB_ExtendNumLet) {
841
+ if (IS_WB_AHLetter(to) || to == WB_Numeric || to == WB_Katakana)
842
+ return FALSE;
843
+ }
844
+
845
+
846
+ /* WB15: sot (RI RI)* RI + RI */
847
+ /* WB16: [^RI] (RI RI)* RI + RI */
848
+ if (from == WB_Regional_Indicator && to == WB_Regional_Indicator) {
849
+ int n = 0;
850
+ while ((prev = onigenc_get_prev_char_head(enc, start, prev)) != NULL) {
851
+ cfrom2 = ONIGENC_MBC_TO_CODE(enc, prev, end);
852
+ from2 = wb_get_type(cfrom2);
853
+ if (from2 != WB_Regional_Indicator)
854
+ break;
855
+
856
+ n++;
857
+ }
858
+ if ((n % 2) == 0) return FALSE;
859
+ }
860
+
861
+ WB999:
862
+ /* WB999: Any / Any */
863
+ return TRUE;
864
+ }
865
+
866
+ #endif /* USE_UNICODE_WORD_BREAK */
867
+
868
+
869
+ #ifdef USE_UNICODE_EXTENDED_GRAPHEME_CLUSTER
870
+
871
+ enum EGCB_BREAK_TYPE {
872
+ EGCB_NOT_BREAK = 0,
873
+ EGCB_BREAK = 1,
874
+ EGCB_BREAK_UNDEF_GB11 = 2,
875
+ EGCB_BREAK_UNDEF_RI_RI = 3
876
+ };
877
+
878
+ enum EGCB_TYPE {
879
+ EGCB_Other = 0,
880
+ EGCB_CR = 1,
881
+ EGCB_LF = 2,
882
+ EGCB_Control = 3,
883
+ EGCB_Extend = 4,
884
+ EGCB_Prepend = 5,
885
+ EGCB_Regional_Indicator = 6,
886
+ EGCB_SpacingMark = 7,
887
+ EGCB_ZWJ = 8,
888
+ #if 0
889
+ /* obsoleted */
890
+ EGCB_E_Base = 9,
891
+ EGCB_E_Base_GAZ = 10,
892
+ EGCB_E_Modifier = 11,
893
+ EGCB_Glue_After_Zwj = 12,
894
+ #endif
895
+ EGCB_L = 13,
896
+ EGCB_LV = 14,
897
+ EGCB_LVT = 15,
898
+ EGCB_T = 16,
899
+ EGCB_V = 17
900
+ };
901
+
902
+ typedef struct {
903
+ OnigCodePoint start;
904
+ OnigCodePoint end;
905
+ enum EGCB_TYPE type;
906
+ } EGCB_RANGE_TYPE;
907
+
908
+ #include "unicode_egcb_data.c"
909
+
910
+ static enum EGCB_TYPE
911
+ egcb_get_type(OnigCodePoint code)
912
+ {
913
+ OnigCodePoint low, high, x;
914
+ enum EGCB_TYPE type;
915
+
916
+ for (low = 0, high = (OnigCodePoint )EGCB_RANGE_NUM; low < high; ) {
917
+ x = (low + high) >> 1;
918
+ if (code > EGCB_RANGES[x].end)
919
+ low = x + 1;
920
+ else
921
+ high = x;
922
+ }
923
+
924
+ type = (low < (OnigCodePoint )EGCB_RANGE_NUM &&
925
+ code >= EGCB_RANGES[low].start) ?
926
+ EGCB_RANGES[low].type : EGCB_Other;
927
+
928
+ return type;
929
+ }
930
+
931
+ #define IS_CONTROL_CR_LF(code) ((code) <= EGCB_Control && (code) >= EGCB_CR)
932
+ #define IS_HANGUL(code) ((code) >= EGCB_L)
933
+
934
+ /* GB1 and GB2 are outside of this function. */
935
+ static enum EGCB_BREAK_TYPE
936
+ unicode_egcb_is_break_2code(OnigCodePoint from_code, OnigCodePoint to_code)
937
+ {
938
+ enum EGCB_TYPE from;
939
+ enum EGCB_TYPE to;
940
+
941
+ from = egcb_get_type(from_code);
942
+ to = egcb_get_type(to_code);
943
+
944
+ /* short cut */
945
+ if (from == 0 && to == 0) goto GB999;
946
+
947
+ /* GB3 */
948
+ if (from == EGCB_CR && to == EGCB_LF) return EGCB_NOT_BREAK;
949
+ /* GB4 */
950
+ if (IS_CONTROL_CR_LF(from)) return EGCB_BREAK;
951
+ /* GB5 */
952
+ if (IS_CONTROL_CR_LF(to)) return EGCB_BREAK;
953
+
954
+ if (IS_HANGUL(from) && IS_HANGUL(to)) {
955
+ /* GB6 */
956
+ if (from == EGCB_L && to != EGCB_T) return EGCB_NOT_BREAK;
957
+ /* GB7 */
958
+ if ((from == EGCB_LV || from == EGCB_V)
959
+ && (to == EGCB_V || to == EGCB_T)) return EGCB_NOT_BREAK;
960
+
961
+ /* GB8 */
962
+ if ((to == EGCB_T) && (from == EGCB_LVT || from == EGCB_T))
963
+ return EGCB_NOT_BREAK;
964
+
965
+ goto GB999;
966
+ }
967
+
968
+ /* GB9 */
969
+ if (to == EGCB_Extend || to == EGCB_ZWJ) return EGCB_NOT_BREAK;
970
+
971
+ /* GB9a */
972
+ if (to == EGCB_SpacingMark) return EGCB_NOT_BREAK;
973
+ /* GB9b */
974
+ if (from == EGCB_Prepend) return EGCB_NOT_BREAK;
975
+
976
+ /* GB10 removed */
977
+
978
+ /* GB11 */
979
+ if (from == EGCB_ZWJ) {
980
+ if (onigenc_unicode_is_code_ctype(to_code, PROP_INDEX_EXTENDEDPICTOGRAPHIC))
981
+ return EGCB_BREAK_UNDEF_GB11;
982
+
983
+ goto GB999;
984
+ }
985
+
986
+ /* GB12, GB13 */
987
+ if (from == EGCB_Regional_Indicator && to == EGCB_Regional_Indicator) {
988
+ return EGCB_BREAK_UNDEF_RI_RI;
989
+ }
990
+
991
+ GB999:
992
+ return EGCB_BREAK;
993
+ }
994
+
995
+ #endif /* USE_UNICODE_EXTENDED_GRAPHEME_CLUSTER */
996
+
997
+ extern int
998
+ onigenc_egcb_is_break_position(OnigEncoding enc, UChar* p, UChar* prev,
999
+ const UChar* start, const UChar* end)
1000
+ {
1001
+ OnigCodePoint from;
1002
+ OnigCodePoint to;
1003
+ #ifdef USE_UNICODE_EXTENDED_GRAPHEME_CLUSTER
1004
+ enum EGCB_BREAK_TYPE btype;
1005
+ enum EGCB_TYPE type;
1006
+ #endif
1007
+
1008
+ /* GB1 and GB2 */
1009
+ if (p == start) return 1;
1010
+ if (p == end) return 1;
1011
+
1012
+ if (IS_NULL(prev)) {
1013
+ prev = onigenc_get_prev_char_head(enc, start, p);
1014
+ if (IS_NULL(prev)) return 1;
1015
+ }
1016
+
1017
+ from = ONIGENC_MBC_TO_CODE(enc, prev, end);
1018
+ to = ONIGENC_MBC_TO_CODE(enc, p, end);
1019
+
1020
+ #ifdef USE_UNICODE_EXTENDED_GRAPHEME_CLUSTER
1021
+ if (! ONIGENC_IS_UNICODE_ENCODING(enc)) {
1022
+ return from != 0x000d || to != NEWLINE_CODE;
1023
+ }
1024
+
1025
+ btype = unicode_egcb_is_break_2code(from, to);
1026
+ switch (btype) {
1027
+ case EGCB_NOT_BREAK:
1028
+ return 0;
1029
+ break;
1030
+ case EGCB_BREAK:
1031
+ return 1;
1032
+ break;
1033
+
1034
+ case EGCB_BREAK_UNDEF_GB11:
1035
+ while ((prev = onigenc_get_prev_char_head(enc, start, prev)) != NULL) {
1036
+ from = ONIGENC_MBC_TO_CODE(enc, prev, end);
1037
+ if (onigenc_unicode_is_code_ctype(from, PROP_INDEX_EXTENDEDPICTOGRAPHIC))
1038
+ return 0;
1039
+
1040
+ type = egcb_get_type(from);
1041
+ if (type != EGCB_Extend)
1042
+ break;
1043
+ }
1044
+ break;
1045
+
1046
+ case EGCB_BREAK_UNDEF_RI_RI:
1047
+ {
1048
+ int n = 0;
1049
+ while ((prev = onigenc_get_prev_char_head(enc, start, prev)) != NULL) {
1050
+ from = ONIGENC_MBC_TO_CODE(enc, prev, end);
1051
+ type = egcb_get_type(from);
1052
+ if (type != EGCB_Regional_Indicator)
1053
+ break;
1054
+
1055
+ n++;
1056
+ }
1057
+ if ((n % 2) == 0) return 0;
1058
+ }
1059
+ break;
1060
+ }
1061
+
1062
+ return 1;
1063
+
1064
+ #else
1065
+ return from != 0x000d || to != NEWLINE_CODE;
1066
+ #endif /* USE_UNICODE_EXTENDED_GRAPHEME_CLUSTER */
1067
+ }
1068
+
1069
+
1070
+ #define USER_DEFINED_PROPERTY_MAX_NUM 20
1071
+
1072
+ typedef struct {
1073
+ int ctype;
1074
+ OnigCodePoint* ranges;
1075
+ } UserDefinedPropertyValue;
1076
+
1077
+ static int UserDefinedPropertyNum;
1078
+ static UserDefinedPropertyValue
1079
+ UserDefinedPropertyRanges[USER_DEFINED_PROPERTY_MAX_NUM];
1080
+ static st_table* UserDefinedPropertyTable;
1081
+
1082
+ extern int
1083
+ onig_unicode_define_user_property(const char* name, OnigCodePoint* ranges)
1084
+ {
1085
+ UserDefinedPropertyValue* e;
1086
+ int r;
1087
+ int i;
1088
+ int n;
1089
+ int len;
1090
+ int c;
1091
+ char* s;
1092
+ UChar* uname;
1093
+
1094
+ if (UserDefinedPropertyNum >= USER_DEFINED_PROPERTY_MAX_NUM)
1095
+ return ONIGERR_TOO_MANY_USER_DEFINED_OBJECTS;
1096
+
1097
+ len = (int )strlen(name);
1098
+ if (len >= PROPERTY_NAME_MAX_SIZE)
1099
+ return ONIGERR_TOO_LONG_PROPERTY_NAME;
1100
+
1101
+ s = (char* )xmalloc(len + 1);
1102
+ if (s == 0)
1103
+ return ONIGERR_MEMORY;
1104
+
1105
+ uname = (UChar* )name;
1106
+ n = 0;
1107
+ for (i = 0; i < len; i++) {
1108
+ c = uname[i];
1109
+ if (c < 0x20 || c >= 0x80) {
1110
+ xfree(s);
1111
+ return ONIGERR_INVALID_CHAR_PROPERTY_NAME;
1112
+ }
1113
+
1114
+ if (c != ' ' && c != '-' && c != '_') {
1115
+ s[n] = c;
1116
+ n++;
1117
+ }
1118
+ }
1119
+ s[n] = '\0';
1120
+
1121
+ if (UserDefinedPropertyTable == 0) {
1122
+ UserDefinedPropertyTable = onig_st_init_strend_table_with_size(10);
1123
+ if (IS_NULL(UserDefinedPropertyTable)) {
1124
+ xfree(s);
1125
+ return ONIGERR_MEMORY;
1126
+ }
1127
+ }
1128
+
1129
+ e = UserDefinedPropertyRanges + UserDefinedPropertyNum;
1130
+ e->ctype = CODE_RANGES_NUM + UserDefinedPropertyNum;
1131
+ e->ranges = ranges;
1132
+ r = onig_st_insert_strend(UserDefinedPropertyTable,
1133
+ (const UChar* )s, (const UChar* )s + n,
1134
+ (hash_data_type )((void* )e));
1135
+ if (r < 0) return r;
1136
+
1137
+ UserDefinedPropertyNum++;
1138
+ return 0;
1139
+ }
1140
+
1141
+ extern int
1142
+ onigenc_unicode_is_code_ctype(OnigCodePoint code, unsigned int ctype)
1143
+ {
1144
+ if (
1145
+ #ifdef USE_UNICODE_PROPERTIES
1146
+ ctype <= ONIGENC_MAX_STD_CTYPE &&
1147
+ #endif
1148
+ code < 256) {
1149
+ return ONIGENC_IS_UNICODE_ISO_8859_1_CTYPE(code, ctype);
1150
+ }
1151
+
1152
+ if (ctype >= CODE_RANGES_NUM) {
1153
+ int index = ctype - CODE_RANGES_NUM;
1154
+ if (index < UserDefinedPropertyNum)
1155
+ return onig_is_in_code_range((UChar* )UserDefinedPropertyRanges[index].ranges, code);
1156
+ else
1157
+ return ONIGERR_TYPE_BUG;
1158
+ }
1159
+
1160
+ return onig_is_in_code_range((UChar* )CodeRanges[ctype], code);
1161
+ }
1162
+
1163
+
1164
+ extern int
1165
+ onigenc_unicode_ctype_code_range(OnigCtype ctype, const OnigCodePoint* ranges[])
1166
+ {
1167
+ if (ctype >= CODE_RANGES_NUM) {
1168
+ int index = ctype - CODE_RANGES_NUM;
1169
+ if (index < UserDefinedPropertyNum) {
1170
+ *ranges = UserDefinedPropertyRanges[index].ranges;
1171
+ return 0;
1172
+ }
1173
+ else
1174
+ return ONIGERR_TYPE_BUG;
1175
+ }
1176
+
1177
+ *ranges = CodeRanges[ctype];
1178
+ return 0;
1179
+ }
1180
+
1181
+ extern int
1182
+ onigenc_utf16_32_get_ctype_code_range(OnigCtype ctype, OnigCodePoint* sb_out,
1183
+ const OnigCodePoint* ranges[])
1184
+ {
1185
+ *sb_out = 0x00;
1186
+ return onigenc_unicode_ctype_code_range(ctype, ranges);
1187
+ }
1188
+
1189
+ extern int
1190
+ onigenc_unicode_property_name_to_ctype(OnigEncoding enc, UChar* name, UChar* end)
1191
+ {
1192
+ int len;
1193
+ UChar *p;
1194
+ OnigCodePoint code;
1195
+ const struct PoolPropertyNameCtype* pc;
1196
+ char buf[PROPERTY_NAME_MAX_SIZE];
1197
+
1198
+ p = name;
1199
+ len = 0;
1200
+ while (p < end) {
1201
+ code = ONIGENC_MBC_TO_CODE(enc, p, end);
1202
+ if (code >= 0x80)
1203
+ return ONIGERR_INVALID_CHAR_PROPERTY_NAME;
1204
+
1205
+ if (code != ' ' && code != '-' && code != '_') {
1206
+ buf[len++] = (char )code;
1207
+ if (len >= PROPERTY_NAME_MAX_SIZE)
1208
+ return ONIGERR_INVALID_CHAR_PROPERTY_NAME;
1209
+ }
1210
+
1211
+ p += enclen(enc, p);
1212
+ }
1213
+
1214
+ buf[len] = 0;
1215
+
1216
+ if (UserDefinedPropertyTable != 0) {
1217
+ UserDefinedPropertyValue* e;
1218
+ e = (UserDefinedPropertyValue* )NULL;
1219
+ onig_st_lookup_strend(UserDefinedPropertyTable,
1220
+ (const UChar* )buf, (const UChar* )buf + len,
1221
+ (hash_data_type* )((void* )(&e)));
1222
+ if (e != 0) {
1223
+ return e->ctype;
1224
+ }
1225
+ }
1226
+
1227
+ pc = unicode_lookup_property_name(buf, len);
1228
+ if (pc != 0) {
1229
+ /* fprintf(stderr, "LOOKUP: %s: %d\n", buf, pc->ctype); */
1230
+ #ifndef USE_UNICODE_PROPERTIES
1231
+ if (pc->ctype > ONIGENC_MAX_STD_CTYPE)
1232
+ return ONIGERR_INVALID_CHAR_PROPERTY_NAME;
1233
+ #endif
1234
+
1235
+ return (int )pc->ctype;
1236
+ }
1237
+
1238
+ return ONIGERR_INVALID_CHAR_PROPERTY_NAME;
664
1239
  }