Permalink
Browse files

Release 0.6.0-rc2

git-svn-id: svn://svn.code.sf.net/p/jsoncpp/code@191 1f120ed1-78a5-a849-adca-83f0a9e25bb6
  • Loading branch information...
1 parent 9469528 commit 4071cd16c488b6eed0e6661ea921d9a65157013b blep committed May 2, 2011
Showing with 15,651 additions and 0 deletions.
  1. +1 −0 tags/jsoncpp/0.6.0-rc2/AUTHORS
  2. +55 −0 tags/jsoncpp/0.6.0-rc2/LICENSE
  3. +101 −0 tags/jsoncpp/0.6.0-rc2/NEWS.txt
  4. +172 −0 tags/jsoncpp/0.6.0-rc2/README.txt
  5. +248 −0 tags/jsoncpp/0.6.0-rc2/SConstruct
  6. +147 −0 tags/jsoncpp/0.6.0-rc2/amalgamate.py
  7. +1 −0 tags/jsoncpp/0.6.0-rc2/devtools/__init__.py
  8. +201 −0 tags/jsoncpp/0.6.0-rc2/devtools/antglob.py
  9. +63 −0 tags/jsoncpp/0.6.0-rc2/devtools/fixeol.py
  10. +93 −0 tags/jsoncpp/0.6.0-rc2/devtools/licenseupdater.py
  11. +53 −0 tags/jsoncpp/0.6.0-rc2/devtools/tarball.py
  12. +1,534 −0 tags/jsoncpp/0.6.0-rc2/doc/doxyfile.in
  13. +23 −0 tags/jsoncpp/0.6.0-rc2/doc/footer.html
  14. +24 −0 tags/jsoncpp/0.6.0-rc2/doc/header.html
  15. +126 −0 tags/jsoncpp/0.6.0-rc2/doc/jsoncpp.dox
  16. +1 −0 tags/jsoncpp/0.6.0-rc2/doc/readme.txt
  17. +37 −0 tags/jsoncpp/0.6.0-rc2/doc/roadmap.dox
  18. +169 −0 tags/jsoncpp/0.6.0-rc2/doxybuild.py
  19. +24 −0 tags/jsoncpp/0.6.0-rc2/include/json/autolink.h
  20. +96 −0 tags/jsoncpp/0.6.0-rc2/include/json/config.h
  21. +49 −0 tags/jsoncpp/0.6.0-rc2/include/json/features.h
  22. +44 −0 tags/jsoncpp/0.6.0-rc2/include/json/forwards.h
  23. +15 −0 tags/jsoncpp/0.6.0-rc2/include/json/json.h
  24. +214 −0 tags/jsoncpp/0.6.0-rc2/include/json/reader.h
  25. +1,103 −0 tags/jsoncpp/0.6.0-rc2/include/json/value.h
  26. +185 −0 tags/jsoncpp/0.6.0-rc2/include/json/writer.h
  27. +46 −0 tags/jsoncpp/0.6.0-rc2/makefiles/vs71/jsoncpp.sln
  28. +119 −0 tags/jsoncpp/0.6.0-rc2/makefiles/vs71/jsontest.vcproj
  29. +214 −0 tags/jsoncpp/0.6.0-rc2/makefiles/vs71/lib_json.vcproj
  30. +130 −0 tags/jsoncpp/0.6.0-rc2/makefiles/vs71/test_lib_json.vcproj
  31. +380 −0 tags/jsoncpp/0.6.0-rc2/makerelease.py
  32. +53 −0 tags/jsoncpp/0.6.0-rc2/scons-tools/globtool.py
  33. +179 −0 tags/jsoncpp/0.6.0-rc2/scons-tools/srcdist.py
  34. +79 −0 tags/jsoncpp/0.6.0-rc2/scons-tools/substinfile.py
  35. +82 −0 tags/jsoncpp/0.6.0-rc2/scons-tools/targz.py
  36. +269 −0 tags/jsoncpp/0.6.0-rc2/src/jsontestrunner/main.cpp
  37. +9 −0 tags/jsoncpp/0.6.0-rc2/src/jsontestrunner/sconscript
  38. +130 −0 tags/jsoncpp/0.6.0-rc2/src/lib_json/json_batchallocator.h
  39. +456 −0 tags/jsoncpp/0.6.0-rc2/src/lib_json/json_internalarray.inl
  40. +615 −0 tags/jsoncpp/0.6.0-rc2/src/lib_json/json_internalmap.inl
  41. +880 −0 tags/jsoncpp/0.6.0-rc2/src/lib_json/json_reader.cpp
  42. +93 −0 tags/jsoncpp/0.6.0-rc2/src/lib_json/json_tool.h
  43. +1,829 −0 tags/jsoncpp/0.6.0-rc2/src/lib_json/json_value.cpp
  44. +299 −0 tags/jsoncpp/0.6.0-rc2/src/lib_json/json_valueiterator.inl
  45. +838 −0 tags/jsoncpp/0.6.0-rc2/src/lib_json/json_writer.cpp
  46. +8 −0 tags/jsoncpp/0.6.0-rc2/src/lib_json/sconscript
  47. +608 −0 tags/jsoncpp/0.6.0-rc2/src/test_lib_json/jsontest.cpp
  48. +259 −0 tags/jsoncpp/0.6.0-rc2/src/test_lib_json/jsontest.h
  49. +430 −0 tags/jsoncpp/0.6.0-rc2/src/test_lib_json/main.cpp
  50. +10 −0 tags/jsoncpp/0.6.0-rc2/src/test_lib_json/sconscript
  51. +10 −0 tags/jsoncpp/0.6.0-rc2/test/cleantests.py
  52. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/fail_test_array_01.json
  53. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_array_01.expected
  54. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_array_01.json
  55. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_array_02.expected
  56. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_array_02.json
  57. +6 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_array_03.expected
  58. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_array_03.json
  59. +5 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_array_04.expected
  60. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_array_04.json
  61. +100 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_array_05.expected
  62. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_array_05.json
  63. +5 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_array_06.expected
  64. +4 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_array_06.json
  65. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_basic_01.expected
  66. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_basic_01.json
  67. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_basic_02.expected
  68. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_basic_02.json
  69. +3 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_basic_03.expected
  70. +3 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_basic_03.json
  71. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_basic_04.expected
  72. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_basic_04.json
  73. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_basic_05.expected
  74. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_basic_05.json
  75. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_basic_06.expected
  76. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_basic_06.json
  77. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_basic_07.expected
  78. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_basic_07.json
  79. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_basic_08.expected
  80. +3 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_basic_08.json
  81. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_basic_09.expected
  82. +4 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_basic_09.json
  83. +8 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_comment_01.expected
  84. +8 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_comment_01.json
  85. +20 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_complex_01.expected
  86. +17 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_complex_01.json
  87. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_integer_01.expected
  88. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_integer_01.json
  89. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_integer_02.expected
  90. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_integer_02.json
  91. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_integer_03.expected
  92. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_integer_03.json
  93. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_integer_04.expected
  94. +3 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_integer_04.json
  95. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_integer_05.expected
  96. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_integer_05.json
  97. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_integer_06_64bits.expected
  98. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_integer_06_64bits.json
  99. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_integer_07_64bits.expected
  100. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_integer_07_64bits.json
  101. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_integer_08_64bits.expected
  102. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_integer_08_64bits.json
  103. +2,122 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_large_01.expected
  104. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_large_01.json
  105. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_object_01.expected
  106. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_object_01.json
  107. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_object_02.expected
  108. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_object_02.json
  109. +4 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_object_03.expected
  110. +5 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_object_03.json
  111. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_object_04.expected
  112. +3 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_object_04.json
  113. +3 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_preserve_comment_01.expected
  114. +14 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_preserve_comment_01.json
  115. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_real_01.expected
  116. +3 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_real_01.json
  117. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_real_02.expected
  118. +3 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_real_02.json
  119. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_real_03.expected
  120. +3 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_real_03.json
  121. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_real_04.expected
  122. +3 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_real_04.json
  123. +3 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_real_05.expected
  124. +3 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_real_05.json
  125. +3 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_real_06.expected
  126. +3 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_real_06.json
  127. +3 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_real_07.expected
  128. +3 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_real_07.json
  129. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_string_01.expected
  130. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_string_01.json
  131. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_string_02.expected
  132. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_string_02.json
  133. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_string_03.expected
  134. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_string_03.json
  135. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_string_unicode_01.expected
  136. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_string_unicode_01.json
  137. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_string_unicode_02.expected
  138. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_string_unicode_02.json
  139. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_string_unicode_03.expected
  140. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_string_unicode_03.json
  141. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_string_unicode_04.expected
  142. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_string_unicode_04.json
  143. +2 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_string_unicode_05.expected
  144. +1 −0 tags/jsoncpp/0.6.0-rc2/test/data/test_string_unicode_05.json
  145. +11 −0 tags/jsoncpp/0.6.0-rc2/test/generate_expected.py
  146. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail1.json
  147. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail10.json
  148. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail11.json
  149. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail12.json
  150. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail13.json
  151. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail14.json
  152. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail15.json
  153. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail16.json
  154. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail17.json
  155. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail18.json
  156. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail19.json
  157. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail2.json
  158. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail20.json
  159. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail21.json
  160. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail22.json
  161. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail23.json
  162. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail24.json
  163. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail25.json
  164. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail26.json
  165. +2 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail27.json
  166. +2 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail28.json
  167. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail29.json
  168. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail3.json
  169. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail30.json
  170. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail31.json
  171. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail32.json
  172. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail33.json
  173. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail4.json
  174. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail5.json
  175. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail6.json
  176. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail7.json
  177. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail8.json
  178. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/fail9.json
  179. +58 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/pass1.json
  180. +1 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/pass2.json
  181. +6 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/pass3.json
  182. +3 −0 tags/jsoncpp/0.6.0-rc2/test/jsonchecker/readme.txt
  183. +64 −0 tags/jsoncpp/0.6.0-rc2/test/pyjsontestrunner.py
  184. +134 −0 tags/jsoncpp/0.6.0-rc2/test/runjsontests.py
  185. +73 −0 tags/jsoncpp/0.6.0-rc2/test/rununittests.py
  186. +1 −0 tags/jsoncpp/0.6.0-rc2/version
