koffi 2.1.3 → 2.1.4

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 (401) hide show
  1. package/package.json +44 -68
  2. package/{LICENSE.txt → src/cnoke/LICENSE.txt} +0 -0
  3. package/src/cnoke/README.md +97 -0
  4. package/src/cnoke/assets/FindCNoke.cmake +71 -0
  5. package/src/cnoke/assets/win_delay_hook.c +34 -0
  6. package/src/cnoke/cnoke.js +968 -0
  7. package/src/cnoke/package.json +25 -0
  8. package/{vendor → src/core}/libcc/libcc.cc +38 -11
  9. package/{vendor → src/core}/libcc/libcc.hh +4 -2
  10. package/{CMakeLists.txt → src/koffi/CMakeLists.txt} +3 -3
  11. package/{ChangeLog.md → src/koffi/ChangeLog.md} +11 -0
  12. package/src/koffi/LICENSE.txt +661 -0
  13. package/{README.md → src/koffi/README.md} +0 -0
  14. package/{benchmark → src/koffi/benchmark}/CMakeLists.txt +9 -6
  15. package/{benchmark → src/koffi/benchmark}/atoi_koffi.js +0 -0
  16. package/{benchmark → src/koffi/benchmark}/atoi_napi.cc +1 -1
  17. package/{benchmark → src/koffi/benchmark}/atoi_napi.js +0 -0
  18. package/{benchmark → src/koffi/benchmark}/atoi_node_ffi.js +0 -0
  19. package/src/koffi/benchmark/benchmark.js +118 -0
  20. package/src/koffi/benchmark/rand_koffi.js +52 -0
  21. package/src/koffi/benchmark/rand_napi.cc +69 -0
  22. package/src/koffi/benchmark/rand_napi.js +47 -0
  23. package/src/koffi/benchmark/rand_node_ffi.js +55 -0
  24. package/{benchmark → src/koffi/benchmark}/raylib_cc.cc +2 -2
  25. package/{benchmark → src/koffi/benchmark}/raylib_cc.js +0 -0
  26. package/{benchmark → src/koffi/benchmark}/raylib_koffi.js +0 -0
  27. package/{benchmark → src/koffi/benchmark}/raylib_node_ffi.js +0 -0
  28. package/{benchmark → src/koffi/benchmark}/raylib_node_raylib.js +0 -0
  29. package/src/koffi/build/2.1.4/koffi_darwin_arm64.tar.gz +0 -0
  30. package/src/koffi/build/2.1.4/koffi_darwin_x64.tar.gz +0 -0
  31. package/src/koffi/build/2.1.4/koffi_freebsd_arm64.tar.gz +0 -0
  32. package/src/koffi/build/2.1.4/koffi_freebsd_ia32.tar.gz +0 -0
  33. package/src/koffi/build/2.1.4/koffi_freebsd_x64.tar.gz +0 -0
  34. package/src/koffi/build/2.1.4/koffi_linux_arm32hf.tar.gz +0 -0
  35. package/src/koffi/build/2.1.4/koffi_linux_arm64.tar.gz +0 -0
  36. package/src/koffi/build/2.1.4/koffi_linux_ia32.tar.gz +0 -0
  37. package/src/koffi/build/2.1.4/koffi_linux_riscv64hf64.tar.gz +0 -0
  38. package/src/koffi/build/2.1.4/koffi_linux_x64.tar.gz +0 -0
  39. package/src/koffi/build/2.1.4/koffi_openbsd_ia32.tar.gz +0 -0
  40. package/src/koffi/build/2.1.4/koffi_openbsd_x64.tar.gz +0 -0
  41. package/src/koffi/build/2.1.4/koffi_win32_arm64.tar.gz +0 -0
  42. package/src/koffi/build/2.1.4/koffi_win32_ia32.tar.gz +0 -0
  43. package/src/koffi/build/2.1.4/koffi_win32_x64.tar.gz +0 -0
  44. package/{doc → src/koffi/doc}/Makefile +0 -0
  45. package/{doc → src/koffi/doc}/benchmarks.md +0 -0
  46. package/{doc → src/koffi/doc}/benchmarks.xlsx +0 -0
  47. package/{doc → src/koffi/doc}/changes.md +0 -0
  48. package/{doc → src/koffi/doc}/conf.py +0 -0
  49. package/{doc → src/koffi/doc}/contribute.md +5 -5
  50. package/{doc → src/koffi/doc}/functions.md +0 -0
  51. package/{doc → src/koffi/doc}/index.rst +1 -1
  52. package/{doc → src/koffi/doc}/make.bat +0 -0
  53. package/{doc → src/koffi/doc}/memory.md +1 -0
  54. package/{doc → src/koffi/doc}/platforms.md +0 -0
  55. package/{doc → src/koffi/doc}/poetry.lock +0 -0
  56. package/{doc → src/koffi/doc}/pyproject.toml +0 -0
  57. package/{doc → src/koffi/doc}/start.md +0 -0
  58. package/{doc → src/koffi/doc}/static/bench_linux.png +0 -0
  59. package/{doc → src/koffi/doc}/static/bench_windows.png +0 -0
  60. package/{doc → src/koffi/doc}/static/custom.css +0 -0
  61. package/{doc → src/koffi/doc}/static/perf_linux_20220623.png +0 -0
  62. package/{doc → src/koffi/doc}/static/perf_linux_20220623_2.png +0 -0
  63. package/{doc → src/koffi/doc}/static/perf_linux_20220627.png +0 -0
  64. package/{doc → src/koffi/doc}/static/perf_linux_20220628.png +0 -0
  65. package/{doc → src/koffi/doc}/static/perf_linux_20220812.png +0 -0
  66. package/{doc → src/koffi/doc}/static/perf_windows_20220623.png +0 -0
  67. package/{doc → src/koffi/doc}/static/perf_windows_20220623_2.png +0 -0
  68. package/{doc → src/koffi/doc}/static/perf_windows_20220627.png +0 -0
  69. package/{doc → src/koffi/doc}/static/perf_windows_20220628.png +0 -0
  70. package/{doc → src/koffi/doc}/static/perf_windows_20220812.png +0 -0
  71. package/{doc → src/koffi/doc}/templates/badges.html +1 -1
  72. package/{doc → src/koffi/doc}/types.md +0 -0
  73. package/src/koffi/qemu/qemu/.gitkeep +0 -0
  74. package/{qemu → src/koffi/qemu}/qemu.js +217 -131
  75. package/{qemu → src/koffi/qemu}/registry/machines.json +24 -0
  76. package/{qemu → src/koffi/qemu}/registry/sha256sum.txt +0 -0
  77. package/src/{abi_arm32.cc → koffi/src/abi_arm32.cc} +1 -1
  78. package/src/{abi_arm32_fwd.S → koffi/src/abi_arm32_fwd.S} +0 -0
  79. package/src/{abi_arm64.cc → koffi/src/abi_arm64.cc} +1 -1
  80. package/src/{abi_arm64_fwd.S → koffi/src/abi_arm64_fwd.S} +0 -0
  81. package/src/{abi_arm64_fwd.asm → koffi/src/abi_arm64_fwd.asm} +0 -0
  82. package/src/{abi_riscv64.cc → koffi/src/abi_riscv64.cc} +1 -1
  83. package/src/{abi_riscv64_fwd.S → koffi/src/abi_riscv64_fwd.S} +0 -0
  84. package/src/{abi_x64_sysv.cc → koffi/src/abi_x64_sysv.cc} +1 -1
  85. package/src/{abi_x64_sysv_fwd.S → koffi/src/abi_x64_sysv_fwd.S} +0 -0
  86. package/src/{abi_x64_win.cc → koffi/src/abi_x64_win.cc} +1 -1
  87. package/src/{abi_x64_win_fwd.asm → koffi/src/abi_x64_win_fwd.asm} +0 -0
  88. package/src/{abi_x86.cc → koffi/src/abi_x86.cc} +1 -1
  89. package/src/{abi_x86_fwd.S → koffi/src/abi_x86_fwd.S} +0 -0
  90. package/src/{abi_x86_fwd.asm → koffi/src/abi_x86_fwd.asm} +0 -0
  91. package/src/{call.cc → koffi/src/call.cc} +1 -1
  92. package/src/{call.hh → koffi/src/call.hh} +2 -2
  93. package/src/{ffi.cc → koffi/src/ffi.cc} +34 -18
  94. package/src/{ffi.hh → koffi/src/ffi.hh} +5 -3
  95. package/src/{index.js → koffi/src/index.js} +0 -0
  96. package/src/{parser.cc → koffi/src/parser.cc} +1 -1
  97. package/src/{parser.hh → koffi/src/parser.hh} +1 -1
  98. package/src/{util.cc → koffi/src/util.cc} +1 -1
  99. package/src/{util.hh → koffi/src/util.hh} +1 -1
  100. package/{test → src/koffi/test}/CMakeLists.txt +14 -15
  101. package/{test → src/koffi/test}/async.js +0 -0
  102. package/{test → src/koffi/test}/callbacks.js +0 -0
  103. package/{test → src/koffi/test}/misc.c +13 -0
  104. package/{test → src/koffi/test}/misc.def +0 -0
  105. package/{test → src/koffi/test}/raylib.js +0 -0
  106. package/{test → src/koffi/test}/sqlite.js +1 -1
  107. package/{test → src/koffi/test}/sync.js +17 -0
  108. package/vendor/brotli/BUILD +144 -0
  109. package/vendor/brotli/CMakeLists.txt +421 -0
  110. package/vendor/brotli/CONTRIBUTING.md +27 -0
  111. package/vendor/brotli/LICENSE +19 -0
  112. package/vendor/brotli/MANIFEST.in +17 -0
  113. package/vendor/brotli/Makefile +55 -0
  114. package/vendor/brotli/Makefile.am +38 -0
  115. package/vendor/brotli/README +15 -0
  116. package/vendor/brotli/README.md +104 -0
  117. package/vendor/brotli/WORKSPACE +21 -0
  118. package/vendor/brotli/bootstrap +35 -0
  119. package/vendor/brotli/c/common/constants.c +15 -0
  120. package/vendor/brotli/c/common/constants.h +200 -0
  121. package/vendor/brotli/c/common/context.c +156 -0
  122. package/vendor/brotli/c/common/context.h +113 -0
  123. package/vendor/brotli/c/common/dictionary.c +5914 -0
  124. package/vendor/brotli/c/common/dictionary.h +64 -0
  125. package/vendor/brotli/c/common/platform.c +22 -0
  126. package/vendor/brotli/c/common/platform.h +594 -0
  127. package/vendor/brotli/c/common/transform.c +291 -0
  128. package/vendor/brotli/c/common/transform.h +85 -0
  129. package/vendor/brotli/c/common/version.h +26 -0
  130. package/vendor/brotli/c/dec/bit_reader.c +76 -0
  131. package/vendor/brotli/c/dec/bit_reader.h +351 -0
  132. package/vendor/brotli/c/dec/decode.c +2608 -0
  133. package/vendor/brotli/c/dec/huffman.c +339 -0
  134. package/vendor/brotli/c/dec/huffman.h +121 -0
  135. package/vendor/brotli/c/dec/prefix.h +732 -0
  136. package/vendor/brotli/c/dec/state.c +159 -0
  137. package/vendor/brotli/c/dec/state.h +365 -0
  138. package/vendor/brotli/c/enc/backward_references.c +145 -0
  139. package/vendor/brotli/c/enc/backward_references.h +39 -0
  140. package/vendor/brotli/c/enc/backward_references_hq.c +843 -0
  141. package/vendor/brotli/c/enc/backward_references_hq.h +95 -0
  142. package/vendor/brotli/c/enc/backward_references_inc.h +163 -0
  143. package/vendor/brotli/c/enc/bit_cost.c +35 -0
  144. package/vendor/brotli/c/enc/bit_cost.h +63 -0
  145. package/vendor/brotli/c/enc/bit_cost_inc.h +127 -0
  146. package/vendor/brotli/c/enc/block_encoder_inc.h +34 -0
  147. package/vendor/brotli/c/enc/block_splitter.c +194 -0
  148. package/vendor/brotli/c/enc/block_splitter.h +51 -0
  149. package/vendor/brotli/c/enc/block_splitter_inc.h +440 -0
  150. package/vendor/brotli/c/enc/brotli_bit_stream.c +1314 -0
  151. package/vendor/brotli/c/enc/brotli_bit_stream.h +84 -0
  152. package/vendor/brotli/c/enc/cluster.c +56 -0
  153. package/vendor/brotli/c/enc/cluster.h +48 -0
  154. package/vendor/brotli/c/enc/cluster_inc.h +320 -0
  155. package/vendor/brotli/c/enc/command.c +28 -0
  156. package/vendor/brotli/c/enc/command.h +190 -0
  157. package/vendor/brotli/c/enc/compress_fragment.c +790 -0
  158. package/vendor/brotli/c/enc/compress_fragment.h +61 -0
  159. package/vendor/brotli/c/enc/compress_fragment_two_pass.c +645 -0
  160. package/vendor/brotli/c/enc/compress_fragment_two_pass.h +54 -0
  161. package/vendor/brotli/c/enc/dictionary_hash.c +1846 -0
  162. package/vendor/brotli/c/enc/dictionary_hash.h +25 -0
  163. package/vendor/brotli/c/enc/encode.c +1927 -0
  164. package/vendor/brotli/c/enc/encoder_dict.c +33 -0
  165. package/vendor/brotli/c/enc/encoder_dict.h +43 -0
  166. package/vendor/brotli/c/enc/entropy_encode.c +503 -0
  167. package/vendor/brotli/c/enc/entropy_encode.h +122 -0
  168. package/vendor/brotli/c/enc/entropy_encode_static.h +539 -0
  169. package/vendor/brotli/c/enc/fast_log.c +105 -0
  170. package/vendor/brotli/c/enc/fast_log.h +66 -0
  171. package/vendor/brotli/c/enc/find_match_length.h +79 -0
  172. package/vendor/brotli/c/enc/hash.h +488 -0
  173. package/vendor/brotli/c/enc/hash_composite_inc.h +125 -0
  174. package/vendor/brotli/c/enc/hash_forgetful_chain_inc.h +293 -0
  175. package/vendor/brotli/c/enc/hash_longest_match64_inc.h +267 -0
  176. package/vendor/brotli/c/enc/hash_longest_match_inc.h +262 -0
  177. package/vendor/brotli/c/enc/hash_longest_match_quickly_inc.h +266 -0
  178. package/vendor/brotli/c/enc/hash_rolling_inc.h +212 -0
  179. package/vendor/brotli/c/enc/hash_to_binary_tree_inc.h +329 -0
  180. package/vendor/brotli/c/enc/histogram.c +100 -0
  181. package/vendor/brotli/c/enc/histogram.h +63 -0
  182. package/vendor/brotli/c/enc/histogram_inc.h +51 -0
  183. package/vendor/brotli/c/enc/literal_cost.c +175 -0
  184. package/vendor/brotli/c/enc/literal_cost.h +30 -0
  185. package/vendor/brotli/c/enc/memory.c +170 -0
  186. package/vendor/brotli/c/enc/memory.h +114 -0
  187. package/vendor/brotli/c/enc/metablock.c +663 -0
  188. package/vendor/brotli/c/enc/metablock.h +105 -0
  189. package/vendor/brotli/c/enc/metablock_inc.h +183 -0
  190. package/vendor/brotli/c/enc/params.h +46 -0
  191. package/vendor/brotli/c/enc/prefix.h +53 -0
  192. package/vendor/brotli/c/enc/quality.h +165 -0
  193. package/vendor/brotli/c/enc/ringbuffer.h +167 -0
  194. package/vendor/brotli/c/enc/static_dict.c +486 -0
  195. package/vendor/brotli/c/enc/static_dict.h +40 -0
  196. package/vendor/brotli/c/enc/static_dict_lut.h +5864 -0
  197. package/vendor/brotli/c/enc/utf8_util.c +85 -0
  198. package/vendor/brotli/c/enc/utf8_util.h +32 -0
  199. package/vendor/brotli/c/enc/write_bits.h +87 -0
  200. package/vendor/brotli/c/include/brotli/decode.h +344 -0
  201. package/vendor/brotli/c/include/brotli/encode.h +448 -0
  202. package/vendor/brotli/c/include/brotli/port.h +288 -0
  203. package/vendor/brotli/c/include/brotli/types.h +83 -0
  204. package/vendor/brotli/c/tools/brotli.c +1116 -0
  205. package/vendor/brotli/c/tools/brotli.md +107 -0
  206. package/vendor/brotli/compiler_config_setting.bzl +28 -0
  207. package/vendor/brotli/configure +8 -0
  208. package/vendor/brotli/configure-cmake +318 -0
  209. package/vendor/brotli/configure.ac +14 -0
  210. package/vendor/brotli/docs/brotli.1 +132 -0
  211. package/vendor/brotli/docs/constants.h.3 +47 -0
  212. package/vendor/brotli/docs/decode.h.3 +415 -0
  213. package/vendor/brotli/docs/encode.h.3 +586 -0
  214. package/vendor/brotli/docs/types.h.3 +117 -0
  215. package/vendor/brotli/premake5.lua +78 -0
  216. package/vendor/brotli/python/Makefile +57 -0
  217. package/vendor/brotli/python/README.md +54 -0
  218. package/vendor/brotli/python/_brotli.cc +753 -0
  219. package/vendor/brotli/python/bro.py +160 -0
  220. package/vendor/brotli/python/brotli.py +56 -0
  221. package/vendor/brotli/python/tests/__init__.py +0 -0
  222. package/vendor/brotli/python/tests/_test_utils.py +112 -0
  223. package/vendor/brotli/python/tests/bro_test.py +102 -0
  224. package/vendor/brotli/python/tests/compress_test.py +41 -0
  225. package/vendor/brotli/python/tests/compressor_test.py +94 -0
  226. package/vendor/brotli/python/tests/decompress_test.py +42 -0
  227. package/vendor/brotli/python/tests/decompressor_test.py +59 -0
  228. package/vendor/brotli/scripts/libbrotlicommon.pc.in +11 -0
  229. package/vendor/brotli/scripts/libbrotlidec.pc.in +12 -0
  230. package/vendor/brotli/scripts/libbrotlienc.pc.in +12 -0
  231. package/vendor/brotli/scripts/sources.lst +104 -0
  232. package/vendor/brotli/setup.cfg +5 -0
  233. package/vendor/brotli/setup.py +293 -0
  234. package/vendor/brotli/tests/Makefile +17 -0
  235. package/vendor/brotli/tests/compatibility_test.sh +25 -0
  236. package/vendor/brotli/tests/roundtrip_test.sh +36 -0
  237. package/vendor/brotli/tests/run-compatibility-test.cmake +31 -0
  238. package/vendor/brotli/tests/run-roundtrip-test.cmake +36 -0
  239. package/vendor/brotli/tests/testdata/empty +0 -0
  240. package/vendor/brotli/tests/testdata/empty.compressed +1 -0
  241. package/vendor/brotli/tests/testdata/ukkonooa +1 -0
  242. package/vendor/brotli/tests/testdata/ukkonooa.compressed +0 -0
  243. package/vendor/miniz/ChangeLog.md +235 -0
  244. package/vendor/miniz/LICENSE +22 -0
  245. package/vendor/miniz/examples/example1.c +105 -0
  246. package/vendor/miniz/examples/example2.c +164 -0
  247. package/vendor/miniz/examples/example3.c +269 -0
  248. package/vendor/miniz/examples/example4.c +102 -0
  249. package/vendor/miniz/examples/example5.c +327 -0
  250. package/vendor/miniz/examples/example6.c +166 -0
  251. package/vendor/miniz/miniz.c +7835 -0
  252. package/vendor/miniz/miniz.h +1422 -0
  253. package/vendor/miniz/readme.md +46 -0
  254. package/vendor/{sqlite3 → sqlite3mc}/sqlite3ext.h +18 -2
  255. package/vendor/{sqlite3/sqlite3.c → sqlite3mc/sqlite3mc.c} +60872 -4890
  256. package/vendor/sqlite3mc/sqlite3mc.def +312 -0
  257. package/vendor/{sqlite3/sqlite3.h → sqlite3mc/sqlite3mc.h} +480 -36
  258. package/build/qemu/2.1.3/koffi_darwin_arm64.tar.gz +0 -0
  259. package/build/qemu/2.1.3/koffi_darwin_x64.tar.gz +0 -0
  260. package/build/qemu/2.1.3/koffi_freebsd_arm64.tar.gz +0 -0
  261. package/build/qemu/2.1.3/koffi_freebsd_ia32.tar.gz +0 -0
  262. package/build/qemu/2.1.3/koffi_freebsd_x64.tar.gz +0 -0
  263. package/build/qemu/2.1.3/koffi_linux_arm32hf.tar.gz +0 -0
  264. package/build/qemu/2.1.3/koffi_linux_arm64.tar.gz +0 -0
  265. package/build/qemu/2.1.3/koffi_linux_ia32.tar.gz +0 -0
  266. package/build/qemu/2.1.3/koffi_linux_riscv64hf64.tar.gz +0 -0
  267. package/build/qemu/2.1.3/koffi_linux_x64.tar.gz +0 -0
  268. package/build/qemu/2.1.3/koffi_openbsd_ia32.tar.gz +0 -0
  269. package/build/qemu/2.1.3/koffi_openbsd_x64.tar.gz +0 -0
  270. package/build/qemu/2.1.3/koffi_win32_arm64.tar.gz +0 -0
  271. package/build/qemu/2.1.3/koffi_win32_ia32.tar.gz +0 -0
  272. package/build/qemu/2.1.3/koffi_win32_x64.tar.gz +0 -0
  273. package/vendor/_patches/glfw_001_fix_openbsd_xlib_soname.patch +0 -145
  274. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj +0 -226
  275. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj.filters +0 -10
  276. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj.user +0 -4
  277. package/vendor/raylib/projects/VS2019-Android/raylib_android.sln +0 -75
  278. package/vendor/raylib/projects/VS2022/examples/audio_module_playing.vcxproj +0 -390
  279. package/vendor/raylib/projects/VS2022/examples/audio_multichannel_sound.vcxproj +0 -390
  280. package/vendor/raylib/projects/VS2022/examples/audio_music_stream.vcxproj +0 -390
  281. package/vendor/raylib/projects/VS2022/examples/audio_raw_stream.vcxproj +0 -390
  282. package/vendor/raylib/projects/VS2022/examples/audio_sound_loading.vcxproj +0 -390
  283. package/vendor/raylib/projects/VS2022/examples/audio_stream_effects.vcxproj +0 -390
  284. package/vendor/raylib/projects/VS2022/examples/core_2d_camera.vcxproj +0 -390
  285. package/vendor/raylib/projects/VS2022/examples/core_2d_camera_mouse_zoom.vcxproj +0 -390
  286. package/vendor/raylib/projects/VS2022/examples/core_2d_camera_platformer.vcxproj +0 -390
  287. package/vendor/raylib/projects/VS2022/examples/core_3d_camera_first_person.vcxproj +0 -390
  288. package/vendor/raylib/projects/VS2022/examples/core_3d_camera_free.vcxproj +0 -390
  289. package/vendor/raylib/projects/VS2022/examples/core_3d_camera_mode.vcxproj +0 -390
  290. package/vendor/raylib/projects/VS2022/examples/core_3d_picking.vcxproj +0 -390
  291. package/vendor/raylib/projects/VS2022/examples/core_basic_screen_manager.vcxproj +0 -390
  292. package/vendor/raylib/projects/VS2022/examples/core_basic_window.vcxproj +0 -390
  293. package/vendor/raylib/projects/VS2022/examples/core_custom_frame_control.vcxproj +0 -390
  294. package/vendor/raylib/projects/VS2022/examples/core_custom_logging.vcxproj +0 -390
  295. package/vendor/raylib/projects/VS2022/examples/core_drop_files.vcxproj +0 -390
  296. package/vendor/raylib/projects/VS2022/examples/core_input_gamepad.vcxproj +0 -387
  297. package/vendor/raylib/projects/VS2022/examples/core_input_gestures.vcxproj +0 -387
  298. package/vendor/raylib/projects/VS2022/examples/core_input_keys.vcxproj +0 -387
  299. package/vendor/raylib/projects/VS2022/examples/core_input_mouse.vcxproj +0 -387
  300. package/vendor/raylib/projects/VS2022/examples/core_input_mouse_wheel.vcxproj +0 -387
  301. package/vendor/raylib/projects/VS2022/examples/core_input_multitouch.vcxproj +0 -387
  302. package/vendor/raylib/projects/VS2022/examples/core_loading_thread.vcxproj +0 -387
  303. package/vendor/raylib/projects/VS2022/examples/core_random_values.vcxproj +0 -387
  304. package/vendor/raylib/projects/VS2022/examples/core_scissor_test.vcxproj +0 -387
  305. package/vendor/raylib/projects/VS2022/examples/core_split_screen.vcxproj +0 -387
  306. package/vendor/raylib/projects/VS2022/examples/core_storage_values.vcxproj +0 -387
  307. package/vendor/raylib/projects/VS2022/examples/core_vr_simulator.vcxproj +0 -387
  308. package/vendor/raylib/projects/VS2022/examples/core_window_flags.vcxproj +0 -387
  309. package/vendor/raylib/projects/VS2022/examples/core_window_letterbox.vcxproj +0 -387
  310. package/vendor/raylib/projects/VS2022/examples/core_window_should_close.vcxproj +0 -390
  311. package/vendor/raylib/projects/VS2022/examples/core_world_screen.vcxproj +0 -387
  312. package/vendor/raylib/projects/VS2022/examples/easings_testbed.vcxproj +0 -387
  313. package/vendor/raylib/projects/VS2022/examples/embedded_files_loading.vcxproj +0 -387
  314. package/vendor/raylib/projects/VS2022/examples/models_animation.vcxproj +0 -387
  315. package/vendor/raylib/projects/VS2022/examples/models_billboard.vcxproj +0 -387
  316. package/vendor/raylib/projects/VS2022/examples/models_box_collisions.vcxproj +0 -387
  317. package/vendor/raylib/projects/VS2022/examples/models_cubicmap.vcxproj +0 -387
  318. package/vendor/raylib/projects/VS2022/examples/models_first_person_maze.vcxproj +0 -387
  319. package/vendor/raylib/projects/VS2022/examples/models_geometric_shapes.vcxproj +0 -387
  320. package/vendor/raylib/projects/VS2022/examples/models_heightmap.vcxproj +0 -387
  321. package/vendor/raylib/projects/VS2022/examples/models_loading.vcxproj +0 -387
  322. package/vendor/raylib/projects/VS2022/examples/models_loading_gltf.vcxproj +0 -387
  323. package/vendor/raylib/projects/VS2022/examples/models_loading_vox.vcxproj +0 -387
  324. package/vendor/raylib/projects/VS2022/examples/models_mesh_generation.vcxproj +0 -387
  325. package/vendor/raylib/projects/VS2022/examples/models_mesh_picking.vcxproj +0 -387
  326. package/vendor/raylib/projects/VS2022/examples/models_orthographic_projection.vcxproj +0 -387
  327. package/vendor/raylib/projects/VS2022/examples/models_rlgl_solar_system.vcxproj +0 -387
  328. package/vendor/raylib/projects/VS2022/examples/models_skybox.vcxproj +0 -387
  329. package/vendor/raylib/projects/VS2022/examples/models_waving_cubes.vcxproj +0 -387
  330. package/vendor/raylib/projects/VS2022/examples/models_yaw_pitch_roll.vcxproj +0 -387
  331. package/vendor/raylib/projects/VS2022/examples/rlgl_compute_shaders.vcxproj +0 -391
  332. package/vendor/raylib/projects/VS2022/examples/rlgl_standalone.vcxproj +0 -391
  333. package/vendor/raylib/projects/VS2022/examples/shaders_basic_lighting.vcxproj +0 -387
  334. package/vendor/raylib/projects/VS2022/examples/shaders_custom_uniform.vcxproj +0 -387
  335. package/vendor/raylib/projects/VS2022/examples/shaders_eratosthenes.vcxproj +0 -387
  336. package/vendor/raylib/projects/VS2022/examples/shaders_fog.vcxproj +0 -387
  337. package/vendor/raylib/projects/VS2022/examples/shaders_hot_reloading.vcxproj +0 -387
  338. package/vendor/raylib/projects/VS2022/examples/shaders_julia_set.vcxproj +0 -387
  339. package/vendor/raylib/projects/VS2022/examples/shaders_mesh_instancing.vcxproj +0 -387
  340. package/vendor/raylib/projects/VS2022/examples/shaders_model_shader.vcxproj +0 -387
  341. package/vendor/raylib/projects/VS2022/examples/shaders_multi_sample2d.vcxproj +0 -387
  342. package/vendor/raylib/projects/VS2022/examples/shaders_palette_switch.vcxproj +0 -387
  343. package/vendor/raylib/projects/VS2022/examples/shaders_postprocessing.vcxproj +0 -387
  344. package/vendor/raylib/projects/VS2022/examples/shaders_raymarching.vcxproj +0 -387
  345. package/vendor/raylib/projects/VS2022/examples/shaders_shapes_textures.vcxproj +0 -387
  346. package/vendor/raylib/projects/VS2022/examples/shaders_simple_mask.vcxproj +0 -387
  347. package/vendor/raylib/projects/VS2022/examples/shaders_spotlight.vcxproj +0 -387
  348. package/vendor/raylib/projects/VS2022/examples/shaders_texture_drawing.vcxproj +0 -387
  349. package/vendor/raylib/projects/VS2022/examples/shaders_texture_waves.vcxproj +0 -387
  350. package/vendor/raylib/projects/VS2022/examples/shapes_basic_shapes.vcxproj +0 -387
  351. package/vendor/raylib/projects/VS2022/examples/shapes_bouncing_ball.vcxproj +0 -387
  352. package/vendor/raylib/projects/VS2022/examples/shapes_collision_area.vcxproj +0 -387
  353. package/vendor/raylib/projects/VS2022/examples/shapes_colors_palette.vcxproj +0 -387
  354. package/vendor/raylib/projects/VS2022/examples/shapes_draw_circle_sector.vcxproj +0 -387
  355. package/vendor/raylib/projects/VS2022/examples/shapes_draw_rectangle_rounded.vcxproj +0 -387
  356. package/vendor/raylib/projects/VS2022/examples/shapes_draw_ring.vcxproj +0 -387
  357. package/vendor/raylib/projects/VS2022/examples/shapes_easings_ball_anim.vcxproj +0 -387
  358. package/vendor/raylib/projects/VS2022/examples/shapes_easings_box_anim.vcxproj +0 -387
  359. package/vendor/raylib/projects/VS2022/examples/shapes_easings_rectangle_array.vcxproj +0 -387
  360. package/vendor/raylib/projects/VS2022/examples/shapes_following_eyes.vcxproj +0 -387
  361. package/vendor/raylib/projects/VS2022/examples/shapes_lines_bezier.vcxproj +0 -387
  362. package/vendor/raylib/projects/VS2022/examples/shapes_logo_raylib.vcxproj +0 -387
  363. package/vendor/raylib/projects/VS2022/examples/shapes_logo_raylib_anim.vcxproj +0 -387
  364. package/vendor/raylib/projects/VS2022/examples/shapes_rectangle_scaling.vcxproj +0 -387
  365. package/vendor/raylib/projects/VS2022/examples/text_codepoints_loading.vcxproj +0 -387
  366. package/vendor/raylib/projects/VS2022/examples/text_draw_3d.vcxproj +0 -387
  367. package/vendor/raylib/projects/VS2022/examples/text_font_filters.vcxproj +0 -387
  368. package/vendor/raylib/projects/VS2022/examples/text_font_loading.vcxproj +0 -387
  369. package/vendor/raylib/projects/VS2022/examples/text_font_sdf.vcxproj +0 -387
  370. package/vendor/raylib/projects/VS2022/examples/text_font_spritefont.vcxproj +0 -387
  371. package/vendor/raylib/projects/VS2022/examples/text_format_text.vcxproj +0 -387
  372. package/vendor/raylib/projects/VS2022/examples/text_input_box.vcxproj +0 -387
  373. package/vendor/raylib/projects/VS2022/examples/text_raylib_fonts.vcxproj +0 -387
  374. package/vendor/raylib/projects/VS2022/examples/text_rectangle_bounds.vcxproj +0 -387
  375. package/vendor/raylib/projects/VS2022/examples/text_unicode.vcxproj +0 -387
  376. package/vendor/raylib/projects/VS2022/examples/text_writing_anim.vcxproj +0 -387
  377. package/vendor/raylib/projects/VS2022/examples/textures_background_scrolling.vcxproj +0 -387
  378. package/vendor/raylib/projects/VS2022/examples/textures_blend_modes.vcxproj +0 -387
  379. package/vendor/raylib/projects/VS2022/examples/textures_bunnymark.vcxproj +0 -387
  380. package/vendor/raylib/projects/VS2022/examples/textures_draw_tiled.vcxproj +0 -387
  381. package/vendor/raylib/projects/VS2022/examples/textures_fog_of_war.vcxproj +0 -387
  382. package/vendor/raylib/projects/VS2022/examples/textures_gif_player.vcxproj +0 -387
  383. package/vendor/raylib/projects/VS2022/examples/textures_image_drawing.vcxproj +0 -387
  384. package/vendor/raylib/projects/VS2022/examples/textures_image_generation.vcxproj +0 -387
  385. package/vendor/raylib/projects/VS2022/examples/textures_image_loading.vcxproj +0 -387
  386. package/vendor/raylib/projects/VS2022/examples/textures_image_processing.vcxproj +0 -387
  387. package/vendor/raylib/projects/VS2022/examples/textures_image_text.vcxproj +0 -387
  388. package/vendor/raylib/projects/VS2022/examples/textures_logo_raylib.vcxproj +0 -387
  389. package/vendor/raylib/projects/VS2022/examples/textures_mouse_painting.vcxproj +0 -387
  390. package/vendor/raylib/projects/VS2022/examples/textures_npatch_drawing.vcxproj +0 -387
  391. package/vendor/raylib/projects/VS2022/examples/textures_particles_blending.vcxproj +0 -387
  392. package/vendor/raylib/projects/VS2022/examples/textures_polygon.vcxproj +0 -387
  393. package/vendor/raylib/projects/VS2022/examples/textures_raw_data.vcxproj +0 -387
  394. package/vendor/raylib/projects/VS2022/examples/textures_sprite_anim.vcxproj +0 -387
  395. package/vendor/raylib/projects/VS2022/examples/textures_sprite_button.vcxproj +0 -387
  396. package/vendor/raylib/projects/VS2022/examples/textures_sprite_explosion.vcxproj +0 -387
  397. package/vendor/raylib/projects/VS2022/examples/textures_srcrec_dstrec.vcxproj +0 -387
  398. package/vendor/raylib/projects/VS2022/examples/textures_to_image.vcxproj +0 -387
  399. package/vendor/raylib/projects/VS2022/raylib/raylib.vcxproj +0 -340
  400. package/vendor/raylib/projects/VS2022/raylib.sln +0 -2347
  401. package/vendor/sqlite3/shell.c +0 -23496
