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,283 @@
1
+ /*
2
+ * Copyright (c) 2009-2013 Petri Lehtinen <petri@digip.org>
3
+ * Copyright (c) 2010-2012 Graeme Smecher <graeme.smecher@mail.mcgill.ca>
4
+ *
5
+ * Jansson is free software; you can redistribute it and/or modify
6
+ * it under the terms of the MIT license. See LICENSE for details.
7
+ */
8
+
9
+ #ifdef HAVE_CONFIG_H
10
+ #include <config.h>
11
+ #endif
12
+
13
+ #include <jansson_config.h>
14
+
15
+ #include <string.h>
16
+ #include <jansson.h>
17
+ #include <stdio.h>
18
+ #include "util.h"
19
+
20
+ static void run_tests()
21
+ {
22
+ json_t *value;
23
+ int i;
24
+ char buffer[4] = {'t', 'e', 's', 't'};
25
+ json_error_t error;
26
+
27
+ /*
28
+ * Simple, valid json_pack cases
29
+ */
30
+ /* true */
31
+ value = json_pack("b", 1);
32
+ if(!json_is_true(value))
33
+ fail("json_pack boolean failed");
34
+ if(value->refcount != (size_t)-1)
35
+ fail("json_pack boolean refcount failed");
36
+ json_decref(value);
37
+
38
+ /* false */
39
+ value = json_pack("b", 0);
40
+ if(!json_is_false(value))
41
+ fail("json_pack boolean failed");
42
+ if(value->refcount != (size_t)-1)
43
+ fail("json_pack boolean refcount failed");
44
+ json_decref(value);
45
+
46
+ /* null */
47
+ value = json_pack("n");
48
+ if(!json_is_null(value))
49
+ fail("json_pack null failed");
50
+ if(value->refcount != (size_t)-1)
51
+ fail("json_pack null refcount failed");
52
+ json_decref(value);
53
+
54
+ /* integer */
55
+ value = json_pack("i", 1);
56
+ if(!json_is_integer(value) || json_integer_value(value) != 1)
57
+ fail("json_pack integer failed");
58
+ if(value->refcount != (size_t)1)
59
+ fail("json_pack integer refcount failed");
60
+ json_decref(value);
61
+
62
+ /* integer from json_int_t */
63
+ value = json_pack("I", (json_int_t)555555);
64
+ if(!json_is_integer(value) || json_integer_value(value) != 555555)
65
+ fail("json_pack json_int_t failed");
66
+ if(value->refcount != (size_t)1)
67
+ fail("json_pack integer refcount failed");
68
+ json_decref(value);
69
+
70
+ /* real */
71
+ value = json_pack("f", 1.0);
72
+ if(!json_is_real(value) || json_real_value(value) != 1.0)
73
+ fail("json_pack real failed");
74
+ if(value->refcount != (size_t)1)
75
+ fail("json_pack real refcount failed");
76
+ json_decref(value);
77
+
78
+ /* string */
79
+ value = json_pack("s", "test");
80
+ if(!json_is_string(value) || strcmp("test", json_string_value(value)))
81
+ fail("json_pack string failed");
82
+ if(value->refcount != (size_t)1)
83
+ fail("json_pack string refcount failed");
84
+ json_decref(value);
85
+
86
+ /* string and length */
87
+ value = json_pack("s#", "test asdf", 4);
88
+ if(!json_is_string(value) || strcmp("test", json_string_value(value)))
89
+ fail("json_pack string and length failed");
90
+ if(value->refcount != (size_t)1)
91
+ fail("json_pack string and length refcount failed");
92
+ json_decref(value);
93
+
94
+ /* string and length, non-NUL terminated string */
95
+ value = json_pack("s#", buffer, 4);
96
+ if(!json_is_string(value) || strcmp("test", json_string_value(value)))
97
+ fail("json_pack string and length failed");
98
+ if(value->refcount != (size_t)1)
99
+ fail("json_pack string and length refcount failed");
100
+ json_decref(value);
101
+
102
+ /* string concatenation */
103
+ value = json_pack("s++", "te", "st", "ing");
104
+ if(!json_is_string(value) || strcmp("testing", json_string_value(value)))
105
+ fail("json_pack string concatenation failed");
106
+ if(value->refcount != (size_t)1)
107
+ fail("json_pack string concatenation refcount failed");
108
+ json_decref(value);
109
+
110
+ /* string concatenation and length */
111
+ value = json_pack("s#+#+", "test", 1, "test", 2, "test");
112
+ if(!json_is_string(value) || strcmp("ttetest", json_string_value(value)))
113
+ fail("json_pack string concatenation and length failed");
114
+ if(value->refcount != (size_t)1)
115
+ fail("json_pack string concatenation and length refcount failed");
116
+ json_decref(value);
117
+
118
+ /* empty object */
119
+ value = json_pack("{}", 1.0);
120
+ if(!json_is_object(value) || json_object_size(value) != 0)
121
+ fail("json_pack empty object failed");
122
+ if(value->refcount != (size_t)1)
123
+ fail("json_pack empty object refcount failed");
124
+ json_decref(value);
125
+
126
+ /* empty list */
127
+ value = json_pack("[]", 1.0);
128
+ if(!json_is_array(value) || json_array_size(value) != 0)
129
+ fail("json_pack empty list failed");
130
+ if(value->refcount != (size_t)1)
131
+ fail("json_pack empty list failed");
132
+ json_decref(value);
133
+
134
+ /* non-incref'd object */
135
+ value = json_pack("o", json_integer(1));
136
+ if(!json_is_integer(value) || json_integer_value(value) != 1)
137
+ fail("json_pack object failed");
138
+ if(value->refcount != (size_t)1)
139
+ fail("json_pack integer refcount failed");
140
+ json_decref(value);
141
+
142
+ /* incref'd object */
143
+ value = json_pack("O", json_integer(1));
144
+ if(!json_is_integer(value) || json_integer_value(value) != 1)
145
+ fail("json_pack object failed");
146
+ if(value->refcount != (size_t)2)
147
+ fail("json_pack integer refcount failed");
148
+ json_decref(value);
149
+ json_decref(value);
150
+
151
+ /* simple object */
152
+ value = json_pack("{s:[]}", "foo");
153
+ if(!json_is_object(value) || json_object_size(value) != 1)
154
+ fail("json_pack array failed");
155
+ if(!json_is_array(json_object_get(value, "foo")))
156
+ fail("json_pack array failed");
157
+ if(json_object_get(value, "foo")->refcount != (size_t)1)
158
+ fail("json_pack object refcount failed");
159
+ json_decref(value);
160
+
161
+ /* object with complex key */
162
+ value = json_pack("{s+#+: []}", "foo", "barbar", 3, "baz");
163
+ if(!json_is_object(value) || json_object_size(value) != 1)
164
+ fail("json_pack array failed");
165
+ if(!json_is_array(json_object_get(value, "foobarbaz")))
166
+ fail("json_pack array failed");
167
+ if(json_object_get(value, "foobarbaz")->refcount != (size_t)1)
168
+ fail("json_pack object refcount failed");
169
+ json_decref(value);
170
+
171
+ /* simple array */
172
+ value = json_pack("[i,i,i]", 0, 1, 2);
173
+ if(!json_is_array(value) || json_array_size(value) != 3)
174
+ fail("json_pack object failed");
175
+ for(i=0; i<3; i++)
176
+ {
177
+ if(!json_is_integer(json_array_get(value, i)) ||
178
+ json_integer_value(json_array_get(value, i)) != i)
179
+
180
+ fail("json_pack integer array failed");
181
+ }
182
+ json_decref(value);
183
+
184
+ /* Whitespace; regular string */
185
+ value = json_pack(" s ", "test");
186
+ if(!json_is_string(value) || strcmp("test", json_string_value(value)))
187
+ fail("json_pack string (with whitespace) failed");
188
+ json_decref(value);
189
+
190
+ /* Whitespace; empty array */
191
+ value = json_pack("[ ]");
192
+ if(!json_is_array(value) || json_array_size(value) != 0)
193
+ fail("json_pack empty array (with whitespace) failed");
194
+ json_decref(value);
195
+
196
+ /* Whitespace; array */
197
+ value = json_pack("[ i , i, i ] ", 1, 2, 3);
198
+ if(!json_is_array(value) || json_array_size(value) != 3)
199
+ fail("json_pack array (with whitespace) failed");
200
+ json_decref(value);
201
+
202
+ /*
203
+ * Invalid cases
204
+ */
205
+
206
+ /* newline in format string */
207
+ if(json_pack_ex(&error, 0, "{\n\n1"))
208
+ fail("json_pack failed to catch invalid format '1'");
209
+ check_error("Expected format 's', got '1'", "<format>", 3, 1, 4);
210
+
211
+ /* mismatched open/close array/object */
212
+ if(json_pack_ex(&error, 0, "[}"))
213
+ fail("json_pack failed to catch mismatched '}'");
214
+ check_error("Unexpected format character '}'", "<format>", 1, 2, 2);
215
+
216
+ if(json_pack_ex(&error, 0, "{]"))
217
+ fail("json_pack failed to catch mismatched ']'");
218
+ check_error("Expected format 's', got ']'", "<format>", 1, 2, 2);
219
+
220
+ /* missing close array */
221
+ if(json_pack_ex(&error, 0, "["))
222
+ fail("json_pack failed to catch missing ']'");
223
+ check_error("Unexpected end of format string", "<format>", 1, 2, 2);
224
+
225
+ /* missing close object */
226
+ if(json_pack_ex(&error, 0, "{"))
227
+ fail("json_pack failed to catch missing '}'");
228
+ check_error("Unexpected end of format string", "<format>", 1, 2, 2);
229
+
230
+ /* garbage after format string */
231
+ if(json_pack_ex(&error, 0, "[i]a", 42))
232
+ fail("json_pack failed to catch garbage after format string");
233
+ check_error("Garbage after format string", "<format>", 1, 4, 4);
234
+
235
+ if(json_pack_ex(&error, 0, "ia", 42))
236
+ fail("json_pack failed to catch garbage after format string");
237
+ check_error("Garbage after format string", "<format>", 1, 2, 2);
238
+
239
+ /* NULL string */
240
+ if(json_pack_ex(&error, 0, "s", NULL))
241
+ fail("json_pack failed to catch null argument string");
242
+ check_error("NULL string argument", "<args>", 1, 1, 1);
243
+
244
+ /* + on its own */
245
+ if(json_pack_ex(&error, 0, "+", NULL))
246
+ fail("json_pack failed to a lone +");
247
+ check_error("Unexpected format character '+'", "<format>", 1, 1, 1);
248
+
249
+ /* NULL format */
250
+ if(json_pack_ex(&error, 0, NULL))
251
+ fail("json_pack failed to catch NULL format string");
252
+ check_error("NULL or empty format string", "<format>", -1, -1, 0);
253
+
254
+ /* NULL key */
255
+ if(json_pack_ex(&error, 0, "{s:i}", NULL, 1))
256
+ fail("json_pack failed to catch NULL key");
257
+ check_error("NULL string argument", "<args>", 1, 2, 2);
258
+
259
+ /* More complicated checks for row/columns */
260
+ if(json_pack_ex(&error, 0, "{ {}: s }", "foo"))
261
+ fail("json_pack failed to catch object as key");
262
+ check_error("Expected format 's', got '{'", "<format>", 1, 3, 3);
263
+
264
+ /* Complex object */
265
+ if(json_pack_ex(&error, 0, "{ s: {}, s:[ii{} }", "foo", "bar", 12, 13))
266
+ fail("json_pack failed to catch missing ]");
267
+ check_error("Unexpected format character '}'", "<format>", 1, 19, 19);
268
+
269
+ /* Complex array */
270
+ if(json_pack_ex(&error, 0, "[[[[[ [[[[[ [[[[ }]]]] ]]]] ]]]]]"))
271
+ fail("json_pack failed to catch extra }");
272
+ check_error("Unexpected format character '}'", "<format>", 1, 21, 21);
273
+
274
+ /* Invalid UTF-8 in object key */
275
+ if(json_pack_ex(&error, 0, "{s:i}", "\xff\xff", 42))
276
+ fail("json_pack failed to catch invalid UTF-8 in an object key");
277
+ check_error("Invalid UTF-8 object key", "<args>", 1, 2, 2);
278
+
279
+ /* Invalid UTF-8 in a string */
280
+ if(json_pack_ex(&error, 0, "{s:s}", "foo", "\xff\xff"))
281
+ fail("json_pack failed to catch invalid UTF-8 in a string");
282
+ check_error("Invalid UTF-8 string", "<args>", 1, 4, 4);
283
+ }
@@ -0,0 +1,199 @@
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
+ /* Call the simple functions not covered by other tests of the public API */
13
+ static void run_tests()
14
+ {
15
+ json_t *value;
16
+
17
+ value = json_boolean(1);
18
+ if(!json_is_true(value))
19
+ fail("json_boolean(1) failed");
20
+ json_decref(value);
21
+
22
+ value = json_boolean(-123);
23
+ if(!json_is_true(value))
24
+ fail("json_boolean(-123) failed");
25
+ json_decref(value);
26
+
27
+ value = json_boolean(0);
28
+ if(!json_is_false(value))
29
+ fail("json_boolean(0) failed");
30
+ json_decref(value);
31
+
32
+
33
+ value = json_integer(1);
34
+ if(json_typeof(value) != JSON_INTEGER)
35
+ fail("json_typeof failed");
36
+
37
+ if(json_is_object(value))
38
+ fail("json_is_object failed");
39
+
40
+ if(json_is_array(value))
41
+ fail("json_is_array failed");
42
+
43
+ if(json_is_string(value))
44
+ fail("json_is_string failed");
45
+
46
+ if(!json_is_integer(value))
47
+ fail("json_is_integer failed");
48
+
49
+ if(json_is_real(value))
50
+ fail("json_is_real failed");
51
+
52
+ if(!json_is_number(value))
53
+ fail("json_is_number failed");
54
+
55
+ if(json_is_true(value))
56
+ fail("json_is_true failed");
57
+
58
+ if(json_is_false(value))
59
+ fail("json_is_false failed");
60
+
61
+ if(json_is_boolean(value))
62
+ fail("json_is_boolean failed");
63
+
64
+ if(json_is_null(value))
65
+ fail("json_is_null failed");
66
+
67
+ json_decref(value);
68
+
69
+
70
+ value = json_string("foo");
71
+ if(!value)
72
+ fail("json_string failed");
73
+ if(strcmp(json_string_value(value), "foo"))
74
+ fail("invalid string value");
75
+
76
+ if(json_string_set(value, "bar"))
77
+ fail("json_string_set failed");
78
+ if(strcmp(json_string_value(value), "bar"))
79
+ fail("invalid string value");
80
+
81
+ json_decref(value);
82
+
83
+ value = json_string(NULL);
84
+ if(value)
85
+ fail("json_string(NULL) failed");
86
+
87
+ /* invalid UTF-8 */
88
+ value = json_string("a\xefz");
89
+ if(value)
90
+ fail("json_string(<invalid utf-8>) failed");
91
+
92
+ value = json_string_nocheck("foo");
93
+ if(!value)
94
+ fail("json_string_nocheck failed");
95
+ if(strcmp(json_string_value(value), "foo"))
96
+ fail("invalid string value");
97
+
98
+ if(json_string_set_nocheck(value, "bar"))
99
+ fail("json_string_set_nocheck failed");
100
+ if(strcmp(json_string_value(value), "bar"))
101
+ fail("invalid string value");
102
+
103
+ json_decref(value);
104
+
105
+ /* invalid UTF-8 */
106
+ value = json_string_nocheck("qu\xff");
107
+ if(!value)
108
+ fail("json_string_nocheck failed");
109
+ if(strcmp(json_string_value(value), "qu\xff"))
110
+ fail("invalid string value");
111
+
112
+ if(json_string_set_nocheck(value, "\xfd\xfe\xff"))
113
+ fail("json_string_set_nocheck failed");
114
+ if(strcmp(json_string_value(value), "\xfd\xfe\xff"))
115
+ fail("invalid string value");
116
+
117
+ json_decref(value);
118
+
119
+
120
+ value = json_integer(123);
121
+ if(!value)
122
+ fail("json_integer failed");
123
+ if(json_integer_value(value) != 123)
124
+ fail("invalid integer value");
125
+ if(json_number_value(value) != 123.0)
126
+ fail("invalid number value");
127
+
128
+ if(json_integer_set(value, 321))
129
+ fail("json_integer_set failed");
130
+ if(json_integer_value(value) != 321)
131
+ fail("invalid integer value");
132
+ if(json_number_value(value) != 321.0)
133
+ fail("invalid number value");
134
+
135
+ json_decref(value);
136
+
137
+ value = json_real(123.123);
138
+ if(!value)
139
+ fail("json_real failed");
140
+ if(json_real_value(value) != 123.123)
141
+ fail("invalid integer value");
142
+ if(json_number_value(value) != 123.123)
143
+ fail("invalid number value");
144
+
145
+ if(json_real_set(value, 321.321))
146
+ fail("json_real_set failed");
147
+ if(json_real_value(value) != 321.321)
148
+ fail("invalid real value");
149
+ if(json_number_value(value) != 321.321)
150
+ fail("invalid number value");
151
+
152
+ json_decref(value);
153
+
154
+ value = json_true();
155
+ if(!value)
156
+ fail("json_true failed");
157
+ json_decref(value);
158
+
159
+ value = json_false();
160
+ if(!value)
161
+ fail("json_false failed");
162
+ json_decref(value);
163
+
164
+ value = json_null();
165
+ if(!value)
166
+ fail("json_null failed");
167
+ json_decref(value);
168
+
169
+ /* Test reference counting on singletons (true, false, null) */
170
+ value = json_true();
171
+ if(value->refcount != (size_t)-1)
172
+ fail("refcounting true works incorrectly");
173
+ json_decref(value);
174
+ if(value->refcount != (size_t)-1)
175
+ fail("refcounting true works incorrectly");
176
+ json_incref(value);
177
+ if(value->refcount != (size_t)-1)
178
+ fail("refcounting true works incorrectly");
179
+
180
+ value = json_false();
181
+ if(value->refcount != (size_t)-1)
182
+ fail("refcounting false works incorrectly");
183
+ json_decref(value);
184
+ if(value->refcount != (size_t)-1)
185
+ fail("refcounting false works incorrectly");
186
+ json_incref(value);
187
+ if(value->refcount != (size_t)-1)
188
+ fail("refcounting false works incorrectly");
189
+
190
+ value = json_null();
191
+ if(value->refcount != (size_t)-1)
192
+ fail("refcounting null works incorrectly");
193
+ json_decref(value);
194
+ if(value->refcount != (size_t)-1)
195
+ fail("refcounting null works incorrectly");
196
+ json_incref(value);
197
+ if(value->refcount != (size_t)-1)
198
+ fail("refcounting null works incorrectly");
199
+ }