Hello community,

here is the log from the commit of package jsoncpp for openSUSE:Factory checked 
in at 2017-07-17 09:01:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/jsoncpp (Old)
 and      /work/SRC/openSUSE:Factory/.jsoncpp.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "jsoncpp"

Mon Jul 17 09:01:46 2017 rev:18 rq:509455 version:1.8.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/jsoncpp/jsoncpp.changes  2017-01-09 
11:51:05.341619915 +0100
+++ /work/SRC/openSUSE:Factory/.jsoncpp.new/jsoncpp.changes     2017-07-17 
09:01:56.453823496 +0200
@@ -1,0 +2,8 @@
+Tue Jul 11 13:09:41 UTC 2017 - mplus...@suse.com
+
+- Update to version 1.8.1:
+  * meson.build
+  * Minor bug fixes and optimizations
+  * Improved docs
+
+-------------------------------------------------------------------

Old:
----
  jsoncpp-1.8.0.tar.gz

New:
----
  jsoncpp-1.8.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ jsoncpp.spec ++++++
--- /var/tmp/diff_new_pack.X9CYBw/_old  2017-07-17 09:01:56.953753099 +0200
+++ /var/tmp/diff_new_pack.X9CYBw/_new  2017-07-17 09:01:56.957752536 +0200
@@ -18,7 +18,7 @@
 
 %define sover   11
 Name:           jsoncpp
-Version:        1.8.0
+Version:        1.8.1
 Release:        0
 Summary:        C++ library that allows manipulating with JSON
 License:        MIT
@@ -28,7 +28,6 @@
 BuildRequires:  cmake >= 3.1
 BuildRequires:  gcc-c++
 BuildRequires:  pkgconfig
-BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
 %description
 JSON is a lightweight data-interchange format. It can represent numbers,
@@ -81,20 +80,18 @@
 
 %check
 # path needs to be exported otherwise unit tests will fail
-export 
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{_builddir}/%{name}-%{version}/build/src/lib_json
+export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}%{_libdir}
 ./build/src/test_lib_json/jsoncpp_test
 
 %post -n lib%{name}%{sover} -p /sbin/ldconfig
 %postun -n lib%{name}%{sover} -p /sbin/ldconfig
 
 %files -n lib%{name}%{sover}
-%defattr(-,root,root)
 %doc LICENSE
 %{_libdir}/lib%{name}.so.%{sover}*
 %{_libdir}/lib%{name}.so.%{version}
 
 %files devel
-%defattr(-,root,root)
 %doc AUTHORS LICENSE NEWS.txt README.md
 %{_libdir}/pkgconfig/%{name}.pc
 %{_libdir}/cmake/%{name}

++++++ jsoncpp-1.8.0.tar.gz -> jsoncpp-1.8.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/.travis.yml 
new/jsoncpp-1.8.1/.travis.yml
--- old/jsoncpp-1.8.0/.travis.yml       2016-12-14 20:39:05.000000000 +0100
+++ new/jsoncpp-1.8.1/.travis.yml       2017-06-26 07:01:22.000000000 +0200
@@ -7,14 +7,24 @@
 # to allow C++11, though we are not yet building with -std=c++11
 
 install:
+- if [[ $TRAVIS_OS_NAME == osx ]]; then
+     brew update;
+     brew install python3 ninja;
+     python3 -m venv venv;
+     source venv/bin/activate;
+  elif [[ $TRAVIS_OS_NAME == linux ]]; then
+     wget 
https://github.com/ninja-build/ninja/releases/download/v1.7.2/ninja-linux.zip;
+     unzip -q ninja-linux.zip -d build;
+  fi
+- pip3 install meson
 # /usr/bin/gcc is 4.6 always, but gcc-X.Y is available.
-- if [ "$CXX" = "g++" ]; then export CXX="g++-4.9" CC="gcc-4.9"; fi
+- if [[ $CXX = g++ ]]; then export CXX="g++-4.9" CC="gcc-4.9"; fi
 # /usr/bin/clang has a conflict with gcc, so use clang-X.Y.
-- if [ "$CXX" = "clang++" ]; then export CXX="clang++-3.5" CC="clang-3.5"; fi
+- if [[ $CXX = clang++ ]]; then export CXX="clang++-3.5" CC="clang-3.5"; fi
 - echo ${PATH}
 - ls /usr/local
 - ls /usr/local/bin
-- export PATH=/usr/local/bin:/usr/bin:${PATH}
+- export PATH="${PWD}"/build:/usr/local/bin:/usr/bin:${PATH}
 - echo ${CXX}
 - ${CXX} --version
 - which valgrind
@@ -23,10 +33,7 @@
     sources:
     - ubuntu-toolchain-r-test
     - llvm-toolchain-precise-3.5
-    - george-edison55-precise-backports # cmake 3.2.3
     packages:
-    - cmake
-    - cmake-data
     - gcc-4.9
     - g++-4.9
     - clang-3.5
@@ -40,8 +47,9 @@
 script: ./travis.sh
 env:
   matrix:
-    - SHARED_LIB=ON  STATIC_LIB=ON CMAKE_PKG=ON  BUILD_TYPE=release 
VERBOSE_MAKE=false
-    - SHARED_LIB=OFF STATIC_LIB=ON CMAKE_PKG=OFF BUILD_TYPE=debug   
VERBOSE_MAKE=true VERBOSE
+    - LIB_TYPE=static BUILD_TYPE=release
+    - LIB_TYPE=shared BUILD_TYPE=debug
 notifications:
   email: false
+dist: trusty
 sudo: false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/AUTHORS new/jsoncpp-1.8.1/AUTHORS
--- old/jsoncpp-1.8.0/AUTHORS   2016-12-14 20:39:05.000000000 +0100
+++ new/jsoncpp-1.8.1/AUTHORS   2017-06-26 07:01:22.000000000 +0200
@@ -1 +1,111 @@
 Baptiste Lepilleur <b...@users.sourceforge.net>
