ctags.rb 1.0.0 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (323) hide show
  1. checksums.yaml +15 -0
  2. data/Gemfile +2 -1
  3. data/README.md +49 -0
  4. data/Rakefile +19 -0
  5. data/bench.rb +28 -0
  6. data/ctags.rb.gemspec +1 -1
  7. data/ext/.gitignore +1 -1
  8. data/ext/extconf.rb +30 -6
  9. data/ext/vendor/exuberant-ctags/entry.c +70 -1
  10. data/ext/vendor/exuberant-ctags/main.c +68 -7
  11. data/ext/vendor/exuberant-ctags/options.c +12 -12
  12. data/ext/vendor/exuberant-ctags/options.h +1 -1
  13. data/ext/vendor/exuberant-ctags/parse.c +2 -2
  14. data/ext/vendor/exuberant-ctags/read.c +8 -3
  15. data/ext/vendor/exuberant-ctags/read.h +4 -1
  16. data/ext/vendor/exuberant-ctags/routines.c +31 -8
  17. data/ext/vendor/exuberant-ctags/ruby.c +62 -7
  18. data/ext/vendor/fmemopen/README.md +49 -0
  19. data/ext/vendor/fmemopen/fmemopen.c +92 -0
  20. data/ext/vendor/fmemopen/fmemopen.h +52 -0
  21. data/ext/vendor/jansson-2.5/CHANGES +554 -0
  22. data/ext/vendor/jansson-2.5/LICENSE +19 -0
  23. data/ext/vendor/jansson-2.5/Makefile.am +15 -0
  24. data/ext/vendor/jansson-2.5/Makefile.in +825 -0
  25. data/ext/vendor/jansson-2.5/README.rst +63 -0
  26. data/ext/vendor/jansson-2.5/aclocal.m4 +9674 -0
  27. data/ext/vendor/jansson-2.5/config.guess +1530 -0
  28. data/ext/vendor/jansson-2.5/config.h.in +84 -0
  29. data/ext/vendor/jansson-2.5/config.sub +1782 -0
  30. data/ext/vendor/jansson-2.5/configure +13931 -0
  31. data/ext/vendor/jansson-2.5/configure.ac +57 -0
  32. data/ext/vendor/jansson-2.5/depcomp +708 -0
  33. data/ext/vendor/jansson-2.5/doc/Makefile.am +20 -0
  34. data/ext/vendor/jansson-2.5/doc/Makefile.in +401 -0
  35. data/ext/vendor/jansson-2.5/doc/README +5 -0
  36. data/ext/vendor/jansson-2.5/doc/apiref.rst +1487 -0
  37. data/ext/vendor/jansson-2.5/doc/changes.rst +5 -0
  38. data/ext/vendor/jansson-2.5/doc/conf.py +217 -0
  39. data/ext/vendor/jansson-2.5/doc/conformance.rst +114 -0
  40. data/ext/vendor/jansson-2.5/doc/ext/refcounting.py +59 -0
  41. data/ext/vendor/jansson-2.5/doc/gettingstarted.rst +237 -0
  42. data/ext/vendor/jansson-2.5/doc/github_commits.c +192 -0
  43. data/ext/vendor/jansson-2.5/doc/index.rst +53 -0
  44. data/ext/vendor/jansson-2.5/doc/portability.rst +52 -0
  45. data/ext/vendor/jansson-2.5/doc/tutorial.rst +286 -0
  46. data/ext/vendor/jansson-2.5/doc/upgrading.rst +76 -0
  47. data/ext/vendor/jansson-2.5/install-sh +527 -0
  48. data/ext/vendor/jansson-2.5/jansson.pc.in +10 -0
  49. data/ext/vendor/jansson-2.5/ltmain.sh +9661 -0
  50. data/ext/vendor/jansson-2.5/missing +331 -0
  51. data/ext/vendor/jansson-2.5/src/Makefile.am +24 -0
  52. data/ext/vendor/jansson-2.5/src/Makefile.in +613 -0
  53. data/ext/vendor/jansson-2.5/src/dump.c +456 -0
  54. data/ext/vendor/jansson-2.5/src/error.c +63 -0
  55. data/ext/vendor/jansson-2.5/src/hashtable.c +360 -0
  56. data/ext/vendor/jansson-2.5/src/hashtable.h +180 -0
  57. data/ext/vendor/jansson-2.5/src/jansson.def +63 -0
  58. data/ext/vendor/jansson-2.5/src/jansson.h +281 -0
  59. data/ext/vendor/jansson-2.5/src/jansson_config.h +39 -0
  60. data/ext/vendor/jansson-2.5/src/jansson_config.h.in +39 -0
  61. data/ext/vendor/jansson-2.5/src/jansson_private.h +93 -0
  62. data/ext/vendor/jansson-2.5/src/load.c +1077 -0
  63. data/ext/vendor/jansson-2.5/src/memory.c +56 -0
  64. data/ext/vendor/jansson-2.5/src/pack_unpack.c +762 -0
  65. data/ext/vendor/jansson-2.5/src/strbuffer.c +116 -0
  66. data/ext/vendor/jansson-2.5/src/strbuffer.h +33 -0
  67. data/ext/vendor/jansson-2.5/src/strconv.c +134 -0
  68. data/ext/vendor/jansson-2.5/src/utf.c +190 -0
  69. data/ext/vendor/jansson-2.5/src/utf.h +39 -0
  70. data/ext/vendor/jansson-2.5/src/value.c +950 -0
  71. data/ext/vendor/jansson-2.5/test/Makefile.am +10 -0
  72. data/ext/vendor/jansson-2.5/test/Makefile.in +684 -0
  73. data/ext/vendor/jansson-2.5/test/bin/Makefile.am +5 -0
  74. data/ext/vendor/jansson-2.5/test/bin/Makefile.in +498 -0
  75. data/ext/vendor/jansson-2.5/test/bin/json_process.c +349 -0
  76. data/ext/vendor/jansson-2.5/test/run-suites +50 -0
  77. data/ext/vendor/jansson-2.5/test/scripts/run-tests.sh +100 -0
  78. data/ext/vendor/jansson-2.5/test/scripts/valgrind.sh +35 -0
  79. data/ext/vendor/jansson-2.5/test/suites/Makefile.am +2 -0
  80. data/ext/vendor/jansson-2.5/test/suites/Makefile.in +580 -0
  81. data/ext/vendor/jansson-2.5/test/suites/api/Makefile.am +34 -0
  82. data/ext/vendor/jansson-2.5/test/suites/api/Makefile.in +632 -0
  83. data/ext/vendor/jansson-2.5/test/suites/api/check-exports +23 -0
  84. data/ext/vendor/jansson-2.5/test/suites/api/run +36 -0
  85. data/ext/vendor/jansson-2.5/test/suites/api/test_array.c +432 -0
  86. data/ext/vendor/jansson-2.5/test/suites/api/test_copy.c +318 -0
  87. data/ext/vendor/jansson-2.5/test/suites/api/test_dump.c +190 -0
  88. data/ext/vendor/jansson-2.5/test/suites/api/test_dump_callback.c +81 -0
  89. data/ext/vendor/jansson-2.5/test/suites/api/test_equal.c +189 -0
  90. data/ext/vendor/jansson-2.5/test/suites/api/test_load.c +166 -0
  91. data/ext/vendor/jansson-2.5/test/suites/api/test_load_callback.c +75 -0
  92. data/ext/vendor/jansson-2.5/test/suites/api/test_loadb.c +36 -0
  93. data/ext/vendor/jansson-2.5/test/suites/api/test_memory_funcs.c +82 -0
  94. data/ext/vendor/jansson-2.5/test/suites/api/test_number.c +73 -0
  95. data/ext/vendor/jansson-2.5/test/suites/api/test_object.c +511 -0
  96. data/ext/vendor/jansson-2.5/test/suites/api/test_pack.c +283 -0
  97. data/ext/vendor/jansson-2.5/test/suites/api/test_simple.c +199 -0
  98. data/ext/vendor/jansson-2.5/test/suites/api/test_unpack.c +373 -0
  99. data/ext/vendor/jansson-2.5/test/suites/api/util.h +74 -0
  100. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/encoded-surrogate-half/error +2 -0
  101. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/encoded-surrogate-half/input +1 -0
  102. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/invalid-utf-8-after-backslash/error +2 -0
  103. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/invalid-utf-8-after-backslash/input +1 -0
  104. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/invalid-utf-8-in-array/error +2 -0
  105. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/invalid-utf-8-in-array/input +1 -0
  106. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/invalid-utf-8-in-bigger-int/error +2 -0
  107. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/invalid-utf-8-in-bigger-int/input +1 -0
  108. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/invalid-utf-8-in-escape/error +2 -0
  109. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/invalid-utf-8-in-escape/input +1 -0
  110. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/invalid-utf-8-in-exponent/error +2 -0
  111. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/invalid-utf-8-in-exponent/input +1 -0
  112. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/invalid-utf-8-in-identifier/error +2 -0
  113. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/invalid-utf-8-in-identifier/input +1 -0
  114. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/invalid-utf-8-in-int/error +2 -0
  115. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/invalid-utf-8-in-int/input +1 -0
  116. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/invalid-utf-8-in-real-after-e/error +2 -0
  117. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/invalid-utf-8-in-real-after-e/input +1 -0
  118. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/invalid-utf-8-in-string/error +2 -0
  119. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/invalid-utf-8-in-string/input +1 -0
  120. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/lone-invalid-utf-8/error +2 -0
  121. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/lone-invalid-utf-8/input +1 -0
  122. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/lone-utf-8-continuation-byte/error +2 -0
  123. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/lone-utf-8-continuation-byte/input +1 -0
  124. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/not-in-unicode-range/error +2 -0
  125. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/not-in-unicode-range/input +1 -0
  126. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/overlong-3-byte-encoding/error +2 -0
  127. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/overlong-3-byte-encoding/input +1 -0
  128. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/overlong-4-byte-encoding/error +2 -0
  129. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/overlong-4-byte-encoding/input +1 -0
  130. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/overlong-ascii-encoding/error +2 -0
  131. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/overlong-ascii-encoding/input +1 -0
  132. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/restricted-utf-8/error +2 -0
  133. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/restricted-utf-8/input +1 -0
  134. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/run +27 -0
  135. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/truncated-utf-8/error +2 -0
  136. data/ext/vendor/jansson-2.5/test/suites/invalid-unicode/truncated-utf-8/input +1 -0
  137. data/ext/vendor/jansson-2.5/test/suites/invalid/apostrophe/error +2 -0
  138. data/ext/vendor/jansson-2.5/test/suites/invalid/apostrophe/input +1 -0
  139. data/ext/vendor/jansson-2.5/test/suites/invalid/ascii-unicode-identifier/error +2 -0
  140. data/ext/vendor/jansson-2.5/test/suites/invalid/ascii-unicode-identifier/input +1 -0
  141. data/ext/vendor/jansson-2.5/test/suites/invalid/brace-comma/error +2 -0
  142. data/ext/vendor/jansson-2.5/test/suites/invalid/brace-comma/input +1 -0
  143. data/ext/vendor/jansson-2.5/test/suites/invalid/bracket-comma/error +2 -0
  144. data/ext/vendor/jansson-2.5/test/suites/invalid/bracket-comma/input +1 -0
  145. data/ext/vendor/jansson-2.5/test/suites/invalid/bracket-one-comma/error.normal +2 -0
  146. data/ext/vendor/jansson-2.5/test/suites/invalid/bracket-one-comma/error.strip +2 -0
  147. data/ext/vendor/jansson-2.5/test/suites/invalid/bracket-one-comma/input +1 -0
  148. data/ext/vendor/jansson-2.5/test/suites/invalid/empty/error +2 -0
  149. data/ext/vendor/jansson-2.5/test/suites/invalid/empty/input +0 -0
  150. data/ext/vendor/jansson-2.5/test/suites/invalid/escaped-null-byte-in-string/error +2 -0
  151. data/ext/vendor/jansson-2.5/test/suites/invalid/escaped-null-byte-in-string/input +1 -0
  152. data/ext/vendor/jansson-2.5/test/suites/invalid/extra-comma-in-array/error +2 -0
  153. data/ext/vendor/jansson-2.5/test/suites/invalid/extra-comma-in-array/input +1 -0
  154. data/ext/vendor/jansson-2.5/test/suites/invalid/extra-comma-in-multiline-array/error +2 -0
  155. data/ext/vendor/jansson-2.5/test/suites/invalid/extra-comma-in-multiline-array/input +6 -0
  156. data/ext/vendor/jansson-2.5/test/suites/invalid/garbage-after-newline/error +2 -0
  157. data/ext/vendor/jansson-2.5/test/suites/invalid/garbage-after-newline/input +2 -0
  158. data/ext/vendor/jansson-2.5/test/suites/invalid/garbage-at-the-end/error +2 -0
  159. data/ext/vendor/jansson-2.5/test/suites/invalid/garbage-at-the-end/input +1 -0
  160. data/ext/vendor/jansson-2.5/test/suites/invalid/integer-starting-with-zero/error +2 -0
  161. data/ext/vendor/jansson-2.5/test/suites/invalid/integer-starting-with-zero/input +1 -0
  162. data/ext/vendor/jansson-2.5/test/suites/invalid/invalid-escape/error +2 -0
  163. data/ext/vendor/jansson-2.5/test/suites/invalid/invalid-escape/input +1 -0
  164. data/ext/vendor/jansson-2.5/test/suites/invalid/invalid-identifier/error +2 -0
  165. data/ext/vendor/jansson-2.5/test/suites/invalid/invalid-identifier/input +1 -0
  166. data/ext/vendor/jansson-2.5/test/suites/invalid/invalid-negative-integer/error +2 -0
  167. data/ext/vendor/jansson-2.5/test/suites/invalid/invalid-negative-integer/input +1 -0
  168. data/ext/vendor/jansson-2.5/test/suites/invalid/invalid-negative-real/error +2 -0
  169. data/ext/vendor/jansson-2.5/test/suites/invalid/invalid-negative-real/input +1 -0
  170. data/ext/vendor/jansson-2.5/test/suites/invalid/invalid-second-surrogate/error +2 -0
  171. data/ext/vendor/jansson-2.5/test/suites/invalid/invalid-second-surrogate/input +1 -0
  172. data/ext/vendor/jansson-2.5/test/suites/invalid/lone-open-brace/error.normal +2 -0
  173. data/ext/vendor/jansson-2.5/test/suites/invalid/lone-open-brace/error.strip +2 -0
  174. data/ext/vendor/jansson-2.5/test/suites/invalid/lone-open-brace/input +1 -0
  175. data/ext/vendor/jansson-2.5/test/suites/invalid/lone-open-bracket/error.normal +2 -0
  176. data/ext/vendor/jansson-2.5/test/suites/invalid/lone-open-bracket/error.strip +2 -0
  177. data/ext/vendor/jansson-2.5/test/suites/invalid/lone-open-bracket/input +1 -0
  178. data/ext/vendor/jansson-2.5/test/suites/invalid/lone-second-surrogate/error +2 -0
  179. data/ext/vendor/jansson-2.5/test/suites/invalid/lone-second-surrogate/input +1 -0
  180. data/ext/vendor/jansson-2.5/test/suites/invalid/minus-sign-without-number/error +2 -0
  181. data/ext/vendor/jansson-2.5/test/suites/invalid/minus-sign-without-number/input +1 -0
  182. data/ext/vendor/jansson-2.5/test/suites/invalid/negative-integer-starting-with-zero/error +2 -0
  183. data/ext/vendor/jansson-2.5/test/suites/invalid/negative-integer-starting-with-zero/input +1 -0
  184. data/ext/vendor/jansson-2.5/test/suites/invalid/null-byte-in-string/error +2 -0
  185. data/ext/vendor/jansson-2.5/test/suites/invalid/null-byte-in-string/input +0 -0
  186. data/ext/vendor/jansson-2.5/test/suites/invalid/null-byte-in-string/nostrip +2 -0
  187. data/ext/vendor/jansson-2.5/test/suites/invalid/null-byte-outside-string/error +2 -0
  188. data/ext/vendor/jansson-2.5/test/suites/invalid/null-byte-outside-string/input +0 -0
  189. data/ext/vendor/jansson-2.5/test/suites/invalid/null-byte-outside-string/nostrip +2 -0
  190. data/ext/vendor/jansson-2.5/test/suites/invalid/null/error +2 -0
  191. data/ext/vendor/jansson-2.5/test/suites/invalid/null/input +1 -0
  192. data/ext/vendor/jansson-2.5/test/suites/invalid/object-apostrophes/error +2 -0
  193. data/ext/vendor/jansson-2.5/test/suites/invalid/object-apostrophes/input +1 -0
  194. data/ext/vendor/jansson-2.5/test/suites/invalid/object-garbage-at-end/error +2 -0
  195. data/ext/vendor/jansson-2.5/test/suites/invalid/object-garbage-at-end/input +1 -0
  196. data/ext/vendor/jansson-2.5/test/suites/invalid/object-in-unterminated-array/error.normal +2 -0
  197. data/ext/vendor/jansson-2.5/test/suites/invalid/object-in-unterminated-array/error.strip +2 -0
  198. data/ext/vendor/jansson-2.5/test/suites/invalid/object-in-unterminated-array/input +1 -0
  199. data/ext/vendor/jansson-2.5/test/suites/invalid/object-no-colon/error.normal +2 -0
  200. data/ext/vendor/jansson-2.5/test/suites/invalid/object-no-colon/error.strip +2 -0
  201. data/ext/vendor/jansson-2.5/test/suites/invalid/object-no-colon/input +1 -0
  202. data/ext/vendor/jansson-2.5/test/suites/invalid/object-no-value/error.normal +2 -0
  203. data/ext/vendor/jansson-2.5/test/suites/invalid/object-no-value/error.strip +2 -0
  204. data/ext/vendor/jansson-2.5/test/suites/invalid/object-no-value/input +1 -0
  205. data/ext/vendor/jansson-2.5/test/suites/invalid/object-unterminated-value/error.normal +2 -0
  206. data/ext/vendor/jansson-2.5/test/suites/invalid/object-unterminated-value/error.strip +2 -0
  207. data/ext/vendor/jansson-2.5/test/suites/invalid/object-unterminated-value/input +1 -0
  208. data/ext/vendor/jansson-2.5/test/suites/invalid/real-garbage-after-e/error +2 -0
  209. data/ext/vendor/jansson-2.5/test/suites/invalid/real-garbage-after-e/input +1 -0
  210. data/ext/vendor/jansson-2.5/test/suites/invalid/real-negative-overflow/error +2 -0
  211. data/ext/vendor/jansson-2.5/test/suites/invalid/real-negative-overflow/input +1 -0
  212. data/ext/vendor/jansson-2.5/test/suites/invalid/real-positive-overflow/error +2 -0
  213. data/ext/vendor/jansson-2.5/test/suites/invalid/real-positive-overflow/input +1 -0
  214. data/ext/vendor/jansson-2.5/test/suites/invalid/real-truncated-at-e/error +2 -0
  215. data/ext/vendor/jansson-2.5/test/suites/invalid/real-truncated-at-e/input +1 -0
  216. data/ext/vendor/jansson-2.5/test/suites/invalid/real-truncated-at-point/error +2 -0
  217. data/ext/vendor/jansson-2.5/test/suites/invalid/real-truncated-at-point/input +1 -0
  218. data/ext/vendor/jansson-2.5/test/suites/invalid/run +57 -0
  219. data/ext/vendor/jansson-2.5/test/suites/invalid/tab-character-in-string/error +2 -0
  220. data/ext/vendor/jansson-2.5/test/suites/invalid/tab-character-in-string/input +1 -0
  221. data/ext/vendor/jansson-2.5/test/suites/invalid/too-big-negative-integer/error +2 -0
  222. data/ext/vendor/jansson-2.5/test/suites/invalid/too-big-negative-integer/input +1 -0
  223. data/ext/vendor/jansson-2.5/test/suites/invalid/too-big-positive-integer/error +2 -0
  224. data/ext/vendor/jansson-2.5/test/suites/invalid/too-big-positive-integer/input +1 -0
  225. data/ext/vendor/jansson-2.5/test/suites/invalid/truncated-unicode-surrogate/error +2 -0
  226. data/ext/vendor/jansson-2.5/test/suites/invalid/truncated-unicode-surrogate/input +1 -0
  227. data/ext/vendor/jansson-2.5/test/suites/invalid/unicode-identifier/error +2 -0
  228. data/ext/vendor/jansson-2.5/test/suites/invalid/unicode-identifier/input +1 -0
  229. data/ext/vendor/jansson-2.5/test/suites/invalid/unterminated-array-and-object/error.normal +2 -0
  230. data/ext/vendor/jansson-2.5/test/suites/invalid/unterminated-array-and-object/error.strip +2 -0
  231. data/ext/vendor/jansson-2.5/test/suites/invalid/unterminated-array-and-object/input +1 -0
  232. data/ext/vendor/jansson-2.5/test/suites/invalid/unterminated-array/error.normal +2 -0
  233. data/ext/vendor/jansson-2.5/test/suites/invalid/unterminated-array/error.strip +2 -0
  234. data/ext/vendor/jansson-2.5/test/suites/invalid/unterminated-array/input +1 -0
  235. data/ext/vendor/jansson-2.5/test/suites/invalid/unterminated-empty-key/error.normal +2 -0
  236. data/ext/vendor/jansson-2.5/test/suites/invalid/unterminated-empty-key/error.strip +2 -0
  237. data/ext/vendor/jansson-2.5/test/suites/invalid/unterminated-empty-key/input +1 -0
  238. data/ext/vendor/jansson-2.5/test/suites/invalid/unterminated-key/error.normal +2 -0
  239. data/ext/vendor/jansson-2.5/test/suites/invalid/unterminated-key/error.strip +2 -0
  240. data/ext/vendor/jansson-2.5/test/suites/invalid/unterminated-key/input +1 -0
  241. data/ext/vendor/jansson-2.5/test/suites/invalid/unterminated-object-and-array/error +2 -0
  242. data/ext/vendor/jansson-2.5/test/suites/invalid/unterminated-object-and-array/input +1 -0
  243. data/ext/vendor/jansson-2.5/test/suites/invalid/unterminated-string/error.normal +2 -0
  244. data/ext/vendor/jansson-2.5/test/suites/invalid/unterminated-string/error.strip +2 -0
  245. data/ext/vendor/jansson-2.5/test/suites/invalid/unterminated-string/input +1 -0
  246. data/ext/vendor/jansson-2.5/test/suites/valid/complex-array/env +1 -0
  247. data/ext/vendor/jansson-2.5/test/suites/valid/complex-array/input +5 -0
  248. data/ext/vendor/jansson-2.5/test/suites/valid/complex-array/output +1 -0
  249. data/ext/vendor/jansson-2.5/test/suites/valid/empty-array/input +1 -0
  250. data/ext/vendor/jansson-2.5/test/suites/valid/empty-array/output +1 -0
  251. data/ext/vendor/jansson-2.5/test/suites/valid/empty-object-in-array/input +1 -0
  252. data/ext/vendor/jansson-2.5/test/suites/valid/empty-object-in-array/output +1 -0
  253. data/ext/vendor/jansson-2.5/test/suites/valid/empty-object/input +1 -0
  254. data/ext/vendor/jansson-2.5/test/suites/valid/empty-object/output +1 -0
  255. data/ext/vendor/jansson-2.5/test/suites/valid/empty-string/input +1 -0
  256. data/ext/vendor/jansson-2.5/test/suites/valid/empty-string/output +1 -0
  257. data/ext/vendor/jansson-2.5/test/suites/valid/escaped-utf-control-char/input +1 -0
  258. data/ext/vendor/jansson-2.5/test/suites/valid/escaped-utf-control-char/output +1 -0
  259. data/ext/vendor/jansson-2.5/test/suites/valid/false/input +1 -0
  260. data/ext/vendor/jansson-2.5/test/suites/valid/false/output +1 -0
  261. data/ext/vendor/jansson-2.5/test/suites/valid/negative-int/input +1 -0
  262. data/ext/vendor/jansson-2.5/test/suites/valid/negative-int/output +1 -0
  263. data/ext/vendor/jansson-2.5/test/suites/valid/negative-one/input +1 -0
  264. data/ext/vendor/jansson-2.5/test/suites/valid/negative-one/output +1 -0
  265. data/ext/vendor/jansson-2.5/test/suites/valid/negative-zero/input +1 -0
  266. data/ext/vendor/jansson-2.5/test/suites/valid/negative-zero/output +1 -0
  267. data/ext/vendor/jansson-2.5/test/suites/valid/null/input +1 -0
  268. data/ext/vendor/jansson-2.5/test/suites/valid/null/output +1 -0
  269. data/ext/vendor/jansson-2.5/test/suites/valid/one-byte-utf-8/input +1 -0
  270. data/ext/vendor/jansson-2.5/test/suites/valid/one-byte-utf-8/output +1 -0
  271. data/ext/vendor/jansson-2.5/test/suites/valid/real-capital-e-negative-exponent/input +1 -0
  272. data/ext/vendor/jansson-2.5/test/suites/valid/real-capital-e-negative-exponent/output +1 -0
  273. data/ext/vendor/jansson-2.5/test/suites/valid/real-capital-e-positive-exponent/input +1 -0
  274. data/ext/vendor/jansson-2.5/test/suites/valid/real-capital-e-positive-exponent/output +1 -0
  275. data/ext/vendor/jansson-2.5/test/suites/valid/real-capital-e/input +1 -0
  276. data/ext/vendor/jansson-2.5/test/suites/valid/real-capital-e/output +1 -0
  277. data/ext/vendor/jansson-2.5/test/suites/valid/real-exponent/input +1 -0
  278. data/ext/vendor/jansson-2.5/test/suites/valid/real-exponent/output +1 -0
  279. data/ext/vendor/jansson-2.5/test/suites/valid/real-fraction-exponent/input +1 -0
  280. data/ext/vendor/jansson-2.5/test/suites/valid/real-fraction-exponent/output +1 -0
  281. data/ext/vendor/jansson-2.5/test/suites/valid/real-negative-exponent/input +1 -0
  282. data/ext/vendor/jansson-2.5/test/suites/valid/real-negative-exponent/output +1 -0
  283. data/ext/vendor/jansson-2.5/test/suites/valid/real-positive-exponent/input +1 -0
  284. data/ext/vendor/jansson-2.5/test/suites/valid/real-positive-exponent/output +1 -0
  285. data/ext/vendor/jansson-2.5/test/suites/valid/real-underflow/input +1 -0
  286. data/ext/vendor/jansson-2.5/test/suites/valid/real-underflow/output +1 -0
  287. data/ext/vendor/jansson-2.5/test/suites/valid/run +56 -0
  288. data/ext/vendor/jansson-2.5/test/suites/valid/short-string/input +1 -0
  289. data/ext/vendor/jansson-2.5/test/suites/valid/short-string/output +1 -0
  290. data/ext/vendor/jansson-2.5/test/suites/valid/simple-ascii-string/input +1 -0
  291. data/ext/vendor/jansson-2.5/test/suites/valid/simple-ascii-string/output +1 -0
  292. data/ext/vendor/jansson-2.5/test/suites/valid/simple-int-0/input +1 -0
  293. data/ext/vendor/jansson-2.5/test/suites/valid/simple-int-0/output +1 -0
  294. data/ext/vendor/jansson-2.5/test/suites/valid/simple-int-1/input +1 -0
  295. data/ext/vendor/jansson-2.5/test/suites/valid/simple-int-1/output +1 -0
  296. data/ext/vendor/jansson-2.5/test/suites/valid/simple-int-123/input +1 -0
  297. data/ext/vendor/jansson-2.5/test/suites/valid/simple-int-123/output +1 -0
  298. data/ext/vendor/jansson-2.5/test/suites/valid/simple-object/input +1 -0
  299. data/ext/vendor/jansson-2.5/test/suites/valid/simple-object/output +1 -0
  300. data/ext/vendor/jansson-2.5/test/suites/valid/simple-real/input +1 -0
  301. data/ext/vendor/jansson-2.5/test/suites/valid/simple-real/output +1 -0
  302. data/ext/vendor/jansson-2.5/test/suites/valid/string-escapes/input +1 -0
  303. data/ext/vendor/jansson-2.5/test/suites/valid/string-escapes/output +1 -0
  304. data/ext/vendor/jansson-2.5/test/suites/valid/three-byte-utf-8/input +1 -0
  305. data/ext/vendor/jansson-2.5/test/suites/valid/three-byte-utf-8/output +1 -0
  306. data/ext/vendor/jansson-2.5/test/suites/valid/true/input +1 -0
  307. data/ext/vendor/jansson-2.5/test/suites/valid/true/output +1 -0
  308. data/ext/vendor/jansson-2.5/test/suites/valid/two-byte-utf-8/input +1 -0
  309. data/ext/vendor/jansson-2.5/test/suites/valid/two-byte-utf-8/output +1 -0
  310. data/ext/vendor/jansson-2.5/test/suites/valid/utf-8-string/input +1 -0
  311. data/ext/vendor/jansson-2.5/test/suites/valid/utf-8-string/output +1 -0
  312. data/ext/vendor/jansson-2.5/test/suites/valid/utf-surrogate-four-byte-encoding/input +1 -0
  313. data/ext/vendor/jansson-2.5/test/suites/valid/utf-surrogate-four-byte-encoding/output +1 -0
  314. data/ext/vendor/jansson-2.5/win32/jansson_config.h +39 -0
  315. data/ext/vendor/jansson-2.5/win32/vs2010/jansson.sln +20 -0
  316. data/ext/vendor/jansson-2.5/win32/vs2010/jansson.vcxproj +108 -0
  317. data/ext/vendor/jansson-2.5/win32/vs2010/jansson.vcxproj.filters +69 -0
  318. data/ext/vendor/jansson-2.5/win32/vs2010/jansson.vcxproj.user +3 -0
  319. data/lib/ctags.cnf +2 -0
  320. data/lib/ctags/exuberant.rb +129 -17
  321. data/lib/ctags/version.rb +1 -1
  322. data/test/test_ctags.rb +14 -7
  323. metadata +350 -69
