73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<html xmlns="http://www.w3.org/1999/xhtml">
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync <head>
c7814cf6e1240a519cbec0441e033d0e2470ed00vboxsync <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync <title>Changes in Jansson &mdash; Jansson 2.7 documentation</title>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync <link rel="stylesheet" href="_static/default.css" type="text/css" />
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync <script type="text/javascript">
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync var DOCUMENTATION_OPTIONS = {
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync URL_ROOT: './',
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync VERSION: '2.7',
4e9ac5fe33834afeda35032f6b396af476d9a5f3vboxsync COLLAPSE_INDEX: false,
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync FILE_SUFFIX: '.html',
4e9ac5fe33834afeda35032f6b396af476d9a5f3vboxsync HAS_SOURCE: true
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync };
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync </script>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync <script type="text/javascript" src="_static/jquery.js"></script>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync <script type="text/javascript" src="_static/underscore.js"></script>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync <script type="text/javascript" src="_static/doctools.js"></script>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync <link rel="top" title="Jansson 2.7 documentation" href="index.html" />
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync <link rel="prev" title="API Reference" href="apiref.html" />
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync </head>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync <body>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync <div class="related">
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync <h3>Navigation</h3>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync <ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync <li class="right" style="margin-right: 10px">
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync <a href="genindex.html" title="General Index"
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync accesskey="I">index</a></li>
987c65e4ff82da3cc522359eb1d45e3c85b60bd7vboxsync <li class="right" >
bae3590d00fff0ea0bb2d7f81e1b24137a0c7f21vboxsync <a href="apiref.html" title="API Reference"
bae3590d00fff0ea0bb2d7f81e1b24137a0c7f21vboxsync accesskey="P">previous</a> |</li>
bae3590d00fff0ea0bb2d7f81e1b24137a0c7f21vboxsync <li><a href="index.html">Jansson 2.7 documentation</a> &raquo;</li>
bae3590d00fff0ea0bb2d7f81e1b24137a0c7f21vboxsync </ul>
bae3590d00fff0ea0bb2d7f81e1b24137a0c7f21vboxsync </div>
bae3590d00fff0ea0bb2d7f81e1b24137a0c7f21vboxsync
bae3590d00fff0ea0bb2d7f81e1b24137a0c7f21vboxsync <div class="document">
bae3590d00fff0ea0bb2d7f81e1b24137a0c7f21vboxsync <div class="documentwrapper">
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync <div class="bodywrapper">
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync <div class="body">
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync <div class="section" id="changes-in-jansson">
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<h1>Changes in Jansson<a class="headerlink" href="#changes-in-jansson" title="Permalink to this headline">¶</a></h1>
987c65e4ff82da3cc522359eb1d45e3c85b60bd7vboxsync<div class="section" id="version-2-7">
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<h2>Version 2.7<a class="headerlink" href="#version-2-7" title="Permalink to this headline">¶</a></h2>
bae3590d00fff0ea0bb2d7f81e1b24137a0c7f21vboxsync<p>Released 2014-10-02</p>
bae3590d00fff0ea0bb2d7f81e1b24137a0c7f21vboxsync<ul class="simple">
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync<li>New features:<ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li><a class="reference internal" href="apiref.html#c.json_pack" title="json_pack"><tt class="xref c c-func docutils literal"><span class="pre">json_pack()</span></tt></a> and friends: Add format specifiers <tt class="docutils literal"><span class="pre">s%</span></tt> and <tt class="docutils literal"><span class="pre">+%</span></tt>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsyncfor a size_t string length (#141).</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li><a class="reference internal" href="apiref.html#c.json_unpack" title="json_unpack"><tt class="xref c c-func docutils literal"><span class="pre">json_unpack()</span></tt></a> and friends: Add format specifier <tt class="docutils literal"><span class="pre">s%</span></tt> for
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsyncunpacking the string length along with the string itself (#141).</li>
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync<li>Add length-aware string constructors <a class="reference internal" href="apiref.html#c.json_stringn" title="json_stringn"><tt class="xref c c-func docutils literal"><span class="pre">json_stringn()</span></tt></a> and
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync<a class="reference internal" href="apiref.html#c.json_stringn_nocheck" title="json_stringn_nocheck"><tt class="xref c c-func docutils literal"><span class="pre">json_stringn_nocheck()</span></tt></a>, length-aware string mutators
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync<a class="reference internal" href="apiref.html#c.json_string_setn" title="json_string_setn"><tt class="xref c c-func docutils literal"><span class="pre">json_string_setn()</span></tt></a> and <a class="reference internal" href="apiref.html#c.json_string_setn_nocheck" title="json_string_setn_nocheck"><tt class="xref c c-func docutils literal"><span class="pre">json_string_setn_nocheck()</span></tt></a>, and a
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsyncfunction for getting string&#8217;s length <a class="reference internal" href="apiref.html#c.json_string_length" title="json_string_length"><tt class="xref c c-func docutils literal"><span class="pre">json_string_length()</span></tt></a> (#141,
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync#143).</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Support <tt class="docutils literal"><span class="pre">\u0000</span></tt> escapes in the decoder. The support can be
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsyncenabled by using the <tt class="docutils literal"><span class="pre">JSON_ALLOW_NUL</span></tt> decoding flag (#141).</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Add <a class="reference internal" href="apiref.html#c.json_boolean_value" title="json_boolean_value"><tt class="xref c c-func docutils literal"><span class="pre">json_boolean_value()</span></tt></a> as an alias for <a class="reference internal" href="apiref.html#c.json_is_true" title="json_is_true"><tt class="xref c c-func docutils literal"><span class="pre">json_is_true()</span></tt></a>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync(#146).</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Add JSON_REAL_PRECISION encoding flag/macro for controlling real
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsyncnumber precision (#178).</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Define the maximum indentation as JSON_MAX_INDENT (#191).</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync</ul>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Bug fixes:<ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Some malformed <tt class="docutils literal"><span class="pre">\uNNNN</span></tt> escapes could crash the decoder with an
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsyncassertion failure.</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Avoid integer overflows with very long strings in UTF-8 decoder and
5045ab9ca39fa0b301f4020b7a072406eb0ecea2vboxsynchashtable.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Check for <em>NULL</em> key in <a class="reference internal" href="apiref.html#c.json_object_get" title="json_object_get"><tt class="xref c c-func docutils literal"><span class="pre">json_object_get()</span></tt></a> and
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<a class="reference internal" href="apiref.html#c.json_object_del" title="json_object_del"><tt class="xref c c-func docutils literal"><span class="pre">json_object_del()</span></tt></a> (#151).</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Enhance hashtable seeding on Windows (#162).</li>
f428c820be00a88cb87e3f70f666ca7b3513fd82vboxsync<li><a class="reference internal" href="apiref.html#c.json_unpack" title="json_unpack"><tt class="xref c c-func docutils literal"><span class="pre">json_unpack()</span></tt></a>: Allow mixing JSON_STRICT with optional keys
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync(#162, #163).</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Fix int/int32 mismatch (#142).</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Parse subnormal numbers correctly (#202).</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync</ul>
f3a33ad348f1f84e6a558fc99f3519c48dd7009fvboxsync</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Build:<ul>
f3a33ad348f1f84e6a558fc99f3519c48dd7009fvboxsync<li>Remove VS2010 build files. CMake should be used on Windows instead
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync(#165).</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Fix CMake build flags for MinGW (#193).</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Add CMake config files for find_package. Rename config.h to
15425aa11cac2994aa42c3a63aa0cffe4c5ad87evboxsyncjansson_private_config.h (#157, #159).</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Make Valgrind checks work with CMake (#160).</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Fix feature checks to use correct __ATOMIC flags.</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Fix CMake checks for uint16_t and uint8_t support (#177).</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Make Jansson build on SmartOS/Solaris (#171).</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Work around a GCC bug on Solaris (#175).</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Fix autoreconf on Debian (#182).</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Don&#8217;t use GNU make specific export for global AM_CFLAGS (#203,
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync#204).</li>
987c65e4ff82da3cc522359eb1d45e3c85b60bd7vboxsync<li>Fix building on Android using the supplied Android.mk (#166,
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync#174).</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Android.mk: Add -DHAVE_STDINT_H to LOCAL_CFLAGS (#200).</li>
987c65e4ff82da3cc522359eb1d45e3c85b60bd7vboxsync</ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Documentation:<ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Document JANSSON_BUILD_SHARED_LIBS CMake option (#187).</li>
5045ab9ca39fa0b301f4020b7a072406eb0ecea2vboxsync</ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Tests:<ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Close file handles correctly (#198).</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Other changes:<ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li><tt class="docutils literal"><span class="pre">\uNNNN</span></tt> escapes are now encoded in upper case for better
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsyncreadability.</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Enable usage of AddressSanitizer (#180).</li>
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync</ul>
5045ab9ca39fa0b301f4020b7a072406eb0ecea2vboxsync</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</ul>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync</div>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<div class="section" id="version-2-6">
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<h2>Version 2.6<a class="headerlink" href="#version-2-6" title="Permalink to this headline">¶</a></h2>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<p>Released 2014-02-11</p>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<ul class="simple">
5045ab9ca39fa0b301f4020b7a072406eb0ecea2vboxsync<li>Security:<ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>CVE-2013-6401: The hash function used by the hashtable
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsyncimplementation has been changed, and is automatically seeded with
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsyncrandom data when the first JSON object is created. This prevents
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsyncan attacker from causing large JSON objects with specially crafted
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsynckeys perform poorly.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</ul>
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync</li>
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync<li>New features:<ul>
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync<li><a class="reference internal" href="apiref.html#c.json_object_seed" title="json_object_seed"><tt class="xref c c-func docutils literal"><span class="pre">json_object_seed()</span></tt></a>: Set the seed value of the hash function.</li>
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync</ul>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync</li>
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync<li>Bug fixes:<ul>
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync<li>Include CMake specific files in the release tarball.</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Documentation:<ul>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Fix tutorial source to send a User-Agent header, which is now
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsyncrequired by the GitHub API.</li>
8249645203450de75a21975d1acd4dbadac56897vboxsync<li>Set all memory to zero in secure_free() example.</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</li>
9b01bee27b96e4ea6120afb6729895e51a1d9f90vboxsync</ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</div>
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync<div class="section" id="version-2-5">
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync<h2>Version 2.5<a class="headerlink" href="#version-2-5" title="Permalink to this headline">¶</a></h2>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<p>Released 2013-09-19</p>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<ul class="simple">
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>New features:<ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li><a class="reference internal" href="apiref.html#c.json_pack" title="json_pack"><tt class="xref c c-func docutils literal"><span class="pre">json_pack()</span></tt></a> and friends: Add format specifiers <tt class="docutils literal"><span class="pre">s#</span></tt>, <tt class="docutils literal"><span class="pre">+</span></tt> and
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<tt class="docutils literal"><span class="pre">+#</span></tt>.</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Add <tt class="docutils literal"><span class="pre">JSON_DECODE_INT_AS_REAL</span></tt> decoding flag to treat all numbers
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsyncas real in the decoder (#123).</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Add <a class="reference internal" href="apiref.html#c.json_array_foreach" title="json_array_foreach"><tt class="xref c c-func docutils literal"><span class="pre">json_array_foreach()</span></tt></a>, paralleling <a class="reference internal" href="apiref.html#c.json_object_foreach" title="json_object_foreach"><tt class="xref c c-func docutils literal"><span class="pre">json_object_foreach()</span></tt></a>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync(#118).</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Bug fixes:<ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li><a class="reference internal" href="apiref.html#c.json_dumps" title="json_dumps"><tt class="xref c c-func docutils literal"><span class="pre">json_dumps()</span></tt></a> and friends: Don&#8217;t crash if json is <em>NULL</em> and
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<tt class="docutils literal"><span class="pre">JSON_ENCODE_ANY</span></tt> is set.</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Fix a theoretical integer overflow in <tt class="xref c c-func docutils literal"><span class="pre">jsonp_strdup()</span></tt>.</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Fix <tt class="xref c c-func docutils literal"><span class="pre">l_isxdigit()</span></tt> macro (#97).</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Fix an off-by-one error in <a class="reference internal" href="apiref.html#c.json_array_remove" title="json_array_remove"><tt class="xref c c-func docutils literal"><span class="pre">json_array_remove()</span></tt></a>.</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</ul>
ae266ab74188e4fcd7a47aeb20b5dedbc1e9fd71vboxsync</li>
5045ab9ca39fa0b301f4020b7a072406eb0ecea2vboxsync<li>Build:<ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Support CMake in addition to GNU Autotools (#106, #107, #112,
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync#115, #120, #127).</li>
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync<li>Support building for Android (#109).</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Don&#8217;t use <tt class="docutils literal"><span class="pre">-Werror</span></tt> by default.</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Support building and testing with VPATH (#93).</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Fix compilation when <tt class="docutils literal"><span class="pre">NDEBUG</span></tt> is defined (#128)</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Tests:<ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Fix a refleak in <tt class="docutils literal"><span class="pre">test/bin/json_process.c</span></tt>.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Documentation:<ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Clarify the return value of <a class="reference internal" href="apiref.html#c.json_load_callback_t" title="json_load_callback_t"><tt class="xref c c-func docutils literal"><span class="pre">json_load_callback_t()</span></tt></a>.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Document how to circumvent problems with separate heaps on Windows.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Fix memory leaks and warnings in <tt class="docutils literal"><span class="pre">github_commits.c</span></tt>.</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Use <a class="reference internal" href="apiref.html#c.json_decref" title="json_decref"><tt class="xref c c-func docutils literal"><span class="pre">json_decref()</span></tt></a> properly in tutorial.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Other:<ul>
f428c820be00a88cb87e3f70f666ca7b3513fd82vboxsync<li>Make it possible to forward declare <tt class="docutils literal"><span class="pre">struct</span> <span class="pre">json_t</span></tt>.</li>
5045ab9ca39fa0b301f4020b7a072406eb0ecea2vboxsync</ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</div>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<div class="section" id="version-2-4">
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<h2>Version 2.4<a class="headerlink" href="#version-2-4" title="Permalink to this headline">¶</a></h2>
2cd17ea9c0400d83dc1d7809de2997e1e1c91714vboxsync<p>Released 2012-09-23</p>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<ul class="simple">
d26ec7204ffb20db0593f69450d6c930e5758f6cvboxsync<li>New features:<ul>
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync<li>Add <a class="reference internal" href="apiref.html#c.json_boolean" title="json_boolean"><tt class="xref c c-func docutils literal"><span class="pre">json_boolean()</span></tt></a> macro that returns the JSON true or false
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsyncvalue based on its argument (#86).</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Add <a class="reference internal" href="apiref.html#c.json_load_callback" title="json_load_callback"><tt class="xref c c-func docutils literal"><span class="pre">json_load_callback()</span></tt></a> that calls a callback function
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsyncrepeatedly to read the JSON input (#57).</li>
f428c820be00a88cb87e3f70f666ca7b3513fd82vboxsync<li>Add JSON_ESCAPE_SLASH encoding flag to escape all occurences of
f428c820be00a88cb87e3f70f666ca7b3513fd82vboxsync<tt class="docutils literal"><span class="pre">/</span></tt> with <tt class="docutils literal"><span class="pre">\/</span></tt>.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Bug fixes:<ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Check for and reject NaN and Inf values for reals. Encoding these
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsyncvalues resulted in invalid JSON.</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Fix <a class="reference internal" href="apiref.html#c.json_real_set" title="json_real_set"><tt class="xref c c-func docutils literal"><span class="pre">json_real_set()</span></tt></a> to return -1 on error.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Build:<ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Jansson now builds on Windows with Visual Studio 2010, and
ff01b951465956f73129661b29761d95e7d195f5vboxsyncincludes solution and project files in <tt class="docutils literal"><span class="pre">win32/vs2010/</span></tt>
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsyncdirectory.</li>
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync<li>Fix build warnings (#77, #78).</li>
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync<li>Add <tt class="docutils literal"><span class="pre">-no-undefined</span></tt> to LDFLAGS (#90).</li>
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync</ul>
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync</li>
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync<li>Tests:<ul>
ff01b951465956f73129661b29761d95e7d195f5vboxsync<li>Fix the symbol exports test on Linux/PPC64 (#88).</li>
ff01b951465956f73129661b29761d95e7d195f5vboxsync</ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Documentation:<ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Fix typos (#73, #84).</li>
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync</ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</li>
b15225a0fbecfdf7060f6d3743d57ad08b11250dvboxsync</ul>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync</div>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<div class="section" id="version-2-3-1">
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<h2>Version 2.3.1<a class="headerlink" href="#version-2-3-1" title="Permalink to this headline">¶</a></h2>
ff01b951465956f73129661b29761d95e7d195f5vboxsync<p>Released 2012-04-20</p>
ff01b951465956f73129661b29761d95e7d195f5vboxsync<ul class="simple">
ff01b951465956f73129661b29761d95e7d195f5vboxsync<li>Build issues:<ul>
ff01b951465956f73129661b29761d95e7d195f5vboxsync<li>Only use <tt class="docutils literal"><span class="pre">long</span> <span class="pre">long</span></tt> if <tt class="docutils literal"><span class="pre">strtoll()</span></tt> is also available.</li>
ff01b951465956f73129661b29761d95e7d195f5vboxsync</ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Documentation:<ul>
ff01b951465956f73129661b29761d95e7d195f5vboxsync<li>Fix the names of library version constants in documentation. (#52)</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Change the tutorial to use GitHub API v3. (#65)</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</ul>
ff01b951465956f73129661b29761d95e7d195f5vboxsync</li>
2cd17ea9c0400d83dc1d7809de2997e1e1c91714vboxsync<li>Tests:<ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Make some tests locale independent. (#51)</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Distribute the library exports test in the tarball.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Make test run on shells that don&#8217;t support the <tt class="docutils literal"><span class="pre">export</span> <span class="pre">FOO=bar</span></tt>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsyncsyntax.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</ul>
d26ec7204ffb20db0593f69450d6c930e5758f6cvboxsync</div>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<div class="section" id="version-2-3">
5045ab9ca39fa0b301f4020b7a072406eb0ecea2vboxsync<h2>Version 2.3<a class="headerlink" href="#version-2-3" title="Permalink to this headline">¶</a></h2>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<p>Released 2012-01-27</p>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<ul class="simple">
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>New features:<ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li><a class="reference internal" href="apiref.html#c.json_unpack" title="json_unpack"><tt class="xref c c-func docutils literal"><span class="pre">json_unpack()</span></tt></a> and friends: Add support for optional object keys
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsyncwith the <tt class="docutils literal"><span class="pre">{s?o}</span></tt> syntax.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Add <a class="reference internal" href="apiref.html#c.json_object_update_existing" title="json_object_update_existing"><tt class="xref c c-func docutils literal"><span class="pre">json_object_update_existing()</span></tt></a> and
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<a class="reference internal" href="apiref.html#c.json_object_update_missing" title="json_object_update_missing"><tt class="xref c c-func docutils literal"><span class="pre">json_object_update_missing()</span></tt></a>, for updating only existing keys or
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsynconly adding missing keys to an object. (#37)</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Add <a class="reference internal" href="apiref.html#c.json_object_foreach" title="json_object_foreach"><tt class="xref c c-func docutils literal"><span class="pre">json_object_foreach()</span></tt></a> for more convenient iteration over
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsyncobjects. (#45, #46)</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>When decoding JSON, write the number of bytes that were read from
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsyncinput to <tt class="docutils literal"><span class="pre">error.position</span></tt> also on success. This is handy with
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<tt class="docutils literal"><span class="pre">JSON_DISABLE_EOF_CHECK</span></tt>.</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Add support for decoding any JSON value, not just arrays or
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsyncobjects. The support is enabled with the new <tt class="docutils literal"><span class="pre">JSON_DECODE_ANY</span></tt>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsyncflag. Patch by Andrea Marchesini. (#4)</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</ul>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Bug fixes<ul>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Avoid problems with object&#8217;s serial number growing too big. (#40,
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync#41)</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Decoding functions now return NULL if the first argument is NULL.
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsyncPatch by Andrea Marchesini.</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Include <tt class="docutils literal"><span class="pre">jansson_config.h.win32</span></tt> in the distribution tarball.</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Remove <tt class="docutils literal"><span class="pre">+</span></tt> and leading zeros from exponents in the encoder.
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync(#39)</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Make Jansson build and work on MinGW. (#39, #38)</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync</ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</li>
5045ab9ca39fa0b301f4020b7a072406eb0ecea2vboxsync<li>Documentation<ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Note that the same JSON values must not be encoded in parallel by
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsyncseparate threads. (#42)</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Document MinGW support.</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</div>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<div class="section" id="version-2-2-1">
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<h2>Version 2.2.1<a class="headerlink" href="#version-2-2-1" title="Permalink to this headline">¶</a></h2>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<p>Released 2011-10-06</p>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<ul class="simple">
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Bug fixes:<ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Fix real number encoding and decoding under non-C locales. (#32)</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Fix identifier decoding under non-UTF-8 locales. (#35)</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li><a class="reference internal" href="apiref.html#c.json_load_file" title="json_load_file"><tt class="xref c c-func docutils literal"><span class="pre">json_load_file()</span></tt></a>: Open the input file in binary mode for maximum
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsynccompatiblity.</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync</ul>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Documentation:<ul>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Clarify the lifecycle of the result of the <tt class="docutils literal"><span class="pre">s</span></tt> fromat of
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<a class="reference internal" href="apiref.html#c.json_unpack" title="json_unpack"><tt class="xref c c-func docutils literal"><span class="pre">json_unpack()</span></tt></a>. (#31)</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Add some portability info. (#36)</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Little clarifications here and there.</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</ul>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync</li>
5045ab9ca39fa0b301f4020b7a072406eb0ecea2vboxsync<li>Other:<ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Some style fixes, issues detected by static analyzers.</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync</ul>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync</li>
c2e3c24fc63987be28ad5b52f931da7ef73c7b47vboxsync</ul>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync</div>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<div class="section" id="version-2-2">
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<h2>Version 2.2<a class="headerlink" href="#version-2-2" title="Permalink to this headline">¶</a></h2>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<p>Released 2011-09-03</p>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<ul class="simple">
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>New features:<ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li><a class="reference internal" href="apiref.html#c.json_dump_callback" title="json_dump_callback"><tt class="xref c c-func docutils literal"><span class="pre">json_dump_callback()</span></tt></a>: Pass the encoder output to a callback
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsyncfunction in chunks.</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync</ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Bug fixes:<ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li><a class="reference internal" href="apiref.html#c.json_string_set" title="json_string_set"><tt class="xref c c-func docutils literal"><span class="pre">json_string_set()</span></tt></a>: Check that target is a string and value is
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsyncnot NULL.</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Other:<ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Documentation typo fixes and clarifications.</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</div>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<div class="section" id="version-2-1">
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<h2>Version 2.1<a class="headerlink" href="#version-2-1" title="Permalink to this headline">¶</a></h2>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<p>Released 2011-06-10</p>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<ul class="simple">
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>New features:<ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li><a class="reference internal" href="apiref.html#c.json_loadb" title="json_loadb"><tt class="xref c c-func docutils literal"><span class="pre">json_loadb()</span></tt></a>: Decode a string with a given size, useful if the
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsyncstring is not null terminated.</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Add <tt class="docutils literal"><span class="pre">JSON_ENCODE_ANY</span></tt> encoding flag to allow encoding any JSON
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsyncvalue. By default, only arrays and objects can be encoded. (#19)</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Add <tt class="docutils literal"><span class="pre">JSON_REJECT_DUPLICATES</span></tt> decoding flag to issue a decoding
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsyncerror if any JSON object in the input contins duplicate keys. (#3)</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Add <tt class="docutils literal"><span class="pre">JSON_DISABLE_EOF_CHECK</span></tt> decoding flag to stop decoding after a
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsyncvalid JSON input. This allows other data after the JSON data.</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Bug fixes:<ul>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Fix an additional memory leak when memory allocation fails in
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<a class="reference internal" href="apiref.html#c.json_object_set" title="json_object_set"><tt class="xref c c-func docutils literal"><span class="pre">json_object_set()</span></tt></a> and friends.</li>
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Clear errno before calling <tt class="xref c c-func docutils literal"><span class="pre">strtod()</span></tt> for better portability. (#27)</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync</ul>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Building:<ul>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Avoid set-but-not-used warning/error in a test. (#20)</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync</ul>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Other:<ul>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Minor clarifications to documentation.</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync</ul>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync</li>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync</ul>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync</div>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<div class="section" id="version-2-0-1">
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<h2>Version 2.0.1<a class="headerlink" href="#version-2-0-1" title="Permalink to this headline">¶</a></h2>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<p>Released 2011-03-31</p>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<ul class="simple">
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsync<li>Bug fixes:<ul>
73c8df0bad5bf7cf318d301c2e32de3aa9e3c550vboxsync<li>Replace a few <tt class="xref c c-func docutils literal"><span class="pre">malloc()</span></tt> and <tt class="xref c c-func docutils literal"><span class="pre">free()</span></tt> calls with their
566a7d17a29255ad2b0740df1234a0a2b5a0f687vboxsynccounterparts that support custom memory management.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Fix object key hashing in json_unpack() strict checking mode.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Fix the parentheses in <tt class="docutils literal"><span class="pre">JANSSON_VERSION_HEX</span></tt> macro.</li>
914f55284d54ce9f050af36a0622071501278f0dvboxsync<li>Fix <a class="reference internal" href="apiref.html#c.json_object_size" title="json_object_size"><tt class="xref c c-func docutils literal"><span class="pre">json_object_size()</span></tt></a> return value.</li>
914f55284d54ce9f050af36a0622071501278f0dvboxsync<li>Fix a few compilation issues.</li>
914f55284d54ce9f050af36a0622071501278f0dvboxsync</ul>
914f55284d54ce9f050af36a0622071501278f0dvboxsync</li>
914f55284d54ce9f050af36a0622071501278f0dvboxsync<li>Portability:<ul>
219009b17144e7d172cb8bf7cefcf92b1b0f6e14vboxsync<li>Enhance portability of <tt class="xref c c-func docutils literal"><span class="pre">va_copy()</span></tt>.</li>
914f55284d54ce9f050af36a0622071501278f0dvboxsync<li>Test framework portability enhancements.</li>
914f55284d54ce9f050af36a0622071501278f0dvboxsync</ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Documentation:<ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Distribute <tt class="docutils literal"><span class="pre">doc/upgrading.rst</span></tt> with the source tarball.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Build documentation in strict mode in <tt class="docutils literal"><span class="pre">make</span> <span class="pre">distcheck</span></tt>.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</ul>
914f55284d54ce9f050af36a0622071501278f0dvboxsync</div>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<div class="section" id="version-2-0">
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<h2>Version 2.0<a class="headerlink" href="#version-2-0" title="Permalink to this headline">¶</a></h2>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<p>Released 2011-02-28</p>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<p>This release is backwards incompatible with the 1.x release series.
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsyncSee the chapter &#8220;Upgrading from older versions&#8221; in documentation for
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsyncdetails.</p>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<ul class="simple">
914f55284d54ce9f050af36a0622071501278f0dvboxsync<li>Backwards incompatible changes:<ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Unify unsigned integer usage in the API: All occurences of
987c65e4ff82da3cc522359eb1d45e3c85b60bd7vboxsyncunsigned int and unsigned long have been replaced with size_t.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Change JSON integer&#8217;s underlying type to the widest signed integer
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsynctype available, i.e. long long if it&#8217;s supported, otherwise long.
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsyncAdd a typedef json_int_t that defines the type.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Change the maximum indentation depth to 31 spaces in encoder. This
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsyncfrees up bits from the flags parameter of encoding functions
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<a class="reference internal" href="apiref.html#c.json_dumpf" title="json_dumpf"><tt class="xref c c-func docutils literal"><span class="pre">json_dumpf()</span></tt></a>, <a class="reference internal" href="apiref.html#c.json_dumps" title="json_dumps"><tt class="xref c c-func docutils literal"><span class="pre">json_dumps()</span></tt></a> and <a class="reference internal" href="apiref.html#c.json_dump_file" title="json_dump_file"><tt class="xref c c-func docutils literal"><span class="pre">json_dump_file()</span></tt></a>.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>For future needs, add a flags parameter to all decoding functions
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<a class="reference internal" href="apiref.html#c.json_loadf" title="json_loadf"><tt class="xref c c-func docutils literal"><span class="pre">json_loadf()</span></tt></a>, <a class="reference internal" href="apiref.html#c.json_loads" title="json_loads"><tt class="xref c c-func docutils literal"><span class="pre">json_loads()</span></tt></a> and <a class="reference internal" href="apiref.html#c.json_load_file" title="json_load_file"><tt class="xref c c-func docutils literal"><span class="pre">json_load_file()</span></tt></a>.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>New features<ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li><a class="reference internal" href="apiref.html#c.json_pack" title="json_pack"><tt class="xref c c-func docutils literal"><span class="pre">json_pack()</span></tt></a>, <a class="reference internal" href="apiref.html#c.json_pack_ex" title="json_pack_ex"><tt class="xref c c-func docutils literal"><span class="pre">json_pack_ex()</span></tt></a>, <a class="reference internal" href="apiref.html#c.json_vpack_ex" title="json_vpack_ex"><tt class="xref c c-func docutils literal"><span class="pre">json_vpack_ex()</span></tt></a>: Create JSON
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsyncvalues based on a format string.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li><a class="reference internal" href="apiref.html#c.json_unpack" title="json_unpack"><tt class="xref c c-func docutils literal"><span class="pre">json_unpack()</span></tt></a>, <a class="reference internal" href="apiref.html#c.json_unpack_ex" title="json_unpack_ex"><tt class="xref c c-func docutils literal"><span class="pre">json_unpack_ex()</span></tt></a>, <a class="reference internal" href="apiref.html#c.json_vunpack_ex" title="json_vunpack_ex"><tt class="xref c c-func docutils literal"><span class="pre">json_vunpack_ex()</span></tt></a>: Simple
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsyncvalue extraction and validation functionality based on a format
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsyncstring.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Add column, position and source fields to the <tt class="docutils literal"><span class="pre">json_error_t</span></tt>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsyncstruct.</li>
2658c4dc7933d1d6aa1f2f6ea95936a5b058cee8vboxsync<li>Enhance error reporting in the decoder.</li>
2658c4dc7933d1d6aa1f2f6ea95936a5b058cee8vboxsync<li><tt class="docutils literal"><span class="pre">JANSSON_VERSION</span></tt> et al.: Preprocessor constants that define the
2658c4dc7933d1d6aa1f2f6ea95936a5b058cee8vboxsynclibrary version.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li><a class="reference internal" href="apiref.html#c.json_set_alloc_funcs" title="json_set_alloc_funcs"><tt class="xref c c-func docutils literal"><span class="pre">json_set_alloc_funcs()</span></tt></a>: Set custom memory allocation functions.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Fix many portability issues, especially on Windows.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Configuration<ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Add file <tt class="docutils literal"><span class="pre">jansson_config.h</span></tt> that contains site specific
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsyncconfiguration. It&#8217;s created automatically by the configure script,
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsyncor can be created by hand if the configure script cannot be used.
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsyncThe file <tt class="docutils literal"><span class="pre">jansson_config.h.win32</span></tt> can be used without
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsyncmodifications on Windows systems.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Add a section to documentation describing how to build Jansson on
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsyncWindows.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync<li>Documentation now requires Sphinx 1.0 or newer.</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</li>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</ul>
783e463acf52ae50e2c72c01713f5e1e9fbf41advboxsync</div>
<div class="section" id="version-1-3">
<h2>Version 1.3<a class="headerlink" href="#version-1-3" title="Permalink to this headline">¶</a></h2>
<p>Released 2010-06-13</p>
<ul class="simple">
<li>New functions:<ul>
<li><a class="reference internal" href="apiref.html#c.json_object_iter_set" title="json_object_iter_set"><tt class="xref c c-func docutils literal"><span class="pre">json_object_iter_set()</span></tt></a>, <a class="reference internal" href="apiref.html#c.json_object_iter_set_new" title="json_object_iter_set_new"><tt class="xref c c-func docutils literal"><span class="pre">json_object_iter_set_new()</span></tt></a>: Change
object contents while iterating over it.</li>
<li><a class="reference internal" href="apiref.html#c.json_object_iter_at" title="json_object_iter_at"><tt class="xref c c-func docutils literal"><span class="pre">json_object_iter_at()</span></tt></a>: Return an iterator that points to a
specific object item.</li>
</ul>
</li>
<li>New encoding flags:<ul>
<li><tt class="docutils literal"><span class="pre">JSON_PRESERVE_ORDER</span></tt>: Preserve the insertion order of object
keys.</li>
</ul>
</li>
<li>Bug fixes:<ul>
<li>Fix an error that occured when an array or object was first
encoded as empty, then populated with some data, and then
re-encoded</li>
<li>Fix the situation like above, but when the first encoding resulted
in an error</li>
</ul>
</li>
<li>Documentation:<ul>
<li>Clarify the documentation on reference stealing, providing an
example usage pattern</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="version-1-2-1">
<h2>Version 1.2.1<a class="headerlink" href="#version-1-2-1" title="Permalink to this headline">¶</a></h2>
<p>Released 2010-04-03</p>
<ul class="simple">
<li>Bug fixes:<ul>
<li>Fix reference counting on <tt class="docutils literal"><span class="pre">true</span></tt>, <tt class="docutils literal"><span class="pre">false</span></tt> and <tt class="docutils literal"><span class="pre">null</span></tt></li>
<li>Estimate real number underflows in decoder with 0.0 instead of
issuing an error</li>
</ul>
</li>
<li>Portability:<ul>
<li>Make <tt class="docutils literal"><span class="pre">int32_t</span></tt> available on all systems</li>
<li>Support compilers that don&#8217;t have the <tt class="docutils literal"><span class="pre">inline</span></tt> keyword</li>
<li>Require Autoconf 2.60 (for <tt class="docutils literal"><span class="pre">int32_t</span></tt>)</li>
</ul>
</li>
<li>Tests:<ul>
<li>Print test names correctly when <tt class="docutils literal"><span class="pre">VERBOSE=1</span></tt></li>
<li><tt class="docutils literal"><span class="pre">test/suites/api</span></tt>: Fail when a test fails</li>
<li>Enhance tests for iterators</li>
<li>Enhance tests for decoding texts that contain null bytes</li>
</ul>
</li>
<li>Documentation:<ul>
<li>Don&#8217;t remove <tt class="docutils literal"><span class="pre">changes.rst</span></tt> in <tt class="docutils literal"><span class="pre">make</span> <span class="pre">clean</span></tt></li>
<li>Add a chapter on RFC conformance</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="version-1-2">
<h2>Version 1.2<a class="headerlink" href="#version-1-2" title="Permalink to this headline">¶</a></h2>
<p>Released 2010-01-21</p>
<ul class="simple">
<li>New functions:<ul>
<li><a class="reference internal" href="apiref.html#c.json_equal" title="json_equal"><tt class="xref c c-func docutils literal"><span class="pre">json_equal()</span></tt></a>: Test whether two JSON values are equal</li>
<li><a class="reference internal" href="apiref.html#c.json_copy" title="json_copy"><tt class="xref c c-func docutils literal"><span class="pre">json_copy()</span></tt></a> and <a class="reference internal" href="apiref.html#c.json_deep_copy" title="json_deep_copy"><tt class="xref c c-func docutils literal"><span class="pre">json_deep_copy()</span></tt></a>: Make shallow and deep copies
of JSON values</li>
<li>Add a version of all functions taking a string argument that
doesn&#8217;t check for valid UTF-8: <a class="reference internal" href="apiref.html#c.json_string_nocheck" title="json_string_nocheck"><tt class="xref c c-func docutils literal"><span class="pre">json_string_nocheck()</span></tt></a>,
<a class="reference internal" href="apiref.html#c.json_string_set_nocheck" title="json_string_set_nocheck"><tt class="xref c c-func docutils literal"><span class="pre">json_string_set_nocheck()</span></tt></a>, <a class="reference internal" href="apiref.html#c.json_object_set_nocheck" title="json_object_set_nocheck"><tt class="xref c c-func docutils literal"><span class="pre">json_object_set_nocheck()</span></tt></a>,
<a class="reference internal" href="apiref.html#c.json_object_set_new_nocheck" title="json_object_set_new_nocheck"><tt class="xref c c-func docutils literal"><span class="pre">json_object_set_new_nocheck()</span></tt></a></li>
</ul>
</li>
<li>New encoding flags:<ul>
<li><tt class="docutils literal"><span class="pre">JSON_SORT_KEYS</span></tt>: Sort objects by key</li>
<li><tt class="docutils literal"><span class="pre">JSON_ENSURE_ASCII</span></tt>: Escape all non-ASCII Unicode characters</li>
<li><tt class="docutils literal"><span class="pre">JSON_COMPACT</span></tt>: Use a compact representation with all unneeded
whitespace stripped</li>
</ul>
</li>
<li>Bug fixes:<ul>
<li>Revise and unify whitespace usage in encoder: Add spaces between
array and object items, never append newline to output.</li>
<li>Remove const qualifier from the <tt class="docutils literal"><span class="pre">json_t</span></tt> parameter in
<a class="reference internal" href="apiref.html#c.json_string_set" title="json_string_set"><tt class="xref c c-func docutils literal"><span class="pre">json_string_set()</span></tt></a>, <a class="reference internal" href="apiref.html#c.json_integer_set" title="json_integer_set"><tt class="xref c c-func docutils literal"><span class="pre">json_integer_set()</span></tt></a> and <a class="reference internal" href="apiref.html#c.json_real_set" title="json_real_set"><tt class="xref c c-func docutils literal"><span class="pre">json_real_set()</span></tt></a>.</li>
<li>Use <tt class="docutils literal"><span class="pre">int32_t</span></tt> internally for representing Unicode code points
(int is not enough on all platforms)</li>
</ul>
</li>
<li>Other changes:<ul>
<li>Convert <tt class="docutils literal"><span class="pre">CHANGES</span></tt> (this file) to reStructured text and add it to
HTML documentation</li>
<li>The test system has been refactored. Python is no longer required
to run the tests.</li>
<li>Documentation can now be built by invoking <tt class="docutils literal"><span class="pre">make</span> <span class="pre">html</span></tt></li>
<li>Support for pkg-config</li>
</ul>
</li>
</ul>
</div>
<div class="section" id="version-1-1-3">
<h2>Version 1.1.3<a class="headerlink" href="#version-1-1-3" title="Permalink to this headline">¶</a></h2>
<p>Released 2009-12-18</p>
<ul class="simple">
<li>Encode reals correctly, so that first encoding and then decoding a
real always produces the same value</li>
<li>Don&#8217;t export private symbols in <tt class="docutils literal"><span class="pre">libjansson.so</span></tt></li>
</ul>
</div>
<div class="section" id="version-1-1-2">
<h2>Version 1.1.2<a class="headerlink" href="#version-1-1-2" title="Permalink to this headline">¶</a></h2>
<p>Released 2009-11-08</p>
<ul class="simple">
<li>Fix a bug where an error message was not produced if the input file
could not be opened in <a class="reference internal" href="apiref.html#c.json_load_file" title="json_load_file"><tt class="xref c c-func docutils literal"><span class="pre">json_load_file()</span></tt></a></li>
<li>Fix an assertion failure in decoder caused by a minus sign without a
digit after it</li>
<li>Remove an unneeded include of <tt class="docutils literal"><span class="pre">stdint.h</span></tt> in <tt class="docutils literal"><span class="pre">jansson.h</span></tt></li>
</ul>
</div>
<div class="section" id="version-1-1-1">
<h2>Version 1.1.1<a class="headerlink" href="#version-1-1-1" title="Permalink to this headline">¶</a></h2>
<p>Released 2009-10-26</p>
<ul class="simple">
<li>All documentation files were not distributed with v1.1; build
documentation in make distcheck to prevent this in the future</li>
<li>Fix v1.1 release date in <tt class="docutils literal"><span class="pre">CHANGES</span></tt></li>
</ul>
</div>
<div class="section" id="version-1-1">
<h2>Version 1.1<a class="headerlink" href="#version-1-1" title="Permalink to this headline">¶</a></h2>
<p>Released 2009-10-20</p>
<ul class="simple">
<li>API additions and improvements:<ul>
<li>Extend array and object APIs</li>
<li>Add functions to modify integer, real and string values</li>
<li>Improve argument validation</li>
<li>Use unsigned int instead of <tt class="docutils literal"><span class="pre">uint32_t</span></tt> for encoding flags</li>
</ul>
</li>
<li>Enhance documentation<ul>
<li>Add getting started guide and tutorial</li>
<li>Fix some typos</li>
<li>General clarifications and cleanup</li>
</ul>
</li>
<li>Check for integer and real overflows and underflows in decoder</li>
<li>Make singleton values thread-safe (<tt class="docutils literal"><span class="pre">true</span></tt>, <tt class="docutils literal"><span class="pre">false</span></tt> and <tt class="docutils literal"><span class="pre">null</span></tt>)</li>
<li>Enhance circular reference handling</li>
<li>Don&#8217;t define <tt class="docutils literal"><span class="pre">-std=c99</span></tt> in <tt class="docutils literal"><span class="pre">AM_CFLAGS</span></tt></li>
<li>Add C++ guards to <tt class="docutils literal"><span class="pre">jansson.h</span></tt></li>
<li>Minor performance and portability improvements</li>
<li>Expand test coverage</li>
</ul>
</div>
<div class="section" id="version-1-0-4">
<h2>Version 1.0.4<a class="headerlink" href="#version-1-0-4" title="Permalink to this headline">¶</a></h2>
<p>Released 2009-10-11</p>
<ul class="simple">
<li>Relax Autoconf version requirement to 2.59</li>
<li>Make Jansson compile on platforms where plain <tt class="docutils literal"><span class="pre">char</span></tt> is unsigned</li>
<li>Fix API tests for object</li>
</ul>
</div>
<div class="section" id="version-1-0-3">
<h2>Version 1.0.3<a class="headerlink" href="#version-1-0-3" title="Permalink to this headline">¶</a></h2>
<p>Released 2009-09-14</p>
<ul class="simple">
<li>Check for integer and real overflows and underflows in decoder</li>
<li>Use the Python json module for tests, or simplejson if the json
module is not found</li>
<li>Distribute changelog (this file)</li>
</ul>
</div>
<div class="section" id="version-1-0-2">
<h2>Version 1.0.2<a class="headerlink" href="#version-1-0-2" title="Permalink to this headline">¶</a></h2>
<p>Released 2009-09-08</p>
<ul class="simple">
<li>Handle EOF correctly in decoder</li>
</ul>
</div>
<div class="section" id="version-1-0-1">
<h2>Version 1.0.1<a class="headerlink" href="#version-1-0-1" title="Permalink to this headline">¶</a></h2>
<p>Released 2009-09-04</p>
<ul class="simple">
<li>Fixed broken <a class="reference internal" href="apiref.html#c.json_is_boolean" title="json_is_boolean"><tt class="xref c c-func docutils literal"><span class="pre">json_is_boolean()</span></tt></a></li>
</ul>
</div>
<div class="section" id="version-1-0">
<h2>Version 1.0<a class="headerlink" href="#version-1-0" title="Permalink to this headline">¶</a></h2>
<p>Released 2009-08-25</p>
<ul class="simple">
<li>Initial release</li>
</ul>
</div>
</div>
</div>
</div>
</div>
<div class="sphinxsidebar">
<div class="sphinxsidebarwrapper">
<h3><a href="index.html">Table Of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Changes in Jansson</a><ul>
<li><a class="reference internal" href="#version-2-7">Version 2.7</a></li>
<li><a class="reference internal" href="#version-2-6">Version 2.6</a></li>
<li><a class="reference internal" href="#version-2-5">Version 2.5</a></li>
<li><a class="reference internal" href="#version-2-4">Version 2.4</a></li>
<li><a class="reference internal" href="#version-2-3-1">Version 2.3.1</a></li>
<li><a class="reference internal" href="#version-2-3">Version 2.3</a></li>
<li><a class="reference internal" href="#version-2-2-1">Version 2.2.1</a></li>
<li><a class="reference internal" href="#version-2-2">Version 2.2</a></li>
<li><a class="reference internal" href="#version-2-1">Version 2.1</a></li>
<li><a class="reference internal" href="#version-2-0-1">Version 2.0.1</a></li>
<li><a class="reference internal" href="#version-2-0">Version 2.0</a></li>
<li><a class="reference internal" href="#version-1-3">Version 1.3</a></li>
<li><a class="reference internal" href="#version-1-2-1">Version 1.2.1</a></li>
<li><a class="reference internal" href="#version-1-2">Version 1.2</a></li>
<li><a class="reference internal" href="#version-1-1-3">Version 1.1.3</a></li>
<li><a class="reference internal" href="#version-1-1-2">Version 1.1.2</a></li>
<li><a class="reference internal" href="#version-1-1-1">Version 1.1.1</a></li>
<li><a class="reference internal" href="#version-1-1">Version 1.1</a></li>
<li><a class="reference internal" href="#version-1-0-4">Version 1.0.4</a></li>
<li><a class="reference internal" href="#version-1-0-3">Version 1.0.3</a></li>
<li><a class="reference internal" href="#version-1-0-2">Version 1.0.2</a></li>
<li><a class="reference internal" href="#version-1-0-1">Version 1.0.1</a></li>
<li><a class="reference internal" href="#version-1-0">Version 1.0</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="apiref.html"
title="previous chapter">API Reference</a></p>
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="_sources/changes.txt"
rel="nofollow">Show Source</a></li>
</ul>
<div id="searchbox" style="display: none">
<h3>Quick search</h3>
<form class="search" action="search.html" method="get">
<input type="text" name="q" />
<input type="submit" value="Go" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
<p class="searchtip" style="font-size: 90%">
Enter search terms or a module, class or function name.
</p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="apiref.html" title="API Reference"
>previous</a> |</li>
<li><a href="index.html">Jansson 2.7 documentation</a> &raquo;</li>
</ul>
</div>
<div class="footer">
&copy; Copyright 2009-2014, Petri Lehtinen.
Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.2.
</div>
</body>
</html>