+
+Aaron Jacobs <aaronjjac...@gmail.com>
+Aaron Jacobs <jaco...@google.com>
+Adam Boseley <abose...@agjunction.com>
+Adam Boseley <adam.bose...@gmail.com>
+Aleksandr Derbenev <13ale...@gmail.com>
+Alexander Gazarov <drmetall...@users.noreply.github.com>
+Alexander V. Brezgin <abrez...@appliedtech.ru>
+Alexandr Brezgin <albrez...@mail.ru>
+Alexey Kruchinin <ale...@mopals.com>
+Anton Indrawan <anton.indra...@gmail.com>
+Baptiste Jonglez <g...@bitsofnetworks.org>
+Baptiste Lepilleur <baptiste.lepill...@gmail.com>
+Baruch Siach <bar...@tkos.co.il>
+Ben Boeckel <maths...@gmail.com>
+Benjamin Knecht <bkne...@logitech.com>
+Bernd Kuhls <bernd.ku...@t-online.de>
+Billy Donahue <billydona...@google.com>
+Braden McDorman <bmcdor...@gmail.com>
+Brandon Myers <bmyers1...@gmail.com>
+Brendan Drew <brendan.d...@daqri.com>
+chason <cxchao...@gmail.com>
+Chris Gilling <cgill...@iparadigms.com>
+Christopher Dawes <christopher.dawes.1...@googlemail.com>
+Christopher Dunn <cdunn2...@gmail.com>
+Chuck Atkins <chuck.atk...@kitware.com>
+Cody P Schafer <d...@codyps.com>
+Connor Manning <con...@hobu.co>
+Cory Quammen <cory.quam...@kitware.com>
+Cristóvão B da Cruz e Silva <cris...@gmail.com>
+Daniel Krügler <daniel.krueg...@gmail.com>
+Dani-Hub <daniel.krueg...@googlemail.com>
+Dan Liu <gzliudan>
+datadiode <datadi...@users.noreply.github.com>
+datadiode <jochen.neub...@vodafone.de>
+David Seifert <s...@gentoo.org>
+David West <david-w...@idexx.com>
+dawesc <chris.da...@eftlab.co.uk>
+Dmitry Marakasov <amd...@amdmi3.ru>
+dominicpezzuto <d...@dompezzuto.com>
+Don Milham <dmil...@gmail.com>
+drgler <daniel.krueg...@gmail.com>
+ds283 <d.se...@sussex.ac.uk>
+Egor Tensin <egor.ten...@gmail.com>
+eightnoteight <mr.eightnotei...@gmail.com>
+Evince <bane...@gmail.com>
+filipjs <fili...@users.noreply.github.com>
+findblar <f...@finbarr.ca>
+Florian Meier <florian.me...@koalo.de>
+Gaëtan Lehmann <gaetan.lehm...@gmail.com>
+Gaurav <g.gu...@samsung.com>
+Gergely Nagy <n...@ngg.hu>
+Gida Pataki <gida.pat...@prezi.com>
+I3ck <buckmar...@buckmartin.de>
+Iñaki Baz Castillo <i...@aliax.net>
+Jacco <ja...@geul.net>
+Jean-Christophe Fillion-Robin <jchris.filli...@kitware.com>
+Jonas Platte <m...@jonasplatte.de>
+Jörg Krause <joerg.krause@embedded.rocks>
+Keith Lea <ke...@whamcitylights.com>
+Kevin Grant <kbradleygr...@gmail.com>
+Kirill V. Lyadvinsky <jia...@gmail.com>
+Kirill V. Lyadvinsky <m...@codeatcpp.com>
+Kobi Gurkan <kobig...@gmail.com>
+Magnus Bjerke Vik <mbv...@gmail.com>
+Malay Shah <mal...@users.sourceforge.net>
+Mara Kim <hacker.r...@gmail.com>
+Marek Kotewicz <marek.kotew...@gmail.com>
+Mark Lakata <m...@lakata.org>
+Mark Zeren <mze...@vmware.com>
+Martin Buck <buckmar...@buckmartin.de>
+Martyn Gigg <martyn.g...@gmail.com>
+Mattes D <git...@xoft.cz>
+Matthias Loy <matthias....@hbm.com>
+Merlyn Morgan-Graham <kav...@gmail.com>
+Michael Shields <mshie...@google.com>
+Michał Górny <mgo...@gentoo.org>
+Mike Naberezny <m...@naberezny.com>
+mloy <matthias....@googlemail.com>
+Motti <lanzk...@gmail.com>
+nnkur <nn...@mail.ru>
+Omkar Wagh <ow...@owaghlinux.ny.tower-research.com>
+paulo <paulobrizol...@users.noreply.github.com>
+pavel.pimenov <pavel.pime...@gmail.com>
+Paweł Bylica <chf...@gmail.com>
+Péricles Lopes Machado <pericles.raskolnik...@gmail.com>
+Peter Spiess-Knafl <p...@autistici.org>
+pffang <pff...@vip.qq.com>
+Rémi Verschelde <r...@verschelde.fr>
+renu555 <renu.ty...@samsung.com>
+Robert Dailey <rcdai...@gmail.com>
+Sam Clegg <s...@chromium.org>
+selaselah <se...@outlook.com>
+Sergiy80 <sil2...@gmail.com>
+sergzub <serg...@gmail.com>
+Stefan Schweter <ste...@schweter.it>
+Steffen Kieß <steffen.ki...@ipvs.uni-stuttgart.de>
+Steven Hahn <hah...@ornl.gov>
+Stuart Eichert <stu...@fivemicro.com>
+SuperManitu <superman...@gmail.com>
+Techwolf <dr...@g33kworld.net>
+Tengiz Sharafiev <btolfa+git...@gmail.com>
+Tomasz Maciejewski <tmacieje...@gmail.com>
+Vicente Olivert Riera <vincent.ri...@imgtec.com>
+xiaoyur347 <xiaoyur...@gmail.com>
+ycqiu <429148...@qq.com>
+yiqiju <fred...@selinc.com>
+Yu Xiaolei <dreifachst...@gmail.com>
+
+Google Inc.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/CMakeLists.txt 
new/jsoncpp-1.8.1/CMakeLists.txt
--- old/jsoncpp-1.8.0/CMakeLists.txt    2016-12-14 20:39:05.000000000 +0100
+++ new/jsoncpp-1.8.1/CMakeLists.txt    2017-06-26 07:01:22.000000000 +0200
@@ -59,7 +59,7 @@
 #SET( JSONCPP_VERSION_MAJOR X )
 #SET( JSONCPP_VERSION_MINOR Y )
 #SET( JSONCPP_VERSION_PATCH Z )
-SET( JSONCPP_VERSION 1.8.0 )
+SET( JSONCPP_VERSION 1.8.1 )
 jsoncpp_parse_version( ${JSONCPP_VERSION} JSONCPP_VERSION )
 #IF(NOT JSONCPP_VERSION_FOUND)
 #    MESSAGE(FATAL_ERROR "Failed to parse version string properly. Expect 