@@ -0,0 +1,318 @@
1
+ /*
2
+ * Copyright (c) 2009-2013 Petri Lehtinen <petri@digip.org>
3
+ *
4
+ * Jansson is free software; you can redistribute it and/or modify
5
+ * it under the terms of the MIT license. See LICENSE for details.
6
+ */
7
+
8
+ #include <string.h>
9
+ #include <jansson.h>
10
+ #include "util.h"
11
+
12
+ static void test_copy_simple(void)
13
+ {
14
+ json_t *value, *copy;
15
+
16
+ if(json_copy(NULL))
17
+ fail("copying NULL doesn't return NULL");
18
+
19
+ /* true */
20
+ value = json_true();
21
+ copy = json_copy(value);
22
+ if(value != copy)
23
+ fail("copying true failed");
24
+ json_decref(value);
25
+ json_decref(copy);
26
+
27
+ /* false */
28
+ value = json_false();
29
+ copy = json_copy(value);
30
+ if(value != copy)
31
+ fail("copying false failed");
32
+ json_decref(value);
33
+ json_decref(copy);
34
+
35
+ /* null */
36
+ value = json_null();
37
+ copy = json_copy(value);
38
+ if(value != copy)
39
+ fail("copying null failed");
40
+ json_decref(value);
41
+ json_decref(copy);
42
+
43
+ /* string */
44
+ value = json_string("foo");
45
+ if(!value)
46
+ fail("unable to create a string");
47
+ copy = json_copy(value);
48
+ if(!copy)
49
+ fail("unable to copy a string");
50
+ if(copy == value)
51
+ fail("copying a string doesn't copy");
52
+ if(!json_equal(copy, value))
53
+ fail("copying a string produces an inequal copy");
54
+ if(value->refcount != 1 || copy->refcount != 1)
55
+ fail("invalid refcounts");
56
+ json_decref(value);
57
+ json_decref(copy);
58
+
59
+ /* integer */
60
+ value = json_integer(543);
61
+ if(!value)
62
+ fail("unable to create an integer");
63
+ copy = json_copy(value);
64
+ if(!copy)
65
+ fail("unable to copy an integer");
66
+ if(copy == value)
67
+ fail("copying an integer doesn't copy");
68
+ if(!json_equal(copy, value))
69
+ fail("copying an integer produces an inequal copy");
70
+ if(value->refcount != 1 || copy->refcount != 1)
71
+ fail("invalid refcounts");
72
+ json_decref(value);
73
+ json_decref(copy);
74
+
75
+ /* real */
76
+ value = json_real(123e9);
77
+ if(!value)
78
+ fail("unable to create a real");
79
+ copy = json_copy(value);
80
+ if(!copy)
81
+ fail("unable to copy a real");
82
+ if(copy == value)
83
+ fail("copying a real doesn't copy");
84
+ if(!json_equal(copy, value))
85
+ fail("copying a real produces an inequal copy");
86
+ if(value->refcount != 1 || copy->refcount != 1)
87
+ fail("invalid refcounts");
88
+ json_decref(value);
89
+ json_decref(copy);
90
+ }
91
+
92
+ static void test_deep_copy_simple(void)
93
+ {
94
+ json_t *value, *copy;
95
+
96
+ if(json_deep_copy(NULL))
97
+ fail("deep copying NULL doesn't return NULL");
98
+
99
+ /* true */
100
+ value = json_true();
101
+ copy = json_deep_copy(value);
102
+ if(value != copy)
103
+ fail("deep copying true failed");
104
+ json_decref(value);
105
+ json_decref(copy);
106
+
107
+ /* false */
108
+ value = json_false();
109
+ copy = json_deep_copy(value);
110
+ if(value != copy)
111
+ fail("deep copying false failed");
112
+ json_decref(value);
113
+ json_decref(copy);
114
+
115
+ /* null */
116
+ value = json_null();
117
+ copy = json_deep_copy(value);
118
+ if(value != copy)
119
+ fail("deep copying null failed");
120
+ json_decref(value);
121
+ json_decref(copy);
122
+
123
+ /* string */
124
+ value = json_string("foo");
125
+ if(!value)
126
+ fail("unable to create a string");
127
+ copy = json_deep_copy(value);
128
+ if(!copy)
129
+ fail("unable to deep copy a string");
130
+ if(copy == value)
131
+ fail("deep copying a string doesn't copy");
132
+ if(!json_equal(copy, value))
133
+ fail("deep copying a string produces an inequal copy");
134
+ if(value->refcount != 1 || copy->refcount != 1)
135
+ fail("invalid refcounts");
136
+ json_decref(value);
137
+ json_decref(copy);
138
+
139
+ /* integer */
140
+ value = json_integer(543);
141
+ if(!value)
142
+ fail("unable to create an integer");
143
+ copy = json_deep_copy(value);
144
+ if(!copy)
145
+ fail("unable to deep copy an integer");
146
+ if(copy == value)
147
+ fail("deep copying an integer doesn't copy");
148
+ if(!json_equal(copy, value))
149
+ fail("deep copying an integer produces an inequal copy");
150
+ if(value->refcount != 1 || copy->refcount != 1)
151
+ fail("invalid refcounts");
152
+ json_decref(value);
153
+ json_decref(copy);
154
+
155
+ /* real */
156
+ value = json_real(123e9);
157
+ if(!value)
158
+ fail("unable to create a real");
159
+ copy = json_deep_copy(value);
160
+ if(!copy)
161
+ fail("unable to deep copy a real");
162
+ if(copy == value)
163
+ fail("deep copying a real doesn't copy");
164
+ if(!json_equal(copy, value))
165
+ fail("deep copying a real produces an inequal copy");
166
+ if(value->refcount != 1 || copy->refcount != 1)
167
+ fail("invalid refcounts");
168
+ json_decref(value);
169
+ json_decref(copy);
170
+ }
171
+
172
+ static void test_copy_array(void)
173
+ {
174
+ const char *json_array_text = "[1, \"foo\", 3.141592, {\"foo\": \"bar\"}]";
175
+
176
+ json_t *array, *copy;
177
+ size_t i;
178
+
179
+ array = json_loads(json_array_text, 0, NULL);
180
+ if(!array)
181
+ fail("unable to parse an array");
182
+
183
+ copy = json_copy(array);
184
+ if(!copy)
185
+ fail("unable to copy an array");
186
+ if(copy == array)
187
+ fail("copying an array doesn't copy");
188
+ if(!json_equal(copy, array))
189
+ fail("copying an array produces an inequal copy");
190
+
191
+ for(i = 0; i < json_array_size(copy); i++)
192
+ {
193
+ if(json_array_get(array, i) != json_array_get(copy, i))
194
+ fail("copying an array modifies its elements");
195
+ }
196
+
197
+ json_decref(array);
198
+ json_decref(copy);
199
+ }
200
+
201
+ static void test_deep_copy_array(void)
202
+ {
203
+ const char *json_array_text = "[1, \"foo\", 3.141592, {\"foo\": \"bar\"}]";
204
+
205
+ json_t *array, *copy;
206
+ size_t i;
207
+
208
+ array = json_loads(json_array_text, 0, NULL);
209
+ if(!array)
210
+ fail("unable to parse an array");
211
+
212
+ copy = json_deep_copy(array);
213
+ if(!copy)
214
+ fail("unable to deep copy an array");
215
+ if(copy == array)
216
+ fail("deep copying an array doesn't copy");
217
+ if(!json_equal(copy, array))
218
+ fail("deep copying an array produces an inequal copy");
219
+
220
+ for(i = 0; i < json_array_size(copy); i++)
221
+ {
222
+ if(json_array_get(array, i) == json_array_get(copy, i))
223
+ fail("deep copying an array doesn't copy its elements");
224
+ }
225
+
226
+ json_decref(array);
227
+ json_decref(copy);
228
+ }
229
+
230
+ static void test_copy_object(void)
231
+ {
232
+ const char *json_object_text =
233
+ "{\"foo\": \"bar\", \"a\": 1, \"b\": 3.141592, \"c\": [1,2,3,4]}";
234
+
235
+ json_t *object, *copy;
236
+ void *iter;
237
+
238
+ object = json_loads(json_object_text, 0, NULL);
239
+ if(!object)
240
+ fail("unable to parse an object");
241
+
242
+ copy = json_copy(object);
243
+ if(!copy)
244
+ fail("unable to copy an object");
245
+ if(copy == object)
246
+ fail("copying an object doesn't copy");
247
+ if(!json_equal(copy, object))
248
+ fail("copying an object produces an inequal copy");
249
+
250
+ iter = json_object_iter(object);
251
+ while(iter)
252
+ {
253
+ const char *key;
254
+ json_t *value1, *value2;
255
+
256
+ key = json_object_iter_key(iter);
257
+ value1 = json_object_iter_value(iter);
258
+ value2 = json_object_get(copy, key);
259
+
260
+ if(value1 != value2)
261
+ fail("deep copying an object modifies its items");
262
+
263
+ iter = json_object_iter_next(object, iter);
264
+ }
265
+
266
+ json_decref(object);
267
+ json_decref(copy);
268
+ }
269
+
270
+ static void test_deep_copy_object(void)
271
+ {
272
+ const char *json_object_text =
273
+ "{\"foo\": \"bar\", \"a\": 1, \"b\": 3.141592, \"c\": [1,2,3,4]}";
274
+
275
+ json_t *object, *copy;
276
+ void *iter;
277
+
278
+ object = json_loads(json_object_text, 0, NULL);
279
+ if(!object)
280
+ fail("unable to parse an object");
281
+
282
+ copy = json_deep_copy(object);
283
+ if(!copy)
284
+ fail("unable to deep copy an object");
285
+ if(copy == object)
286
+ fail("deep copying an object doesn't copy");
287
+ if(!json_equal(copy, object))
288
+ fail("deep copying an object produces an inequal copy");
289
+
290
+ iter = json_object_iter(object);
291
+ while(iter)
292
+ {
293
+ const char *key;
294
+ json_t *value1, *value2;
295
+
296
+ key = json_object_iter_key(iter);
297
+ value1 = json_object_iter_value(iter);
298
+ value2 = json_object_get(copy, key);
299
+
300
+ if(value1 == value2)
301
+ fail("deep copying an object doesn't copy its items");
302
+
303
+ iter = json_object_iter_next(object, iter);
304
+ }
305
+
306
+ json_decref(object);
307
+ json_decref(copy);
308
+ }
309
+
310
+ static void run_tests()
311
+ {
312
+ test_copy_simple();
313
+ test_deep_copy_simple();
314
+ test_copy_array();
315
+ test_deep_copy_array();
316
+ test_copy_object();
317
+ test_deep_copy_object();
318
+ }
@@ -0,0 +1,190 @@
1
+ /*
2
+ * Copyright (c) 2009-2013 Petri Lehtinen <petri@digip.org>
3
+ *
4
+ * Jansson is free software; you can redistribute it and/or modify
5
+ * it under the terms of the MIT license. See LICENSE for details.
6
+ */
7
+
8
+ #include <jansson.h>
9
+ #include <string.h>
10
+ #include "util.h"
11
+
12
+ static int encode_null_callback(const char *buffer, size_t size, void *data)
13
+ {
14
+ (void)buffer;
15
+ (void)size;
16
+ (void)data;
17
+ return 0;
18
+ }
19
+
20
+ static void encode_null()
21
+ {
22
+ if(json_dumps(NULL, JSON_ENCODE_ANY) != NULL)
23
+ fail("json_dumps didn't fail for NULL");
24
+
25
+ if(json_dumpf(NULL, stderr, JSON_ENCODE_ANY) != -1)
26
+ fail("json_dumpf didn't fail for NULL");
27
+
28
+ /* Don't test json_dump_file to avoid creating a file */
29
+
30
+ if(json_dump_callback(NULL, encode_null_callback, NULL, JSON_ENCODE_ANY) != -1)
31
+ fail("json_dump_callback didn't fail for NULL");
32
+ }
33
+
34
+
35
+ static void encode_twice()
36
+ {
37
+ /* Encode an empty object/array, add an item, encode again */
38
+
39
+ json_t *json;
40
+ char *result;
41
+
42
+ json = json_object();
43
+ result = json_dumps(json, 0);
44
+ if(!result || strcmp(result, "{}"))
45
+ fail("json_dumps failed");
46
+ free(result);
47
+
48
+ json_object_set_new(json, "foo", json_integer(5));
49
+ result = json_dumps(json, 0);
50
+ if(!result || strcmp(result, "{\"foo\": 5}"))
51
+ fail("json_dumps failed");
52
+ free(result);
53
+
54
+ json_decref(json);
55
+
56
+ json = json_array();
57
+ result = json_dumps(json, 0);
58
+ if(!result || strcmp(result, "[]"))
59
+ fail("json_dumps failed");
60
+ free(result);
61
+
62
+ json_array_append_new(json, json_integer(5));
63
+ result = json_dumps(json, 0);
64
+ if(!result || strcmp(result, "[5]"))
65
+ fail("json_dumps failed");
66
+ free(result);
67
+
68
+ json_decref(json);
69
+ }
70
+
71
+ static void circular_references()
72
+ {
73
+ /* Construct a JSON object/array with a circular reference:
74
+
75
+ object: {"a": {"b": {"c": <circular reference to $.a>}}}
76
+ array: [[[<circular reference to the $[0] array>]]]
77
+
78
+ Encode it, remove the circular reference and encode again.
79
+ */
80
+
81
+ json_t *json;
82
+ char *result;
83
+
84
+ json = json_object();
85
+ json_object_set_new(json, "a", json_object());
86
+ json_object_set_new(json_object_get(json, "a"), "b", json_object());
87
+ json_object_set(json_object_get(json_object_get(json, "a"), "b"), "c",
88
+ json_object_get(json, "a"));
89
+
90
+ if(json_dumps(json, 0))
91
+ fail("json_dumps encoded a circular reference!");
92
+
93
+ json_object_del(json_object_get(json_object_get(json, "a"), "b"), "c");
94
+
95
+ result = json_dumps(json, 0);
96
+ if(!result || strcmp(result, "{\"a\": {\"b\": {}}}"))
97
+ fail("json_dumps failed!");
98
+ free(result);
99
+
100
+ json_decref(json);
101
+
102
+ json = json_array();
103
+ json_array_append_new(json, json_array());
104
+ json_array_append_new(json_array_get(json, 0), json_array());
105
+ json_array_append(json_array_get(json_array_get(json, 0), 0),
106
+ json_array_get(json, 0));
107
+
108
+ if(json_dumps(json, 0))
109
+ fail("json_dumps encoded a circular reference!");
110
+
111
+ json_array_remove(json_array_get(json_array_get(json, 0), 0), 0);
112
+
113
+ result = json_dumps(json, 0);
114
+ if(!result || strcmp(result, "[[[]]]"))
115
+ fail("json_dumps failed!");
116
+ free(result);
117
+
118
+ json_decref(json);
119
+ }
120
+
121
+ static void encode_other_than_array_or_object()
122
+ {
123
+ /* Encoding anything other than array or object should only
124
+ * succeed if the JSON_ENCODE_ANY flag is used */
125
+
126
+ json_t *json;
127
+ FILE *fp = NULL;
128
+ char *result;
129
+
130
+ json = json_string("foo");
131
+ if(json_dumps(json, 0) != NULL)
132
+ fail("json_dumps encoded a string!");
133
+ if(json_dumpf(json, fp, 0) == 0)
134
+ fail("json_dumpf encoded a string!");
135
+
136
+ result = json_dumps(json, JSON_ENCODE_ANY);
137
+ if(!result || strcmp(result, "\"foo\"") != 0)
138
+ fail("json_dumps failed to encode a string with JSON_ENCODE_ANY");
139
+
140
+ free(result);
141
+ json_decref(json);
142
+
143
+ json = json_integer(42);
144
+ if(json_dumps(json, 0) != NULL)
145
+ fail("json_dumps encoded an integer!");
146
+ if(json_dumpf(json, fp, 0) == 0)
147
+ fail("json_dumpf encoded an integer!");
148
+
149
+ result = json_dumps(json, JSON_ENCODE_ANY);
150
+ if(!result || strcmp(result, "42") != 0)
151
+ fail("json_dumps failed to encode an integer with JSON_ENCODE_ANY");
152
+
153
+ free(result);
154
+ json_decref(json);
155
+
156
+
157
+ }
158
+
159
+ static void escape_slashes()
160
+ {
161
+ /* Test dump escaping slashes */
162
+
163
+ json_t *json;
164
+ char *result;
165
+
166
+ json = json_object();
167
+ json_object_set_new(json, "url", json_string("https://github.com/akheron/jansson"));
168
+
169
+ result = json_dumps(json, 0);
170
+ if(!result || strcmp(result, "{\"url\": \"https://github.com/akheron/jansson\"}"))
171
+ fail("json_dumps failed to not escape slashes");
172
+
173
+ free(result);
174
+
175
+ result = json_dumps(json, JSON_ESCAPE_SLASH);
176
+ if(!result || strcmp(result, "{\"url\": \"https:\\/\\/github.com\\/akheron\\/jansson\"}"))
177
+ fail("json_dumps failed to escape slashes");
178
+
179
+ free(result);
180
+ json_decref(json);
181
+ }
182
+
183
+ static void run_tests()
184
+ {
185
+ encode_null();
186
+ encode_twice();
187
+ circular_references();
188
+ encode_other_than_array_or_object();
189
+ escape_slashes();
190
+ }