@@ -0,0 +1,291 @@
1
+ /* Copyright 2013 Google Inc. All Rights Reserved.
2
+
3
+ Distributed under MIT license.
4
+ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
+ */
6
+
7
+ #include "./transform.h"
8
+
9
+ #if defined(__cplusplus) || defined(c_plusplus)
10
+ extern "C" {
11
+ #endif
12
+
13
+ /* RFC 7932 transforms string data */
14
+ static const char kPrefixSuffix[217] =
15
+ "\1 \2, \10 of the \4 of \2s \1.\5 and \4 "
16
+ /* 0x _0 _2 __5 _E _3 _6 _8 _E */
17
+ "in \1\"\4 to \2\">\1\n\2. \1]\5 for \3 a \6 "
18
+ /* 2x _3_ _5 _A_ _D_ _F _2 _4 _A _E */
19
+ "that \1\'\6 with \6 from \4 by \1(\6. T"
20
+ /* 4x _5_ _7 _E _5 _A _C */
21
+ "he \4 on \4 as \4 is \4ing \2\n\t\1:\3ed "
22
+ /* 6x _3 _8 _D _2 _7_ _ _A _C */
23
+ "\2=\"\4 at \3ly \1,\2=\'\5.com/\7. This \5"
24
+ /* 8x _0 _ _3 _8 _C _E _ _1 _7 _F */
25
+ " not \3er \3al \4ful \4ive \5less \4es"
26
+ /* Ax _5 _9 _D _2 _7 _D */
27
+ "t \4ize \2\xc2\xa0\4ous \5 the \2e "; /* \0 - implicit trailing zero. */
28
+ /* Cx _2 _7___ ___ _A _F _5 _8 */
29
+
30
+ static const uint16_t kPrefixSuffixMap[50] = {
31
+ 0x00, 0x02, 0x05, 0x0E, 0x13, 0x16, 0x18, 0x1E, 0x23, 0x25,
32
+ 0x2A, 0x2D, 0x2F, 0x32, 0x34, 0x3A, 0x3E, 0x45, 0x47, 0x4E,
33
+ 0x55, 0x5A, 0x5C, 0x63, 0x68, 0x6D, 0x72, 0x77, 0x7A, 0x7C,
34
+ 0x80, 0x83, 0x88, 0x8C, 0x8E, 0x91, 0x97, 0x9F, 0xA5, 0xA9,
35
+ 0xAD, 0xB2, 0xB7, 0xBD, 0xC2, 0xC7, 0xCA, 0xCF, 0xD5, 0xD8
36
+ };
37
+
38
+ /* RFC 7932 transforms */
39
+ static const uint8_t kTransformsData[] = {
40
+ 49, BROTLI_TRANSFORM_IDENTITY, 49,
41
+ 49, BROTLI_TRANSFORM_IDENTITY, 0,
42
+ 0, BROTLI_TRANSFORM_IDENTITY, 0,
43
+ 49, BROTLI_TRANSFORM_OMIT_FIRST_1, 49,
44
+ 49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 0,
45
+ 49, BROTLI_TRANSFORM_IDENTITY, 47,
46
+ 0, BROTLI_TRANSFORM_IDENTITY, 49,
47
+ 4, BROTLI_TRANSFORM_IDENTITY, 0,
48
+ 49, BROTLI_TRANSFORM_IDENTITY, 3,
49
+ 49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 49,
50
+ 49, BROTLI_TRANSFORM_IDENTITY, 6,
51
+ 49, BROTLI_TRANSFORM_OMIT_FIRST_2, 49,
52
+ 49, BROTLI_TRANSFORM_OMIT_LAST_1, 49,
53
+ 1, BROTLI_TRANSFORM_IDENTITY, 0,
54
+ 49, BROTLI_TRANSFORM_IDENTITY, 1,
55
+ 0, BROTLI_TRANSFORM_UPPERCASE_FIRST, 0,
56
+ 49, BROTLI_TRANSFORM_IDENTITY, 7,
57
+ 49, BROTLI_TRANSFORM_IDENTITY, 9,
58
+ 48, BROTLI_TRANSFORM_IDENTITY, 0,
59
+ 49, BROTLI_TRANSFORM_IDENTITY, 8,
60
+ 49, BROTLI_TRANSFORM_IDENTITY, 5,
61
+ 49, BROTLI_TRANSFORM_IDENTITY, 10,
62
+ 49, BROTLI_TRANSFORM_IDENTITY, 11,
63
+ 49, BROTLI_TRANSFORM_OMIT_LAST_3, 49,
64
+ 49, BROTLI_TRANSFORM_IDENTITY, 13,
65
+ 49, BROTLI_TRANSFORM_IDENTITY, 14,
66
+ 49, BROTLI_TRANSFORM_OMIT_FIRST_3, 49,
67
+ 49, BROTLI_TRANSFORM_OMIT_LAST_2, 49,
68
+ 49, BROTLI_TRANSFORM_IDENTITY, 15,
69
+ 49, BROTLI_TRANSFORM_IDENTITY, 16,
70
+ 0, BROTLI_TRANSFORM_UPPERCASE_FIRST, 49,
71
+ 49, BROTLI_TRANSFORM_IDENTITY, 12,
72
+ 5, BROTLI_TRANSFORM_IDENTITY, 49,
73
+ 0, BROTLI_TRANSFORM_IDENTITY, 1,
74
+ 49, BROTLI_TRANSFORM_OMIT_FIRST_4, 49,
75
+ 49, BROTLI_TRANSFORM_IDENTITY, 18,
76
+ 49, BROTLI_TRANSFORM_IDENTITY, 17,
77
+ 49, BROTLI_TRANSFORM_IDENTITY, 19,
78
+ 49, BROTLI_TRANSFORM_IDENTITY, 20,
79
+ 49, BROTLI_TRANSFORM_OMIT_FIRST_5, 49,
80
+ 49, BROTLI_TRANSFORM_OMIT_FIRST_6, 49,
81
+ 47, BROTLI_TRANSFORM_IDENTITY, 49,
82
+ 49, BROTLI_TRANSFORM_OMIT_LAST_4, 49,
83
+ 49, BROTLI_TRANSFORM_IDENTITY, 22,
84
+ 49, BROTLI_TRANSFORM_UPPERCASE_ALL, 49,
85
+ 49, BROTLI_TRANSFORM_IDENTITY, 23,
86
+ 49, BROTLI_TRANSFORM_IDENTITY, 24,
87
+ 49, BROTLI_TRANSFORM_IDENTITY, 25,
88
+ 49, BROTLI_TRANSFORM_OMIT_LAST_7, 49,
89
+ 49, BROTLI_TRANSFORM_OMIT_LAST_1, 26,
90
+ 49, BROTLI_TRANSFORM_IDENTITY, 27,
91
+ 49, BROTLI_TRANSFORM_IDENTITY, 28,
92
+ 0, BROTLI_TRANSFORM_IDENTITY, 12,
93
+ 49, BROTLI_TRANSFORM_IDENTITY, 29,
94
+ 49, BROTLI_TRANSFORM_OMIT_FIRST_9, 49,
95
+ 49, BROTLI_TRANSFORM_OMIT_FIRST_7, 49,
96
+ 49, BROTLI_TRANSFORM_OMIT_LAST_6, 49,
97
+ 49, BROTLI_TRANSFORM_IDENTITY, 21,
98
+ 49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 1,
99
+ 49, BROTLI_TRANSFORM_OMIT_LAST_8, 49,
100
+ 49, BROTLI_TRANSFORM_IDENTITY, 31,
101
+ 49, BROTLI_TRANSFORM_IDENTITY, 32,
102
+ 47, BROTLI_TRANSFORM_IDENTITY, 3,
103
+ 49, BROTLI_TRANSFORM_OMIT_LAST_5, 49,
104
+ 49, BROTLI_TRANSFORM_OMIT_LAST_9, 49,
105
+ 0, BROTLI_TRANSFORM_UPPERCASE_FIRST, 1,
106
+ 49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 8,
107
+ 5, BROTLI_TRANSFORM_IDENTITY, 21,
108
+ 49, BROTLI_TRANSFORM_UPPERCASE_ALL, 0,
109
+ 49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 10,
110
+ 49, BROTLI_TRANSFORM_IDENTITY, 30,
111
+ 0, BROTLI_TRANSFORM_IDENTITY, 5,
112
+ 35, BROTLI_TRANSFORM_IDENTITY, 49,
113
+ 47, BROTLI_TRANSFORM_IDENTITY, 2,
114
+ 49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 17,
115
+ 49, BROTLI_TRANSFORM_IDENTITY, 36,
116
+ 49, BROTLI_TRANSFORM_IDENTITY, 33,
117
+ 5, BROTLI_TRANSFORM_IDENTITY, 0,
118
+ 49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 21,
119
+ 49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 5,
120
+ 49, BROTLI_TRANSFORM_IDENTITY, 37,
121
+ 0, BROTLI_TRANSFORM_IDENTITY, 30,
122
+ 49, BROTLI_TRANSFORM_IDENTITY, 38,
123
+ 0, BROTLI_TRANSFORM_UPPERCASE_ALL, 0,
124
+ 49, BROTLI_TRANSFORM_IDENTITY, 39,
125
+ 0, BROTLI_TRANSFORM_UPPERCASE_ALL, 49,
126
+ 49, BROTLI_TRANSFORM_IDENTITY, 34,
127
+ 49, BROTLI_TRANSFORM_UPPERCASE_ALL, 8,
128
+ 49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 12,
129
+ 0, BROTLI_TRANSFORM_IDENTITY, 21,
130
+ 49, BROTLI_TRANSFORM_IDENTITY, 40,
131
+ 0, BROTLI_TRANSFORM_UPPERCASE_FIRST, 12,
132
+ 49, BROTLI_TRANSFORM_IDENTITY, 41,
133
+ 49, BROTLI_TRANSFORM_IDENTITY, 42,
134
+ 49, BROTLI_TRANSFORM_UPPERCASE_ALL, 17,
135
+ 49, BROTLI_TRANSFORM_IDENTITY, 43,
136
+ 0, BROTLI_TRANSFORM_UPPERCASE_FIRST, 5,
137
+ 49, BROTLI_TRANSFORM_UPPERCASE_ALL, 10,
138
+ 0, BROTLI_TRANSFORM_IDENTITY, 34,
139
+ 49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 33,
140
+ 49, BROTLI_TRANSFORM_IDENTITY, 44,
141
+ 49, BROTLI_TRANSFORM_UPPERCASE_ALL, 5,
142
+ 45, BROTLI_TRANSFORM_IDENTITY, 49,
143
+ 0, BROTLI_TRANSFORM_IDENTITY, 33,
144
+ 49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 30,
145
+ 49, BROTLI_TRANSFORM_UPPERCASE_ALL, 30,
146
+ 49, BROTLI_TRANSFORM_IDENTITY, 46,
147
+ 49, BROTLI_TRANSFORM_UPPERCASE_ALL, 1,
148
+ 49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 34,
149
+ 0, BROTLI_TRANSFORM_UPPERCASE_FIRST, 33,
150
+ 0, BROTLI_TRANSFORM_UPPERCASE_ALL, 30,
151
+ 0, BROTLI_TRANSFORM_UPPERCASE_ALL, 1,
152
+ 49, BROTLI_TRANSFORM_UPPERCASE_ALL, 33,
153
+ 49, BROTLI_TRANSFORM_UPPERCASE_ALL, 21,
154
+ 49, BROTLI_TRANSFORM_UPPERCASE_ALL, 12,
155
+ 0, BROTLI_TRANSFORM_UPPERCASE_ALL, 5,
156
+ 49, BROTLI_TRANSFORM_UPPERCASE_ALL, 34,
157
+ 0, BROTLI_TRANSFORM_UPPERCASE_ALL, 12,
158
+ 0, BROTLI_TRANSFORM_UPPERCASE_FIRST, 30,
159
+ 0, BROTLI_TRANSFORM_UPPERCASE_ALL, 34,
160
+ 0, BROTLI_TRANSFORM_UPPERCASE_FIRST, 34,
161
+ };
162
+
163
+ static const BrotliTransforms kBrotliTransforms = {
164
+ sizeof(kPrefixSuffix),
165
+ (const uint8_t*)kPrefixSuffix,
166
+ kPrefixSuffixMap,
167
+ sizeof(kTransformsData) / (3 * sizeof(kTransformsData[0])),
168
+ kTransformsData,
169
+ NULL, /* no extra parameters */
170
+ {0, 12, 27, 23, 42, 63, 56, 48, 59, 64}
171
+ };
172
+
173
+ const BrotliTransforms* BrotliGetTransforms(void) {
174
+ return &kBrotliTransforms;
175
+ }
176
+
177
+ static int ToUpperCase(uint8_t* p) {
178
+ if (p[0] < 0xC0) {
179
+ if (p[0] >= 'a' && p[0] <= 'z') {
180
+ p[0] ^= 32;
181
+ }
182
+ return 1;
183
+ }
184
+ /* An overly simplified uppercasing model for UTF-8. */
185
+ if (p[0] < 0xE0) {
186
+ p[1] ^= 32;
187
+ return 2;
188
+ }
189
+ /* An arbitrary transform for three byte characters. */
190
+ p[2] ^= 5;
191
+ return 3;
192
+ }
193
+
194
+ static int Shift(uint8_t* word, int word_len, uint16_t parameter) {
195
+ /* Limited sign extension: scalar < (1 << 24). */
196
+ uint32_t scalar =
197
+ (parameter & 0x7FFFu) + (0x1000000u - (parameter & 0x8000u));
198
+ if (word[0] < 0x80) {
199
+ /* 1-byte rune / 0sssssss / 7 bit scalar (ASCII). */
200
+ scalar += (uint32_t)word[0];
201
+ word[0] = (uint8_t)(scalar & 0x7Fu);
202
+ return 1;
203
+ } else if (word[0] < 0xC0) {
204
+ /* Continuation / 10AAAAAA. */
205
+ return 1;
206
+ } else if (word[0] < 0xE0) {
207
+ /* 2-byte rune / 110sssss AAssssss / 11 bit scalar. */
208
+ if (word_len < 2) return 1;
209
+ scalar += (uint32_t)((word[1] & 0x3Fu) | ((word[0] & 0x1Fu) << 6u));
210
+ word[0] = (uint8_t)(0xC0 | ((scalar >> 6u) & 0x1F));
211
+ word[1] = (uint8_t)((word[1] & 0xC0) | (scalar & 0x3F));
212
+ return 2;
213
+ } else if (word[0] < 0xF0) {
214
+ /* 3-byte rune / 1110ssss AAssssss BBssssss / 16 bit scalar. */
215
+ if (word_len < 3) return word_len;
216
+ scalar += (uint32_t)((word[2] & 0x3Fu) | ((word[1] & 0x3Fu) << 6u) |
217
+ ((word[0] & 0x0Fu) << 12u));
218
+ word[0] = (uint8_t)(0xE0 | ((scalar >> 12u) & 0x0F));
219
+ word[1] = (uint8_t)((word[1] & 0xC0) | ((scalar >> 6u) & 0x3F));
220
+ word[2] = (uint8_t)((word[2] & 0xC0) | (scalar & 0x3F));
221
+ return 3;
222
+ } else if (word[0] < 0xF8) {
223
+ /* 4-byte rune / 11110sss AAssssss BBssssss CCssssss / 21 bit scalar. */
224
+ if (word_len < 4) return word_len;
225
+ scalar += (uint32_t)((word[3] & 0x3Fu) | ((word[2] & 0x3Fu) << 6u) |
226
+ ((word[1] & 0x3Fu) << 12u) | ((word[0] & 0x07u) << 18u));
227
+ word[0] = (uint8_t)(0xF0 | ((scalar >> 18u) & 0x07));
228
+ word[1] = (uint8_t)((word[1] & 0xC0) | ((scalar >> 12u) & 0x3F));
229
+ word[2] = (uint8_t)((word[2] & 0xC0) | ((scalar >> 6u) & 0x3F));
230
+ word[3] = (uint8_t)((word[3] & 0xC0) | (scalar & 0x3F));
231
+ return 4;
232
+ }
233
+ return 1;
234
+ }
235
+
236
+ int BrotliTransformDictionaryWord(uint8_t* dst, const uint8_t* word, int len,
237
+ const BrotliTransforms* transforms, int transform_idx) {
238
+ int idx = 0;
239
+ const uint8_t* prefix = BROTLI_TRANSFORM_PREFIX(transforms, transform_idx);
240
+ uint8_t type = BROTLI_TRANSFORM_TYPE(transforms, transform_idx);
241
+ const uint8_t* suffix = BROTLI_TRANSFORM_SUFFIX(transforms, transform_idx);
242
+ {
243
+ int prefix_len = *prefix++;
244
+ while (prefix_len--) { dst[idx++] = *prefix++; }
245
+ }
246
+ {
247
+ const int t = type;
248
+ int i = 0;
249
+ if (t <= BROTLI_TRANSFORM_OMIT_LAST_9) {
250
+ len -= t;
251
+ } else if (t >= BROTLI_TRANSFORM_OMIT_FIRST_1
252
+ && t <= BROTLI_TRANSFORM_OMIT_FIRST_9) {
253
+ int skip = t - (BROTLI_TRANSFORM_OMIT_FIRST_1 - 1);
254
+ word += skip;
255
+ len -= skip;
256
+ }
257
+ while (i < len) { dst[idx++] = word[i++]; }
258
+ if (t == BROTLI_TRANSFORM_UPPERCASE_FIRST) {
259
+ ToUpperCase(&dst[idx - len]);
260
+ } else if (t == BROTLI_TRANSFORM_UPPERCASE_ALL) {
261
+ uint8_t* uppercase = &dst[idx - len];
262
+ while (len > 0) {
263
+ int step = ToUpperCase(uppercase);
264
+ uppercase += step;
265
+ len -= step;
266
+ }
267
+ } else if (t == BROTLI_TRANSFORM_SHIFT_FIRST) {
268
+ uint16_t param = (uint16_t)(transforms->params[transform_idx * 2]
269
+ + (transforms->params[transform_idx * 2 + 1] << 8u));
270
+ Shift(&dst[idx - len], len, param);
271
+ } else if (t == BROTLI_TRANSFORM_SHIFT_ALL) {
272
+ uint16_t param = (uint16_t)(transforms->params[transform_idx * 2]
273
+ + (transforms->params[transform_idx * 2 + 1] << 8u));
274
+ uint8_t* shift = &dst[idx - len];
275
+ while (len > 0) {
276
+ int step = Shift(shift, len, param);
277
+ shift += step;
278
+ len -= step;
279
+ }
280
+ }
281
+ }
282
+ {
283
+ int suffix_len = *suffix++;
284
+ while (suffix_len--) { dst[idx++] = *suffix++; }
285
+ return idx;
286
+ }
287
+ }
288
+
289
+ #if defined(__cplusplus) || defined(c_plusplus)
290
+ } /* extern "C" */
291
+ #endif
@@ -0,0 +1,85 @@
1
+ /* transforms is a part of ABI, but not API.
2
+
3
+ It means that there are some functions that are supposed to be in "common"
4
+ library, but header itself is not placed into include/brotli. This way,
5
+ aforementioned functions will be available only to brotli internals.
6
+ */
7
+
8
+ #ifndef BROTLI_COMMON_TRANSFORM_H_
9
+ #define BROTLI_COMMON_TRANSFORM_H_
10
+
11
+ #include <brotli/port.h>
12
+ #include <brotli/types.h>
13
+
14
+ #if defined(__cplusplus) || defined(c_plusplus)
15
+ extern "C" {
16
+ #endif
17
+
18
+ enum BrotliWordTransformType {
19
+ BROTLI_TRANSFORM_IDENTITY = 0,
20
+ BROTLI_TRANSFORM_OMIT_LAST_1 = 1,
21
+ BROTLI_TRANSFORM_OMIT_LAST_2 = 2,
22
+ BROTLI_TRANSFORM_OMIT_LAST_3 = 3,
23
+ BROTLI_TRANSFORM_OMIT_LAST_4 = 4,
24
+ BROTLI_TRANSFORM_OMIT_LAST_5 = 5,
25
+ BROTLI_TRANSFORM_OMIT_LAST_6 = 6,
26
+ BROTLI_TRANSFORM_OMIT_LAST_7 = 7,
27
+ BROTLI_TRANSFORM_OMIT_LAST_8 = 8,
28
+ BROTLI_TRANSFORM_OMIT_LAST_9 = 9,
29
+ BROTLI_TRANSFORM_UPPERCASE_FIRST = 10,
30
+ BROTLI_TRANSFORM_UPPERCASE_ALL = 11,
31
+ BROTLI_TRANSFORM_OMIT_FIRST_1 = 12,
32
+ BROTLI_TRANSFORM_OMIT_FIRST_2 = 13,
33
+ BROTLI_TRANSFORM_OMIT_FIRST_3 = 14,
34
+ BROTLI_TRANSFORM_OMIT_FIRST_4 = 15,
35
+ BROTLI_TRANSFORM_OMIT_FIRST_5 = 16,
36
+ BROTLI_TRANSFORM_OMIT_FIRST_6 = 17,
37
+ BROTLI_TRANSFORM_OMIT_FIRST_7 = 18,
38
+ BROTLI_TRANSFORM_OMIT_FIRST_8 = 19,
39
+ BROTLI_TRANSFORM_OMIT_FIRST_9 = 20,
40
+ BROTLI_TRANSFORM_SHIFT_FIRST = 21,
41
+ BROTLI_TRANSFORM_SHIFT_ALL = 22,
42
+ BROTLI_NUM_TRANSFORM_TYPES /* Counts transforms, not a transform itself. */
43
+ };
44
+
45
+ #define BROTLI_TRANSFORMS_MAX_CUT_OFF BROTLI_TRANSFORM_OMIT_LAST_9
46
+
47
+ typedef struct BrotliTransforms {
48
+ uint16_t prefix_suffix_size;
49
+ /* Last character must be null, so prefix_suffix_size must be at least 1. */
50
+ const uint8_t* prefix_suffix;
51
+ const uint16_t* prefix_suffix_map;
52
+ uint32_t num_transforms;
53
+ /* Each entry is a [prefix_id, transform, suffix_id] triplet. */
54
+ const uint8_t* transforms;
55
+ /* Shift for BROTLI_TRANSFORM_SHIFT_FIRST and BROTLI_TRANSFORM_SHIFT_ALL,
56
+ must be NULL if and only if no such transforms are present. */
57
+ const uint8_t* params;
58
+ /* Indices of transforms like ["", BROTLI_TRANSFORM_OMIT_LAST_#, ""].
59
+ 0-th element corresponds to ["", BROTLI_TRANSFORM_IDENTITY, ""].
60
+ -1, if cut-off transform does not exist. */
61
+ int16_t cutOffTransforms[BROTLI_TRANSFORMS_MAX_CUT_OFF + 1];
62
+ } BrotliTransforms;
63
+
64
+ /* T is BrotliTransforms*; result is uint8_t. */
65
+ #define BROTLI_TRANSFORM_PREFIX_ID(T, I) ((T)->transforms[((I) * 3) + 0])
66
+ #define BROTLI_TRANSFORM_TYPE(T, I) ((T)->transforms[((I) * 3) + 1])
67
+ #define BROTLI_TRANSFORM_SUFFIX_ID(T, I) ((T)->transforms[((I) * 3) + 2])
68
+
69
+ /* T is BrotliTransforms*; result is const uint8_t*. */
70
+ #define BROTLI_TRANSFORM_PREFIX(T, I) (&(T)->prefix_suffix[ \
71
+ (T)->prefix_suffix_map[BROTLI_TRANSFORM_PREFIX_ID(T, I)]])
72
+ #define BROTLI_TRANSFORM_SUFFIX(T, I) (&(T)->prefix_suffix[ \
73
+ (T)->prefix_suffix_map[BROTLI_TRANSFORM_SUFFIX_ID(T, I)]])
74
+
75
+ BROTLI_COMMON_API const BrotliTransforms* BrotliGetTransforms(void);
76
+
77
+ BROTLI_COMMON_API int BrotliTransformDictionaryWord(
78
+ uint8_t* dst, const uint8_t* word, int len,
79
+ const BrotliTransforms* transforms, int transform_idx);
80
+
81
+ #if defined(__cplusplus) || defined(c_plusplus)
82
+ } /* extern "C" */
83
+ #endif
84
+
85
+ #endif /* BROTLI_COMMON_TRANSFORM_H_ */
@@ -0,0 +1,26 @@
1
+ /* Copyright 2016 Google Inc. All Rights Reserved.
2
+
3
+ Distributed under MIT license.
4
+ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
+ */
6
+
7
+ /* Version definition. */
8
+
9
+ #ifndef BROTLI_COMMON_VERSION_H_
10
+ #define BROTLI_COMMON_VERSION_H_
11
+
12
+ /* This macro should only be used when library is compiled together with client.
13
+ If library is dynamically linked, use BrotliDecoderVersion and
14
+ BrotliEncoderVersion methods. */
15
+
16
+ /* Semantic version, calculated as (MAJOR << 24) | (MINOR << 12) | PATCH */
17
+ #define BROTLI_VERSION 0x1000009
18
+
19
+ /* This macro is used by build system to produce Libtool-friendly soname. See
20
+ https://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html
21
+ */
22
+
23
+ /* ABI version, calculated as (CURRENT << 24) | (REVISION << 12) | AGE */
24
+ #define BROTLI_ABI_VERSION 0x1009000
25
+
26
+ #endif /* BROTLI_COMMON_VERSION_H_ */
@@ -0,0 +1,76 @@
1
+ /* Copyright 2013 Google Inc. All Rights Reserved.
2
+
3
+ Distributed under MIT license.
4
+ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
+ */
6
+
7
+ /* Bit reading helpers */
8
+
9
+ #include "./bit_reader.h"
10
+
11
+ #include "../common/platform.h"
12
+ #include <brotli/types.h>
13
+
14
+ #if defined(__cplusplus) || defined(c_plusplus)
15
+ extern "C" {
16
+ #endif
17
+
18
+ const uint32_t kBrotliBitMask[33] = { 0x00000000,
19
+ 0x00000001, 0x00000003, 0x00000007, 0x0000000F,
20
+ 0x0000001F, 0x0000003F, 0x0000007F, 0x000000FF,
21
+ 0x000001FF, 0x000003FF, 0x000007FF, 0x00000FFF,
22
+ 0x00001FFF, 0x00003FFF, 0x00007FFF, 0x0000FFFF,
23
+ 0x0001FFFF, 0x0003FFFF, 0x0007FFFF, 0x000FFFFF,
24
+ 0x001FFFFF, 0x003FFFFF, 0x007FFFFF, 0x00FFFFFF,
25
+ 0x01FFFFFF, 0x03FFFFFF, 0x07FFFFFF, 0x0FFFFFFF,
26
+ 0x1FFFFFFF, 0x3FFFFFFF, 0x7FFFFFFF, 0xFFFFFFFF
27
+ };
28
+
29
+ void BrotliInitBitReader(BrotliBitReader* const br) {
30
+ br->val_ = 0;
31
+ br->bit_pos_ = sizeof(br->val_) << 3;
32
+ }
33
+
34
+ BROTLI_BOOL BrotliWarmupBitReader(BrotliBitReader* const br) {
35
+ size_t aligned_read_mask = (sizeof(br->val_) >> 1) - 1;
36
+ /* Fixing alignment after unaligned BrotliFillWindow would result accumulator
37
+ overflow. If unalignment is caused by BrotliSafeReadBits, then there is
38
+ enough space in accumulator to fix alignment. */
39
+ if (!BROTLI_ALIGNED_READ) {
40
+ aligned_read_mask = 0;
41
+ }
42
+ if (BrotliGetAvailableBits(br) == 0) {
43
+ if (!BrotliPullByte(br)) {
44
+ return BROTLI_FALSE;
45
+ }
46
+ }
47
+
48
+ while ((((size_t)br->next_in) & aligned_read_mask) != 0) {
49
+ if (!BrotliPullByte(br)) {
50
+ /* If we consumed all the input, we don't care about the alignment. */
51
+ return BROTLI_TRUE;
52
+ }
53
+ }
54
+ return BROTLI_TRUE;
55
+ }
56
+
57
+ BROTLI_BOOL BrotliSafeReadBits32Slow(BrotliBitReader* const br,
58
+ uint32_t n_bits, uint32_t* val) {
59
+ uint32_t low_val;
60
+ uint32_t high_val;
61
+ BrotliBitReaderState memento;
62
+ BROTLI_DCHECK(n_bits <= 32);
63
+ BROTLI_DCHECK(n_bits > 24);
64
+ BrotliBitReaderSaveState(br, &memento);
65
+ if (!BrotliSafeReadBits(br, 16, &low_val) ||
66
+ !BrotliSafeReadBits(br, n_bits - 16, &high_val)) {
67
+ BrotliBitReaderRestoreState(br, &memento);
68
+ return BROTLI_FALSE;
69
+ }
70
+ *val = low_val | (high_val << 16);
71
+ return BROTLI_TRUE;
72
+ }
73
+
74
+ #if defined(__cplusplus) || defined(c_plusplus)
75
+ } /* extern "C" */
76
+ #endif