X.Y.Z")
@@ -112,8 +112,11 @@
     SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wconversion -Wshadow 
-Wextra")
     # not yet ready for -Wsign-conversion
 
-    IF(JSONCPP_WITH_STRICT_ISO AND NOT JSONCPP_WITH_WARNING_AS_ERROR)
-        SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=conversion -pedantic")
+    IF(JSONCPP_WITH_STRICT_ISO)
+        SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic")
+    ENDIF()
+    IF(JSONCPP_WITH_WARNING_AS_ERROR)
+        SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=conversion")
     ENDIF()
 ELSEIF(CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
     # using Intel compiler
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/LICENSE new/jsoncpp-1.8.1/LICENSE
--- old/jsoncpp-1.8.0/LICENSE   2016-12-14 20:39:05.000000000 +0100
+++ new/jsoncpp-1.8.1/LICENSE   2017-06-26 07:01:22.000000000 +0200
@@ -2,12 +2,12 @@
 tests and demonstration applications, are licensed under the following
 conditions...
 
-The author (Baptiste Lepilleur) explicitly disclaims copyright in all 
+The JsonCpp Authors explicitly disclaim 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
+2010), this software is Copyright (c) 2007-2010 by The JsonCpp Authors, and is
 released under the terms of the MIT License (see below).
 
 In jurisdictions which recognize Public Domain property, the user of this 
@@ -23,7 +23,7 @@
 The full text of the MIT License follows:
 
 ========================================================================
-Copyright (c) 2007-2010 Baptiste Lepilleur
+Copyright (c) 2007-2010 The JsonCpp Authors
 
 Permission is hereby granted, free of charge, to any person
 obtaining a copy of this software and associated documentation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/README.md new/jsoncpp-1.8.1/README.md