@@ -0,0 +1 @@
+Baptiste Lepilleur <blep@users.sourceforge.net>
@@ -0,0 +1,55 @@
+The JsonCpp library's source code, including accompanying documentation,
+tests and demonstration applications, are licensed under the following
+conditions...
+
+The author (Baptiste Lepilleur) explicitly disclaims copyright in all
+jurisdictions which recognize such a disclaimer. In such jurisdictions,
+this software is released into the Public Domain.
+
+In jurisdictions which do not recognize Public Domain property (e.g. Germany as of
+2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur, and is
+released under the terms of the MIT License (see below).
+
+In jurisdictions which recognize Public Domain property, the user of this
+software may choose to accept it either as 1) Public Domain, 2) under the
+conditions of the MIT License (see below), or 3) under the terms of dual
+Public Domain/MIT License conditions described here, as they choose.
+
+The MIT License is about as close to Public Domain as a license can get, and is
+described in clear, concise terms at:
+
+ http://en.wikipedia.org/wiki/MIT_License
+
+The full text of the MIT License follows:
+
+========================================================================
+Copyright (c) 2007-2010 Baptiste Lepilleur
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use, copy,
+modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+========================================================================
+(END LICENSE TEXT)
+
+The MIT license is compatible with both the GPL and commercial
+software, affording one all of the rights of Public Domain with the
+minor nuisance of being required to keep the above copyright notice
+and license text in the source code. Note also that by accepting the
+Public Domain "license" you can re-license your copy using whatever
+license you like.
@@ -0,0 +1,101 @@
+ New in JsonCpp 0.6.0:
+ ---------------------
+
+* Compilation
+
+ - LD_LIBRARY_PATH and LIBRARY_PATH environment variables are now
+ propagated to the build environment as this is required for some
+ compiler installation.
+
+ - Added support for Microsoft Visual Studio 2008 (bug #2930462):
+ The platform "msvc90" has been added.
+
+ Notes: you need to setup the environment by running vcvars32.bat
+ (e.g. MSVC 2008 command prompt in start menu) before running scons.
+
+ - Added support for amalgamated source and header generation (a la sqlite).
+ Refer to README.txt section "Generating amalgamated source and header"
+ for detail.
+
+* Value
+
+ - Removed experimental ValueAllocator, it caused static
+ initialization/destruction order issues (bug #2934500).
+ The DefaultValueAllocator has been inlined in code.
+
+ - Added support for 64 bits integer:
+
+ Types Json::Int64 and Json::UInt64 have been added. They are aliased
+ to 64 bits integers on system that support them (based on __int64 on
+ Microsoft Visual Studio platform, and long long on other platforms).
+
+ Types Json::LargestInt and Json::LargestUInt have been added. They are
+ aliased to the largest integer type supported:
+ either Json::Int/Json::UInt or Json::Int64/Json::UInt64 respectively.
+
+ Json::Value::asInt() and Json::Value::asUInt() still returns plain
+ "int" based types, but asserts if an attempt is made to retrieve
+ a 64 bits value that can not represented as the return type.
+
+ Json::Value::asInt64() and Json::Value::asUInt64() have been added
+ to obtain the 64 bits integer value.
+
+ Json::Value::asLargestInt() and Json::Value::asLargestUInt() returns
+ the integer as a LargestInt/LargestUInt respectively. Those functions
+ functions are typically used when implementing writer.
+
+ The reader attempts to read number as 64 bits integer, and fall back
+ to reading a double if the number is not in the range of 64 bits
+ integer.
+
+ Warning: Json::Value::asInt() and Json::Value::asUInt() now returns
+ long long. This changes break code that was passing the return value
+ to *printf() function.
+
+ Support for 64 bits integer can be disabled by defining the macro
+ JSON_NO_INT64 (uncomment it in json/config.h for example), though
+ it should have no impact on existing usage.
+
+ - The type Json::ArrayIndex is used for indexes of a JSON value array. It
+ is an unsigned int (typically 32 bits).
+
+ - Array index can be passed as int to operator[], allowing use of literal:
+ Json::Value array;
+ array.append( 1234 );
+ int value = array[0].asInt(); // did not compile previously
+
+ - Added float Json::Value::asFloat() to obtain a floating point value as a
+ float (avoid lost of precision warning caused by used of asDouble()
+ to initialize a float).
+
+* Reader
+
+ - Renamed Reader::getFormatedErrorMessages() to getFormattedErrorMessages.
+ Bug #3023708 (Formatted has 2 't'). The old member function is deprecated
+ but still present for backward compatibility.
+
+* Tests
+
+ - Added test to ensure that the escape sequence "\/" is corrected handled
+ by the parser.
+
+* Bug fixes
+
+ - Bug #3139677: JSON [1 2 3] was incorrectly parsed as [1, 3]. Error is now
+ correctly detected.
+
+ - Bug #3139678: stack buffer overflow when parsing a double with a
+ length of 32 characters.
+
+ - Fixed Value::operator <= implementation (had the semantic of operator >=).
+ Found when addigin unit tests for comparison operators.
+
+ - Value::compare() is now const and has an actual implementation with
+ unit tests.
+
+* License
+
+ - See file LICENSE for details. Basically JsonCpp is now licensed under
+ MIT license, or public domain if desired and recognized in your jurisdiction.
+ Thanks to Stephan G. Beal [http://wanderinghorse.net/home/stephan/]) who
+ helped figuring out the solution to the public domain issue.
@@ -0,0 +1,172 @@
+* Introduction:
+ =============
+
+JSON (JavaScript Object Notation) is a lightweight data-interchange format.
+It can represent integer, real number, string, an ordered sequence of
+value, and a collection of name/value pairs.
+
+JsonCpp (http://jsoncpp.sourceforge.net/) is a simple API to manipulate
+JSON value, handle serialization and unserialization to string.
+
+It can also preserve existing comment in unserialization/serialization steps,
+making it a convenient format to store user input files.
+
+Unserialization parsing is user friendly and provides precise error reports.
+
+
+* Building/Testing:
+ =================
+
+JsonCpp uses Scons (http://www.scons.org) as a build system. Scons requires
+python to be installed (http://www.python.org).
+
+You download scons-local distribution from the following url:
+http://sourceforge.net/projects/scons/files/scons-local/1.2.0/
+
+Unzip it in the directory where you found this README file. scons.py Should be
+at the same level as README.
+
+python scons.py platform=PLTFRM [TARGET]
+where PLTFRM may be one of:
+ suncc Sun C++ (Solaris)
+ vacpp Visual Age C++ (AIX)
+ mingw
+ msvc6 Microsoft Visual Studio 6 service pack 5-6
+ msvc70 Microsoft Visual Studio 2002
+ msvc71 Microsoft Visual Studio 2003
+ msvc80 Microsoft Visual Studio 2005
+ msvc90 Microsoft Visual Studio 2008
+ linux-gcc Gnu C++ (linux, also reported to work for Mac OS X)
+
+Notes: if you are building with Microsoft Visual Studio 2008, you need to
+setup the environment by running vcvars32.bat (e.g. MSVC 2008 command prompt)
+before running scons.
+
+Adding platform is fairly simple. You need to change the Sconstruct file
+to do so.
+
+and TARGET may be:
+ check: build library and run unit tests.
+
+
+* Running the test manually:
+ ==========================
+
+Notes that test can be run by scons using the 'check' target (see above).
+
+You need to run test manually only if you are troubleshooting an issue.
+
+In the instruction below, replace "path to jsontest.exe" with the path
+of the 'jsontest' executable that was compiled on your platform.
+
+cd test
+# This will run the Reader/Writer tests
+python runjsontests.py "path to jsontest.exe"
+
+# This will run the Reader/Writer tests, using JSONChecker test suite
+# (http://www.json.org/JSON_checker/).
+# Notes: not all tests pass: JsonCpp is too lenient (for example,
+# it allows an integer to start with '0'). The goal is to improve
+# strict mode parsing to get all tests to pass.
+python runjsontests.py --with-json-checker "path to jsontest.exe"
+
+# This will run the unit tests (mostly Value)
+python rununittests.py "path to test_lib_json.exe"
+
+You can run the tests using valgrind:
+python rununittests.py --valgrind "path to test_lib_json.exe"
+
+
+* Building the documentation:
+ ===========================
+
+Run the python script doxybuild.py from the top directory:
+
+python doxybuild.py --open --with-dot
+
+See doxybuild.py --help for options.
+
+Notes that the documentation is also available for download as a tarball.
+The documentation of the latest release is available online at:
+http://jsoncpp.sourceforge.net/
+
+* Generating amalgamated source and header
+ ========================================
+
+JsonCpp is provided with a script to generate a single header and a single
+source file to ease inclusion in an existing project.
+
+The amalgamated source can be generated at any time by running the following
+command from the top-directory (requires python 2.6):
+
+python amalgamate.py
+
+It is possible to specify header name. See -h options for detail. By default,
+the following files are generated:
+- dist/jsoncpp.cpp: source file that need to be added to your project
+- dist/json/json.h: header file corresponding to use in your project. It is
+equivalent to including json/json.h in non-amalgamated source. This header
+only depends on standard headers.
+- dist/json/json-forwards.h: header the provides forward declaration
+of all JsonCpp types. This typically what should be included in headers to
+speed-up compilation.
+
+The amalgamated sources are generated by concatenating JsonCpp source in the
+correct order and defining macro JSON_IS_AMALGAMATION to prevent inclusion
+of other headers.
+
+* Using json-cpp in your project:
+ ===============================
+
+include/ should be added to your compiler include path. jsoncpp headers
+should be included as follow:
+
+#include <json/json.h>
+
+
+* Adding a reader/writer test:
+ ============================
+
+To add a test, you need to create two files in test/data:
+- a TESTNAME.json file, that contains the input document in JSON format.
+- a TESTNAME.expected file, that contains a flatened representation of
+ the input document.
+
+TESTNAME.expected file format:
+- each line represents a JSON element of the element tree represented
+ by the input document.
+- each line has two parts: the path to access the element separated from
+ the element value by '='. Array and object values are always empty
+ (e.g. represented by either [] or {}).
+- element path: '.' represented the root element, and is used to separate
+ object members. [N] is used to specify the value of an array element
+ at index N.
+See test_complex_01.json and test_complex_01.expected to better understand
+element path.
+
+
+* Understanding reader/writer test output:
+ ========================================
+
+When a test is run, output files are generated aside the input test files.
+Below is a short description of the content of each file:
+
+- test_complex_01.json: input JSON document
+- test_complex_01.expected: flattened JSON element tree used to check if
+ parsing was corrected.
+
+- test_complex_01.actual: flattened JSON element tree produced by
+ jsontest.exe from reading test_complex_01.json
+- test_complex_01.rewrite: JSON document written by jsontest.exe using the
+ Json::Value parsed from test_complex_01.json and serialized using
+ Json::StyledWritter.
+- test_complex_01.actual-rewrite: flattened JSON element tree produced by
+ jsontest.exe from reading test_complex_01.rewrite.
+test_complex_01.process-output: jsontest.exe output, typically useful to
+ understand parsing error.
+
+* License
+ =======
+
+See file LICENSE for details. Basically JsonCpp is licensed under
+MIT license, or public domain if desired and recognized in your jurisdiction.
Oops, something went wrong.

0 comments on commit 4071cd1

Please sign in to comment.