--- old/jsoncpp-1.8.0/README.md 2016-12-14 20:39:05.000000000 +0100
+++ new/jsoncpp-1.8.1/README.md 2017-06-26 07:01:22.000000000 +0200
@@ -1,5 +1,6 @@
-Introduction
-------------
+# JsonCpp
+
+[![badge](https://img.shields.io/badge/conan.io-jsoncpp%2F1.8.0-green.svg?logo=data:image/png;base64%2CiVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAMAAAAolt3jAAAA1VBMVEUAAABhlctjlstkl8tlmMtlmMxlmcxmmcxnmsxpnMxpnM1qnc1sn85voM91oM11oc1xotB2oc56pNF6pNJ2ptJ8ptJ8ptN9ptN8p9N5qNJ9p9N9p9R8qtOBqdSAqtOAqtR%2BrNSCrNJ/rdWDrNWCsNWCsNaJs9eLs9iRvNuVvdyVv9yXwd2Zwt6axN6dxt%2Bfx%2BChyeGiyuGjyuCjyuGly%2BGlzOKmzOGozuKoz%2BKqz%2BOq0OOv1OWw1OWw1eWx1eWy1uay1%2Baz1%2Baz1%2Bez2Oe02Oe12ee22ujUGwH3AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfgBQkREyOxFIh/AAAAiklEQVQI12NgAAMbOwY4sLZ2NtQ1coVKWNvoc/Eq8XDr2wB5Ig62ekza9vaOqpK2TpoMzOxaFtwqZua2Bm4makIM7OzMAjoaCqYuxooSUqJALjs7o4yVpbowvzSUy87KqSwmxQfnsrPISyFzWeWAXCkpMaBVIC4bmCsOdgiUKwh3JojLgAQ4ZCE0AMm2D29tZwe6AAAAAElFTkSuQmCC)](http://www.conan.io/source/jsoncpp/1.8.0/theirix/ci)
 
 [JSON][json-org] is a lightweight data-interchange format. It can represent
 numbers, strings, ordered sequences of values, and collections of name/value
@@ -7,37 +8,45 @@
 
 [json-org]: http://json.org/
 
-[JsonCpp][] is a C++ library that allows manipulating JSON values, including
+JsonCpp is a C++ library that allows manipulating JSON values, including
 serialization and deserialization to and from strings. It can also preserve
 existing comment in unserialization/serialization steps, making it a convenient
 format to store user input files.
 
-[JsonCpp]: http://open-source-parsers.github.io/jsoncpp-docs/doxygen/index.html
+
+## Documentation
+
+[JsonCpp documentation][JsonCpp-documentation] is generated using [Doxygen][].
+
+[JsonCpp-documentation]: 
http://open-source-parsers.github.io/jsoncpp-docs/doxygen/index.html
+[Doxygen]: http://www.doxygen.org
+
 
 ## A note on backward-compatibility
+
 * `1.y.z` is built with C++11.
 * `0.y.z` can be used with older compilers.
 * Major versions maintain binary-compatibility.
 
-# Using JsonCpp in your project
------------------------------
+
+## Using JsonCpp in your project
+
 The recommended approach to integrating JsonCpp in your project is to include
-the [amalgamated source](#generating-amalgamated-source-and-header) (a single 
-`.cpp` file and two `.h` files) in your project, and compile and build as you 
+the [amalgamated source](#generating-amalgamated-source-and-header) (a single
+`.cpp` file and two `.h` files) in your project, and compile and build as you
 would any other source file. This ensures consistency of compilation flags and
-ABI compatibility, issues which arise when building shared or static 
+ABI compatibility, issues which arise when building shared or static
 libraries. See the next section for instructions.
-  
-The `include/` should be added to your compiler include path. Jsoncpp headers
+
+The `include/` should be added to your compiler include path. JsonCpp headers
 should be included as follow:
 
     #include <json/json.h>
 
-If JsonCpp was built as a dynamic library on Windows, then your project needs 
to
-define the macro `JSON_DLL`.
+If JsonCpp was built as a dynamic library on Windows, then your project needs 
to define the macro `JSON_DLL`.
+
+### Generating amalgamated source and header
 
-Generating amalgamated source and header
-----------------------------------------
 JsonCpp is provided with a script to generate a single header and a single
 source file to ease inclusion into an existing project. The amalgamated source
 can be generated at any time by running the following command from the
@@ -48,6 +57,7 @@
 It is possible to specify header name. See the `-h` option for detail.
 
 By default, the following files are generated:
+
 * `dist/jsoncpp.cpp`: source file that needs to be added to your project.
 * `dist/json/json.h`: corresponding header file for use in your project. It is
   equivalent to including `json/json.h` in non-amalgamated source. This header
@@ -56,15 +66,51 @@
   JsonCpp types.
 
 The amalgamated sources are generated by concatenating JsonCpp source in the
-correct order and defining the macro `JSON_IS_AMALGAMATION` to prevent 
inclusion
-of other headers.
+correct order and defining the macro `JSON_IS_AMALGAMATION` to prevent 
inclusion of other headers.
+
+
+## Contributing to JsonCpp
+
+### Building and testing with Conan
+
+[Conan](https://www.conan.io/#/) is an open source package manager intended 
for C/C++ projects.
+It is cross platform and build system agnostic.
+
+Conan requires Python for running, and can be installed using pip:
+
+    pip install conan
+
+ Detailed instructions can be found on [conan 
docs](http://docs.conan.io/en/latest/).
+
+For build jsoncpp with conan, you need to create a 
[conanfile.txt](http://docs.conan.io/en/latest/reference/conanfile_txt.html) or 
a [conanfile.py](http://docs.conan.io/en/latest/reference/conanfile.html). The 
first is simpler, but the second is more flexible.
+
+This is a sample conanfile.txt:
+
+```
+[requires]
+jsoncpp/1.8.0@theirix/ci
 
-# Contributing to JsonCpp
+[generators]
+cmake
+```
 
-Building and testing with CMake
--------------------------------
-[CMake][] is a C++ Makefiles/Solution generator. It is usually available on 
most
-Linux system as package. On Ubuntu:
+**Note**: cmake is not required, you can use other 
[integrations](http://docs.conan.io/en/latest/integrations.html). Or you can 
set the appropriate environment variables, using [virtualenv 
generators](http://docs.conan.io/en/latest/mastering/virtualenv.html).
+
+Then run the following command from the conanfile directory:
+
+    conan install --build missing
+
+This will try to download the appropriate package for your settings (OS, 
compiler, architecture) from the [recipe 
packages](https://www.conan.io/source/jsoncpp/1.8.0/theirix/ci). If it is not 
found, the package will be built.
+
+**Note**: you do not need to install cmake to build jsoncpp using conan, 
because the recipe will download it automatically.
+
+If you need, you can customize the jsoncpp recipe. Just clone/fork [it from 
github](https://github.com/theirix/conan-jsoncpp/).
+
+See [integrations 
instructions](http://docs.conan.io/en/latest/integrations.html) for how to use 
your build system with conan.
+
+### Building and testing with CMake
+
+[CMake][] is a C++ Makefiles/Solution generator. It is usually available on 
most Linux system as package. On Ubuntu:
 
     sudo apt-get install cmake
 
@@ -75,10 +121,10 @@
 
 When running CMake, a few parameters are required:
 
-* a build directory where the makefiles/solution are generated. It is also used
+* A build directory where the makefiles/solution are generated. It is also used
   to store objects, libraries and executables files.
-* the generator to use: makefiles or Visual Studio solution? What version or
-  Visual Studio, 32 or 64 bits solution? 
+* The generator to use: makefiles or Visual Studio solution? What version or
+  Visual Studio, 32 or 64 bits solution?
 
 Steps for generating solution/makefiles using `cmake-gui`:
 
@@ -97,16 +143,20 @@
     cmake -DCMAKE_BUILD_TYPE=debug -DBUILD_STATIC_LIBS=ON 
-DBUILD_SHARED_LIBS=OFF -DARCHIVE_INSTALL_DIR=. -G "Unix Makefiles" ../..
     make
 
+For a good pkg-config file, add:
+
+    -DCMAKE_INSTALL_INCLUDEDIR=include/jsoncpp
+
 Running `cmake -h` will display the list of available generators (passed using
 the `-G` option).
 
 By default CMake hides compilation commands. This can be modified by specifying
 `-DCMAKE_VERBOSE_MAKEFILE=true` when generating makefiles.
 
-Building and testing with SCons
--------------------------------
-**Note:** The SCons-based build system is deprecated. Please use CMake; see the
-section above.
+### Building and testing with SCons
+
+**Note:** The SCons-based build system is deprecated. Please use CMake (see the
+section above).
 
 JsonCpp can use [Scons][] as a build system. Note that SCons requires Python to
 be installed.
@@ -133,7 +183,8 @@
 environment by running `vcvars32.bat` (e.g. MSVC 2008 command prompt) before
 running SCons.
 
-## Running the tests manually
+### Running the tests manually
+
 You need to run tests manually only if you are troubleshooting an issue.
 
 In the instructions below, replace `path/to/jsontest` with the path of the
@@ -142,35 +193,36 @@
     cd test
     # This will run the Reader/Writer tests
     python runjsontests.py path/to/jsontest
-    
+
     # 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
-    
+
     # This will run the unit tests (mostly Value)
     python rununittests.py path/to/test_lib_json
-    
+
     # You can run the tests using valgrind:
     python rununittests.py --valgrind path/to/test_lib_json
 
-## Running the tests using scons
+### Running the tests using SCons
+
 Note that tests can be run using SCons using the `check` target:
 
     scons platform=$PLATFORM check
 
-Building the documentation
---------------------------
+### Building the documentation
+
 Run the Python script `doxybuild.py` from the top directory:
 
     python doxybuild.py --doxygen=$(which doxygen) --open --with-dot
 
 See `doxybuild.py --help` for options.
 
-Adding a reader/writer test
----------------------------
+### 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.
@@ -179,21 +231,19 @@
 
 The `TESTNAME.expected` file format is as follows:
 
-* each line represents a JSON element of the element tree represented by the
+* 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
+* Each line has two parts: the path to access the element separated from the
   element value by `=`. Array and object values are always empty (i.e.
   represented by either `[]` or `{}`).
-* element path: `.` represents the root element, and is used to separate object
+* Element path `.` represents 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 the examples `test_complex_01.json` and `test_complex_01.expected` to 
better
-understand element paths.
+See the examples `test_complex_01.json` and `test_complex_01.expected` to 
better understand element paths.
 
-Understanding reader/writer test output
----------------------------------------
-When a test is run, output files are generated beside the input test files.
-Below is a short description of the content of each file:
+### Understanding reader/writer test output
+
+When a test is run, output files are generated beside 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
@@ -208,7 +258,7 @@
 * `test_complex_01.process-output`: `jsontest` output, typically useful for
   understanding parsing errors.
 
-License
--------
+## License
+
 See the `LICENSE` file for details. In summary, JsonCpp is licensed under the
 MIT license, or public domain if desired and recognized in your jurisdiction.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/devtools/__init__.py 
new/jsoncpp-1.8.1/devtools/__init__.py
--- old/jsoncpp-1.8.0/devtools/__init__.py      2016-12-14 20:39:05.000000000 
+0100
+++ new/jsoncpp-1.8.1/devtools/__init__.py      2017-06-26 07:01:22.000000000 
+0200
@@ -1,4 +1,4 @@
-# Copyright 2010 Baptiste Lepilleur
+# Copyright 2010 The JsonCpp Authors
 # Distributed under MIT license, or public domain if desired and
 # recognized in your jurisdiction.
 # See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/devtools/antglob.py 
new/jsoncpp-1.8.1/devtools/antglob.py
--- old/jsoncpp-1.8.0/devtools/antglob.py       2016-12-14 20:39:05.000000000 
+0100
+++ new/jsoncpp-1.8.1/devtools/antglob.py       2017-06-26 07:01:22.000000000 
+0200
@@ -1,6 +1,6 @@
 #!/usr/bin/env python
 # encoding: utf-8
-# Copyright 2009 Baptiste Lepilleur
+# Copyright 2009 The JsonCpp Authors
 # Distributed under MIT license, or public domain if desired and
 # recognized in your jurisdiction.
 # See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/devtools/fixeol.py 
new/jsoncpp-1.8.1/devtools/fixeol.py
--- old/jsoncpp-1.8.0/devtools/fixeol.py        2016-12-14 20:39:05.000000000 
+0100
+++ new/jsoncpp-1.8.1/devtools/fixeol.py        2017-06-26 07:01:22.000000000 
+0200
@@ -1,4 +1,4 @@
-# Copyright 2010 Baptiste Lepilleur
+# Copyright 2010 The JsonCpp Authors
 # Distributed under MIT license, or public domain if desired and
 # recognized in your jurisdiction.
 # See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/devtools/licenseupdater.py 
new/jsoncpp-1.8.1/devtools/licenseupdater.py
--- old/jsoncpp-1.8.0/devtools/licenseupdater.py        2016-12-14 
20:39:05.000000000 +0100
+++ new/jsoncpp-1.8.1/devtools/licenseupdater.py        2017-06-26 
07:01:22.000000000 +0200
@@ -6,7 +6,7 @@
 # and ends with the first blank line.
 LICENSE_BEGIN = "// Copyright "
 
-BRIEF_LICENSE = LICENSE_BEGIN + """2007-2010 Baptiste Lepilleur
+BRIEF_LICENSE = LICENSE_BEGIN + """2007-2010 The JsonCpp Authors
 // Distributed under MIT license, or public domain if desired and
 // recognized in your jurisdiction.
 // See file LICENSE for detail or copy at 
http://jsoncpp.sourceforge.net/LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/devtools/tarball.py 
new/jsoncpp-1.8.1/devtools/tarball.py
--- old/jsoncpp-1.8.0/devtools/tarball.py       2016-12-14 20:39:05.000000000 
+0100
+++ new/jsoncpp-1.8.1/devtools/tarball.py       2017-06-26 07:01:22.000000000 
+0200
@@ -1,4 +1,4 @@
-# Copyright 2010 Baptiste Lepilleur
+# Copyright 2010 The JsonCpp Authors
 # Distributed under MIT license, or public domain if desired and
 # recognized in your jurisdiction.
 # See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/include/json/version.h 
new/jsoncpp-1.8.1/include/json/version.h
--- old/jsoncpp-1.8.0/include/json/version.h    2016-12-14 20:39:05.000000000 
+0100
+++ new/jsoncpp-1.8.1/include/json/version.h    2017-06-26 07:01:22.000000000 
+0200
@@ -3,10 +3,10 @@
 #ifndef JSON_VERSION_H_INCLUDED
 # define JSON_VERSION_H_INCLUDED
 
-# define JSONCPP_VERSION_STRING "1.8.0"
+# define JSONCPP_VERSION_STRING "1.8.1"
 # define JSONCPP_VERSION_MAJOR 1
 # define JSONCPP_VERSION_MINOR 8
-# define JSONCPP_VERSION_PATCH 0
+# define JSONCPP_VERSION_PATCH 1
 # define JSONCPP_VERSION_QUALIFIER
 # define JSONCPP_VERSION_HEXA ((JSONCPP_VERSION_MAJOR << 24) | 
(JSONCPP_VERSION_MINOR << 16) | (JSONCPP_VERSION_PATCH << 8))
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/makerelease.py 
new/jsoncpp-1.8.1/makerelease.py
--- old/jsoncpp-1.8.0/makerelease.py    2016-12-14 20:39:05.000000000 +0100
+++ new/jsoncpp-1.8.1/makerelease.py    2017-06-26 07:01:22.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2010 Baptiste Lepilleur
+# Copyright 2010 The JsonCpp Authors
 # Distributed under MIT license, or public domain if desired and
 # recognized in your jurisdiction.
 # See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/meson.build 
new/jsoncpp-1.8.1/meson.build
--- old/jsoncpp-1.8.0/meson.build       1970-01-01 01:00:00.000000000 +0100
+++ new/jsoncpp-1.8.1/meson.build       2017-06-26 07:01:22.000000000 +0200
@@ -0,0 +1,102 @@
+project(
+  'jsoncpp',
+  'cpp',
+  version : '1.8.1',
+  default_options : [
+    'buildtype=release',
+    'warning_level=1'],
+  license : 'Public Domain',
+  meson_version : '>= 0.41.1')
+
+jsoncpp_ver_arr = meson.project_version().split('.')
+jsoncpp_major_version = jsoncpp_ver_arr[0]
+jsoncpp_minor_version = jsoncpp_ver_arr[1]
+jsoncpp_patch_version = jsoncpp_ver_arr[2]
+
+jsoncpp_cdata = configuration_data()
+jsoncpp_cdata.set('JSONCPP_VERSION', meson.project_version())
+jsoncpp_cdata.set('JSONCPP_VERSION_MAJOR', jsoncpp_major_version)
+jsoncpp_cdata.set('JSONCPP_VERSION_MINOR', jsoncpp_minor_version)
+jsoncpp_cdata.set('JSONCPP_VERSION_PATCH', jsoncpp_patch_version)
+
+jsoncpp_gen_sources = configure_file(
+  input : 'src/lib_json/version.h.in',
+  output : 'version.h',
+  configuration : jsoncpp_cdata,
+  install : true,
+  install_dir : join_paths(get_option('prefix'), get_option('includedir'), 
'json')
+)
+
+jsoncpp_headers = [
+  'include/json/allocator.h',
+  'include/json/assertions.h',
+  'include/json/autolink.h',
+  'include/json/config.h',
+  'include/json/features.h',
+  'include/json/forwards.h',
+  'include/json/json.h',
+  'include/json/reader.h',
+  'include/json/value.h',
+  'include/json/writer.h']
+jsoncpp_include_directories = include_directories('include')
+
+install_headers(
+  jsoncpp_headers,
+  subdir : 'json')
+
+jsoncpp_lib = library(
+  'jsoncpp',
+  [ jsoncpp_gen_sources,
+    jsoncpp_headers,
+    'src/lib_json/json_tool.h',
+    'src/lib_json/json_reader.cpp',
+    'src/lib_json/json_value.cpp',
+    'src/lib_json/json_writer.cpp'],
+  soversion : 18,
+  install : true,
+  include_directories : jsoncpp_include_directories)
+
+import('pkgconfig').generate(
+  libraries : jsoncpp_lib,
+  version : meson.project_version(),
+  name : 'jsoncpp',
+  filebase : 'jsoncpp',
+  description : 'A C++ library for interacting with JSON')
+
+# for libraries bundling jsoncpp
+declare_dependency(
+  include_directories : jsoncpp_include_directories,
+  link_with : jsoncpp_lib,
+  version : meson.project_version(),
+  sources : jsoncpp_gen_sources)
+
+# tests
+python = import('python3').find_python()
+
+jsoncpp_test = executable(
+  'jsoncpp_test',
+  [ 'src/test_lib_json/jsontest.cpp',
+    'src/test_lib_json/jsontest.h',
+    'src/test_lib_json/main.cpp'],
+  include_directories : jsoncpp_include_directories,
+  link_with : jsoncpp_lib,
+  install : false)
+test(
+  'unittest_jsoncpp_test',
+  jsoncpp_test)
+
+jsontestrunner = executable(
+  'jsontestrunner',
+  'src/jsontestrunner/main.cpp',
+  include_directories : jsoncpp_include_directories,
+  link_with : jsoncpp_lib,
+  install : false)
+test(
+  'unittest_jsontestrunner',
+  python,
+  args : [
+    '-B',
+    join_paths(meson.current_source_dir(), 'test/runjsontests.py'),
+    jsontestrunner,
+    join_paths(meson.current_source_dir(), 'test/data')]
+  )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/pkg-config/jsoncpp.pc.in 
new/jsoncpp-1.8.1/pkg-config/jsoncpp.pc.in
--- old/jsoncpp-1.8.0/pkg-config/jsoncpp.pc.in  2016-12-14 20:39:05.000000000 
+0100
+++ new/jsoncpp-1.8.1/pkg-config/jsoncpp.pc.in  2017-06-26 07:01:22.000000000 
+0200
@@ -1,7 +1,5 @@
-prefix=@CMAKE_INSTALL_PREFIX@
-exec_prefix=${prefix}
-libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
-includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
+libdir=@CMAKE_INSTALL_FULL_LIBDIR@
+includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
 
 Name: jsoncpp
 Description: A C++ library for interacting with JSON
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/scons-tools/globtool.py 
new/jsoncpp-1.8.1/scons-tools/globtool.py
--- old/jsoncpp-1.8.0/scons-tools/globtool.py   2016-12-14 20:39:05.000000000 
+0100
+++ new/jsoncpp-1.8.1/scons-tools/globtool.py   2017-06-26 07:01:22.000000000 
+0200
@@ -1,4 +1,4 @@
-# Copyright 2009 Baptiste Lepilleur
+# Copyright 2009 The JsonCpp Authors
 # Distributed under MIT license, or public domain if desired and
 # recognized in your jurisdiction.
 # See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/scons-tools/srcdist.py 
new/jsoncpp-1.8.1/scons-tools/srcdist.py
--- old/jsoncpp-1.8.0/scons-tools/srcdist.py    2016-12-14 20:39:05.000000000 
+0100
+++ new/jsoncpp-1.8.1/scons-tools/srcdist.py    2017-06-26 07:01:22.000000000 
+0200
@@ -1,4 +1,4 @@
-# Copyright 2007 Baptiste Lepilleur
+# Copyright 2007 The JsonCpp Authors
 # Distributed under MIT license, or public domain if desired and
 # recognized in your jurisdiction.
 # See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/scons-tools/substinfile.py 
new/jsoncpp-1.8.1/scons-tools/substinfile.py
--- old/jsoncpp-1.8.0/scons-tools/substinfile.py        2016-12-14 
20:39:05.000000000 +0100
+++ new/jsoncpp-1.8.1/scons-tools/substinfile.py        2017-06-26 
07:01:22.000000000 +0200
@@ -1,4 +1,4 @@
-# Copyright 2010 Baptiste Lepilleur
+# Copyright 2010 The JsonCpp Authors
 # Distributed under MIT license, or public domain if desired and
 # recognized in your jurisdiction.
 # See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/scons-tools/targz.py 
new/jsoncpp-1.8.1/scons-tools/targz.py
--- old/jsoncpp-1.8.0/scons-tools/targz.py      2016-12-14 20:39:05.000000000 
+0100
+++ new/jsoncpp-1.8.1/scons-tools/targz.py      2017-06-26 07:01:22.000000000 
+0200
@@ -1,4 +1,4 @@
-# Copyright 2007 Baptiste Lepilleur
+# Copyright 2007 The JsonCpp Authors
 # Distributed under MIT license, or public domain if desired and
 # recognized in your jurisdiction.
 # See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/src/lib_json/json_reader.cpp 
new/jsoncpp-1.8.1/src/lib_json/json_reader.cpp
--- old/jsoncpp-1.8.0/src/lib_json/json_reader.cpp      2016-12-14 
20:39:05.000000000 +0100
+++ new/jsoncpp-1.8.1/src/lib_json/json_reader.cpp      2017-06-26 
07:01:22.000000000 +0200
@@ -137,7 +137,7 @@
   current_ = begin_;
   lastValueEnd_ = 0;
   lastValue_ = 0;
-  commentsBefore_ = "";
+  commentsBefore_.clear();
   errors_.clear();
   while (!nodes_.empty())
     nodes_.pop();
@@ -176,7 +176,7 @@
 
   if (collectComments_ && !commentsBefore_.empty()) {
     currentValue().setComment(commentsBefore_, commentBefore);
-    commentsBefore_ = "";
+    commentsBefore_.clear();
   }
 
   switch (token.type_) {
@@ -474,7 +474,7 @@
       break;
     if (tokenName.type_ == tokenObjectEnd && name.empty()) // empty object
       return true;
-    name = "";
+    name.clear();
     if (tokenName.type_ == tokenString) {
       if (!decodeString(tokenName, name))
         return recoverFromError(tokenObjectEnd);
@@ -1056,7 +1056,7 @@
   current_ = begin_;
   lastValueEnd_ = 0;
   lastValue_ = 0;
-  commentsBefore_ = "";
+  commentsBefore_.clear();
   errors_.clear();
   while (!nodes_.empty())
     nodes_.pop();
@@ -1098,7 +1098,7 @@
 
   if (collectComments_ && !commentsBefore_.empty()) {
     currentValue().setComment(commentsBefore_, commentBefore);
-    commentsBefore_ = "";
+    commentsBefore_.clear();
   }
 
   switch (token.type_) {
@@ -1447,7 +1447,7 @@
       break;
     if (tokenName.type_ == tokenObjectEnd && name.empty()) // empty object
       return true;
-    name = "";
+    name.clear();
     if (tokenName.type_ == tokenString) {
       if (!decodeString(tokenName, name))
         return recoverFromError(tokenObjectEnd);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/src/lib_json/json_value.cpp 
new/jsoncpp-1.8.1/src/lib_json/json_value.cpp
--- old/jsoncpp-1.8.0/src/lib_json/json_value.cpp       2016-12-14 
20:39:05.000000000 +0100
+++ new/jsoncpp-1.8.1/src/lib_json/json_value.cpp       2017-06-26 
07:01:22.000000000 +0200
@@ -303,7 +303,7 @@
   // Assume both are strings.
   unsigned this_len = this->storage_.length_;
   unsigned other_len = other.storage_.length_;
-  unsigned min_len = std::min(this_len, other_len);
+  unsigned min_len = std::min<unsigned>(this_len, other_len);
   JSON_ASSERT(this->cstr_ && other.cstr_);
   int comp = memcmp(this->cstr_, other.cstr_, min_len);
   if (comp < 0) return true;
@@ -398,6 +398,7 @@
 
 Value::Value(const char* value) {
   initBasic(stringValue, true);
+  JSON_ASSERT_MESSAGE(value != NULL, "Null Value Passed to Value 
Constructor");        
   value_.string_ = duplicateAndPrefixStringValue(value, 
static_cast<unsigned>(strlen(value)));
 }
 
@@ -566,7 +567,7 @@
     char const* other_str;
     decodePrefixedString(this->allocated_, this->value_.string_, &this_len, 
&this_str);
     decodePrefixedString(other.allocated_, other.value_.string_, &other_len, 
&other_str);
-    unsigned min_len = std::min(this_len, other_len);
+    unsigned min_len = std::min<unsigned>(this_len, other_len);
     JSON_ASSERT(this_str && other_str);
     int comp = memcmp(this_str, other_str, min_len);
     if (comp < 0) return true;
@@ -879,7 +880,7 @@
   case nullValue:
     return (isNumeric() && asDouble() == 0.0) ||
            (type_ == booleanValue && value_.bool_ == false) ||
-           (type_ == stringValue && asString() == "") ||
+           (type_ == stringValue && asString().empty()) ||
            (type_ == arrayValue && value_.map_->size() == 0) ||
            (type_ == objectValue && value_.map_->size() == 0) ||
            type_ == nullValue;
@@ -1359,11 +1360,23 @@
 }
 
 bool Value::isIntegral() const {
+  switch (type_) {
+    case intValue:
+    case uintValue:
+      return true;
+    case realValue:
 #if defined(JSON_HAS_INT64)
-  return isInt64() || isUInt64();
+      // Note that maxUInt64 (= 2^64 - 1) is not exactly representable as a
+      // double, so double(maxUInt64) will be rounded up to 2^64. Therefore we
+      // require the value to be strictly less than the limit.
+      return value_.real_ >= double(minInt64) && value_.real_ < 
maxUInt64AsDouble && IsIntegral(value_.real_);
 #else
-  return isInt() || isUInt();
-#endif
+      return value_.real_ >= minInt && value_.real_ <= maxUInt && 
IsIntegral(value_.real_);
+#endif // JSON_HAS_INT64
+    default:
+      break;
+  }
+  return false;
 }
 
 bool Value::isDouble() const { return type_ == intValue || type_ == uintValue 
|| type_ == realValue; }
@@ -1493,6 +1506,7 @@
            const PathArgument& a4,
            const PathArgument& a5) {
   InArgs in;
+  in.reserve(5);
   in.push_back(&a1);
   in.push_back(&a2);
   in.push_back(&a3);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/src/lib_json/json_writer.cpp 
new/jsoncpp-1.8.1/src/lib_json/json_writer.cpp
--- old/jsoncpp-1.8.0/src/lib_json/json_writer.cpp      2016-12-14 
20:39:05.000000000 +0100
+++ new/jsoncpp-1.8.1/src/lib_json/json_writer.cpp      2017-06-26 
07:01:22.000000000 +0200
@@ -142,15 +142,16 @@
   char buffer[36];
   int len = -1;
 
-  char formatString[6];
-  sprintf(formatString, "%%.%dg", precision);
+  char formatString[15];
+  snprintf(formatString, sizeof(formatString), "%%.%dg", precision);
 
   // Print into the buffer. We need not request the alternative representation
   // that always has a decimal point because JSON doesn't distingish the
   // concepts of reals and integers.
   if (isfinite(value)) {
     len = snprintf(buffer, sizeof(buffer), formatString, value);
-    
+    fixNumericLocale(buffer, buffer + len);
+
     // try to ensure we preserve the fact that this was given to us as a 
double on input
     if (!strstr(buffer, ".") && !strstr(buffer, "e")) {
       strcat(buffer, ".0");
@@ -165,10 +166,8 @@
     } else {
       len = snprintf(buffer, sizeof(buffer), useSpecialFloats ? "Infinity" : 
"1e+9999");
     }
-    // For those, we do not need to call fixNumLoc, but it is fast.
   }
   assert(len >= 0);
-  fixNumericLocale(buffer, buffer + len);
   return buffer;
 }
 }
@@ -335,7 +334,7 @@
 void FastWriter::omitEndingLineFeed() { omitEndingLineFeed_ = true; }
 
 JSONCPP_STRING FastWriter::write(const Value& root) {
-  document_ = "";
+  document_.clear();
   writeValue(root);
   if (!omitEndingLineFeed_)
     document_ += "\n";
@@ -403,9 +402,9 @@
     : rightMargin_(74), indentSize_(3), addChildValues_() {}
 
 JSONCPP_STRING StyledWriter::write(const Value& root) {
-  document_ = "";
+  document_.clear();
   addChildValues_ = false;
-  indentString_ = "";
+  indentString_.clear();
   writeCommentBeforeValue(root);
   writeValue(root);
   writeCommentAfterValueOnSameLine(root);
@@ -619,7 +618,7 @@
 void StyledStreamWriter::write(JSONCPP_OSTREAM& out, const Value& root) {
   document_ = &out;
   addChildValues_ = false;
-  indentString_ = "";
+  indentString_.clear();
   indented_ = true;
   writeCommentBeforeValue(root);
   if (!indented_) writeIndent();
@@ -901,7 +900,7 @@
   sout_ = sout;
   addChildValues_ = false;
   indented_ = true;
-  indentString_ = "";
+  indentString_.clear();
   writeCommentBeforeValue(root);
   if (!indented_) writeIndent();
   indented_ = true;
@@ -1155,10 +1154,10 @@
   }
   JSONCPP_STRING nullSymbol = "null";
   if (dnp) {
-    nullSymbol = "";
+    nullSymbol.clear();
   }
   if (pre > 17) pre = 17;
-  JSONCPP_STRING endingLineFeedSymbol = "";
+  JSONCPP_STRING endingLineFeedSymbol;
   return new BuiltStyledStreamWriter(
       indentation, cs,
       colonSymbol, nullSymbol, endingLineFeedSymbol, usf, pre);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/test/cleantests.py 
new/jsoncpp-1.8.1/test/cleantests.py
--- old/jsoncpp-1.8.0/test/cleantests.py        2016-12-14 20:39:05.000000000 
+0100
+++ new/jsoncpp-1.8.1/test/cleantests.py        2017-06-26 07:01:22.000000000 
+0200
@@ -1,4 +1,4 @@
-# Copyright 2007 Baptiste Lepilleur
+# Copyright 2007 The JsonCpp Authors
 # Distributed under MIT license, or public domain if desired and
 # recognized in your jurisdiction.
 # See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/test/generate_expected.py 
new/jsoncpp-1.8.1/test/generate_expected.py
--- old/jsoncpp-1.8.0/test/generate_expected.py 2016-12-14 20:39:05.000000000 
+0100
+++ new/jsoncpp-1.8.1/test/generate_expected.py 2017-06-26 07:01:22.000000000 
+0200
@@ -1,4 +1,4 @@
-# Copyright 2007 Baptiste Lepilleur
+# Copyright 2007 The JsonCpp Authors
 # Distributed under MIT license, or public domain if desired and
 # recognized in your jurisdiction.
 # See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/test/pyjsontestrunner.py 
new/jsoncpp-1.8.1/test/pyjsontestrunner.py
--- old/jsoncpp-1.8.0/test/pyjsontestrunner.py  2016-12-14 20:39:05.000000000 
+0100
+++ new/jsoncpp-1.8.1/test/pyjsontestrunner.py  2017-06-26 07:01:22.000000000 
+0200
@@ -1,4 +1,4 @@
-# Copyright 2007 Baptiste Lepilleur
+# Copyright 2007 The JsonCpp Authors
 # Distributed under MIT license, or public domain if desired and
 # recognized in your jurisdiction.
 # See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/test/runjsontests.py 
new/jsoncpp-1.8.1/test/runjsontests.py
--- old/jsoncpp-1.8.0/test/runjsontests.py      2016-12-14 20:39:05.000000000 
+0100
+++ new/jsoncpp-1.8.1/test/runjsontests.py      2017-06-26 07:01:22.000000000 
+0200
@@ -1,4 +1,4 @@
-# Copyright 2007 Baptiste Lepilleur
+# Copyright 2007 The JsonCpp Authors
 # Distributed under MIT license, or public domain if desired and
 # recognized in your jurisdiction.
 # See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/test/rununittests.py 
new/jsoncpp-1.8.1/test/rununittests.py
--- old/jsoncpp-1.8.0/test/rununittests.py      2016-12-14 20:39:05.000000000 
+0100
+++ new/jsoncpp-1.8.1/test/rununittests.py      2017-06-26 07:01:22.000000000 
+0200
@@ -1,4 +1,4 @@
-# Copyright 2009 Baptiste Lepilleur
+# Copyright 2009 The JsonCpp Authors
 # Distributed under MIT license, or public domain if desired and
 # recognized in your jurisdiction.
 # See file LICENSE for detail or copy at http://jsoncpp.sourceforge.net/LICENSE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/travis.sh new/jsoncpp-1.8.1/travis.sh
--- old/jsoncpp-1.8.0/travis.sh 2016-12-14 20:39:05.000000000 +0100
+++ new/jsoncpp-1.8.1/travis.sh 2017-06-26 07:01:22.000000000 +0200
@@ -17,15 +17,7 @@
 
 env | sort
 
-cmake -DJSONCPP_WITH_CMAKE_PACKAGE=$CMAKE_PKG -DBUILD_SHARED_LIBS=$SHARED_LIB 
-DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_VERBOSE_MAKEFILE=$VERBOSE_MAKE .
-make
-cmake -DJSONCPP_WITH_CMAKE_PACKAGE=$CMAKE_PKG -DBUILD_SHARED_LIBS=$SHARED_LIB 
-DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_VERBOSE_MAKEFILE=$VERBOSE_MAKE 
-DJSONCPP_USE_SECURE_MEMORY=1 .
-make
-
-# Python is not available in Travis for osx.
-#  https://github.com/travis-ci/travis-ci/issues/2320
-if [ "$TRAVIS_OS_NAME" != "osx" ]
-then
-  make jsoncpp_check
-  valgrind --error-exitcode=42 --leak-check=full 
./src/test_lib_json/jsoncpp_test
-fi
+meson --buildtype ${BUILD_TYPE} --default-library ${LIB_TYPE} . 
build-${LIB_TYPE}
+ninja -v -C build-${LIB_TYPE}
+ninja -v -C build-${LIB_TYPE} test
+rm -r build-${LIB_TYPE}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jsoncpp-1.8.0/version new/jsoncpp-1.8.1/version
--- old/jsoncpp-1.8.0/version   2016-12-14 20:39:05.000000000 +0100
+++ new/jsoncpp-1.8.1/version   2017-06-26 07:01:22.000000000 +0200
@@ -1 +1 @@
-1.8.0
+1.8.1


Reply via email to