450 Commits

Author SHA1 Message Date
Eric Hawicz
aadde421a5 Merge pull request #625 from besser82/topic/besser82/json-c-0.13/rdrand_fixes
json-c-0.13.x: Detect broken RDRAND during initialization.
2023-06-28 18:01:58 -04:00
Eric Haszlakiewicz
ee9f67c81a Issue #626: Restore compatibility with cmake 2.8 by explicitly defining the PROJECT_VERSION* variables.
(cherry picked from commit fe308b8862)
2020-06-03 03:09:11 +00:00
Björn Esser
a731ae6a75 Detect broken RDRAND during initialization.
Some CPUs advertise RDRAND in CPUID, but return
0xFFFFFFFF unconditionally.  To avoid locking up
later, test RDRAND during initialization, and if
it returns 0xFFFFFFFF, mark it as nonexistent.

Also fix a possible segmentation fault in CPUID check.

This commit is a squashed and slightly modified backport
of the following commits on the master branch:

  * 0e5bbcaa16
  * 4d36b0287d
  * 8086314026
2020-06-01 16:45:45 +02:00
Eric Haszlakiewicz
cc5c4345c3 Apply the fix from @pointbre in issue #626 to skip "inline" on AIX, but invert the test to make it a little easier to understand.
(cherry picked from commit 1c6086a86a)
2020-05-31 03:38:01 +00:00
Eric Hawicz
86ac554d27 Merge pull request #607 from besser82/topic/besser82/json-c-0.13/CVE-2020-12762
json-c-0.13.x: Fix CVE-2020-12762 - json-c through 0.14 has an integer overflow and out-of-bounds write ...
2020-05-14 11:23:40 -04:00
Björn Esser
865b5a6519 Fix CVE-2020-12762.
This commit is a squashed backport of the following commits
on the master branch:

  * 099016b7e8
  * 77d935b7ae
  * d07b910149
  * 519dfe1591
  * a59d5acfab
2020-05-14 12:32:30 +02:00
Eric Haszlakiewicz
0daf8dc826 install json_object_iterator.h header file
When building the project using cmake then installing it.  The
definitions in `json_object_iterator.h` are required but not installed
by the cmake install rule.  This patch adds the `json_object_iterator.h`
file to the list of files to install.

Signed-off-by: Keith Holman <keith.holman@windriver.com>
2018-12-11 20:35:56 -05:00
Keith Holman
37a2edf468 install json_object_iterator.h header file
When building the project using cmake then installing it.  The
definitions in `json_object_iterator.h` are required but not installed
by the cmake install rule.  This patch adds the `json_object_iterator.h`
file to the list of files to install.

Signed-off-by: Keith Holman <keith.holman@windriver.com>
2018-06-07 13:19:27 -04:00
Eric Haszlakiewicz
4bbc72f633 Merge pull request #420 from angelskieglazki/master
arraylist: Fixed names of parameters for callback function
2018-06-02 23:01:04 -04:00
max
7a4759f165 arraylist: Fix names of parameters for callback function 2018-06-01 18:21:06 +03:00
Eric Haszlakiewicz
4414d068b3 Always create debug info (pdb file) even for release builds. 2018-05-27 21:50:57 -04:00
Eric Haszlakiewicz
7038bb8061 Try the appveyor changes again, using %Configuration% instead of "Debug" 2018-05-27 18:20:32 -04:00
Eric Haszlakiewicz
dfc0fddf22 Include the json-c.lib, .pdb and .exp files in the zip file created by the appveyor build, since it seems they're needed for linking and debugging. 2018-05-27 16:07:11 -04:00
Eric Haszlakiewicz
c75ebe8973 Merge pull request #410 from janczer/fix-typos
Fixed typos
2018-04-24 22:01:09 -04:00
janczer
8bd62177e7 Fixed typos 2018-04-24 16:00:38 +02:00
Eric Haszlakiewicz
f8c632f579 Issue #407: fix incorrect casts in calls to ctype functions (isdigit and isspace) so we don't crash when asserts are enabled on certain platforms and characters > 128 are parsed. 2018-03-25 18:25:58 -04:00
Eric Haszlakiewicz
da4b34355d Add an parse test for content starting with a UTF8 BOM, which is _not_ a valid start to a JSON message. 2018-03-25 18:23:42 -04:00
Eric Haszlakiewicz
985c46fec3 Update docs for the 0.13.1 release. 2018-03-05 23:18:59 -05:00
Eric Haszlakiewicz
991e128df5 Bump version to 0.13.1, and re-generate autoconf and automake files. 2018-03-05 23:16:43 -05:00
Eric Haszlakiewicz
914527d091 Eliminate ACLOCAL_AMFLAGS, since it changes how libtool files are generated too significantly. 2018-03-05 23:14:57 -05:00
Eric Haszlakiewicz
861c1a8286 Update the change log for the 0.13.1 release.
Conflicts:
	ChangeLog
2018-03-05 22:56:03 -05:00
Eric Haszlakiewicz
104aef0a6e Update the change log for the 0.13.1 release. 2018-03-05 22:54:57 -05:00
Eric Haszlakiewicz
0f814e52dd Issue #396: check for toolchain compatibilty with _REENTRANT before adding it to CFLAGS. 2018-03-04 22:46:05 -05:00
Chris Wolfe
33e166a685 pull in fuzzers, add CI scripts later
Conflicts:
	ChangeLog
2018-03-04 22:44:57 -05:00
Jonathan Wiens
d222b13758 Avoid uninitialized variable warnings
Fix json_object_object_foreach to avoid uninitialized variable warnings
using ANSI C or MSC.
2018-03-04 22:37:53 -05:00
Eric Haszlakiewicz
2fd95844c3 Issue #396: check for toolchain compatibilty with _REENTRANT before adding it to CFLAGS. 2018-03-04 22:32:45 -05:00
Eric Haszlakiewicz
1e301d94be Merge pull request #402 from derwolfe/fuzz
Add fuzzers from OSS-Fuzz
2018-02-19 13:54:18 -05:00
Chris Wolfe
1e08150838 pull in fuzzers, add CI scripts later 2018-02-05 19:26:24 -06:00
Eric Haszlakiewicz
f8eb1dec64 Merge pull request #399 from jonathan-wiens/bugfix/initialize_variable
Avoid uninitialized variable warnings
2018-01-26 23:46:33 -05:00
Jonathan Wiens
cdc4e9f64b Avoid uninitialized variable warnings
Fix json_object_object_foreach to avoid uninitialized variable warnings
using ANSI C or MSC.
2018-01-17 15:57:52 +01:00
Eric Haszlakiewicz
4d814600d7 Bump the major version of the .so library generated up to 4.0 to avoid conflicts because some downstream packagers of json-c had already done their own bump to ".so.3" for a much older 0.12 release. 2018-01-15 23:34:05 -05:00
Eric Haszlakiewicz
250de31f17 Bump the major version of the .so library generated up to 4.0 to avoid conflicts because some downstream packagers of json-c had already done their own bump to ".so.3" for a much older 0.12 release. 2018-01-15 23:31:55 -05:00
Eric Haszlakiewicz
a70466ebbf PR#394: fix breakage with VS build. 2017-12-25 15:17:52 -05:00
Eric Haszlakiewicz
8270e83552 PR#394: don't always append the ".0" if the double value rounds to zero because some custom formats *will* include it (e.g. %.2f).
Also try to accomodate formats to explicitly exclude the decimal (e.g. %.0f).
2017-12-25 15:17:52 -05:00
Eric Haszlakiewicz
c652b6ad29 PR#394: fix breakage with VS build. 2017-12-24 14:42:58 -05:00
Eric Haszlakiewicz
d5da847f51 PR#394: don't always append the ".0" if the double value rounds to zero because some custom formats *will* include it (e.g. %.2f).
Also try to accomodate formats to explicitly exclude the decimal (e.g. %.0f).
2017-12-24 13:45:52 -05:00
Eric Haszlakiewicz
0992aac61f Remove the TRUE and FALSE defines. 2017-12-23 09:42:17 -05:00
Eric Haszlakiewicz
cfd09c87f0 Merge pull request #393 from besser82/enhancement/unsigned_refcount
json_object_private: Use unsigned 32-bit integer type for refcount
2017-12-17 09:52:27 -05:00
Björn Esser
c233f5c05e json_object_private: Use unsigned 32-bit integer type for refcount 2017-12-17 12:51:17 +01:00
Eric Haszlakiewicz
eb55c83600 Merge pull request #392 from besser82/json-c-0.13
json_object: Avoid invalid free (and thus a segfault) when ref_count gets < 0
2017-12-14 17:25:53 -05:00
Björn Esser
3e89278476 Makefile: Add ACLOCAL_AMFLAGS
This is recommended by the libtool manual.
2017-12-14 15:48:31 +01:00
Björn Esser
99ea93338d json_object: Avoid invalid free (and thus a segfault) when ref_count gets < 0 2017-12-14 15:45:22 +01:00
Eric Haszlakiewicz
5ea6a05bfa Merge pull request #389 from besser82/bugfix/invalid_free
json_object: Avoid double free (and thus a segfault) when ref_count gets < 0
2017-12-14 09:28:06 -05:00
Björn Esser
9aca3b6a08 json_object: Avoid invalid free (and thus a segfault) when ref_count gets < 0 2017-12-14 14:36:07 +01:00
Rikard Falkeborn
b5a3eff582 Fix non-GNUC define for JSON_C_CONST_FUNCTION 2017-12-13 22:04:28 -05:00
Eric Haszlakiewicz
1882e3c425 Merge pull request #390 from besser82/json-c-0.13
json_object: Add const size_t json_c_object_sizeof()
2017-12-13 22:03:51 -05:00
Eric Haszlakiewicz
8c214902d9 Merge pull request #386 from besser82/bugfix/aclocal_amflags
Makefile: Add ACLOCAL_AMFLAGS
2017-12-13 22:03:20 -05:00
Eric Haszlakiewicz
e411b1a36e Merge pull request #391 from rikardfalkeborn/fix-const-function-define
Fix non-GNUC define for JSON_C_CONST_FUNCTION
2017-12-13 21:51:13 -05:00
Rikard Falkeborn
84dcc01da1 Fix non-GNUC define for JSON_C_CONST_FUNCTION 2017-12-13 22:29:16 +01:00
Eric Haszlakiewicz
8baf437817 Apply gcc's "const" attribute to the json_c_object_sizeof() function as an optimizer hint. Also, rename that function from json_object_sizeof(). 2017-12-13 21:17:39 +01:00
Björn Esser
10fe00650c json_object: Add size_t json_object_sizeof() 2017-12-13 21:17:21 +01:00
Björn Esser
87556afe2a Makefile: Add ACLOCAL_AMFLAGS
This is recommended by the libtool manual.
2017-12-13 01:26:35 +01:00
Eric Haszlakiewicz
5b6d62259a Apply gcc's "const" attribute to the json_c_object_sizeof() function as an optimizer hint. Also, rename that function from json_object_sizeof(). 2017-12-12 18:26:51 -05:00
Eric Haszlakiewicz
94fd101601 Merge pull request #388 from besser82/enhancement/json_object_sizeof
json_object: Add size_t json_object_sizeof()
2017-12-12 18:14:40 -05:00
Eric Haszlakiewicz
25afa92ed5 Merge pull request #387 from LeSpocky/doc
doc: Use other doxygen feature to specify mainpage
2017-12-12 09:13:36 -05:00
Björn Esser
c123a1c21b json_object: Add size_t json_object_sizeof() 2017-12-11 16:16:15 +01:00
Alexander Dahl
89747ac758 doc: Use other doxygen feature to specify mainpage
Previously a special tag was added to README.md to make this the
main page in Doxygen generated docs. When viewing the README on the
GitHub page this tag was not hidden.

After upgrading to Doxygen 1.8.8 (and above) in changeset
219025727d a new Doxygen feature can be
used to specify the main page: Since release 1.8.3 Doxygen has a special
option to set a markdown file as main page. When using this option we
can drop the tag, making the README rendered by GitHub nice to look at.

Fixes: ae66b24369
2017-12-11 09:46:28 +01:00
Eric Haszlakiewicz
a19031411d Remove the previously deprecated lh_table_lookup() function, in favor of lh_table_lookup_ex(). 2017-12-10 00:27:01 -05:00
Eric Haszlakiewicz
f83cf244cd Remove the previously deprecated bits.h and the lh_abort() function. 2017-12-10 00:25:00 -05:00
Eric Haszlakiewicz
963e707ca4 Drop mention of README-WIN32.html in the release checklist. 2017-12-09 15:12:08 -05:00
Eric Haszlakiewicz
0631c37c7f Update the master branch to version 0.13.99 2017-12-09 14:59:48 -05:00
Eric Haszlakiewicz
8c4a941475 Tweak the release checklist slightly to fix problems noticed during this past release process. 2017-12-09 14:59:05 -05:00
Eric Haszlakiewicz
2849650f11 Regenerate Makefile.in with private headers excluded from install. 2017-12-07 18:28:34 -05:00
Eric Haszlakiewicz
b484ff0b6d Merge d447fbc from master to json-c-0.13, to avoid installing private headers. 2017-12-07 18:25:40 -05:00
Eric Haszlakiewicz
d447fbca77 Don't include private headers when installing. 2017-12-07 18:24:08 -05:00
Eric Haszlakiewicz
17374f345d Add generated docs for the 0.13 release. 2017-12-07 18:06:19 -05:00
Eric Haszlakiewicz
0c991854a1 Save autoconf/automake generated files for the new 0.13 release. 2017-12-07 18:05:30 -05:00
Eric Haszlakiewicz
1f3bc5f20c Bump the version up to 0.13 2017-12-07 18:03:29 -05:00
Eric Haszlakiewicz
d582d3ae5a Undeprecate the array_list, lh_table and printbuf typedefs, but move each to the corresponding header files. 2017-12-06 23:58:33 -05:00
Eric Haszlakiewicz
8c82f0e5c3 Squash doxygen warnings, and make a few slight improvements to the docs. 2017-12-06 23:53:12 -05:00
Eric Haszlakiewicz
219025727d Upgrade doxygen's Doxyfile to version 1.8.8 2017-12-06 00:27:53 -05:00
Eric Haszlakiewicz
f2f103b986 Add a brief overview of each file to the docs. 2017-12-06 00:20:59 -05:00
Eric Haszlakiewicz
d6d81e6ece Adjust the description of json_object_iterator a bit. 2017-12-05 18:43:18 -05:00
Eric Haszlakiewicz
c01635e03e Rearrange README.md a bit and make it work better in the doxygen generated docs.
Also, add a table of contents, and a brief section on using json-c with links to
the header files most likely to be useful.
2017-12-05 18:01:43 -05:00
Eric Haszlakiewicz
ae242720b6 Add a couple more issues to the list of those closed for 0.13 2017-12-05 18:00:09 -05:00
Eric Haszlakiewicz
11ab365324 Deprecated a few typedefs, add docs on json_object_iter, move json_number_chars and json_hex-chars to json_object_private.h. 2017-12-05 09:20:59 -05:00
Eric Haszlakiewicz
a47eafe868 Cast to int64_t instead of long in test_int_add to fix the test on 32-bit platforms. 2017-12-05 04:32:12 +00:00
Eric Haszlakiewicz
0e7ec2ffcd Add cast to int on tolower() to fix warnings about array subscripts. 2017-12-05 04:29:36 +00:00
Eric Haszlakiewicz
aedd36ac8b Make sure to include the "*" on function pointer arguments to avoid a warnings from VS2015. See also PR#384. 2017-12-04 18:17:52 -05:00
Eric Haszlakiewicz
95015d474e Merge pull request #384 from ssrlive/patch-1
Fix a VS 2015 compiler warning.
2017-12-04 18:11:09 -05:00
ssrlive
2643658b6f Update json_object.c 2017-12-04 14:46:41 +08:00
ssrlive
7709cb1355 Fix a VS 2015 compiler warning.
In VS 2015, the warning text is "warning C4550: expression evaluates to a function which is missing an argument list".
2017-12-04 14:43:25 +08:00
Eric Haszlakiewicz
b34d26ff25 Add a change log entry for the upcoming 0.13 release. 2017-12-02 22:13:22 -05:00
Eric Haszlakiewicz
e00a07b885 Clean up *.vg.out files too to "make distcheck" works. 2017-11-30 18:17:04 -05:00
Eric Haszlakiewicz
5dae561d33 In json_object_deep_copy(), copy over _userdata, at least for json_type_string's with the default serializer set, and provide a way for people using custom serializers to provide a custom shallow_copy method. 2017-11-29 23:35:38 -05:00
Eric Haszlakiewicz
96efeadd6e Always build the json_object_deep_copy() code, but conditionalize running it on a --benchmark command line option. 2017-11-29 17:58:57 -05:00
Eric Haszlakiewicz
437716c5b4 Rename _set_last_err() to _json_c_set_last_err(). 2017-11-29 09:36:53 -05:00
Eric Haszlakiewicz
d99edade72 Merge branch 'commodo-json_deep_copy' 2017-11-29 09:13:32 -05:00
Eric Haszlakiewicz
4dd92180c6 Merge branch 'json_deep_copy' of https://github.com/commodo/json-c into commodo-json_deep_copy 2017-11-29 09:12:59 -05:00
Eric Haszlakiewicz
3628f16dd6 Rename json_object_add_int() to json_object_int_inc() and eliminate the "int64" variant since we store 64-bit values internally anyway. 2017-11-27 17:57:36 -05:00
Alexandru Ardelean
1eab22f0da tests: add test_deep_copy test
Seems to perform better than outputting to string
and re-parsing it.

BENCHMARK - 1000000 iterations of 'dst2 = json_tokener_parse(json_object_get_string(src2))' took 20 seconds
BENCHMARK - 1000000 iterations of 'dst2 = json_tokener_parse(json_object_get_string(src2))' took 7 seconds

It should make a difference on embedded systems.
The test was performed on a i5 desktop CPU [~3.5 years of age].

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-11-27 16:17:48 +02:00
Alexandru Ardelean
bf80d5ad0e json_object: implement json_object_deep_copy()
Because doing `json_tokener_parse(json_object_get_string(src))`
feels sloppy, dirty, and makes me want to cry at night
sometimes.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-11-27 16:17:48 +02:00
Eric Haszlakiewicz
91662a5b69 Merge pull request #363 from jvijtiuk/integer_addition
Issue #338, add json_object_add_int functions
2017-11-27 09:06:39 -05:00
Eric Haszlakiewicz
9c9529f798 Update test_parse.expected to match the code. 2017-11-27 08:48:08 -05:00
Eric Haszlakiewicz
f81da5e57a Rewrite the json_tokener_state_inf handling in json_tokener to be simpler, and avoid needless copying of the input into a temporary buffer. 2017-11-27 00:20:11 -05:00
Eric Haszlakiewicz
31a6c2fac8 Add a few more tests to the partial parse to cover bytes after "Infinity". 2017-11-27 00:18:55 -05:00
Eric Haszlakiewicz
ba11d334db Save proper expected output for test_parse from the previous commit. 2017-11-27 00:08:59 -05:00
Eric Haszlakiewicz
48f7e389fb Fix parsing of "-Infinity" when the "-" and "Infinity" are split across multiple calls.
Add several additional test cases for partial parsing of infinity values.
2017-11-27 00:04:33 -05:00
Eric Haszlakiewicz
4d1e0b4409 Issue #371: fix parsing of "-Infinity" (although in a somewhat different location than PR#372 used), and add a case to test_parse to check for this. 2017-11-26 22:44:39 -05:00
Eric Haszlakiewicz
2a22858fe7 Add a few extra cases to test_parse to show how trailing bytes are handled, especially for parsing "Infinity". 2017-11-26 22:34:43 -05:00
Eric Haszlakiewicz
b8738dd623 Rewrite test_basic_parse() to factor out a single_basic_parse() to avoid lots of duplicate boiler plate code.
Also, emit the input string in the output so it's easier to see what's going on.
2017-11-26 22:33:36 -05:00
Eric Haszlakiewicz
05c85ddc21 On VS 2013 and newer, actually use strtoll instead of redefining it to _strtoi64. 2017-11-26 14:17:17 -05:00
Eric Haszlakiewicz
04788421fe Merge pull request #373 from commodo/fix-appveyor-build
build: fix build on appveyor CI
2017-11-26 14:08:53 -05:00
Eric Haszlakiewicz
49003242d1 Merge pull request #381 from busterb/fix-makedist
Fix makedist
2017-11-26 13:57:54 -05:00
Brent Cook
185f43afef add/remove missing distribution files 2017-11-26 08:33:04 -06:00
Brent Cook
6727b46454 ignore more autoconf goo 2017-11-26 08:33:04 -06:00
Alexandru Ardelean
03f3b95248 json_util: define strtoll as _strtoi64 for MSVC
Got the idea from this blog post:
  http://www.enchantedage.com/node/231

Simple & concise stuff :)

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-11-07 16:51:01 +02:00
Alexandru Ardelean
5641227c9b strerror_override: re-organize strerror_override.h
Always include <string.h> before _json_c_strerror() definition.
Should fix linker issues on MSVC.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-11-07 16:48:53 +02:00
Eric Haszlakiewicz
fabb84a785 Remove out of date win32 build information, and mention the need to use cmake there. 2017-10-22 22:46:05 -04:00
Eric Haszlakiewicz
e424af32b7 Fix definition of NELEM in the tests. 2017-10-22 22:28:35 -04:00
Eric Haszlakiewicz
ac09581cc2 Issue #370: work around Clang-on-windows oddities by rearranging ifdefs. 2017-10-22 22:19:41 -04:00
Eric Haszlakiewicz
c9c84ca7ee Issue #369: note some useful settings when building for Android. 2017-10-19 23:30:51 -04:00
Eric Haszlakiewicz
cf913621f1 Use cmake to create the json-c.pc file, as suggested by PR#362. 2017-10-09 13:16:00 -04:00
Eric Haszlakiewicz
579f0746f0 Issue #173, follow up to using strtoll to allow this to work on older Windows environments: Use cmake to generate config.h from config.h.win32, including checking for strtoll with cmake, or fall back to _strtoi64 for older MSVC's.
Also, add a few missing files to the list of sources to build.
2017-10-03 22:50:29 -04:00
Eric Haszlakiewicz
cfbdf7757b The new cmake-generated VS builds now generate a dynamic .dll instead of a .lib 2017-09-17 21:44:04 -04:00
Eric Haszlakiewicz
139eb64b43 For appveyor builds, json_config.h is actually generated in the "include" directory. 2017-09-17 21:35:53 -04:00
Eric Haszlakiewicz
66a77d129a Split the list of cmake headers into public and private ones, and only install the public ones. 2017-09-17 21:27:07 -04:00
Eric Haszlakiewicz
8899f3fbfb Add a "cmake ." line to the appveyor build file to try to get it working again. 2017-09-17 21:25:49 -04:00
Juraj Vijtiuk
1110e84cce Add json_object_add_int functions 2017-09-14 09:36:12 -04:00
Eric Haszlakiewicz
dc79d94c38 Merge pull request #361 from schwehr/int64
Fix double to int cast overflow in json_object_get_int64.
2017-09-11 21:25:27 -04:00
Kurt Schwehr
d9879c2533 Fix double to int cast overflow in json_object_get_int64.
Found with autofuzz in GDAL
2017-09-11 07:23:00 -07:00
Eric Haszlakiewicz
5454c4eaa3 Merge pull request #360 from jasonbking/master
Use strtoll() to parse ints
2017-09-07 22:45:48 -04:00
Eric Haszlakiewicz
4ac47a0219 Issue#353: attempt to fix or ignore a few -Wdocumentation messages from Clang. 2017-09-07 22:22:25 -04:00
Eric Haszlakiewicz
edde8eff9f Issue#353: mark lh_abort as actually deprecated, not just in the docs. 2017-09-07 22:21:29 -04:00
Jason King
e3fabe9a44 Add long long 64-bit check 2017-09-08 01:46:06 +00:00
Jason King
5355d387e9 Use strtoll to parse ints 2017-09-07 17:21:14 +00:00
Eric Haszlakiewicz
e1561ed1df Remove the Visual Studio project files as they were out of date, and should now be generated by using cmake. 2017-09-06 23:50:03 -04:00
Eric Haszlakiewicz
7e608c5728 Issue #359: Use consistent spacing in CMakeLists.txt 2017-09-06 23:42:38 -04:00
Eric Haszlakiewicz
32f503f738 Issue #359: Don't duplicate lh_get_hash, just omit the "inline" for VS2010. 2017-09-06 23:42:30 -04:00
Eric Haszlakiewicz
d58693b0f0 Merge pull request #359 from Haffon/api-0.12
update CMakeLists.txt for compile with visual studio at least 2010
2017-09-06 23:20:36 -04:00
Haffon
837a249f01 set JSON_C_HEADERS full file name 2017-09-07 10:39:14 +08:00
Haffon
e9f9f14f22 if compile with vs2015, enable the "static inline" declare. 2017-09-07 10:28:26 +08:00
Haffon
b301f4ea01 rollback api to 0.12 2017-09-07 10:02:21 +08:00
Haffon
86a3a6475f Merge pull request #2 from json-c/master
merge upstream
2017-09-07 09:33:07 +08:00
Eric Haszlakiewicz
548d000891 Undo a bit of 2d1da5ab: handle per-thread formats for double serialization, even if --enable-threading wasn't specified. 2017-09-05 01:56:42 -04:00
Eric Haszlakiewicz
b2afca4560 Issue #173: since some sscanf implementations return 0 for non-zero inputs, directly check for "0" in the input. 2017-09-05 01:53:13 -04:00
Eric Haszlakiewicz
2d1da5ab13 Add a --enable-threading configure option, and only use the (slower) __sync_add_and_fetch()/__sync_sub_and_fetch() function when it is specified. 2017-09-03 23:37:12 -04:00
Eric Haszlakiewicz
8777c9477a Use AC_CONFIG_MACRO_DIRS to specify path to the ax macros instead of passing -I to autoreconf in autogen.sh. 2017-09-03 22:35:58 -04:00
Eric Haszlakiewicz
5b11e9adff Explicitly check for GCC's atomic functions instead of depending on the __GNUC__ define.
Add a comment mentioning the limitation even though the _ref_count value is hanled atomically.
2017-09-02 14:48:17 -04:00
Eric Haszlakiewicz
ab0d4dbc69 Merge branch 'pull-211'
This is EmielBruijntes' "Atomic updates for the refcount"
2017-09-02 13:54:15 -04:00
Eric Haszlakiewicz
95dff31951 Issue #351: don't redefine SIZE_T_MAX if it's already defined. 2017-08-30 23:35:56 -04:00
Eric Haszlakiewicz
447d67d5f3 Issue #349: none of automake's clean targets are suite for really cleaning up everything, so add a local "really-clean" target that does so. 2017-08-30 23:17:24 -04:00
Haffon
95e174e2fb Merge pull request #1 from json-c/master
want to merge the original repository
2017-08-30 00:02:59 +08:00
Eric Haszlakiewicz
81f6edbfd5 PR#331: for Visual Studio, use a snprintf/vsnprintf wrapper that ensures the string is terminated. 2017-08-25 01:15:39 -04:00
Haffon
3141c3976b 1.make it can been compiled with Visual Studio 2010
2.replace json_object_get/put API with json_object_retain/release, as they operate the reference counter, and confused with array_list_get/put_idx.
3.replace array_list_get/put_idx API with array_list_get/insert to make them more clear to use.
2017-08-22 13:53:47 +08:00
Eric Haszlakiewicz
256ebcd827 Merge pull request #346 from schwehr/get_int
Clamp double to int32 when narrowing in json_object_get_int.
2017-08-21 20:50:58 -05:00
Eric Haszlakiewicz
474376f30a Merge pull request #345 from MrAnno/fix-make-dist
Fix make dist and make distcheck
2017-08-21 20:50:20 -05:00
Eric Haszlakiewicz
2f1fe55f66 Merge pull request #344 from fastogt/master
Fix Mingw build
2017-08-21 20:39:11 -05:00
Kurt Schwehr
ef7b08ce7f Clamp double to int32 when narrowing in json_object_get_int.
Avoids undefined behavior.  Found by autofuzz.
2017-08-08 07:54:38 -07:00
László Várady
e0e34f0a13 Fix 'make distcheck'
Signed-off-by: László Várady <laszlo.varady@balabit.com>
2017-08-04 12:31:11 +02:00
László Várady
db8dbbf371 Fix 'make dist'
EXTRA_DIST copies the listed directories/files from the _source_ directory
into the distribution.

Since the doc directory does not exist after running autogen + configure
+ make dist, the distribution tarball generation fails.

Note that the dist-hook rule below operates on 'distdir', not on the source
directory where EXTRA_DIST expects the existence of the doc folder.

In summary, even if I removed 'doc' from EXTRA_DIST, the dist tarball will
always contain the documentation (due to the dist-hook rule).

Signed-off-by: László Várady <laszlo.varady@balabit.com>
2017-08-04 12:31:06 +02:00
topilski
0a99e7a5c1 Fix Mingw build 2017-07-30 07:37:17 +03:00
topilski
65884f4d9e Fix parsing doubles for mingw 2017-07-30 07:30:05 +03:00
Eric Haszlakiewicz
af87944585 PR #336: fix to previous change, be sure to include string.h when we're using the real strerror. 2017-07-27 20:17:25 -07:00
Eric Haszlakiewicz
36dbe2d74e PR #336: Fix typo in defining STRERROR_OVERRIDE_IMPL 2017-07-27 20:10:53 -07:00
Eric Haszlakiewicz
8d8a785bd2 Merge pull request #340 from commodo/fix-appveyor-build
strerror_override: add extern "C" and JSON_EXPORT specifiers for Visual C++ compilers
2017-07-27 23:09:12 -04:00
Alexandru Ardelean
d8fbfc7aa1 build,travis: drop -enable-strerror-override argument (no longer exists)
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-19 15:22:36 +03:00
Alexandru Ardelean
ddce7c28e4 strerror_override: add extern "C" and JSON_EXPORT specifiers for Visual C++ compilers
Fixes build on AppVeyor.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-19 15:17:39 +03:00
Eric Haszlakiewicz
fcad0ec015 PR #336: since we can't use function overriding (due to problems with it on
OSX) always include the _json_c_strerror function but only enable it with a flag
 during tests.
2017-07-15 07:12:44 -07:00
Eric Haszlakiewicz
730ab7b019 PR #336: since we can't use function overriding (due to problems with it on OSX) always include the _json_c_strerror function but only enable it with a flag during tests. 2017-07-15 07:07:28 -07:00
Eric Haszlakiewicz
40317f079e Allow USE_VALGRIND to be set to anything starting with 0, N or n to disable valgrind during tests. 2017-07-15 07:03:18 -07:00
Eric Haszlakiewicz
c0b7d762b2 Merge pull request #336 from commodo/fix-tests
tests: fix tests in travis-ci.org
2017-07-13 22:39:01 -04:00
Alexandru Ardelean
bc2e30453b build,travis: enable strerror override option in build
To get consistent output between Linux & OS X.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-13 10:27:33 +03:00
Alexandru Ardelean
fb72160caf build: make strerror() override-able
If we want to override `strerror()` in libjson-c
to make tests consistent across platforms, we
need to do it build-wide as configure/build
option.

Apple linkers make it really hard to override functions
at link-time, and this seems to be locked down on travis-ci.org
[ for security reasons I assume ].
While I got it to work locally, it did not work
when running on travis.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-13 10:27:24 +03:00
Alexandru Ardelean
85f57859fd configure.ac: check for uselocale function only on Linux platforms
On Apple this seems to fail the `test_locale` test,
which would imply that the `uselocale` function
does not behave as expected.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-13 09:33:42 +03:00
Alexandru Ardelean
7b9432d564 tests: fix leak in test_util_file ; found by cppcheck
Which now seems to fail the build.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-13 09:05:13 +03:00
Alexandru Ardelean
effab3f91a travis,tests: run cppcheck only if it exists
ugh... seems cppcheck is not packaged for OS X
And `set -e` exposes this.

And also `cppcheck` seems to exit with non-zero
exit codes by default [even if errs found].

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-13 09:05:13 +03:00
Alexandru Ardelean
9d47ae824c tests: compress test_utile_file with test_basic
More code compression/de-duplication.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-11 10:38:25 +03:00
Alexandru Ardelean
ba8625a701 tests: add set -e specifier to bail early on build run
Seems that test1 is failing, but travis is not catching it.
Likely, this is because the `cppcheck` returns success
and we need to bail on the `make check` step.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-11 10:38:25 +03:00
Eric Haszlakiewicz
dd8dcb8228 Merge pull request #335 from commodo/build_status_travis
README.md: show build status tag from travis-ci.org
2017-07-11 00:16:12 -04:00
Alexandru Ardelean
061afc7993 README.md: show build status tag from travis & appveyor.
Looks nice to see a `Build Passing` tag when you
scroll to the README.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-07-10 11:45:24 +03:00
Eric Haszlakiewicz
b64402ede2 Move a variable declaration to the start of the block to work better with older compilers. 2017-07-09 16:09:09 -07:00
Eric Haszlakiewicz
a14ada5730 Remove a spurious comma in configure.ac 2017-07-09 16:00:32 -07:00
Eric Haszlakiewicz
33db761551 Updated expected test1 output which should have been included in commit fd9b3b2. 2017-07-09 15:22:53 -07:00
Eric Haszlakiewicz
1d3e97f2ab Comment out the warning about racy random seed initialization in lh_char_hash(), if you're on a platform where it'll be triggered it just makes it a pain to build. 2017-07-09 15:13:02 -07:00
Eric Haszlakiewicz
f7a44ad101 Add extra casts to void * to squash some warning on certain systems (e.g. CentOS w/ gcc 4.1.2). 2017-07-09 15:08:21 -07:00
Eric Haszlakiewicz
7b7a76e161 Fix bad usage of strncat introduces in 1a94c70. Pointed out by @rouault in PR #331. 2017-07-09 15:04:18 -07:00
Eric Haszlakiewicz
55ecae3e58 Eliminate static qualifiers on a couple local variables that were causing thread safety issues. Suggested by @rouault in PR #331. 2017-07-09 14:56:18 -07:00
Eric Haszlakiewicz
5a99e527ff Reformat json_object_double_to_json_string_format() to have consistent spacing. 2017-07-08 20:33:28 -07:00
Eric Haszlakiewicz
5e33dabda1 Issue #308: improve the build instructions in README.md to include the exact commands to run for installing prerequisites, as mentioned earlier on Issue #308. 2017-07-08 19:35:06 -07:00
Eric Haszlakiewicz
fd9b3b2260 Issue #332: fix a long-standing bug in array_list_put_idx() where it would attempt to free previously free'd entries due to not checking the current array length.
Add a test that triggers the problem to ensure it stays fixed.
2017-07-08 19:04:35 -07:00
Eric Haszlakiewicz
7fd74fc7a3 Merge pull request #312 from Tailmon/master
Fix CMake Build process improved for MinGW and MSYS2
2017-07-08 21:25:48 -04:00
Eric Haszlakiewicz
4deed587e7 Merge pull request #319 from Dashlane/visual-studio-build
Windows: Fix dynamic library build with Visual Studio
2017-07-08 21:24:55 -04:00
Eric Haszlakiewicz
a3f97eeeeb Merge pull request #329 from commodo/rename-static-lib
build,cmake: build,cmake: rename libjson-c-static.a to libjson-c.a
2017-07-08 15:44:27 -04:00
Eric Haszlakiewicz
db3115cee9 Merge pull request #330 from commodo/symlink_some_tests
tests: symlink basic tests to a single file that has the common code
2017-07-08 15:43:45 -04:00
Eric Haszlakiewicz
cc201fdcaa Merge pull request #333 from besser82/bugfix/obsolete_macros_autotools
Replace obsolete AM_PROG_LIBTOOL
2017-07-08 15:17:17 -04:00
Björn Esser
cec97ebc6f Replace obsolete AM_PROG_LIBTOOL 2017-07-04 12:54:46 +02:00
Alexandru Ardelean
73636c2ed0 tests: symlink basic tests to a single file that has the common code
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-06-22 10:08:26 +03:00
Alexandru Ardelean
8f6ecbf37b build,cmake: set C_STANDARD 99 property to libjson-c-static
Apply the same property as to json-c.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-06-19 18:12:28 +03:00
Alexandru Ardelean
4fb2eefac2 build,cmake: rename libjson-c-static.a to libjson-c.a
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-06-19 18:08:45 +03:00
Eric Haszlakiewicz
a36396992d Merge pull request #321 from commodo/fix-cmake-vasprintf
build,cmake: fix vasprintf implicit definition and generate both static & shared libs
2017-06-19 00:34:44 -04:00
Eric Haszlakiewicz
e8e574fbe4 Issue #161: add a json_object_to_fd() function. 2017-06-18 18:44:45 +00:00
Eric Haszlakiewicz
23e064ad29 Fix test_double_serializer expected output. 2017-06-18 18:34:41 +00:00
Eric Haszlakiewicz
1a94c70336 Add a json_c_set_serialization_double_format() function to set the *library-wide* format for how doubles are written to a serialized JSON output. 2017-06-18 18:12:07 +00:00
Eric Haszlakiewicz
8581806558 Make _set_last_err() non-static so it can be used outside of json_util.c 2017-06-18 18:11:17 +00:00
Eric Haszlakiewicz
e76ea37772 Merge pull request #325 from rouault/fix_stack_overflow_in_json_object_double_to_json_string_format
Fix stack buffer overflow in json_object_double_to_json_string_format()
2017-05-21 21:35:16 -04:00
Even Rouault
2c2deb87f8 Fix stack buffer overflow in json_object_double_to_json_string_format()
Issue originally found in the json-c 0.11 internal copy in GDAL but also found
in latest git version.

If doing things like
json_object* obj = json_object_new_double(1e300);
json_object_set_serializer(obj, json_object_double_to_json_string, "%f", NULL);
json_object_to_json_string(obj)

    size = snprintf(buf, sizeof(buf),
        format ? format :
          (modf(jso->o.c_double, &dummy) == 0) ? "%.17g.0" : "%.17g",
          jso->o.c_double);
will return a value greater than 128 since at least 300 characters are needed.
This value is then passed to printbuf_memappend(pb, buf, size); that tries to
read size bytes in buf.

So we should clamp size to sizeof(buf). And on Windows, _snprintf() returns -1
in that situation, so deal also with this case.

Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1682
Credit to OSS-Fuzz
2017-05-18 22:36:35 +02:00
Alexandru Ardelean
f10a5ae4d7 .gitignore: add cmake generated files
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-05-03 12:00:38 +03:00
Alexandru Ardelean
4b5e39c89c build,cmake: generate both static and shared libjson
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-05-03 12:00:38 +03:00
Alexandru Ardelean
cfbbb23141 build,cmake: add _GNU_SOURCE to CFLAGS
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2017-05-03 11:36:45 +03:00
David Henot
a9f265d166 Fix library build with Visual Studio 2017-04-26 14:11:17 +02:00
Pablo Sanabria
d3f813a14e Fixed linkhash.c for MinGW
Added #ifdef conditions for MinGW because this compiler doesn't define
gcc atomic builtins, so __sync_val_compare_and_swap was not found
neither any of any __GCC_HAVE_SYNC_COMPARE_AND_SWAP_* definition
2017-03-26 23:14:37 -03:00
Pablo Sanabria
2cda677d06 Fix CMake Build process for MinGW and MSYS2
This fix includes some fixes for config.h.win32 that was generating
some compiling errors on MinGW64 and also fix CMakeLists.txt in order to
give better support to MinGW and MSYS2
2017-03-26 23:14:37 -03:00
Eric Haszlakiewicz
6bd86d1044 Merge pull request #311 from jj1118/master
Fix error C3688 when compiling on Visual Studio 2015
2017-03-26 03:52:57 +00:00
Jason Li
0f81ecf5f4 Fix error C3688 when compiling on Visual Studio 2015: invalid literal suffix 'PRId64'; literal operator or literal operator template 'operator ""PRId64' not found 2017-03-24 14:53:25 +08:00
Eric Haszlakiewicz
4e673656a1 Merge pull request #310 from marxin/fix-gcc7-warnings
Add FALLTHRU comment to handle GCC7 warnings.
2017-03-22 23:37:14 -04:00
marxin
014924ba89 Add FALLTHRU comment to handle GCC7 warnings. 2017-03-21 08:42:11 +01:00
Eric Haszlakiewicz
82f5a4ab29 Merge pull request #305 from alexanderst/master
Fix compilation without C-99 option
2017-03-03 23:12:56 -05:00
Alex
175d934cff Fix compilation without C-99 option 2017-03-02 10:57:49 +02:00
Eric Haszlakiewicz
8c86207258 Add a few more cases to test_parse to provide some examples of how parsing works; should help address the questions raised in Issue #302. 2017-02-26 16:22:45 +00:00
Eric Haszlakiewicz
d74b7eb144 Merge pull request #303 from yogo1212/tokener_h
fix doc in tokener header file
2017-02-24 22:34:36 -05:00
Leon M. George
482e771af1 fix doc in tokener header file 2017-02-20 04:41:55 +01:00
Eric Haszlakiewicz
3948fcad2d Issue #300: Cast size_t values to int instead of unsigned long long to work around broken behavior of MinGW. 2017-02-05 17:00:35 +00:00
Eric Haszlakiewicz
bad6c9a427 Issue #300: Some platforms, such as MinGW, don't have ETXTBSY and ENOTBLK, so skip those there. 2017-02-05 04:44:30 +00:00
Eric Haszlakiewicz
9a64fd7d55 Issue #300: Use %p instead of %lx in test_util_file since some platforms' pointers are larger than "unsigned long".
Also, there's no need to worry about output consistency here, since it'll be
 different anyway due to different pointer values.
2017-02-05 04:38:53 +00:00
Eric Haszlakiewicz
91977159ee Add cast to int in calls to isdigit() since some platforms complain about char being used as an array index. 2017-02-05 04:34:05 +00:00
Eric Haszlakiewicz
3fab117e4e Merge pull request #299 from qlyoung/perf-improvements
Improve json_object -> string performance
2017-02-04 11:13:14 -05:00
Quentin Young
f6f852fd93 Restore sprintbuf(), add macro for string literals
Hawciz pointed out that the previous commit modifies the public
interface of printbuf. Per his suggestion, sprintbuf() was restored
and a new pair of macros was added that wraps printbuf_memappend().

Using a wrapper macro instead of modifying sprintbuf() also reduces
function call overhead, bringing total performance gains to
approximately 400%.
2017-02-04 01:02:00 +00:00
Eric Haszlakiewicz
75825a9f01 Use strdup instead of strndup in test1.c, there's no need for the latter because json_object_to_json_string_length() will always return a properly sized string. 2017-02-03 17:10:27 +00:00
Quentin Young
9ff0f4987f Improve json_object -> string performance
Removes variadic prints for ~3x performance improvement.
2017-02-02 17:33:54 +00:00
Eric Haszlakiewicz
8157784483 Issue #295: also check if size_t is the size of long long, to help support 64-bit Windows platforms. 2017-01-07 22:55:31 -05:00
Eric Haszlakiewicz
177c401e02 Ignore tests/test_float 2016-12-18 14:35:06 -05:00
Eric Haszlakiewicz
0a010a59eb Change a memcpy that should be a memmove within json_pointer_get, and fix memory leaks in of one the json_pointer tests. 2016-12-18 14:33:41 -05:00
Eric Haszlakiewicz
779b77a164 Note some minimum versions needed for autoconf, etc... 2016-12-12 23:01:20 -05:00
Eric Haszlakiewicz
a443b9f7e7 Issue#292: bump the required version of configure listed in configure.ac so a more useful error message is generated, rather than failing later because the extra macros from ./autoconf-archive/m4/ didn't get loaded. 2016-12-11 19:18:33 -08:00
Eric Haszlakiewicz
1e4824a841 Merge pull request #289 from jgerhards/i-278
bugfix: floating point representaion without fractional part
2016-12-04 20:52:33 -05:00
Jan Gerhards
61db4cfac5 testbench: add test for floating point representation 2016-11-27 11:50:48 +01:00
Jan Gerhards
ca7a1973e2 bugfix: floating point representaion without fractional part
closes https://github.com/json-c/json-c/issues/278
2016-11-27 11:47:00 +01:00
Eric Haszlakiewicz
d050f1e622 Merge pull request #287 from commodo/json_pointer_va_args
json_pointer: extend setter & getter with printf() style arguments
2016-11-24 15:03:50 -05:00
Alexandru Ardelean
47f32a76ef vasprintf_compat.h: spin-off this compat header ; use math_compat.h as template
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2016-11-22 16:37:30 +02:00
Alexandru Ardelean
8cb86a583a strdup_compat.h: re-spin this compat header ; use math_compat.h as template
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2016-11-22 16:37:29 +02:00
Alexandru Ardelean
c0da680f13 test_json_pointer: update test with a few printf variants
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2016-11-22 16:37:18 +02:00
Alexandru Ardelean
742e059da1 json_pointer: add json_pointer_getf/setf() function variants
These include support for printf() style args for path.

Adds support for calling with 'json_pointer_getf(obj, &res, "/foo/%d/%s", 0, bar)'
style args.

Makes it easier for doing more dynamic stuff/magic, without
needing to use vasprintf() externally.

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2016-11-22 16:33:49 +02:00
Alexandru Ardelean
97dd7d5103 json_pointer.c: fix whitespace
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2016-11-16 16:15:53 +02:00
Eric Haszlakiewicz
8e12f4a21c Merge pull request #285 from ebassi/revert-strdup-compat
Revert "compat/strdup.h: move common compat check for strdup() to own…
2016-11-09 09:56:58 -05:00
Emmanuele Bassi
7601f20d70 Revert "compat/strdup.h: move common compat check for strdup() to own file"
This reverts commit aaba8c1080.

This commit breaks builddir != srcdir build, but, more importantly, it
also adds a dependency on a header, "config.h", which is not installed
and it's supposed to be private — since it's generated at configuration
time and it's not meant to be used by projects compiling against a
library.
2016-11-07 20:51:11 +00:00
Eric Haszlakiewicz
e8ce1db471 Merge pull request #283 from commodo/json_pointer
json_pointer: add first revision based on RFC 6901
2016-11-04 11:48:30 -04:00
Alexandru Ardelean
ee7fc26de1 tests: add test_json_pointer test
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2016-11-04 09:59:43 +02:00
Alexandru Ardelean
2fbdee19da tests/strerror_override.c: fix compilation error
I got this on Mac OS X at least.
Not sure if it shows up in other envs

error:
```
strerror_override.c:53:13: error: incompatible redeclaration of library function 'strerror' [-Werror,-Wincompatible-library-redeclaration]
const char *strerror(int errno_in)
```

Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2016-11-04 09:51:44 +02:00
Alexandru Ardelean
0e91183300 json_pointer: add first revision
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2016-11-04 09:51:36 +02:00
Alexandru Ardelean
aaba8c1080 compat/strdup.h: move common compat check for strdup() to own file
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
2016-11-03 15:51:33 +02:00
Eric Haszlakiewicz
d4899bd4d5 Handle NULL objects in json_object_get_userdata() by returning NULL, but abort in json_object_set_userdata() since we can't actually do anything with the userdata. 2016-10-29 15:42:36 -04:00
Eric Haszlakiewicz
f8132f932d Issue #280: add a few assert() calls to ensure objects are of the appropriate type. 2016-10-29 15:31:31 -04:00
Eric Haszlakiewicz
33339ae595 Use json_visit() to clear the serializer data set when parsing so the output from test_parse reflects the actual values parsed. 2016-10-29 15:13:16 -04:00
Eric Haszlakiewicz
ecdc14f535 Add a json_c_visit() function to provide a way to iterate over a tree of json-c objects. 2016-10-29 15:01:20 -04:00
Eric Haszlakiewicz
7e12b9f47c Fix broken key-order test in test_compare. 2016-10-10 00:13:39 -04:00
Eric Haszlakiewicz
80150a18d3 Merge pull request #272 from sgerbino/master
Allows for compilation with CMake on macOS
2016-10-08 13:13:33 -04:00
Eric Haszlakiewicz
818156f6f7 Merge pull request #277 from ALLTERCO/json_object_set_xxx
Json object set xxx
2016-10-08 12:08:53 -04:00
Stoian Ivanov
be63ba99ca try restore windows automated builds 2016-10-07 22:54:06 +03:00
Stoian Ivanov
a26305d428 fix compiler warning for int sizes 2016-10-07 01:07:34 +03:00
Stoian Ivanov
e518b22b72 string set and tests 2016-10-07 00:51:24 +03:00
Stoian Ivanov
9a313f767f gitignore test; add double value set checks in test 2016-10-06 23:32:19 +03:00
Stoian Ivanov
6a0667567d some simple tests 2016-10-06 23:16:29 +03:00
Eric Haszlakiewicz
36a28fcb0c Issue #275: fix out of bounds read when handling unicode surrogate pairs. 2016-10-05 23:15:51 -04:00
Stoian Ivanov
05f025c075 some basic set 2016-10-05 23:55:46 +03:00
Eric Haszlakiewicz
5fd99e62ed Merge pull request #273 from konoal/master
fixed wrong object name in json_object_all_values_equal
2016-09-28 08:08:01 -04:00
Eric Haszlakiewicz
5653bc61a4 Merge pull request #274 from pepevel/master
Support for 64 bit pointers on Windows
2016-09-28 08:05:50 -04:00
pepevel
0df34b4c96 Support for 64 bit pointers on Windows 2016-09-27 20:12:03 +01:00
Alexey Konovalov
b2fbf93df0 fixed wrong object name in json_object_all_values_equal 2016-09-27 11:20:49 +03:00
Steve Gerbino
c5c93724fe Changed CMake variables and adding output for debugging 2016-09-26 00:19:46 -04:00
Steve Gerbino
0c749d96ea Target C99 standards to get rid of warnings 2016-09-26 00:09:55 -04:00
Steve Gerbino
928858457b Modified the execute_process commands 2016-09-25 23:08:39 -04:00
Steve Gerbino
bdead39f63 Changed PROJECT_SOURCE_DIR to CMAKE_CURRENT_SOURCE_DIR to fix building when used as external project 2016-09-25 22:32:35 -04:00
Steve Gerbino
702b42eaf3 Modified CMakeLists.txt to use autotools to generate configuration for Unix systems 2016-09-25 22:03:56 -04:00
Steve Gerbino
43afcc0d99 Lowered CMake required version so that Travis CI is able to build, moved include folder to include/json-c to match the behavior of autotools 2016-09-25 18:49:34 -04:00
Steve Gerbino
fe941a26a3 Trailing slash seems necessary in the install command to get contents 2016-09-25 15:04:05 -04:00
Steve Gerbino
ab7c09dc8e Forget DESTINATION in CMake install command 2016-09-25 14:59:38 -04:00
Steve Gerbino
34b4a490b1 We need to also install the generated configuration files 2016-09-25 14:57:15 -04:00
Steve Gerbino
989e39d995 Fixed typo in CMakeList.txt FILES_MATCHING 2016-09-25 14:46:33 -04:00
Steve Gerbino
e2ee223dc2 Added install instructions for CMake 2016-09-25 14:42:14 -04:00
Steve Gerbino
69f018c49e Resolves json-c/json-c#271 by adding MacOS configuration files and modifies CMakeLists.txt to use them 2016-09-25 02:14:57 -04:00
Stoian Ivanov
fae09456ae json_object_set_boolean for upstream style check 2016-09-21 01:31:00 +03:00
Eric Haszlakiewicz
9f9c3326fe Merge pull request #267 from sixlettervariables/patch-1
Removes me as Win32 maintainer, because I'm not.
2016-09-12 18:19:26 -04:00
Christopher Watford
21e5ffbcf8 Removes me as a maintainer, because I'm not.
Updates README-WIN32.html to remove my status as a maintainer (I'm not). Also removes ancient porting notes and adds a reference to json_config.h.win32 which is where most folks should go to start with Windows issues.
2016-09-12 14:18:21 -04:00
Eric Haszlakiewicz
ea1499a372 Issue #263: add const so the prototype for json_object_object_add_ex() matches the definition. 2016-08-24 23:41:22 -04:00
Randy Armstrong
c5b5a984cd Add Cmakefile 2016-08-24 22:49:16 -04:00
Eric Haszlakiewicz
0fcf1d1ae7 Fix memory leak and inconsistent output (due to varying fd numbers) in test_util_file. 2016-08-20 23:06:22 -04:00
Eric Haszlakiewicz
5fccfed4f4 Issue #260: add a check to prevent trivial loops in the object tree, even though it is up to the callers to avoid doing so in more complex cases. 2016-08-20 22:42:59 -04:00
Eric Haszlakiewicz
c4d060bf80 json_object_object_add_ex() should have shared code with json_object_object_add(), and been changed to return int at the same time the latter was. Do that now.
Also correct a couple of calls to _to_json_string to check the return value.
2016-08-20 22:42:59 -04:00
Eric Haszlakiewicz
e40505e489 Merge branch 'RyDroid-tests' 2016-08-13 09:17:25 -04:00
Eric Haszlakiewicz
61cd433131 Merge branch 'tests' of https://github.com/RyDroid/json-c into RyDroid-tests
Conflicts:
	tests/test_util_file.c
2016-08-13 09:17:01 -04:00
Eric Haszlakiewicz
e076ae756d Merge pull request #251 from RyDroid/editorconfig
Adding a file for EditorConfig
2016-08-13 08:31:57 -04:00
Nicola Spanti (RyDroid)
8215c0ac0e Very minor changes to some tests 2016-08-13 00:53:33 +02:00
Nicola Spanti (RyDroid)
b222d4386e Adding a file for EditorConfig 2016-08-13 00:27:58 +02:00
Eric Haszlakiewicz
4d62de3898 Revert bogus change to json_object_get() made in f40b08d8 that caused it to always return NULL. (Issue #259)
Also undo NULL check in json_tokener_set_flags(): it's not at all valid toi
 try to set flags on a NULL pointer, and doing so should not be silently
 ignored.
2016-08-11 17:05:41 -04:00
Eric Haszlakiewicz
0ad87649d4 Merge pull request #255 from RyDroid/minor-c2
Minor changes in C source code
2016-08-10 15:06:30 -04:00
Eric Haszlakiewicz
9f9a9ac426 Merge pull request #252 from RyDroid/minor-no-c
Very minor changes not related to C source code
2016-08-09 07:39:27 -04:00
Eric Haszlakiewicz
71d0615e98 Merge branch 'jobol-issue-165' 2016-08-09 07:38:18 -04:00
Eric Haszlakiewicz
f3db59d990 Merge branch 'issue-165' of https://github.com/jobol/json-c into jobol-issue-165
Conflicts:
	tests/test_util_file.c
2016-08-09 07:36:54 -04:00
Eric Haszlakiewicz
bc3e691a1e Merge pull request #253 from RyDroid/cppcheck-travis
Adding a test with cppcheck for Travis CI
2016-08-08 22:57:56 -04:00
Eric Haszlakiewicz
51b011ce24 Merge pull request #249 from RyDroid/readme
Improving README
2016-08-08 22:53:33 -04:00
Eric Haszlakiewicz
d758f4a8a7 Add a brief style guide. Address Issue #257. 2016-08-08 22:50:23 -04:00
Eric Haszlakiewicz
33ae9f5d44 Merge pull request #250 from RyDroid/gitignore
Improving .gitignore
2016-08-08 18:42:01 +00:00
Nicola Spanti (RyDroid)
ab1d761865 Improving .gitignore 2016-08-08 15:29:47 +02:00
Nicola Spanti (RyDroid)
f2e7dda910 Improving README 2016-08-08 15:25:31 +02:00
Nicola Spanti (RyDroid)
36b4003118 Adding a test with cppcheck for Travis CI 2016-08-08 15:23:27 +02:00
Nicola Spanti (RyDroid)
f40b08d8f0 Minor changes in C source code 2016-08-08 15:20:41 +02:00
Nicola Spanti (RyDroid)
250a3987cf Very minor changes not related to C source code 2016-08-08 15:13:43 +02:00
Eric Haszlakiewicz
9688f343a5 Issue #246: Include xlocale.h too, to get locale_t defined, since not all OSes include that in locale.h 2016-08-02 22:25:05 -04:00
José Bollo
1fceb2207a test: add test of 'json_object_to_json_string_length'
The test is implied in test1.

The idea is to check that the returned lengths and strings
are identical to what is expected to return the already
tested function 'json_object_to_json_string_ext'.

Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2016-08-01 15:04:54 +02:00
Eric Haszlakiewicz
fa76e4a8c9 Issue #195: Actually call uselocale() in the new locale handling code in json_tokener.
Also, be sure the right locale_t is freed if we fail on the second uselocale.
Finally, fix test_locale so it *doesn't* use json_object_to_json_string as
 that will simple re-emit the original parsed string values.
2016-07-31 14:43:14 -04:00
Eric Haszlakiewicz
4091b9c87e Issue #195: use uselocale() instead of setlocale() in json_tokener to behave better in threaded environments. 2016-07-30 21:34:58 -04:00
Eric Haszlakiewicz
7d637362b7 Linux's %p format doesn't return "0x0" for NULL pointers, so switch to using %lx for consistency. 2016-07-30 15:09:51 -04:00
Eric Haszlakiewicz
deb9fa482d Issue #240: add arbitrary use of val's in foreach loops to squash warnings about unused variables. 2016-07-30 18:27:53 +00:00
jobol
344009bf26 Add method 'json_object_to_json_string_length'
This new method allows to also
get the length of the generated string.

Fix #165

Change-Id: Iea91404027f143ca3d29a4c58d7c07ae53556110
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2016-07-27 14:45:25 +02:00
José Bollo
54ae254537 Fix a compiling error
The function fstat isn't declared without this include
on debian strect/sid and Fedora-23

Change-Id: I660a32ff173dcba04674aed51ed855b4fa55ac67
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
2016-07-27 14:42:25 +02:00
Eric Haszlakiewicz
b366750e11 Merge pull request #239 from ploxiln/printbuf_empty
initialize null terminator of new printbuf
2016-07-16 13:49:08 -04:00
Pierce Lopez
868b20ce4e initialize null terminator of new printbuf
It's possible (e.g. by using json_object_from_file() on an empty file)
to get json-c to try to use a printbuf that has never had anything
written to it. Before this change, it could access a string that
should be length zero, but was never initialized, and could
theoretically have an unexpected string.
2016-07-16 00:30:31 -04:00
Eric Haszlakiewicz
2b255d0ebf Fix absolute paths in test_util_file that vary depending on where it is run. 2016-06-27 04:30:10 +00:00
Eric Haszlakiewicz
b1d65b62db Issue #113: Add more files to EXTRA_DIST and a dist-hook to get distcheck to at least not fail. 2016-06-27 04:30:04 +00:00
Eric Haszlakiewicz
1071385896 Issue #113: add "new" files to appropriate variables in Makefile, and note the need to run "make distcheck" as part of the release process.
Fix issues with the test script so it works under distcheck too.
2016-06-27 04:15:30 +00:00
Eric Haszlakiewicz
29005ef7b1 Merge pull request #238 from nagamalli9999/master
linkhash.c: optimised the table_free path
2016-06-26 23:09:42 -04:00
Eric Haszlakiewicz
29ef73f21d Issue #189: Eliminate use of MC_ERROR from json_util.c, and add a json_util_get_last_err() function to retrieve the error for those callers that care about it.
Add tests and descriptions for the functions in json_util.c
2016-06-26 02:20:33 +00:00
Eswar Yaganti
78cf6e63ff linkhash.h: removed redundant params from comments 2016-06-25 23:05:41 +05:30
Eswar Yaganti
5fb63a09f9 linkhash.c: optimised the table_free path 2016-06-25 22:50:36 +05:30
Eric Haszlakiewicz
595891729e Issue #236: Add -Wcast-qual and fix casts to retain constness.
To better distinguish between entry->k and entry->v being const within linkhash, but non-const outside, add lh_entry_v() and lh_entry_k() accessors.
Make lh_entry->k const.
2016-06-11 18:19:39 +00:00
Eric Haszlakiewicz
f285c0a2e5 Issue #175: disable the fast-and-loose code in hashlittle() when running with AddressSanitizer. 2016-06-08 03:24:59 +00:00
Eric Haszlakiewicz
ae66b24369 Mention that we're aiming to follow RFC 7159 now.
Cause README.md to show up in Doxygen output as the main page.
2016-06-08 02:37:15 +00:00
Eric Haszlakiewicz
40de3c67cd Merge pull request #232 from NeoRaider/size_t2
tests/tests1: fix printf format for size_t arguments
2016-06-07 16:47:40 -04:00
Matthias Schiffer
d13cfe10f6 tests/tests1: fix printf format for size_t arguments
Change %d to %llu and add cast to unsigned long long for size_t arguments,
otherwise compilation will fail with errors like:

test1.c:70:15: error: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘size_t {aka long unsigned int}’ [-Werror=format=]

%zu is avoided to stay compatible with old libc versions (like old Visual
Studio).
2016-06-07 10:49:42 +02:00
Eric Haszlakiewicz
a42caac805 Copy over note about the 0.12.1 release to the master branch. 2016-06-07 04:13:15 +00:00
Eric Haszlakiewicz
0539191d18 Check the __GCC_HAVE_SYNC_COMPARE_AND_SWAP_{2,4,8} defines to decide whether to use __sync_val_compare_and_swap(), as described at https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html
Also, fix the types of the variables when building on Windows.
Also, should address issue #214.
2016-06-07 03:26:46 +00:00
Eric Haszlakiewicz
1eb5a700f9 Merge pull request #230 from ebassi/master
Use stdint.h to check for size_t size
2016-06-06 22:59:38 -04:00
Eric Haszlakiewicz
e61eb409fd Merge pull request #233 from NeoRaider/size_t3
Include stddef.h in json_object.h
2016-06-06 22:55:44 -04:00
Eric Haszlakiewicz
ce7ad480f4 Merge pull request #234 from NeoRaider/userdata
Add public API to use userdata independently of custom serializer
2016-06-06 22:54:40 -04:00
Michael Clark
0e1a057449 Remove reference to svn.metaparadigm.com
svn.metaparadigm.com no longer exists so it is not possible to use source from there.
2016-06-07 08:11:16 +12:00
Matthias Schiffer
f87e378d48 Add public API to get and set userdata
Also, json_object_set_serializer is changed to respect the userdata
and user_delete parameters when to_string_func is NULL.
2016-05-29 11:24:55 +02:00
Matthias Schiffer
c2b004ba0e Make default double serializer ignore userdata again
The user might want to use the userdata for something different, so the
serializer should ignore it by default.

Explicitly setting the serializer to json_object_double_to_json_string will
still make it interpret the userdata as a format string.
2016-05-29 11:24:55 +02:00
Matthias Schiffer
22fdcfc71a Include stddef.h in json_object.h
It is needed for size_t.
2016-05-29 05:19:50 +02:00
Emmanuele Bassi
28c1ca1240 Use stdint.h to check for size_t size
If we use json_inttypes.h we are going to fail when builddir != srcdir,
and since JSON_C_HAVE_INTTYPES_H is defined after the configure script
has run, including json_inttypes.h would be the equivalent on including
stdint.h anyway.

This fixes the build of json-c in the GNOME Continuous builder.
2016-05-23 10:20:48 +01:00
Eric Haszlakiewicz
7ae5c3f7a6 Issue #142: un-deprecate json_object_object_get(), but note why you might want to use json_object_object_get_ex() instead. 2016-05-23 03:02:34 +00:00
Eric Haszlakiewicz
5e4e5f7d9d Issue #205: use _strdup instead of strdup on Windows. 2016-05-23 02:37:09 +00:00
Eric Haszlakiewicz
f4ca1325ae Merge branch 'doctaweeks-fixes-for-upstream' 2016-05-23 02:12:51 +00:00
Eric Haszlakiewicz
996be85843 Fix a few places that needed adjustment for the size_t changes, including updating the range checks to use a calculated SIZE_T_MAX. 2016-05-23 02:10:58 +00:00
Eric Haszlakiewicz
9a2915ce66 Merge branch 'fixes-for-upstream' of https://github.com/doctaweeks/json-c into doctaweeks-fixes-for-upstream 2016-05-23 02:08:28 +00:00
Eric Haszlakiewicz
b2c5969aff Merge pull request #193 from jplitza/master
Make serialization format of doubles configurable
2016-05-18 16:10:27 -04:00
Jan-Philipp Litza
21dc5dc92b Export json_object_double_to_json_string() and use custom format string 2016-05-06 16:12:44 +02:00
Jan-Philipp Litza
2200ffa8b0 Fix code in docs for json_object_new_double_s() 2016-05-06 16:12:19 +02:00
Eric Haszlakiewicz
3345b25962 Add tests for the json_object_array_del_idx() function. 2016-04-30 19:09:45 +00:00
Eric Haszlakiewicz
9edf2418e0 Merge branch 'Protovision-master' 2016-04-30 18:53:16 +00:00
Eric Haszlakiewicz
1fb87cd196 Merge branch 'master' of https://github.com/Protovision/json-c into Protovision-master 2016-04-30 18:52:47 +00:00
Eric Haszlakiewicz
e3fb74942a Merge pull request #216 from Jehan/master
configure: check realloc with AC_CHECK_FUNCS() to fix cross-compilation.
2016-04-30 14:45:16 -04:00
Eric Haszlakiewicz
c6a97eb9ce Merge pull request #218 from sevan/patch-1
Use a macro to indicate C99 to the compiler
2016-04-30 14:44:29 -04:00
Eric Haszlakiewicz
82bdbdba24 Merge pull request #219 from rouault/low_heap_robustness_fixes
Fix various potential null ptr deref and int32 overflows
2016-04-30 14:44:05 -04:00
Eric Haszlakiewicz
4e0c8b55fb Merge pull request #220 from hschaa/master
Add utility function for comparing json_objects
2016-04-30 14:42:16 -04:00
Eric Haszlakiewicz
afa9f824e7 Merge pull request #222 from chenha0/master
Fix issue #221: JSON_C_TO_STRING_NOSLASHESCAPE works incorrectly
2016-04-30 14:40:30 -04:00
Eric Haszlakiewicz
02a2151b2b Merge pull request #223 from minaguib/master
Clarify json_object_get_string documentation of NULL handling & return
2016-04-30 14:36:02 -04:00
Mina Naguib
138c2a6b97 Clarify json_object_get_string documentation of NULL handling & returning 2016-02-07 20:55:25 -05:00
chenha0
dffdee966f Fix issue #221: JSON_C_TO_STRING_NOSLASHESCAPE works incorrectly
Tests added.
2016-01-21 20:12:48 +08:00
Helmut Schaa
dec5fcd50b Add some basic tests for verifying json_object_equal behavior
Do some basic checks on ints, doubles, strings, arrays and "complex" objects.
2016-01-13 15:56:39 +01:00
Helmut Schaa
00e475c434 Add utility function for comparing json_objects 2016-01-13 15:56:38 +01:00
Even Rouault
77a4276a8c Fix various potential null ptr deref and int32 overflows
This fix errors that can happen when ingesting very large JSON files
when hitting the maximum heap size of the process.
2016-01-11 12:15:54 +01:00
Sevan Janiyan
7150b7f28d Use a macro to indicate C99 to the compiler
The [AC_PROG_CC_C99 macro](https://www.gnu.org/software/autoconf/manual/autoconf-2.64/html_node/C-Compiler.html) sets the complier to the C99 standard if the compiler does not default to such behaviour (albeit gnu99). This is better than specifically hardcoding flags
2016-01-05 11:43:17 +00:00
Jehan
79c99aeb2b configure: check realloc with AC_CHECK_FUNCS() to fix cross-compilation.
AC_FUNC_REALLOC is messed up when cross-compiling, ending up in failed
build with "undefined reference to `rpl_realloc'" error.
AC_CHECK_FUNCS will work both with native and cross builds.
2016-01-01 18:46:02 +01:00
Eric Haszlakiewicz
537f8bcbdb Add const qualifiers to several functions that don't modify the json_object. 2015-12-26 21:42:18 +00:00
Eric Haszlakiewicz
882b7d95cc Issue #137: remove config.h.in from change control. 2015-12-08 21:20:42 -06:00
Eric Haszlakiewicz
980cdd61be Merge commit '2be921d88376e78f84d79aafa6db2714da804e59' 2015-12-08 20:51:06 -06:00
Eric Haszlakiewicz
65be8275da Merge pull request #209 from rgerhards/fix-regression
fix regression from 2d549662be
2015-11-29 21:24:50 -05:00
Eric Haszlakiewicz
316da85818 Fix issue #201: add a JSON_C_TO_STRING_NOSLASHESCAPE flag to turn off escaping of forward slashes. 2015-11-28 20:00:30 -06:00
Eric Haszlakiewicz
5a6a378725 Merge pull request #198 from unmole/master
Fix possible memory leak and remove superfluous NULL checks before free()
2015-11-28 13:58:07 -05:00
Emiel Bruijntjes
7e98ed93f4 subtract first, then retrieve value 2015-11-28 14:19:43 +01:00
Emiel Bruijntjes
9d85367679 added tabs instead of spaces to be compatible with rest of code 2015-11-27 16:53:57 +01:00
Emiel Bruijntjes
827f0fd8ef update indentation 2015-11-27 16:52:17 +01:00
Emiel Bruijntjes
23ee243113 reference increment and decrement is now atomic (when using a GCC compatible compiler), which allows passing json objects between threads 2015-11-27 16:49:32 +01:00
Daniel M. Weeks
92e9a5032b Use size_t for json object array ops 2015-11-24 14:00:32 -05:00
Daniel M. Weeks
45c56b80c4 Use size_t for array list length and size 2015-11-24 14:00:31 -05:00
Rainer Gerhards
36610fb697 fix regression from 2d549662be
That commit introduced read-only keys, but when the hash table
was resized, that attribute was not preserved. This resulted in
an invalid free at time of table destruction.
2015-11-19 11:05:15 +01:00
Eric Haszlakiewicz
c97bbd3797 Merge pull request #199 from Nzbuu/fix_vs_build
Fix build in Visual Studio
2015-11-14 23:31:15 -05:00
Eric Haszlakiewicz
b82a51a5cd Merge pull request #200 from Nzbuu/ci_build
Add build scripts for CI platforms
2015-11-14 23:30:38 -05:00
James Myatt
239c146a4b Appveyor: Visual Studio v140 no longer fails 2015-11-05 13:50:30 +00:00
James Myatt
fd43c2b99a Appveyor: Create artefact with library and include files only 2015-11-05 13:45:01 +00:00
Eric Haszlakiewicz
80c1f69b9e Use AX_APPEND_COMPILE_FLAGS() to check the various compile flags, such as -Wall, to ensure the compile supports. 2015-10-23 02:16:40 +00:00
Eric Haszlakiewicz
10d50aadf2 Remove the AC_FUNC_MALLOC check, since we don't depend on the malloc(0) behavior it checks for, and we don't provide a rpl_malloc() implementation anyway. 2015-10-22 02:57:13 +00:00
James Myatt
82030cd0af Travis: add osx and clang builds 2015-10-09 23:58:02 +01:00
James Myatt
88dedb8824 Travis: skip install step 2015-10-09 23:58:01 +01:00
James Myatt
f786feac0a Add Travis build script 2015-10-09 23:58:00 +01:00
James Myatt
17e11e2c92 Appveyor: Allow failing builds against newest toolset 2015-10-09 23:54:14 +01:00
James Myatt
f6f8436e97 Add initial version of Appveyor build script 2015-10-09 23:54:13 +01:00
James Myatt
3f012eb0f8 Fix build in Visual Studio 2015-10-09 23:24:55 +01:00
Anmol Sarma
467102fa78 Remove superfluous NULL checks 2015-10-01 14:14:03 +05:30
Anmol Sarma
f37b0a10a5 Fix possible memory leak 2015-10-01 14:09:09 +05:30
Eric Haszlakiewicz
12916e229c Merge pull request #196 from rgerhards/improve-performance
Performance improvements
2015-09-28 22:25:29 -04:00
Rainer Gerhards
c4f8cc34df more efficient handling for smalls strings inside json_object
smalls strings inside json_objects had a high overhead because dynamic
memory allocation was needed for each of them. This also meant that the
pointer needed to be updated. This is now changed so that small strings
can directly be stored inside the json_object. Note that on the regular
64 bit machines a pointer takes 8 bytes. So even without increasing
memory, we could store string up to 7 bytes directly inside the object.
The max size is configurable. I have selected up to 31 bytes (which
means a buffer of 32 including the NUL byte). This brings a 24-bytes
memory overhead, but I consider that still useful because the memory
allocator usually also has quite some overhead (16 bytes) for
dyn alloced memory blocks. In any case, the max buffer size can be
tweaked via #define.
2015-09-23 15:56:48 +02:00
Rainer Gerhards
1ae4b50bde remove unneeded data items from hashtable code
These items were used for statistics tracking, but no code at all
exists to consume them. By removing them we save

a) space
   because they counters required space, and did so in each and every
   json object

b) performance
   because calloc() needs to write less data and the counters are
   no longer maintained; cache performance can be better, load
   on OS main memory is lighter

We could conditionally enable/disable these counters, but I have not
done this they were really nowhere used and it looked more like a
left-over from the import of hashtable code.
2015-09-23 12:40:57 +02:00
Rainer Gerhards
8f8d03df46 add perllike hash function for strings
This also adds a new API json_global_set_string_hash() which permits
to select the hash function. The default one is the only one that was
previously present. So there are no changes to existing apps, and the
new hash function needs to be explicitely be opted in. Especially for
smaller strings, the perllike functions seems to be around twice as
fast as the other one, with similarly good results in value distribution.
2015-09-23 12:23:09 +02:00
Rainer Gerhards
2d549662be add json_object_object_add_ex() API
This provides more control over some detail aspects, many
of which are performance related.
2015-09-23 09:43:00 +02:00
Rainer Gerhards
d8e44dc685 reduce duplicate hash computation in json_object_object_add()
This can be a very considerable performance saver.
2015-09-22 19:07:30 +02:00
Eric Haszlakiewicz
1757a31750 Fix doc for json_object_new_boolean() to indicate the correct value for TRUE (1). 2015-08-23 00:08:14 -04:00
Eric Haszlakiewicz
d4f8f92eb0 Squash deprecated function warning by replacing json_object_object_get calls with json_object_object_get_ex in test_cast. 2015-08-23 00:06:36 -04:00
Eric Haszlakiewicz
93b1fe63e5 Add back in the __attribute__((__unused__)) that was lost in the previous commit.
It's needed to squash a "variable 'val' set but not used" warning.
2015-08-23 00:00:12 -04:00
Eric Haszlakiewicz
a8bbefbbb4 Merge pull request #183 from cryogen/master
Apply compile warning fix to master branch
2015-08-22 15:24:26 -04:00
Eric Haszlakiewicz
55530bfc0f Merge pull request #186 from Virtual-Instruments/master
Syntax error
2015-08-05 23:19:19 -04:00
Jacob Alexander
e8a302017f Syntax error
- ./configure would fail due to bad code generation
2015-06-02 14:34:51 -07:00
Eric Haszlakiewicz
b594c34f57 Merge pull request #174 from haata/master
Adding JSON_C_TO_STRING_PRETTY_TAB flag
2015-05-31 12:10:13 -07:00
Jacob Alexander
92d4cf15f0 Adding JSON_C_TO_STRING_PRETTY_TAB flag
- Tabs are easier to read for tired eyes and editor adjustable
2015-05-27 17:37:39 -07:00
Eric Haszlakiewicz
cd8bd7f617 Tell the compiler we're intentionally ignoring the return value from __sync_val_compare_and_swap(). 2015-05-26 19:02:19 -07:00
Stuart Walsh
75d7409c4e Fix uninitialised variable compile warning, and also fix unused-when-used warning 2015-05-10 09:21:28 +01:00
Eric Haszlakiewicz
cbedf2f7ca Merge pull request #149 from cicku/patch-2
SONAME bump
2015-05-09 21:35:22 -04:00
Eric Haszlakiewicz
e4fce5d6ae Merge pull request #171 from Nzbuu/vs2010_build
Update configuration for VS2010 and win64
2015-05-08 21:31:37 -04:00
Eric Haszlakiewicz
e1eb298de1 Merge pull request #182 from tpetazzoni/libm-fix
Link against libm when needed
2015-05-08 21:19:48 -04:00
Eric Haszlakiewicz
82a1316f76 Merge pull request #180 from yegorich/silent
Enable silent build by default
2015-05-08 21:19:05 -04:00
Thomas Petazzoni
93582ad85e Link against libm when needed
In certain C libraries (e.g uClibc), isnan() and related functions are
implemented in libm, so json-c needs to link against it. This commit
therefore adds an AC_TRY_LINK() test to check whether a program
calling isnan() can be properly linked with no special flags. If not,
we assume linking against libm is needed.

The json-c.pc.in file is also adjusted so that in the case of static
linking against json-c, -lm is also used.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-05-01 13:01:17 +02:00
Yegor Yefremov
36b0169ed6 Enable silent build by default 2015-04-25 22:11:44 +02:00
Mark Swoope
cdca9d3c8e Added array_list_del_idx and json_object_array_del_idx 2015-04-02 14:05:27 -07:00
James Myatt
736f4b3581 Build random_seed.c as well 2015-03-04 10:45:40 +00:00
James Myatt
9d3d8d6fc0 Add x64 build configurations 2015-03-04 10:45:40 +00:00
James Myatt
e1a3f33a26 Set CompileAsCpp flag (Required for vs2010/winsdk71)
Revert some project settings to defaults
2015-03-04 10:45:39 +00:00
James Myatt
d5baa0381f Update VS project to include current source files 2015-03-04 10:45:38 +00:00
James Myatt
18b3c49296 Use more appropriate casts 2015-03-04 10:45:37 +00:00
James Myatt
bf32650c83 Add missing include file to random_seed 2015-03-04 10:45:37 +00:00
James Myatt
720d566d03 Define macros from inttypes.h when not available 2015-03-04 10:45:36 +00:00
James Myatt
9be71700eb json_tokener requires INF and NAN 2015-03-04 10:45:35 +00:00
James Myatt
72310c87a5 Define INFINITY and NAN when missing 2015-03-04 10:45:34 +00:00
James Myatt
0137103f4b Include config.h in linkhash so that HAVE_ENDIAN_H is defined (if available) 2015-03-04 10:45:33 +00:00
James Myatt
a74f6b2867 Updated config for vs2010/winsdk71 as well as vs2013
Define JSON_C_HAVE_INTTYPES_H in json_config.h.win32 only
2015-03-04 10:45:33 +00:00
Eric Haszlakiewicz
68d856f618 Merge pull request #168 from bugness-chl/master
Tightening the number parsing algorithm
2015-03-03 22:41:31 -05:00
Eric Haszlakiewicz
7e3a6c6b9d Merge pull request #163 from sixlettervariables/fix-win32-build-problems
Fix Win32 build problems
2015-03-03 22:35:36 -05:00
Eric Haszlakiewicz
da62fca305 Merge pull request #144 from mhei/master
Introduce json_object_from_fd
2015-03-03 22:12:49 -05:00
Eric Haszlakiewicz
484ca368f0 Slight style tweaks to the bsearch changest. 2015-03-04 03:10:10 +00:00
Eric Haszlakiewicz
a500c1f0b5 Merge pull request #155 from LeSpocky/bsearch
add bsearch for arrays
2015-03-03 22:00:08 -05:00
Eric Haszlakiewicz
9db3099572 Merge pull request #156 from jubalh/master
Remove trailing whitespaces
2015-03-03 21:37:02 -05:00
chl
99d8fc975e Tightening the number parsing algorithm
Some badly formated "numbers" could get partly parsed,
resulting in truncated results instead of raising an
error.

Examples :
 '1.2.3'      -> (double)1.2
 '2015-01-15' -> (int)2015

This patch is not perfect (ex: input can still end with a 'E', which
is forbidden by json.org doc) but should avoid non-sensically
formated input.

Tests added.
2015-02-05 01:50:37 +01:00
Christopher Watford
4d18d39d99 Adds json_config.h.win32 to project. Adds VS2k13 project. 2014-12-05 10:27:44 -05:00
Christopher Watford
0609a5729c Fixes #160 'missing header file on windows' 2014-12-05 10:22:36 -05:00
Eric Haszlakiewicz
ec4879ac5b Merge pull request #153 from LeSpocky/doc
improve doc for json_object_to_json_string()
2014-09-13 22:18:51 -04:00
Eric Haszlakiewicz
6ec6fdaf8c Merge pull request #151 from mjchinn/json_type-comma
Remove json_type enum trailing comma
2014-09-13 22:18:14 -04:00
Eric Haszlakiewicz
2c722277ee Merge pull request #150 from ams-cs/master
Fix build using MinGW.
2014-09-13 22:17:57 -04:00
Eric Haszlakiewicz
f88db708ac Merge pull request #141 from AlexandruCostache/master
Removed duplicate check in random_seed test - bug #140
2014-09-13 22:14:44 -04:00
Michael Vetter
fcf5ad1bd6 Remove trailing whitespace 2014-08-26 14:48:59 +02:00
Alexander Dahl
2f5789bdef add bsearch for arrays
Arrays can already be sorted with json_object_array_sort() which uses
qsort() of the standard C library. This adds a counterpart using the
bsearch() from C.
2014-08-21 15:42:50 +02:00
Alexander Dahl
37f5d8696d improve doc for json_object_to_json_string() 2014-08-18 10:28:38 +02:00
Michael J. Chinn
048dcf288a Remove json_type enum trailing comma 2014-08-10 00:46:25 -04:00
Andrew Stubbs
ca0ebe0f71 Fix build using MinGW.
MinGW requires wincrypt.h.
GCC does not support #pragma comment, which trips Werror.
2014-08-04 11:44:25 +01:00
Christopher Meng
db833f2411 SONAME bump
The last json_tokener_errors change affects the binary package, we need a bump to solve the issue.

See [this bug of postgis.](https://bugzilla.redhat.com/show_bug.cgi?id=1123785)
2014-07-28 19:28:19 +08:00
Michael Heimpold
a7534dbb7e Introduce json_object_from_fd
Also refactor json_object_from_file to use json_object_from_fd
internally.

Signed-off-by: Michael Heimpold <mhei@heimpold.de>
2014-07-21 23:15:45 +02:00
Alexandru Costache
4841c48f81 Removed duplicate check in random_seed test - bug #140 2014-07-04 12:28:35 +03:00
Eric Haszlakiewicz
d4e81f9ec8 Move the json_min() and json_max() macros to json_util.h and mark everything else in bits.h deprecated.
Eliminate all uses of bits.h within the json-c code.
2014-05-04 22:33:26 -04:00
Eric Haszlakiewicz
1da0599e0e Fix the definition of the error_description() macro in bits.h now that json_tokener_errors[] is not exported. 2014-05-03 22:26:26 -04:00
Eric Haszlakiewicz
2149a04ca8 Check for failures when allocating memory; return NULL and set errno=ENOMEM in a few of those cases.
Thanks to Susant Sahani for pointing out some of these.
2014-04-19 20:33:05 -04:00
Eric Haszlakiewicz
92a7740e90 Reformat some code in json_object.c 2014-04-19 20:23:54 -04:00
Eric Haszlakiewicz
795e9151a1 Add an empty README file to placate autoconf. 2014-04-19 20:22:44 -04:00
Eric Haszlakiewicz
4569e3e430 Fix minor typo in README file. 2014-04-19 20:11:05 -04:00
Eric Haszlakiewicz
40aab4c502 Merge pull request #133 from haneefmubarak/patch-1
Update and rename README to README.md
2014-04-19 20:10:10 -04:00
Eric Haszlakiewicz
332a594fd4 Merge pull request #132 from pkoretic/master
Remove unused variable 'size'
2014-04-19 20:05:06 -04:00
Haneef Mubarak
7870978c2e Update README.md
- code blocks
 - slight text changes (rewording)
 - pretty printing
2014-04-12 00:40:05 -07:00
Haneef Mubarak
23620b827c Update and rename README to README.md
Markdownify + fix a few errors here and there
2014-04-12 00:36:08 -07:00
Eric Haszlakiewicz
fa54bd542e Update the release checklist to include calculating the tarball checksums and updating the wiki. 2014-04-11 20:07:49 -04:00
Petar Koretić
259c5c0b5f Remove unused variable 'size' 2014-04-11 10:03:40 +02:00
Eric Haszlakiewicz
515ba0dfb7 Bump versions up to 0.12.99 since a 0.12 release was just created. 2014-04-10 22:44:13 -04:00
Alexander Klauer
2be921d883 Fixed json_object_object_add().
* Return value of json_object_object_add() changed from void to int.
  Return value now indicates success or failure.

* Check whether allocations are successful.

* Do not exit program from within the library.
2013-01-08 14:24:21 +01:00
242 changed files with 67202 additions and 2381 deletions

15
.editorconfig Normal file
View File

@@ -0,0 +1,15 @@
# EditorConfig
# http://EditorConfig.org
# top-most EditorConfig file
root = true
# LF end-of-line, insert an empty new line and UTF-8
[*]
end_of_line = lf
insert_final_newline = true
charset = utf-8
# Tab indentation
[makefile,Makefile]
indent_style = tab

112
.gitignore vendored
View File

@@ -1,11 +1,86 @@
# Temp files
*~
*.swp
/INSTALL
*.bak
*.backup
\#*
.\#*
*\#
*.sav
*.save
*.autosav
*.autosave
# Tests
/test-driver
/tests/Makefile
/tests/Makefile.in
/tests/test1
/tests/test1Formatted
/tests/test2
/tests/test2Formatted
/tests/test4
/tests/testReplaceExisting
/tests/testSubDir
/tests/test_cast
/tests/test_charcase
/tests/test_compare
/tests/test_deep_copy
/tests/test_double_serializer
/tests/test_float
/tests/test_int_add
/tests/test_json_pointer
/tests/test_locale
/tests/test_null
/tests/test_parse
/tests/test_parse_int64
/tests/test_printbuf
/tests/test_set_serializer
/tests/test_set_value
/tests/test_util_file
/tests/test_visit
/tests/*.vg.out
/tests/*.log
/tests/*.trs
# Generated folders
/Debug
/Release
/*/Debug
/*/Release
# Generated binaries
*.lo
*.o
/libjson-c.la
/libjson.la
# Archives
*.zip
*.tar.*
*.tgz
*.gz
*.bz2
*.xz
*.lz
*.lzma
*.7z
*.dll
*.deb
*.rpm
*.apk
*.exe
*.msi
*.dmg
*.ipa
.deps/
.libs/
/aclocal.m4
/autoconf-archive
/autom4te.cache
/config.guess
/config.h.in
/json_config.h
/compile
/config.h
@@ -26,30 +101,11 @@
/missing
/stamp-h1
/stamp-h2
/test-driver
/tests/Makefile
/tests/Makefile.in
/tests/test1
/tests/test1Formatted
/tests/test2
/tests/test2Formatted
/tests/test4
/tests/testReplaceExisting
/tests/testSubDir
/tests/test_parse_int64
/tests/test_parse
/tests/test_cast
/tests/test_charcase
/tests/test_locale
/tests/test_null
/tests/test_printbuf
/tests/test_set_serializer
/tests/*.vg.out
/tests/*.log
/tests/*.trs
/Debug
/Release
*.lo
*.o
/libjson-c.la
/libjson.la
# cmake auto-generated files
/CMakeCache.txt
/CMakeFiles
/cmake_install.cmake
/include
/libjson-c.a
/libjson-c.so

32
.travis.yml Normal file
View File

@@ -0,0 +1,32 @@
language: cpp
compiler:
- gcc
- clang
addons:
apt:
packages:
- cppcheck
os:
- linux
- osx
before_install:
- echo $LANG
- echo $LC_ALL
- set -e
install:
- sh autogen.sh
before_script:
- ./configure
script:
- make
after_success:
- make check
- if type cppcheck &> /dev/null ; then cppcheck --error-exitcode=1 --quiet *.h *.c tests/ ; fi

View File

@@ -1,4 +1,14 @@
# This file is the top android makefile for all sub-modules.
#
# Suggested settings to build for Android:
#
# export PATH=$PATH:/opt/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/
# export SYSROOT=/opt/android-ndk/platforms/android-9/arch-arm/usr/
# export LD=arm-linux-androideabi-ld
# export CC="arm-linux-androideabi-gcc --sysroot=/opt/android-ndk/platforms/android-9/arch-arm"
#
# Then run autogen.sh, configure and make.
#
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

150
CMakeLists.txt Normal file
View File

@@ -0,0 +1,150 @@
#Licensed under the MIT license. See LICENSE file in the project root for full license information.
cmake_minimum_required(VERSION 2.8.7)
if(POLICY CMP0048)
cmake_policy(SET CMP0048 NEW)
endif()
# JSON-C library is C only project.
if (CMAKE_VERSION VERSION_LESS 3.0)
project(json-c)
set(PROJECT_VERSION_MAJOR "0")
set(PROJECT_VERSION_MINOR "13")
set(PROJECT_VERSION_PATCH "1")
set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
else()
project(json-c LANGUAGES C VERSION 0.13.1)
endif()
include(CheckSymbolExists)
check_symbol_exists(strtoll "stdlib.h" HAVE_STRTOLL)
set(cmake_strtoll "strtoll")
if (NOT HAVE_STRTOLL)
# Use _strtoi64 if strtoll is not available.
check_symbol_exists(_strtoi64 stdlib.h have_strtoi64)
if (have_strtoi64)
set(HAVE_STRTOLL 1)
set(cmake_strtoll "_strtoi64")
# could do the same for strtoull, if needed
endif ()
endif ()
if(MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4100 /wd4996 /wd4244 /wd4706 /wd4702 /wd4127 /wd4701")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4100 /wd4996 /wd4244 /wd4706 /wd4702 /wd4127 /wd4701")
set(cmake_create_config 1)
elseif(MINGW)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -D_GNU_SOURCE=1")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -D_GNU_SOURCE=1")
if (MSYS OR CMAKE_GENERATOR STREQUAL "Unix Makefiles")
execute_process(COMMAND echo ${CMAKE_CURRENT_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
execute_process(COMMAND sh autogen.sh WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
execute_process(COMMAND sh ./configure WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
file(COPY ./config.h DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/include/)
file(COPY ./json_config.h DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/include/)
else()
set(cmake_create_config 1)
endif()
elseif(UNIX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -D_GNU_SOURCE")
execute_process(COMMAND echo ${CMAKE_CURRENT_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
execute_process(COMMAND sh autogen.sh WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
execute_process(COMMAND ./configure WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
file(COPY ./config.h DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/include/)
file(COPY ./json_config.h DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/include/)
endif()
if (cmake_create_config)
file(REMOVE ./config.h) # make sure any stale one is gone
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.win32 ${CMAKE_CURRENT_BINARY_DIR}/include/config.h)
file(COPY ./json_config.h.win32 DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/include/)
file(RENAME ${CMAKE_CURRENT_BINARY_DIR}/include/json_config.h.win32 ${CMAKE_CURRENT_BINARY_DIR}/include/json_config.h)
endif ()
include_directories(${CMAKE_CURRENT_BINARY_DIR}/include)
set(JSON_C_PUBLIC_HEADERS
./json.h
${CMAKE_CURRENT_BINARY_DIR}/include/config.h
${CMAKE_CURRENT_BINARY_DIR}/include/json_config.h
./arraylist.h
./debug.h
./json_c_version.h
./json_inttypes.h
./json_object.h
./json_object_iterator.h
./json_pointer.h
./json_tokener.h
./json_util.h
./linkhash.h
./printbuf.h
)
set(JSON_C_HEADERS
${JSON_C_PUBLIC_HEADERS}
./json_object_private.h
./random_seed.h
./strerror_override.h
./strerror_override_private.h
./math_compat.h
./snprintf_compat.h
./strdup_compat.h
./vasprintf_compat.h
)
set(JSON_C_SOURCES
./arraylist.c
./debug.c
./json_c_version.c
./json_object.c
./json_object_iterator.c
./json_pointer.c
./json_tokener.c
./json_util.c
./json_visit.c
./linkhash.c
./printbuf.c
./random_seed.c
./strerror_override.c
)
add_library(json-c
SHARED
${JSON_C_SOURCES}
${JSON_C_HEADERS}
)
add_library(json-c-static
STATIC
${JSON_C_SOURCES}
${JSON_C_HEADERS}
)
set_property(TARGET json-c PROPERTY C_STANDARD 99)
set_property(TARGET json-c-static PROPERTY C_STANDARD 99)
set_target_properties(json-c-static PROPERTIES OUTPUT_NAME json-c)
install(TARGETS json-c json-c-static
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
)
install(FILES ${JSON_C_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/json-c )
if (UNIX)
set(prefix ${CMAKE_INSTALL_PREFIX})
set(exec_prefix ${CMAKE_INSTALL_PREFIX}/bin)
set(libdir ${CMAKE_INSTALL_PREFIX}/lib)
set(includedir ${CMAKE_INSTALL_PREFIX}/include)
set(VERSION ${PROJECT_VERSION})
configure_file(json-c.pc.in json-c.pc @ONLY)
set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files")
install(FILES ${CMAKE_BINARY_DIR}/json-c.pc DESTINATION "${INSTALL_PKGCONFIG_DIR}")
endif ()

168
ChangeLog
View File

@@ -1,5 +1,162 @@
0.13.1 (up to commit 0f814e5, 2018/03/04)
=========================================
* Bump the major version of the .so library generated up to 4.0 to avoid
conflicts because some downstream packagers of json-c had already done
their own bump to ".so.3" for a much older 0.12 release.
* Add const size_t json_c_object_sizeof()
* Avoid invalid free (and thus a segfault) when ref_count gets < 0
* PR#394: fix handling of custom double formats that include a ".0"
* Avoid uninitialized variable warnings in json_object_object_foreach
* Issue #396: fix build for certain uClibc based systems.
* Add a top level fuzz directory for fuzzers run by OSS-Fuzz
0.13 (up to commit 5dae561, 2017/11/29)
=================================
This release, being three and a half years after the 0.12 branch (f84d9c),
has quite a number of changes included. The following is a sampling of
the most significant ones.
Since the 0.12 release, 250 issues and pull requests have been closed.
See issues_closed_for_0.13.md for a complete list.
Deprecated and removed features:
--------------------------------
* All internal use of bits.h has been eliminated. The file will be removed.
Do not use: hexdigit(), error_ptr(), error_descrition() and it_error()
* lh_abort() is deprecated. It will be removed.
Behavior changes:
-----------------
* Tighten the number parsing algorithm to raise errors instead of truncating
the results. For example 12.3.4 or 2015-01-15, which now return null.
See commit 99d8fc
* Use size_t for array length and size. Platforms where sizeof(size_t) != sizeof(int) may not be backwards compatible
See commits 45c56b, 92e9a5 and others.
* Check for failue when allocating memory, returning NULL and errno=ENOMEM.
See commit 2149a04.
* Change json_object_object_add() return type from void to int, and will return -1 on failures, instead of exiting. (Note: this is not an ABI change)
New features:
-------------
* We're aiming to follow RFC 7159 now.
* Add a couple of additional option to json_object_to_json_string_ext:
JSON_C_TO_STRING_PRETTY_TAB
JSON_C_TO_STRING_NOSLASHESCAPE
* Add a json_object_object_add_ex() function to allow for performance
improvements when certain constraints are known to be true.
* Make serialization format of doubles configurable, in two different ways:
Call json_object_set_serializer with json_object_double_to_json_string and a custom
format on each double object, or
Call json_c_set_serialization_double_format() to set a global or thread-wide format.
* Add utility function for comparing json_objects - json_object_equal()
* Add a way to copy entire object trees: json_object_deep_copy()
* Add json_object_set_<type> function to modify the value of existing json_object's
without the need to recreate them. Also add a json_object_int_inc function to
adjust an int's value.
* Add support for JSON pointer, RFC 6901. See json_pointer.h
* Add a json_util_get_last_err() function to retrieve the string describing the
cause of errors, instead of printing to stderr.
* Add perllike hash function for strings, and json_global_set_string_hash() 8f8d03d
* Add a json_c_visit() function to provide a way to iterate over a tree of json-c objects.
Notable bug fixes and other improvements:
-----------------------------------------
* Make reference increment and decrement atomic to allow passing json objects between threads.
* Fix json_object_object_foreach to avoid uninitialized variable warnings.
* Improve performance by removing unneeded data items from hashtable code and reducing duplicate hash computation.
* Improve performance by storing small strings inside json_object
* Improve performance of json_object_to_json_string by removing variadic printf. commit 9ff0f49
* Issue #371: fix parsing of "-Infinity", and avoid needlessly copying the input when doing so.
* Fix stack buffer overflow in json_object_double_to_json_string_format() - commit 2c2deb87
* Fix various potential null ptr deref and int32 overflows
* Issue #332: fix a long-standing bug in array_list_put_idx() where it would attempt to free previously free'd entries due to not checking the current array length.
* Issue #195: use uselocale() instead of setlocale() in json_tokener to behave better in threaded environments.
* Issue #275: fix out of bounds read when handling unicode surrogate pairs.
* Ensure doubles that happen to be a whole number are emitted with ".0" - commit ca7a19
* PR#331: for Visual Studio, use a snprintf/vsnprintf wrapper that ensures the string is terminated.
* Fix double to int cast overflow in json_object_get_int64.
* Clamp double to int32 when narrowing in json_object_get_int.
* Use strtoll() to parse ints - instead of sscanf
* Miscellaneous smaller changes, including removing unused variables, fixing warning
about uninitialized variables adding const qualifiers, reformatting code, etc...
Build changes:
--------------
* Add Appveyor and Travis build support
* Switch to using CMake when building on Windows with Visual Studio.
A dynamic .dll is generated instead of a .lib
config.h is now generated, config.h.win32 should no longer be manually copied
* Add support for MacOS through CMake too.
* Enable silent build by default
* Link against libm when needed
* Add support for building with AddressSanitizer
* Add support for building with Clang
* Add a --enable-threading configure option, and only use the (slower) __sync_add_and_fetch()/__sync_sub_and_fetch() function when it is specified.
List of new functions added:
----------------------------
### json_object.h
* array_list_bsearch()
* array_list_del_idx()
* json_object_to_json_string_length()
* json_object_get_userdata()
* json_object_set_userdata()
* json_object_object_add_ex()
* json_object_array_bsearch()
* json_object_array_del_idx()
* json_object_set_boolean()
* json_object_set_int()
* json_object_int_inc()
* json_object_set_int64()
* json_c_set_serialization_double_format()
* json_object_double_to_json_string()
* json_object_set_double()
* json_object_set_string()
* json_object_set_string_len()
* json_object_equal()
* json_object_deep_copy()
### json_pointer.h
* json_pointer_get()
* json_pointer_getf()
* json_pointer_set()
* json_pointer_setf()
### json_util.h
* json_object_from_fd()
* json_object_to_fd()
* json_util_get_last_err()
### json_visit.h
* json_c_visit()
### linkhash.h
* json_global_set_string_hash()
* lh_table_resize()
### printbuf.h
* printbuf_strappend()
0.12.1
======
* Minimal changes to address compile issues.
0.12
====
* Address security issues:
* CVE-2013-6371: hash collision denial of service
@@ -39,6 +196,7 @@
0.11
====
* IMPORTANT: the name of the library has changed to libjson-c.so and
the header files are now in include/json-c.
@@ -62,6 +220,7 @@
* Fix a bug (buffer overrun) when expanding arrays to more than 64 entries.
0.10
====
* Add a json_object_to_json_string_ext() function to allow output to be
formatted in a more human readable form.
@@ -110,6 +269,7 @@
Brent Miller, bdmiller at yahoo dash inc dot com
0.9
===
* Add README.html README-WIN32.html config.h.win32 to Makefile.am
Michael Clark, <michael@metaparadigm.com>
* Add const qualifier to the json_tokener_parse functions
@@ -140,6 +300,7 @@
Gerard Krol, g dot c dot krol at student dot tudelft dot nl
0.8
===
* Add va_end for every va_start
Dotan Barak, dotanba at gmail dot com
* Add macros to enable compiling out debug code
@@ -152,12 +313,14 @@
Geoffrey Young, geoff at modperlcookbook dot org
0.7
===
* Add escaping of backslash to json output
* Add escaping of foward slash on tokenizing and output
* Changes to internal tokenizer from using recursion to
using a depth state structure to allow incremental parsing
0.6
===
* Fix bug in escaping of control characters
Johan Bj<42>rklund, johbjo09 at kth dot se
* Remove include "config.h" from headers (should only
@@ -165,6 +328,7 @@
Michael Clark <michael@metaparadigm.com>
0.5
===
* Make headers C++ compatible by change *this to *obj
* Add ifdef C++ extern "C" to headers
* Use simpler definition of min and max in bits.h
@@ -177,18 +341,21 @@
Michael Clark <michael@metaparadigm.com>
0.4
===
* Fix additional error case in object parsing
* Add back sign reversal in nested object parse as error pointer
value is negative, while error value is positive.
Michael Clark <michael@metaparadigm.com>
0.3
===
* fix pointer arithmetic bug for error pointer check in is_error() macro
* fix type passed to printbuf_memappend in json_tokener
* update autotools bootstrap instructions in README
Michael Clark <michael@metaparadigm.com>
0.2
===
* printbuf.c - C. Watford (christopher.watford@gmail.com)
Added a Win32/Win64 compliant implementation of vasprintf
* debug.c - C. Watford (christopher.watford@gmail.com)
@@ -211,4 +378,5 @@
Michael Clark <michael@metaparadigm.com>
0.1
===
* initial release

2535
Doxyfile

File diff suppressed because it is too large Load Diff

3
INSTALL Normal file
View File

@@ -0,0 +1,3 @@
See README.md for installation instructions.

View File

@@ -1,9 +1,18 @@
include Makefile.am.inc
#ACLOCAL_AMFLAGS = -I autoconf-archive/m4
EXTRA_DIST = README.md README.html
EXTRA_DIST += config.h.win32
EXTRA_DIST += Doxyfile
EXTRA_DIST += issues_closed_for_0.13.md
dist-hook:
test -d "$(distdir)/doc" || mkdir "$(distdir)/doc"
chmod -R u+w "$(distdir)/doc"
cd "$(distdir)" && doxygen
EXTRA_DIST = README.html README-WIN32.html config.h.win32 doc json-c.vcproj
SUBDIRS = . tests
lib_LTLIBRARIES = libjson-c.la
lib_LTLIBRARIES = libjson-c.la
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = json-c.pc
@@ -14,24 +23,28 @@ libjson_cinclude_HEADERS = \
bits.h \
debug.h \
json.h \
json_config.h \
json_c_version.h \
json_config.h \
json_inttypes.h \
json_object.h \
json_object_iterator.h \
json_object_private.h \
json_pointer.h \
json_tokener.h \
json_util.h \
json_visit.h \
linkhash.h \
printbuf.h \
random_seed.h
printbuf.h
#libjsonx_includedir = $(libdir)/json-c-@VERSION@
#
#libjsonx_include_HEADERS = \
# json_config.h
noinst_HEADERS=\
json_object_private.h \
math_compat.h \
strdup_compat.h \
snprintf_compat.h \
vasprintf_compat.h \
random_seed.h \
strerror_override.h
libjson_c_la_LDFLAGS = -version-info 2:0:0 -no-undefined @JSON_BSYMBOLIC_LDFLAGS@
libjson_c_la_LDFLAGS = -version-info 4:0:0 -no-undefined @JSON_BSYMBOLIC_LDFLAGS@
libjson_c_la_SOURCES = \
arraylist.c \
@@ -39,20 +52,53 @@ libjson_c_la_SOURCES = \
json_c_version.c \
json_object.c \
json_object_iterator.c \
json_pointer.c \
json_tokener.c \
json_util.c \
json_visit.c \
linkhash.c \
printbuf.c \
random_seed.c
random_seed.c \
strerror_override.c \
strerror_override_private.h
DISTCLEANFILES=
DISTCLEANFILES+= \
config.h \
json-c-uninstalled.pc \
json-c.pc \
json_config.h
distclean-local:
-rm -rf $(testsubdir)
-rm -rf config.h.in~ Makefile.in aclocal.m4 autom4te.cache/ config.guess config.sub depcomp install-sh ltmain.sh missing
-rm -f INSTALL test-driver tests/Makefile.in compile
maintainer-clean-local:
-rm -rf configure
JSON_CLEANFILES=
JSON_CLEANFILES+= \
Makefile.in \
aclocal.m4 \
autom4te.cache/ \
compile \
config.guess \
config.h.in \
config.sub \
configure \
depcomp \
install-sh \
ltmain.sh \
missing \
test-driver \
tests/Makefile.in
JSON_CLEANFILES+= \
libtool \
stamp-h1 \
stamp-h2
# There's no built-in way to remove these after all the other
# maintainer-clean steps happen, so do it explicitly here.
really-clean:
$(MAKE) maintainer-clean
rm -rf ${JSON_CLEANFILES}
uninstall-local:
rm -rf "$(DESTDIR)@includedir@/json-c"

View File

@@ -1,2 +0,0 @@
AM_CFLAGS = -Wall -Werror -Wno-error=deprecated-declarations -Wextra -Wwrite-strings -Wno-unused-parameter -std=gnu99 -D_GNU_SOURCE -D_REENTRANT

1115
Makefile.in Normal file

File diff suppressed because it is too large Load Diff

1
NEWS
View File

@@ -0,0 +1 @@
See the git repo.

46
README
View File

@@ -1,45 +1 @@
Building on Unix with git, gcc and autotools
Home page for json-c:
https://github.com/json-c/json-c/wiki
Caution: do NOT use sources from svn.metaparadigm.com, they are old.
Prerequisites:
gcc (or another C compiler)
libtool
If you're not using a release tarball, you'll also need:
autoconf (autoreconf)
automake
Make sure you have a complete libtool install, including libtoolize
Github repo for json-c:
https://github.com/json-c/json-c
$ git clone https://github.com/json-c/json-c.git
$ cd json-c
$ sh autogen.sh
Then
$ ./configure
$ make
$ make install
To build and run the test programs run
$ make check
Linking to libjson-c
If your system has pkgconfig then you can just add this to your makefile
CFLAGS += $(shell pkg-config --cflags json-c)
LDFLAGS += $(shell pkg-config --libs json-c)
Without pkgconfig, you would do something like this:
JSON_C_DIR=/path/to/json_c/install
CFLAGS += -I$(JSON_C_DIR)/include/json-c
LDFLAGS+= -L$(JSON_C_DIR)/lib -ljson-c
See README.md or README.html

View File

@@ -1,50 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>JSON-C - A JSON implementation in C - Win32 specific notes</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<h2>Windows specific notes for JSON-C</h2>
<p>Please send Win32 bug reports to <a href="mailto:christopher.watford@gmail.com">christopher.watford@gmail.com</a></p>
<p><b>Win32 Specific Changes:</b></p>
<ul>
<li>
Various functions have been redefined to their Win32 version (i.e. <tt>open</tt>
on win32 is <tt>_open</tt>)</li>
<li>
Implemented missing functions from MS's libc (i.e. <tt>vasprintf</tt>)</li>
<li>
Added code to allow Win64 support without integer resizing issues, this
probably makes it much nicer on 64bit machines everywhere (i.e. using <tt>ptrdiff_t</tt>
for pointer math)</li>
</ul>
<p><b>Porting Changelog:</b></p>
<dl>
<dt><tt>printbuf.c</tt> - C. Watford (christopher.watford@gmail.com)</dt>
<dd>
Added a Win32/Win64 compliant implementation of <tt>vasprintf</tt></dd>
<dt><tt>debug.c</tt> - C. Watford (christopher.watford@gmail.com)</dt>
<dd>
Removed usage of <tt>vsyslog</tt> on Win32/Win64 systems, needs to be handled
by a configure script</dd>
<dt><tt>json_object.c</tt> - C. Watford (christopher.watford@gmail.com)</dt>
<dd>
Added scope operator to wrap usage of <tt>json_object_object_foreach</tt>, this needs to be
rethought to be more ANSI C friendly</dd>
<dt><tt>json_object.h</tt> - C. Watford (christopher.watford@gmail.com)</dt>
<dd>
Added Microsoft C friendly version of <tt>json_object_object_foreach</tt></dd>
<dt><tt>json_tokener.c</tt> - C. Watford (christopher.watford@gmail.com)</dt>
<dd>
Added a Win32/Win64 compliant implementation of <tt>strndup</tt></dd>
<dt><tt>json_util.c</tt> - C. Watford (christopher.watford@gmail.com)</dt>
<dd>
Added cast and mask to suffice <tt>size_t</tt> v. <tt>unsigned int</tt>
conversion correctness</dd>
</dl>
<p>This program is free software; you can redistribute it and/or modify it under
the terms of the MIT License. See COPYING for details.</p>
<hr />
</body>
</html>

View File

@@ -10,12 +10,20 @@
<h3>Overview</h3>
<p>JSON-C implements a reference counting object model that allows you to easily
construct JSON objects in C, output them as JSON formatted strings and parse
JSON formatted strings back into the C representation of JSON objects.</p>
JSON formatted strings back into the C representation of JSON objects.
It aims to conform to <a href="https://tools.ietf.org/html/rfc7159">RFC 7159</a>.
</p>
<h3>Building</h3>
<p>To setup JSON-C to build on your system please run <tt>configure</tt> and <tt>make</tt>.</p>
<p>If you are on Win32 and are not using the VS project file, be sure
to rename <tt>config.h.win32</tt> to <tt>config.h</tt> before building.</p>
<p>If you are on Win32 cmake is required, generally:</p>
<ul>
<li>mkdir build</li>
<li>cd build</li>
<li>cmake ..</li>
<li>msbuild "json-c.vcxproj" /m /verbosity:normal /p:OutDir=lib\</li>
<li>Or, open the project in Visual Studio</li>
</ul>
<h3>Documentation</h3>
<P>Doxygen generated documentation exists <a href="doc/html/json__object_8h.html">here</a>
@@ -28,7 +36,7 @@
<pi>Send email to <strong><code>json-c <i>&lt;at&gt;</i> googlegroups <i>&lt;dot&gt;</i> com</code></strong></p>
<h3><a href="COPYING">License</a></h3>
<p>This program is free software; you can redistribute it and/or modify it under the terms of the MIT License..</p>
<p>This program is free software; you can redistribute it and/or modify it under the terms of the MIT License.</p>
<hr/>
</body>
</html>

173
README.md Normal file
View File

@@ -0,0 +1,173 @@
`json-c` {#mainpage}
========
1. [Overview and Build Status](#overview)
2. [Building on Unix](#buildunix)
3. [Install Prerequisites](#installprereq)
4. [Building with partial threading support](#buildthreaded)
5. [Linking to libjson-c](#linking)
6. [Using json-c](#using)
JSON-C - A JSON implementation in C <a name="overview"></a>
-----------------------------------
Build Status
* [AppVeyor Build](https://ci.appveyor.com/project/hawicz/json-c) ![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/github/json-c/json-c?branch=master&svg=true)
* [Travis Build](https://travis-ci.org/json-c/json-c) ![Travis Build Status](https://travis-ci.org/json-c/json-c.svg?branch=master)
JSON-C implements a reference counting object model that allows you to easily
construct JSON objects in C, output them as JSON formatted strings and parse
JSON formatted strings back into the C representation of JSON objects.
It aims to conform to [RFC 7159](https://tools.ietf.org/html/rfc7159).
Building on Unix with `git`, `gcc` and `autotools` <a name="buildunix"></a>
--------------------------------------------------
Home page for json-c: https://github.com/json-c/json-c/wiki
### Prerequisites:
See also the "Installing prerequisites" section below.
- `gcc`, `clang`, or another C compiler
- `libtool>=2.2.6b`
If you're not using a release tarball, you'll also need:
- `autoconf>=2.64` (`autoreconf`)
- `automake>=1.13`
Make sure you have a complete `libtool` install, including `libtoolize`.
To generate docs (e.g. as part of make distcheck) you'll also need:
- `doxygen>=1.8.13`
### Build instructions:
`json-c` GitHub repo: https://github.com/json-c/json-c
```sh
$ git clone https://github.com/json-c/json-c.git
$ cd json-c
$ sh autogen.sh
```
followed by
```sh
$ ./configure # --enable-threading
$ make
$ make install
```
To build and run the test programs:
```sh
$ make check
$ make USE_VALGRIND=0 check # optionally skip using valgrind
```
Install prerequisites <a name="installprereq"></a>
-----------------------
If you are on a relatively modern system, you'll likely be able to install
the prerequisites using your OS's packaging system.
### Install using apt (e.g. Ubuntu 16.04.2 LTS)
```sh
sudo apt install git
sudo apt install autoconf automake libtool
sudo apt install valgrind # optional
```
Then start from the "git clone" command, above.
### Manually install and build autoconf, automake and libtool
For older OS's that don't have up-to-date version of the packages will
require a bit more work. For example, CentOS release 5.11, etc...
```sh
curl -O http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
curl -O http://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz
curl -O http://ftp.gnu.org/gnu/libtool/libtool-2.2.6b.tar.gz
tar xzf autoconf-2.69.tar.gz
tar xzf automake-1.15.tar.gz
tar xzf libtool-2.2.6b.tar.gz
export PATH=${HOME}/ac_install/bin:$PATH
(cd autoconf-2.69 && \
./configure --prefix ${HOME}/ac_install && \
make && \
make install)
(cd automake-1.15 && \
./configure --prefix ${HOME}/ac_install && \
make && \
make install)
(cd libtool-2.2.6b && \
./configure --prefix ${HOME}/ac_install && \
make && \
make install)
```
Building with partial threading support <a name="buildthreaded"></a>
----------------------------------------
Although json-c does not support fully multi-threaded access to
object trees, it has some code to help make use in threaded programs
a bit safer. Currently, this is limited to using atomic operations for
json_object_get() and json_object_put().
Since this may have a performance impact, of at least 3x slower
according to https://stackoverflow.com/a/11609063, it is disabled by
default. You may turn it on by adjusting your configure command with:
--enable-threading
Separately, the default hash function used for object field keys,
lh_char_hash, uses a compare-and-swap operation to ensure the randomly
seed is only generated once. Because this is a one-time operation, it
is always compiled in when the compare-and-swap operation is available.
Linking to `libjson-c` <a name="linking">
----------------------
If your system has `pkgconfig`,
then you can just add this to your `makefile`:
```make
CFLAGS += $(shell pkg-config --cflags json-c)
LDFLAGS += $(shell pkg-config --libs json-c)
```
Without `pkgconfig`, you would do something like this:
```make
JSON_C_DIR=/path/to/json_c/install
CFLAGS += -I$(JSON_C_DIR)/include/json-c
LDFLAGS+= -L$(JSON_C_DIR)/lib -ljson-c
```
Using json-c <a name="using">
------------
To use json-c you can either include json.h, or preferrably, one of the
following more specific header files:
* json_object.h - Core types and methods.
* json_tokener.h - Methods for parsing and serializing json-c object trees.
* json_pointer.h - JSON Pointer (RFC 6901) implementation for retrieving
objects from a json-c object tree.
* json_object_iterator.h - Methods for iterating over single json_object instances.
* json_visit.h - Methods for walking a tree of json-c objects.
* json_util.h - Miscelleanous utility functions.
For a full list of headers see [files.html](files.html)

View File

@@ -1,13 +1,15 @@
Release checklist:
release=0.12
release=0.13
git clone https://github.com/json-c/json-c json-c-${release}
cd json-c-${release}
Check that the compile works on Linux
Check that the compile works on NetBSD
Check that the compile works on Windows
Run "make distcheck" and fix any problems
(e.g. adding new files to SOURCES variables in Makefile.am)
Check ChangeLog to see if anything should be added.
Make any fixes/changes *before* branching.
@@ -18,7 +20,8 @@ Make any fixes/changes *before* branching.
Update the version in json_c_version.h
Update the version in Doxyfile
Update the version in configure.in
Update the version in configure.ac
Update the version in CMakeLists.txt
Use ${release}.
Update the libjson_la_LDFLAGS line in Makefile.am to the new version.
@@ -31,7 +34,7 @@ Update the libjson_la_LDFLAGS line in Makefile.am to the new version.
Generate the configure script and other files:
sh autogen.sh
git add -f Makefile.in aclocal.m4 config.guess \
git add -f Makefile.in aclocal.m4 config.guess config.h.in \
config.sub configure depcomp install-sh \
ltmain.sh missing tests/Makefile.in \
INSTALL
@@ -85,7 +88,8 @@ git checkout master
Add new section to ChangeLog
Update the version in json_c_version.h
Update the version in Doxyfile
Update the version in configure.in
Update the version in configure.ac
Update the version in CMakeLists.txt
Use ${release}.99 to indicate a version "newer" than anything on the branch.
Leave the libjson_la_LDFLAGS line in Makefile.am alone.
@@ -111,6 +115,21 @@ git commit
vi index.html
Add/change links to current release.
git commit index.html
git push
------------
Update checksums on wiki page.
cd ..
openssl sha -sha256 json-c*gz
openssl md5 json-c*gz
Copy and paste this output into the wiki page at:
https://github.com/json-c/json-c/wiki
------------
Send an email to the mailing list.

31
STYLE.txt Executable file
View File

@@ -0,0 +1,31 @@
In general:
For minor changes to a function, copy the existing formatting.
When changing the style, commit that separately from other changes.
For new code and major changes to a function, switch to the official json-c style.
Official json-c style:
Aim for readability, not strict conformance to fixed style rules.
These rules are not comprehensive. Look to existing code for guidelines.
Indentation is tab based, with continuations of long lines starting with tabs then spaces for alignment.
Try to line up components of continuation lines with corresponding part of the line above (i.e. "indent -lp" effect), but avoid excessive identation tha causes extra line wraps.
e.g. (T=tab, S=space):
TTTTsome_long_func_call(arg1, arg2,
TTTTSSSSSSSSSSSSSSSSSSSarg3, arg4);
TTTTsome_reallly_really_long_func_name(arg1,
TTTTTarg2, arg3, arg4);
There should be a space between "if"/"while" and the following parenthesis.
"case" lines are indented at the same level as the "switch" statement.
Commas are followed by a single space.
Include spaces around most non-unary, non-postfix operators, "=", "==', "&", "||", etc...
Function calls have no space between the name and the parenthesis.
Curly braces go on their own line.
Curly braces may be omitted.
Naming:
Words within function and variable names are separated with underscores. Avoid camel case.
Prefer longer, more descriptive names, but not excessively so. No single letter variable names.
Other:
Variables should be defined for the smallest scope needed.
Functions should be defined static when possible.
When possible, avoid exposing internals in the public API.

9756
aclocal.m4 vendored Normal file

File diff suppressed because it is too large Load Diff

39
appveyor.yml Normal file
View File

@@ -0,0 +1,39 @@
version: '{branch}.{build}'
os: Windows Server 2012 R2
configuration:
- Debug
- Release
platform: x64
environment:
matrix:
- PlatformToolset: v140
- PlatformToolset: v120
- PlatformToolset: Windows7.1SDK
build_script:
- cmake .
- >
msbuild "json-c.vcxproj" /m /verbosity:normal
/logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
/p:PlatformToolset=%PlatformToolset% /p:OutDir=lib\
after_build:
- md include\json-c
- copy json.h include\json-c\*
- copy debug.h include\json-c\*
- copy linkhash.h include\json-c\*
- copy arraylist.h include\json-c\*
- copy json_util.h include\json-c\*
- copy json_object.h include\json-c\*
- copy json_tokener.h include\json-c\*
- copy json_object_iterator.h include\json-c\*
- copy json_c_version.h include\json-c\*
- copy json_inttypes.h include\json-c\*
- copy include\json_config.h include\json-c\*
- copy json_object_private.h include\json-c\*
- 7z a json-c.lib.zip lib\json-c.dll include\json-c\*.h
artifacts:
- path: json-c.lib.zip
name: json-c.lib.zip

View File

@@ -11,6 +11,8 @@
#include "config.h"
#include <limits.h>
#ifdef STDC_HEADERS
# include <stdlib.h>
# include <string.h>
@@ -20,7 +22,18 @@
# include <strings.h>
#endif /* HAVE_STRINGS_H */
#include "bits.h"
#ifndef SIZE_T_MAX
#if SIZEOF_SIZE_T == SIZEOF_INT
#define SIZE_T_MAX UINT_MAX
#elif SIZEOF_SIZE_T == SIZEOF_LONG
#define SIZE_T_MAX ULONG_MAX
#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG
#define SIZE_T_MAX ULLONG_MAX
#else
#error Unable to determine size of size_t
#endif
#endif
#include "arraylist.h"
struct array_list*
@@ -43,7 +56,7 @@ array_list_new(array_list_free_fn *free_fn)
extern void
array_list_free(struct array_list *arr)
{
int i;
size_t i;
for(i = 0; i < arr->length; i++)
if(arr->array[i]) arr->free_fn(arr->array[i]);
free(arr->array);
@@ -51,20 +64,29 @@ array_list_free(struct array_list *arr)
}
void*
array_list_get_idx(struct array_list *arr, int i)
array_list_get_idx(struct array_list *arr, size_t i)
{
if(i >= arr->length) return NULL;
return arr->array[i];
}
static int array_list_expand_internal(struct array_list *arr, int max)
static int array_list_expand_internal(struct array_list *arr, size_t max)
{
void *t;
int new_size;
size_t new_size;
if(max < arr->size) return 0;
new_size = json_max(arr->size << 1, max);
if(!(t = realloc(arr->array, new_size*sizeof(void*)))) return -1;
/* Avoid undefined behaviour on size_t overflow */
if( arr->size >= SIZE_T_MAX / 2 )
new_size = max;
else
{
new_size = arr->size << 1;
if (new_size < max)
new_size = max;
}
if (new_size > (~((size_t)0)) / sizeof(void*)) return -1;
if (!(t = realloc(arr->array, new_size*sizeof(void*)))) return -1;
arr->array = (void**)t;
(void)memset(arr->array + arr->size, 0, (new_size-arr->size)*sizeof(void*));
arr->size = new_size;
@@ -72,10 +94,12 @@ static int array_list_expand_internal(struct array_list *arr, int max)
}
int
array_list_put_idx(struct array_list *arr, int idx, void *data)
array_list_put_idx(struct array_list *arr, size_t idx, void *data)
{
if (idx > SIZE_T_MAX - 1 ) return -1;
if(array_list_expand_internal(arr, idx+1)) return -1;
if(arr->array[idx]) arr->free_fn(arr->array[idx]);
if(idx < arr->length && arr->array[idx])
arr->free_fn(arr->array[idx]);
arr->array[idx] = data;
if(arr->length <= idx) arr->length = idx + 1;
return 0;
@@ -90,12 +114,36 @@ array_list_add(struct array_list *arr, void *data)
void
array_list_sort(struct array_list *arr, int(*sort_fn)(const void *, const void *))
{
qsort(arr->array, arr->length, sizeof(arr->array[0]),
(int (*)(const void *, const void *))sort_fn);
qsort(arr->array, arr->length, sizeof(arr->array[0]), sort_fn);
}
int
void* array_list_bsearch(const void **key, struct array_list *arr,
int (*sort_fn)(const void *, const void *))
{
return bsearch(key, arr->array, arr->length, sizeof(arr->array[0]),
sort_fn);
}
size_t
array_list_length(struct array_list *arr)
{
return arr->length;
}
int
array_list_del_idx( struct array_list *arr, size_t idx, size_t count )
{
size_t i, stop;
/* Avoid overflow in calculation with large indices. */
if (idx > SIZE_T_MAX - count)
return -1;
stop = idx + count;
if ( idx >= arr->length || stop > arr->length ) return -1;
for ( i = idx; i < stop; ++i ) {
if ( arr->array[i] ) arr->free_fn( arr->array[i] );
}
memmove( arr->array + idx, arr->array + stop, (arr->length - stop) * sizeof(void*) );
arr->length -= count;
return 0;
}

View File

@@ -9,6 +9,12 @@
*
*/
/**
* @file
* @brief Internal methods for working with json_type_array objects.
* Although this is exposed by the json_object_get_array() method,
* it is not recommended for direct use.
*/
#ifndef _arraylist_h_
#define _arraylist_h_
@@ -23,10 +29,11 @@ typedef void (array_list_free_fn) (void *data);
struct array_list
{
void **array;
int length;
int size;
size_t length;
size_t size;
array_list_free_fn *free_fn;
};
typedef struct array_list array_list;
extern struct array_list*
array_list_new(array_list_free_fn *free_fn);
@@ -35,20 +42,27 @@ extern void
array_list_free(struct array_list *al);
extern void*
array_list_get_idx(struct array_list *al, int i);
array_list_get_idx(struct array_list *al, size_t i);
extern int
array_list_put_idx(struct array_list *al, int i, void *data);
array_list_put_idx(struct array_list *al, size_t i, void *data);
extern int
array_list_add(struct array_list *al, void *data);
extern int
extern size_t
array_list_length(struct array_list *al);
extern void
array_list_sort(struct array_list *arr, int(*compar)(const void *, const void *));
extern void* array_list_bsearch(const void **key,
struct array_list *arr,
int (*sort_fn)(const void *, const void *));
extern int
array_list_del_idx(struct array_list *arr, size_t idx, size_t count);
#ifdef __cplusplus
}
#endif

View File

@@ -0,0 +1,8 @@
Autoconf Archive fetched from:
http://gnu.mirror.iweb.com/autoconf-archive/autoconf-archive-2015.09.25.tar.xz
Grabbed the minimum files needed for the AX_APPEND_COMPILE_FLAGS and
AX_COMPILE_CHECK_SIZEOF macros.

View File

@@ -0,0 +1,65 @@
# ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_append_compile_flags.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_APPEND_COMPILE_FLAGS([FLAG1 FLAG2 ...], [FLAGS-VARIABLE], [EXTRA-FLAGS])
#
# DESCRIPTION
#
# For every FLAG1, FLAG2 it is checked whether the compiler works with the
# flag. If it does, the flag is added FLAGS-VARIABLE
#
# If FLAGS-VARIABLE is not specified, the current language's flags (e.g.
# CFLAGS) is used. During the check the flag is always added to the
# current language's flags.
#
# If EXTRA-FLAGS is defined, it is added to the current language's default
# flags (e.g. CFLAGS) when the check is done. The check is thus made with
# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to
# force the compiler to issue an error when a bad flag is given.
#
# NOTE: This macro depends on the AX_APPEND_FLAG and
# AX_CHECK_COMPILE_FLAG. Please keep this macro in sync with
# AX_APPEND_LINK_FLAGS.
#
# LICENSE
#
# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation, either version 3 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
# scripts that are the output of Autoconf when processing the Macro. You
# need not follow the terms of the GNU General Public License when using
# or distributing such scripts, even though portions of the text of the
# Macro appear in them. The GNU General Public License (GPL) does govern
# all other use of the material that constitutes the Autoconf Macro.
#
# This special exception to the GPL applies to versions of the Autoconf
# Macro released by the Autoconf Archive. When you make and distribute a
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
#serial 4
AC_DEFUN([AX_APPEND_COMPILE_FLAGS],
[AX_REQUIRE_DEFINED([AX_CHECK_COMPILE_FLAG])
AX_REQUIRE_DEFINED([AX_APPEND_FLAG])
for flag in $1; do
AX_CHECK_COMPILE_FLAG([$flag], [AX_APPEND_FLAG([$flag], [$2])], [], [$3])
done
])dnl AX_APPEND_COMPILE_FLAGS

View File

@@ -0,0 +1,71 @@
# ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_append_flag.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_APPEND_FLAG(FLAG, [FLAGS-VARIABLE])
#
# DESCRIPTION
#
# FLAG is appended to the FLAGS-VARIABLE shell variable, with a space
# added in between.
#
# If FLAGS-VARIABLE is not specified, the current language's flags (e.g.
# CFLAGS) is used. FLAGS-VARIABLE is not changed if it already contains
# FLAG. If FLAGS-VARIABLE is unset in the shell, it is set to exactly
# FLAG.
#
# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION.
#
# LICENSE
#
# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation, either version 3 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
# scripts that are the output of Autoconf when processing the Macro. You
# need not follow the terms of the GNU General Public License when using
# or distributing such scripts, even though portions of the text of the
# Macro appear in them. The GNU General Public License (GPL) does govern
# all other use of the material that constitutes the Autoconf Macro.
#
# This special exception to the GPL applies to versions of the Autoconf
# Macro released by the Autoconf Archive. When you make and distribute a
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
#serial 6
AC_DEFUN([AX_APPEND_FLAG],
[dnl
AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_SET_IF
AS_VAR_PUSHDEF([FLAGS], [m4_default($2,_AC_LANG_PREFIX[FLAGS])])
AS_VAR_SET_IF(FLAGS,[
AS_CASE([" AS_VAR_GET(FLAGS) "],
[*" $1 "*], [AC_RUN_LOG([: FLAGS already contains $1])],
[
AS_VAR_APPEND(FLAGS,[" $1"])
AC_RUN_LOG([: FLAGS="$FLAGS"])
])
],
[
AS_VAR_SET(FLAGS,[$1])
AC_RUN_LOG([: FLAGS="$FLAGS"])
])
AS_VAR_POPDEF([FLAGS])dnl
])dnl AX_APPEND_FLAG

View File

@@ -0,0 +1,74 @@
# ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS], [INPUT])
#
# DESCRIPTION
#
# Check whether the given FLAG works with the current language's compiler
# or gives an error. (Warnings, however, are ignored)
#
# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
# success/failure.
#
# If EXTRA-FLAGS is defined, it is added to the current language's default
# flags (e.g. CFLAGS) when the check is done. The check is thus made with
# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to
# force the compiler to issue an error when a bad flag is given.
#
# INPUT gives an alternative input source to AC_COMPILE_IFELSE.
#
# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this
# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG.
#
# LICENSE
#
# Copyright (c) 2008 Guido U. Draheim <guidod@gmx.de>
# Copyright (c) 2011 Maarten Bosmans <mkbosmans@gmail.com>
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation, either version 3 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
# scripts that are the output of Autoconf when processing the Macro. You
# need not follow the terms of the GNU General Public License when using
# or distributing such scripts, even though portions of the text of the
# Macro appear in them. The GNU General Public License (GPL) does govern
# all other use of the material that constitutes the Autoconf Macro.
#
# This special exception to the GPL applies to versions of the Autoconf
# Macro released by the Autoconf Archive. When you make and distribute a
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
#serial 4
AC_DEFUN([AX_CHECK_COMPILE_FLAG],
[AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF
AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl
AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [
ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS
_AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1"
AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])],
[AS_VAR_SET(CACHEVAR,[yes])],
[AS_VAR_SET(CACHEVAR,[no])])
_AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags])
AS_VAR_IF(CACHEVAR,yes,
[m4_default([$2], :)],
[m4_default([$3], :)])
AS_VAR_POPDEF([CACHEVAR])dnl
])dnl AX_CHECK_COMPILE_FLAGS

View File

@@ -0,0 +1,114 @@
# ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_compile_check_sizeof.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_COMPILE_CHECK_SIZEOF(TYPE [, HEADERS [, EXTRA_SIZES...]])
#
# DESCRIPTION
#
# This macro checks for the size of TYPE using compile checks, not run
# checks. You can supply extra HEADERS to look into. the check will cycle
# through 1 2 4 8 16 and any EXTRA_SIZES the user supplies. If a match is
# found, it will #define SIZEOF_`TYPE' to that value. Otherwise it will
# emit a configure time error indicating the size of the type could not be
# determined.
#
# The trick is that C will not allow duplicate case labels. While this is
# valid C code:
#
# switch (0) case 0: case 1:;
#
# The following is not:
#
# switch (0) case 0: case 0:;
#
# Thus, the AC_TRY_COMPILE will fail if the currently tried size does not
# match.
#
# Here is an example skeleton configure.in script, demonstrating the
# macro's usage:
#
# AC_PROG_CC
# AC_CHECK_HEADERS(stddef.h unistd.h)
# AC_TYPE_SIZE_T
# AC_CHECK_TYPE(ssize_t, int)
#
# headers='#ifdef HAVE_STDDEF_H
# #include <stddef.h>
# #endif
# #ifdef HAVE_UNISTD_H
# #include <unistd.h>
# #endif
# '
#
# AX_COMPILE_CHECK_SIZEOF(char)
# AX_COMPILE_CHECK_SIZEOF(short)
# AX_COMPILE_CHECK_SIZEOF(int)
# AX_COMPILE_CHECK_SIZEOF(long)
# AX_COMPILE_CHECK_SIZEOF(unsigned char *)
# AX_COMPILE_CHECK_SIZEOF(void *)
# AX_COMPILE_CHECK_SIZEOF(size_t, $headers)
# AX_COMPILE_CHECK_SIZEOF(ssize_t, $headers)
# AX_COMPILE_CHECK_SIZEOF(ptrdiff_t, $headers)
# AX_COMPILE_CHECK_SIZEOF(off_t, $headers)
#
# LICENSE
#
# Copyright (c) 2008 Kaveh Ghazi <ghazi@caip.rutgers.edu>
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation, either version 3 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
# scripts that are the output of Autoconf when processing the Macro. You
# need not follow the terms of the GNU General Public License when using
# or distributing such scripts, even though portions of the text of the
# Macro appear in them. The GNU General Public License (GPL) does govern
# all other use of the material that constitutes the Autoconf Macro.
#
# This special exception to the GPL applies to versions of the Autoconf
# Macro released by the Autoconf Archive. When you make and distribute a
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
#serial 5
AU_ALIAS([AC_COMPILE_CHECK_SIZEOF], [AX_COMPILE_CHECK_SIZEOF])
AC_DEFUN([AX_COMPILE_CHECK_SIZEOF],
[changequote(<<, >>)dnl
dnl The name to #define.
define(<<AC_TYPE_NAME>>, translit(sizeof_$1, [a-z *], [A-Z_P]))dnl
dnl The cache variable name.
define(<<AC_CV_NAME>>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl
changequote([, ])dnl
AC_MSG_CHECKING(size of $1)
AC_CACHE_VAL(AC_CV_NAME,
[for ac_size in 4 8 1 2 16 $3 ; do # List sizes in rough order of prevalence.
AC_TRY_COMPILE([#include "confdefs.h"
#include <sys/types.h>
$2
], [switch (0) case 0: case (sizeof ($1) == $ac_size):;], AC_CV_NAME=$ac_size)
if test x$AC_CV_NAME != x ; then break; fi
done
])
if test x$AC_CV_NAME = x ; then
AC_MSG_ERROR([cannot determine a size for $1])
fi
AC_MSG_RESULT($AC_CV_NAME)
AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [The number of bytes in type $1])
undefine([AC_TYPE_NAME])dnl
undefine([AC_CV_NAME])dnl
])

View File

@@ -0,0 +1,37 @@
# ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_require_defined.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_REQUIRE_DEFINED(MACRO)
#
# DESCRIPTION
#
# AX_REQUIRE_DEFINED is a simple helper for making sure other macros have
# been defined and thus are available for use. This avoids random issues
# where a macro isn't expanded. Instead the configure script emits a
# non-fatal:
#
# ./configure: line 1673: AX_CFLAGS_WARN_ALL: command not found
#
# It's like AC_REQUIRE except it doesn't expand the required macro.
#
# Here's an example:
#
# AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG])
#
# LICENSE
#
# Copyright (c) 2014 Mike Frysinger <vapier@gentoo.org>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice
# and this notice are preserved. This file is offered as-is, without any
# warranty.
#serial 1
AC_DEFUN([AX_REQUIRE_DEFINED], [dnl
m4_ifndef([$1], [m4_fatal([macro ]$1[ is not defined; is a m4 file missing?])])
])dnl AX_REQUIRE_DEFINED

28
bits.h
View File

@@ -1,4 +1,8 @@
/*
/**
* @file
* @brief Do not use, only contains deprecated defines.
* @deprecated Use json_util.h instead.
*
* $Id: bits.h,v 1.10 2006/01/30 23:07:57 mclark Exp $
*
* Copyright (c) 2004, 2005 Metaparadigm Pte. Ltd.
@@ -12,17 +16,21 @@
#ifndef _bits_h_
#define _bits_h_
#ifndef json_min
#define json_min(a,b) ((a) < (b) ? (a) : (b))
#endif
#ifndef json_max
#define json_max(a,b) ((a) > (b) ? (a) : (b))
#endif
/**
* @deprecated
*/
#define hexdigit(x) (((x) <= '9') ? (x) - '0' : ((x) & 7) + 9)
/**
* @deprecated
*/
#define error_ptr(error) ((void*)error)
#define error_description(error) (json_tokener_errors[error])
/**
* @deprecated
*/
#define error_description(error) (json_tokener_get_error(error))
/**
* @deprecated
*/
#define is_error(ptr) (ptr == NULL)
#endif

347
compile Executable file
View File

@@ -0,0 +1,347 @@
#! /bin/sh
# Wrapper for compilers which do not understand '-c -o'.
scriptversion=2012-10-14.11; # UTC
# Copyright (C) 1999-2013 Free Software Foundation, Inc.
# Written by Tom Tromey <tromey@cygnus.com>.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# This file is maintained in Automake, please report
# bugs to <bug-automake@gnu.org> or send patches to
# <automake-patches@gnu.org>.
nl='
'
# We need space, tab and new line, in precisely that order. Quoting is
# there to prevent tools from complaining about whitespace usage.
IFS=" "" $nl"
file_conv=
# func_file_conv build_file lazy
# Convert a $build file to $host form and store it in $file
# Currently only supports Windows hosts. If the determined conversion
# type is listed in (the comma separated) LAZY, no conversion will
# take place.
func_file_conv ()
{
file=$1
case $file in
/ | /[!/]*) # absolute file, and not a UNC file
if test -z "$file_conv"; then
# lazily determine how to convert abs files
case `uname -s` in
MINGW*)
file_conv=mingw
;;
CYGWIN*)
file_conv=cygwin
;;
*)
file_conv=wine
;;
esac
fi
case $file_conv/,$2, in
*,$file_conv,*)
;;
mingw/*)
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
;;
cygwin/*)
file=`cygpath -m "$file" || echo "$file"`
;;
wine/*)
file=`winepath -w "$file" || echo "$file"`
;;
esac
;;
esac
}
# func_cl_dashL linkdir
# Make cl look for libraries in LINKDIR
func_cl_dashL ()
{
func_file_conv "$1"
if test -z "$lib_path"; then
lib_path=$file
else
lib_path="$lib_path;$file"
fi
linker_opts="$linker_opts -LIBPATH:$file"
}
# func_cl_dashl library
# Do a library search-path lookup for cl
func_cl_dashl ()
{
lib=$1
found=no
save_IFS=$IFS
IFS=';'
for dir in $lib_path $LIB
do
IFS=$save_IFS
if $shared && test -f "$dir/$lib.dll.lib"; then
found=yes
lib=$dir/$lib.dll.lib
break
fi
if test -f "$dir/$lib.lib"; then
found=yes
lib=$dir/$lib.lib
break
fi
if test -f "$dir/lib$lib.a"; then
found=yes
lib=$dir/lib$lib.a
break
fi
done
IFS=$save_IFS
if test "$found" != yes; then
lib=$lib.lib
fi
}
# func_cl_wrapper cl arg...
# Adjust compile command to suit cl
func_cl_wrapper ()
{
# Assume a capable shell
lib_path=
shared=:
linker_opts=
for arg
do
if test -n "$eat"; then
eat=
else
case $1 in
-o)
# configure might choose to run compile as 'compile cc -o foo foo.c'.
eat=1
case $2 in
*.o | *.[oO][bB][jJ])
func_file_conv "$2"
set x "$@" -Fo"$file"
shift
;;
*)
func_file_conv "$2"
set x "$@" -Fe"$file"
shift
;;
esac
;;
-I)
eat=1
func_file_conv "$2" mingw
set x "$@" -I"$file"
shift
;;
-I*)
func_file_conv "${1#-I}" mingw
set x "$@" -I"$file"
shift
;;
-l)
eat=1
func_cl_dashl "$2"
set x "$@" "$lib"
shift
;;
-l*)
func_cl_dashl "${1#-l}"
set x "$@" "$lib"
shift
;;
-L)
eat=1
func_cl_dashL "$2"
;;
-L*)
func_cl_dashL "${1#-L}"
;;
-static)
shared=false
;;
-Wl,*)
arg=${1#-Wl,}
save_ifs="$IFS"; IFS=','
for flag in $arg; do
IFS="$save_ifs"
linker_opts="$linker_opts $flag"
done
IFS="$save_ifs"
;;
-Xlinker)
eat=1
linker_opts="$linker_opts $2"
;;
-*)
set x "$@" "$1"
shift
;;
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
func_file_conv "$1"
set x "$@" -Tp"$file"
shift
;;
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
func_file_conv "$1" mingw
set x "$@" "$file"
shift
;;
*)
set x "$@" "$1"
shift
;;
esac
fi
shift
done
if test -n "$linker_opts"; then
linker_opts="-link$linker_opts"
fi
exec "$@" $linker_opts
exit 1
}
eat=
case $1 in
'')
echo "$0: No command. Try '$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: compile [--help] [--version] PROGRAM [ARGS]
Wrapper for compilers which do not understand '-c -o'.
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
arguments, and rename the output as expected.
If you are trying to build a whole package this is not the
right script to run: please start by reading the file 'INSTALL'.
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "compile $scriptversion"
exit $?
;;
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
func_cl_wrapper "$@" # Doesn't return...
;;
esac
ofile=
cfile=
for arg
do
if test -n "$eat"; then
eat=
else
case $1 in
-o)
# configure might choose to run compile as 'compile cc -o foo foo.c'.
# So we strip '-o arg' only if arg is an object.
eat=1
case $2 in
*.o | *.obj)
ofile=$2
;;
*)
set x "$@" -o "$2"
shift
;;
esac
;;
*.c)
cfile=$1
set x "$@" "$1"
shift
;;
*)
set x "$@" "$1"
shift
;;
esac
fi
shift
done
if test -z "$ofile" || test -z "$cfile"; then
# If no '-o' option was seen then we might have been invoked from a
# pattern rule where we don't need one. That is ok -- this is a
# normal compilation that the losing compiler can handle. If no
# '.c' file was seen then we are probably linking. That is also
# ok.
exec "$@"
fi
# Name of file we expect compiler to create.
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
# Create the lock directory.
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
# that we are using for the .o file. Also, base the name on the expected
# object file name, since that is what matters with a parallel build.
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
while true; do
if mkdir "$lockdir" >/dev/null 2>&1; then
break
fi
sleep 1
done
# FIXME: race condition here if user kills between mkdir and trap.
trap "rmdir '$lockdir'; exit 1" 1 2 15
# Run the compile.
"$@"
ret=$?
if test -f "$cofile"; then
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
elif test -f "${cofile}bj"; then
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
fi
rmdir "$lockdir"
exit $ret
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:

1420
config.guess vendored Executable file

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +1,17 @@
/* config.h.in. Generated from configure.ac by autoheader. */
/* Enable RDRANR Hardware RNG Hash Seed */
/* Enable RDRAND Hardware RNG Hash Seed */
#undef ENABLE_RDRAND
/* Enable partial threading support */
#undef ENABLE_THREADING
/* Define if .gnu.warning accepts long strings. */
#undef HAS_GNU_WARNING_LONG
/* Has atomic builtins */
#undef HAVE_ATOMIC_BUILTINS
/* Define to 1 if you have the declaration of `INFINITY', and to 0 if you
don't. */
#undef HAVE_DECL_INFINITY
@@ -50,18 +56,13 @@
/* Define to 1 if you have the <locale.h> header file. */
#undef HAVE_LOCALE_H
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
to 0 otherwise. */
#undef HAVE_MALLOC
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define to 1 if you have the `open' function. */
#undef HAVE_OPEN
/* Define to 1 if your system has a GNU libc compatible `realloc' function,
and to 0 otherwise. */
/* Define to 1 if you have the `realloc' function. */
#undef HAVE_REALLOC
/* Define to 1 if you have the `setlocale' function. */
@@ -115,6 +116,9 @@
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define to 1 if you have the `uselocale' function. */
#undef HAVE_USELOCALE
/* Define to 1 if you have the `vasprintf' function. */
#undef HAVE_VASPRINTF
@@ -127,6 +131,12 @@
/* Define to 1 if you have the `vsyslog' function. */
#undef HAVE_VSYSLOG
/* Define to 1 if you have the <xlocale.h> header file. */
#undef HAVE_XLOCALE_H
/* Have __thread */
#undef HAVE___THREAD
/* Public define for json_inttypes.h */
#undef JSON_C_HAVE_INTTYPES_H
@@ -155,6 +165,24 @@
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* The number of bytes in type int */
#undef SIZEOF_INT
/* The number of bytes in type int64_t */
#undef SIZEOF_INT64_T
/* The number of bytes in type long */
#undef SIZEOF_LONG
/* The number of bytes in type long long */
#undef SIZEOF_LONG_LONG
/* The number of bytes in type size_t */
#undef SIZEOF_SIZE_T
/* Specifier for __thread */
#undef SPEC___THREAD
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
@@ -164,11 +192,5 @@
/* Define to empty if `const' does not conform to ANSI C. */
#undef const
/* Define to rpl_malloc if the replacement function should be used. */
#undef malloc
/* Define to rpl_realloc if the replacement function should be used. */
#undef realloc
/* Define to `unsigned int' if <sys/types.h> does not define. */
#undef size_t

View File

@@ -1,26 +1,50 @@
/*
* $Id: config.h.win32,v 1.2 2006/01/26 02:16:28 mclark Exp $
*
* Copyright (c) 2004, 2005 Metaparadigm Pte. Ltd.
* Michael Clark <michael@metaparadigm.com>
*
* This library is free software; you can redistribute it and/or modify
* it under the terms of the MIT license. See COPYING for details.
*
*/
/* config.h.win32 Generated by configure. */
#define PACKAGE_STRING "JSON C Library 0.2"
#define PACKAGE_BUGREPORT "json-c@googlegroups.com"
#define PACKAGE_NAME "JSON C Library"
#define PACKAGE_TARNAME "json-c"
#define PACKAGE_VERSION "0.2"
/* config.h.in. Generated from configure.ac by autoheader. */
/* Enable RDRANR Hardware RNG Hash Seed */
#undef ENABLE_RDRAND
/* Define if .gnu.warning accepts long strings. */
#undef HAS_GNU_WARNING_LONG
/* Define to 1 if you have the declaration of `INFINITY', and to 0 if you
don't. */
#if (defined(_MSC_VER) && _MSC_VER >= 1800) || defined(__MINGW32__)
#define HAVE_DECL_INFINITY 1
#endif
/* Define to 1 if you have the declaration of `isinf', and to 0 if you don't.
*/
#if (defined(_MSC_VER) && _MSC_VER >= 1800) || defined(__MINGW32__)
#define HAVE_DECL_ISINF 1
#endif
/* Define to 1 if you have the declaration of `isnan', and to 0 if you don't.
*/
#if (defined(_MSC_VER) && _MSC_VER >= 1800) || defined(__MINGW32__)
#define HAVE_DECL_ISNAN 1
#endif
/* Define to 1 if you have the declaration of `nan', and to 0 if you don't. */
#if (defined(_MSC_VER) && _MSC_VER >= 1800) || defined(__MINGW32__)
#define HAVE_DECL_NAN 1
#endif
/* Define to 1 if you have the declaration of `_finite', and to 0 if you
don't. */
#define HAVE_DECL__FINITE 1
/* Define to 1 if you have the declaration of `_isnan', and to 0 if you don't.
*/
#define HAVE_DECL__ISNAN 1
/* Define to 1 if you have the <dlfcn.h> header file. */
#define HAVE_DLFCN_H 1
/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
/* #undef HAVE_DOPRNT */
#define HAVE_DOPRNT 1
/* Define to 1 if you have the <endian.h> header file. */
#undef HAVE_ENDIAN_H
/* Define to 1 if you have the <fcntl.h> header file. */
#define HAVE_FCNTL_H 1
@@ -31,6 +55,9 @@
/* Define to 1 if you have the <limits.h> header file. */
#define HAVE_LIMITS_H 1
/* Define to 1 if you have the <locale.h> header file. */
#define HAVE_LOCALE_H 1
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
to 0 otherwise. */
#define HAVE_MALLOC 1
@@ -39,23 +66,36 @@
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the `open' function. */
#undef HAVE_OPEN
#define HAVE_OPEN 1
/* Define to 1 if your system has a GNU libc compatible `realloc' function,
and to 0 otherwise. */
#define HAVE_REALLOC 1
#define HAVE_REALLOC 1
/* Define to 1 if you have the `setlocale' function. */
#define HAVE_SETLOCALE 1
/* Define to 1 if you have the `snprintf' function. */
#if defined(__MINGW32__)
#define HAVE_SNPRINTF 1
#else
#undef HAVE_SNPRINTF
#endif
/* Define to 1 if you have the <stdarg.h> header file. */
#define HAVE_STDARG_H 1
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the `strdup' function. */
#undef HAVE_STRNDUP
/* Define to 1 if you have the `strcasecmp' function. */
#define HAVE_STRCASECMP 1
/* Define to 1 if you have the <stdarg.h> header file. */
#define HAVE_STDARG_H 1
/* Define to 1 if you have the `strdup' function. */
#define HAVE_STRDUP 0
/* Define to 1 if you have the `strerror' function. */
#define HAVE_STRERROR 1
@@ -66,11 +106,28 @@
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the `strncasecmp' function. */
#if defined(__MINGW32__)
#define HAVE_STRNCASECMP 1
#else
#undef HAVE_STRNCASECMP
#endif
#cmakedefine HAVE_STRTOLL
#cmakedefine strtoll @cmake_strtoll@
/* Define to 1 if you have the <syslog.h> header file. */
#undef HAVE_SYSLOG_H
/* Define to 1 if you have the <sys/cdefs.h> header file. */
#define HAVE_SYS_CDEFS_H 1
/* Define to 1 if you have the <sys/param.h> header file. */
#if defined(__MINGW32__)
#define HAVE_SYS_PARAM_H 1
#else
#undef HAVE_SYS_PARAM_H
#endif
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
@@ -79,16 +136,70 @@
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */
#if defined(__MINGW32__)
#define HAVE_UNISTD_H 1
#else
#undef HAVE_UNISTD_H
#endif
/* Define to 1 if you have the `vasprintf' function. */
#if defined(__MINGW32__)
#define HAVE_VASPRINTF 1
#else
#undef HAVE_VASPRINTF
#endif
/* Define to 1 if you have the `vprintf' function. */
#undef HAVE_VPRINTF
#define HAVE_VPRINTF 1
/* Define to 1 if you have the `vsnprintf' function. */
#define HAVE_VSNPRINTF 1
/* Define to 1 if you have the `vsyslog' function. */
#undef HAVE_VSYSLOG
/* Define to 1 if you have the `strncasecmp' function. */
#undef HAVE_STRNCASECMP
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#undef LT_OBJDIR
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
/* #undef NO_MINUS_C_MINUS_O */
/* Name of package */
#define PACKAGE "json-c"
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "json-c@googlegroups.com"
/* Define to the full name of this package. */
#define PACKAGE_NAME "JSON C Library"
/* Define to the full name and version of this package. */
#define PACKAGE_STRING "JSON C Library 0.13.1"
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "json-c"
/* Define to the home page for this package. */
#define PACKAGE_URL "https://github.com/json-c/json-c"
/* Define to the version of this package. */
#define PACKAGE_VERSION "0.13.1"
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
#define STDC_HEADERS 1
/* Version number of package */
#define VERSION "0.13.1"
/* Define to empty if `const' does not conform to ANSI C. */
/* #undef const */
/* Define to rpl_malloc if the replacement function should be used. */
/* #undef malloc */
/* Define to rpl_realloc if the replacement function should be used. */
/* #undef realloc */
/* Define to `unsigned int' if <sys/types.h> does not define. */
/* #undef size_t */

1799
config.sub vendored Executable file

File diff suppressed because it is too large Load Diff

15270
configure vendored Executable file

File diff suppressed because it is too large Load Diff

View File

@@ -1,18 +1,36 @@
AC_PREREQ(2.52)
AC_PREREQ(2.64)
# Process this file with autoconf to produce a configure script.
AC_INIT([json-c], 0.11.99, [json-c@googlegroups.com])
AC_INIT([json-c], 0.13.1, [json-c@googlegroups.com])
AM_INIT_AUTOMAKE
AC_CONFIG_MACRO_DIRS([autoconf-archive/m4])
AC_PROG_MAKE_SET
AC_CANONICAL_HOST
AC_ARG_ENABLE(threading,
AS_HELP_STRING([--enable-threading],
[Enable code to support partly multi-threaded use]),
[if test x$enableval = xyes; then
enable_threading=yes
AC_DEFINE(ENABLE_THREADING, 1, [Enable partial threading support])
fi])
if test "x$enable_threading" = "xyes"; then
AC_MSG_RESULT([Partial multi-threaded support enabled.])
else
AC_MSG_RESULT([Multi-threaded support disabled. Use --enable-threading to enable.])
fi
AC_ARG_ENABLE(rdrand,
AS_HELP_STRING([--enable-rdrand],
[Enable RDRAND Hardware RNG Hash Seed generation on supported x86/x64 platforms.]),
[if test x$enableval = xyes; then
enable_rdrand=yes
AC_DEFINE(ENABLE_RDRAND, 1, [Enable RDRANR Hardware RNG Hash Seed])
AC_DEFINE(ENABLE_RDRAND, 1, [Enable RDRAND Hardware RNG Hash Seed])
fi])
if test "x$enable_rdrand" = "xyes"; then
@@ -21,27 +39,42 @@ else
AC_MSG_RESULT([RDRAND Hardware RNG Hash Seed disabled. Use --enable-rdrand to enable])
fi
# enable silent build by default
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
# Checks for programs.
# Checks for libraries.
# Checks for header files.
AM_PROG_CC_C_O
AC_PROG_CC_C99
AC_CONFIG_HEADER(config.h)
AC_CONFIG_HEADER(json_config.h)
AC_HEADER_STDC
AC_CHECK_HEADERS(fcntl.h limits.h strings.h syslog.h unistd.h [sys/cdefs.h] [sys/param.h] stdarg.h locale.h endian.h)
AC_CHECK_HEADERS(fcntl.h limits.h strings.h syslog.h unistd.h [sys/cdefs.h] [sys/param.h] stdarg.h locale.h xlocale.h endian.h)
AC_CHECK_HEADER(inttypes.h,[AC_DEFINE([JSON_C_HAVE_INTTYPES_H],[1],[Public define for json_inttypes.h])])
# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_TYPE_SIZE_T
AC_CACHE_CHECK([for __thread support], ac_cv___thread, [dnl
AC_LINK_IFELSE([dnl
AC_LANG_PROGRAM([[#undef __thread
static __thread int a; int foo (int b) { return a + b; }]],
[[exit (foo (0));]])],
ac_cv___thread=yes, ac_cv___thread=no)
])
AS_IF([test "x$ac_cv___thread" != xno],
[AC_DEFINE(HAVE___THREAD, 1, [Have __thread])
AC_DEFINE(SPEC___THREAD, [__thread], [Specifier for __thread])]
)
# Checks for library functions.
AC_FUNC_VPRINTF
AC_FUNC_MEMCMP
AC_FUNC_MALLOC
AC_FUNC_REALLOC
AC_CHECK_FUNCS([realloc])
AC_CHECK_FUNCS(strcasecmp strdup strerror snprintf vsnprintf vasprintf open vsyslog strncasecmp setlocale)
AC_CHECK_DECLS([INFINITY], [], [], [[#include <math.h>]])
AC_CHECK_DECLS([nan], [], [], [[#include <math.h>]])
@@ -49,6 +82,42 @@ AC_CHECK_DECLS([isnan], [], [], [[#include <math.h>]])
AC_CHECK_DECLS([isinf], [], [], [[#include <math.h>]])
AC_CHECK_DECLS([_isnan], [], [], [[#include <float.h>]])
AC_CHECK_DECLS([_finite], [], [], [[#include <float.h>]])
AC_MSG_CHECKING(for GCC atomic builtins)
AC_LINK_IFELSE(
[
AC_LANG_SOURCE([[
int main() {
volatile unsigned int val = 1;
/* Note: __sync_val_compare_and_swap isn't checked here
* because it's protected by __GCC_HAVE_SYNC_COMPARE_AND_SWAP_<n>,
* which is automatically defined by gcc.
*/
__sync_add_and_fetch(&val, 1);
__sync_sub_and_fetch(&val, 1);
return 0;
}
]])
],
[
AC_MSG_RESULT([yes])
AC_DEFINE([HAVE_ATOMIC_BUILTINS],[1],[Has atomic builtins])
],
[
AC_MSG_RESULT([no])
AC_MSG_WARN([json-c will be built without atomic refcounts because atomic builtins are missing])
])
case "${host_os}" in
linux*)
AC_CHECK_FUNCS([uselocale])
;;
*) # Nothing
;;
esac
if test "$ac_cv_have_decl_isnan" = "yes" ; then
AC_TRY_LINK([#include <math.h>], [float f = 0.0; return isnan(f)], [], [LIBS="$LIBS -lm"])
fi
#check if .section.gnu.warning accepts long strings (for __warn_references)
AC_LANG_PUSH([C])
@@ -68,7 +137,7 @@ int main(int c,char* v) {return 0;}
AC_LANG_POP([C])
AM_PROG_LIBTOOL
LT_INIT
# Check for the -Bsymbolic-functions linker flag
AC_ARG_ENABLE([Bsymbolic],
@@ -96,6 +165,37 @@ AS_IF([test "x$enable_Bsymbolic" = "xcheck"],
AS_IF([test "x$enable_Bsymbolic" = "xyes"], [JSON_BSYMBOLIC_LDFLAGS=-Wl[,]-Bsymbolic-functions])
AC_SUBST(JSON_BSYMBOLIC_LDFLAGS)
AX_APPEND_COMPILE_FLAGS([-Wall -Werror -Wcast-qual -Wno-error=deprecated-declarations])
AX_APPEND_COMPILE_FLAGS([-Wextra -Wwrite-string -Wno-unused-parameter])
AX_APPEND_COMPILE_FLAGS([-D_GNU_SOURCE])
AC_LANG_PUSH([C])
AC_MSG_CHECKING([for compatibility with _REENTRANT and toolchain headers])
AC_LINK_IFELSE(
[
AC_LANG_SOURCE([[
/* uClibc toolchains without threading barf when _REENTRANT is defined */
#define _REENTRANT 1
#include <sys/types.h>
int main ()
{
return 0;
}
]])], [
AC_MSG_RESULT(yes)
AX_APPEND_COMPILE_FLAGS([-D_REENTRANT])
], [
AC_MSG_RESULT(no)
])
AC_LANG_POP([C])
AX_COMPILE_CHECK_SIZEOF(int)
AX_COMPILE_CHECK_SIZEOF(long)
AX_COMPILE_CHECK_SIZEOF(long long)
AX_COMPILE_CHECK_SIZEOF(size_t, [#include <stdint.h>])
AX_COMPILE_CHECK_SIZEOF(int64_t, [#include <stdint.h>])
AC_CONFIG_FILES([
Makefile
json-c.pc

View File

@@ -76,7 +76,7 @@ void mc_info(const char *msg, ...)
#if HAVE_VSYSLOG
if(_syslog) {
vsyslog(LOG_INFO, msg, ap);
} else
} else
#endif
vfprintf(stderr, msg, ap);
va_end(ap);

View File

@@ -10,6 +10,10 @@
*
*/
/**
* @file
* @brief Do not use, json-c internal, may be changed or removed at any time.
*/
#ifndef _DEBUG_H_
#define _DEBUG_H_

791
depcomp Executable file
View File

@@ -0,0 +1,791 @@
#! /bin/sh
# depcomp - compile a program generating dependencies as side-effects
scriptversion=2013-05-30.07; # UTC
# Copyright (C) 1999-2013 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
case $1 in
'')
echo "$0: No command. Try '$0 --help' for more information." 1>&2
exit 1;
;;
-h | --h*)
cat <<\EOF
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
Run PROGRAMS ARGS to compile a file, generating dependencies
as side-effects.
Environment variables:
depmode Dependency tracking mode.
source Source file read by 'PROGRAMS ARGS'.
object Object file output by 'PROGRAMS ARGS'.
DEPDIR directory where to store dependencies.
depfile Dependency file to output.
tmpdepfile Temporary file to use when outputting dependencies.
libtool Whether libtool is used (yes/no).
Report bugs to <bug-automake@gnu.org>.
EOF
exit $?
;;
-v | --v*)
echo "depcomp $scriptversion"
exit $?
;;
esac
# Get the directory component of the given path, and save it in the
# global variables '$dir'. Note that this directory component will
# be either empty or ending with a '/' character. This is deliberate.
set_dir_from ()
{
case $1 in
*/*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
*) dir=;;
esac
}
# Get the suffix-stripped basename of the given path, and save it the
# global variable '$base'.
set_base_from ()
{
base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
}
# If no dependency file was actually created by the compiler invocation,
# we still have to create a dummy depfile, to avoid errors with the
# Makefile "include basename.Plo" scheme.
make_dummy_depfile ()
{
echo "#dummy" > "$depfile"
}
# Factor out some common post-processing of the generated depfile.
# Requires the auxiliary global variable '$tmpdepfile' to be set.
aix_post_process_depfile ()
{
# If the compiler actually managed to produce a dependency file,
# post-process it.
if test -f "$tmpdepfile"; then
# Each line is of the form 'foo.o: dependency.h'.
# Do two passes, one to just change these to
# $object: dependency.h
# and one to simply output
# dependency.h:
# which is needed to avoid the deleted-header problem.
{ sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
} > "$depfile"
rm -f "$tmpdepfile"
else
make_dummy_depfile
fi
}
# A tabulation character.
tab=' '
# A newline character.
nl='
'
# Character ranges might be problematic outside the C locale.
# These definitions help.
upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
lower=abcdefghijklmnopqrstuvwxyz
digits=0123456789
alpha=${upper}${lower}
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
echo "depcomp: Variables source, object and depmode must be set" 1>&2
exit 1
fi
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
depfile=${depfile-`echo "$object" |
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
rm -f "$tmpdepfile"
# Avoid interferences from the environment.
gccflag= dashmflag=
# Some modes work just like other modes, but use different flags. We
# parameterize here, but still list the modes in the big case below,
# to make depend.m4 easier to write. Note that we *cannot* use a case
# here, because this file can only contain one case statement.
if test "$depmode" = hp; then
# HP compiler uses -M and no extra arg.
gccflag=-M
depmode=gcc
fi
if test "$depmode" = dashXmstdout; then
# This is just like dashmstdout with a different argument.
dashmflag=-xM
depmode=dashmstdout
fi
cygpath_u="cygpath -u -f -"
if test "$depmode" = msvcmsys; then
# This is just like msvisualcpp but w/o cygpath translation.
# Just convert the backslash-escaped backslashes to single forward
# slashes to satisfy depend.m4
cygpath_u='sed s,\\\\,/,g'
depmode=msvisualcpp
fi
if test "$depmode" = msvc7msys; then
# This is just like msvc7 but w/o cygpath translation.
# Just convert the backslash-escaped backslashes to single forward
# slashes to satisfy depend.m4
cygpath_u='sed s,\\\\,/,g'
depmode=msvc7
fi
if test "$depmode" = xlc; then
# IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
gccflag=-qmakedep=gcc,-MF
depmode=gcc
fi
case "$depmode" in
gcc3)
## gcc 3 implements dependency tracking that does exactly what
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
## it if -MD -MP comes after the -MF stuff. Hmm.
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
## the command line argument order; so add the flags where they
## appear in depend2.am. Note that the slowdown incurred here
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
for arg
do
case $arg in
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
*) set fnord "$@" "$arg" ;;
esac
shift # fnord
shift # $arg
done
"$@"
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
mv "$tmpdepfile" "$depfile"
;;
gcc)
## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
## (see the conditional assignment to $gccflag above).
## There are various ways to get dependency output from gcc. Here's
## why we pick this rather obscure method:
## - Don't want to use -MD because we'd like the dependencies to end
## up in a subdir. Having to rename by hand is ugly.
## (We might end up doing this anyway to support other compilers.)
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
## -MM, not -M (despite what the docs say). Also, it might not be
## supported by the other compilers which use the 'gcc' depmode.
## - Using -M directly means running the compiler twice (even worse
## than renaming).
if test -z "$gccflag"; then
gccflag=-MD,
fi
"$@" -Wp,"$gccflag$tmpdepfile"
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
# The second -e expression handles DOS-style file names with drive
# letters.
sed -e 's/^[^:]*: / /' \
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
## This next piece of magic avoids the "deleted header file" problem.
## The problem is that when a header file which appears in a .P file
## is deleted, the dependency causes make to die (because there is
## typically no way to rebuild the header). We avoid this by adding
## dummy dependencies for each header file. Too bad gcc doesn't do
## this for us directly.
## Some versions of gcc put a space before the ':'. On the theory
## that the space means something, we add a space to the output as
## well. hp depmode also adds that space, but also prefixes the VPATH
## to the object. Take care to not repeat it in the output.
## Some versions of the HPUX 10.20 sed can't process this invocation
## correctly. Breaking it into two sed invocations is a workaround.
tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
| sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
sgi)
if test "$libtool" = yes; then
"$@" "-Wp,-MDupdate,$tmpdepfile"
else
"$@" -MDupdate "$tmpdepfile"
fi
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
echo "$object : \\" > "$depfile"
# Clip off the initial element (the dependent). Don't try to be
# clever and replace this with sed code, as IRIX sed won't handle
# lines with more than a fixed number of characters (4096 in
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
# the IRIX cc adds comments like '#:fec' to the end of the
# dependency line.
tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
| tr "$nl" ' ' >> "$depfile"
echo >> "$depfile"
# The second pass generates a dummy entry for each header file.
tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
>> "$depfile"
else
make_dummy_depfile
fi
rm -f "$tmpdepfile"
;;
xlc)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
aix)
# The C for AIX Compiler uses -M and outputs the dependencies
# in a .u file. In older versions, this file always lives in the
# current directory. Also, the AIX compiler puts '$object:' at the
# start of each line; $object doesn't have directory information.
# Version 6 uses the directory in both cases.
set_dir_from "$object"
set_base_from "$object"
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.u
tmpdepfile2=$base.u
tmpdepfile3=$dir.libs/$base.u
"$@" -Wc,-M
else
tmpdepfile1=$dir$base.u
tmpdepfile2=$dir$base.u
tmpdepfile3=$dir$base.u
"$@" -M
fi
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
do
test -f "$tmpdepfile" && break
done
aix_post_process_depfile
;;
tcc)
# tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
# FIXME: That version still under development at the moment of writing.
# Make that this statement remains true also for stable, released
# versions.
# It will wrap lines (doesn't matter whether long or short) with a
# trailing '\', as in:
#
# foo.o : \
# foo.c \
# foo.h \
#
# It will put a trailing '\' even on the last line, and will use leading
# spaces rather than leading tabs (at least since its commit 0394caf7
# "Emit spaces for -MD").
"$@" -MD -MF "$tmpdepfile"
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
# Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
# We have to change lines of the first kind to '$object: \'.
sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
# And for each line of the second kind, we have to emit a 'dep.h:'
# dummy dependency, to avoid the deleted-header problem.
sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
rm -f "$tmpdepfile"
;;
## The order of this option in the case statement is important, since the
## shell code in configure will try each of these formats in the order
## listed in this file. A plain '-MD' option would be understood by many
## compilers, so we must ensure this comes after the gcc and icc options.
pgcc)
# Portland's C compiler understands '-MD'.
# Will always output deps to 'file.d' where file is the root name of the
# source file under compilation, even if file resides in a subdirectory.
# The object file name does not affect the name of the '.d' file.
# pgcc 10.2 will output
# foo.o: sub/foo.c sub/foo.h
# and will wrap long lines using '\' :
# foo.o: sub/foo.c ... \
# sub/foo.h ... \
# ...
set_dir_from "$object"
# Use the source, not the object, to determine the base name, since
# that's sadly what pgcc will do too.
set_base_from "$source"
tmpdepfile=$base.d
# For projects that build the same source file twice into different object
# files, the pgcc approach of using the *source* file root name can cause
# problems in parallel builds. Use a locking strategy to avoid stomping on
# the same $tmpdepfile.
lockdir=$base.d-lock
trap "
echo '$0: caught signal, cleaning up...' >&2
rmdir '$lockdir'
exit 1
" 1 2 13 15
numtries=100
i=$numtries
while test $i -gt 0; do
# mkdir is a portable test-and-set.
if mkdir "$lockdir" 2>/dev/null; then
# This process acquired the lock.
"$@" -MD
stat=$?
# Release the lock.
rmdir "$lockdir"
break
else
# If the lock is being held by a different process, wait
# until the winning process is done or we timeout.
while test -d "$lockdir" && test $i -gt 0; do
sleep 1
i=`expr $i - 1`
done
fi
i=`expr $i - 1`
done
trap - 1 2 13 15
if test $i -le 0; then
echo "$0: failed to acquire lock after $numtries attempts" >&2
echo "$0: check lockdir '$lockdir'" >&2
exit 1
fi
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
# Each line is of the form `foo.o: dependent.h',
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
# Do two passes, one to just change these to
# `$object: dependent.h' and one to simply `dependent.h:'.
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this invocation
# correctly. Breaking it into two sed invocations is a workaround.
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
| sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
hp2)
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
# compilers, which have integrated preprocessors. The correct option
# to use with these is +Maked; it writes dependencies to a file named
# 'foo.d', which lands next to the object file, wherever that
# happens to be.
# Much of this is similar to the tru64 case; see comments there.
set_dir_from "$object"
set_base_from "$object"
if test "$libtool" = yes; then
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir.libs/$base.d
"$@" -Wc,+Maked
else
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir$base.d
"$@" +Maked
fi
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
do
test -f "$tmpdepfile" && break
done
if test -f "$tmpdepfile"; then
sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
# Add 'dependent.h:' lines.
sed -ne '2,${
s/^ *//
s/ \\*$//
s/$/:/
p
}' "$tmpdepfile" >> "$depfile"
else
make_dummy_depfile
fi
rm -f "$tmpdepfile" "$tmpdepfile2"
;;
tru64)
# The Tru64 compiler uses -MD to generate dependencies as a side
# effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
# dependencies in 'foo.d' instead, so we check for that too.
# Subdirectories are respected.
set_dir_from "$object"
set_base_from "$object"
if test "$libtool" = yes; then
# Libtool generates 2 separate objects for the 2 libraries. These
# two compilations output dependencies in $dir.libs/$base.o.d and
# in $dir$base.o.d. We have to check for both files, because
# one of the two compilations can be disabled. We should prefer
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
# automatically cleaned when .libs/ is deleted, while ignoring
# the former would cause a distcleancheck panic.
tmpdepfile1=$dir$base.o.d # libtool 1.5
tmpdepfile2=$dir.libs/$base.o.d # Likewise.
tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
"$@" -Wc,-MD
else
tmpdepfile1=$dir$base.d
tmpdepfile2=$dir$base.d
tmpdepfile3=$dir$base.d
"$@" -MD
fi
stat=$?
if test $stat -ne 0; then
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
exit $stat
fi
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
do
test -f "$tmpdepfile" && break
done
# Same post-processing that is required for AIX mode.
aix_post_process_depfile
;;
msvc7)
if test "$libtool" = yes; then
showIncludes=-Wc,-showIncludes
else
showIncludes=-showIncludes
fi
"$@" $showIncludes > "$tmpdepfile"
stat=$?
grep -v '^Note: including file: ' "$tmpdepfile"
if test $stat -ne 0; then
rm -f "$tmpdepfile"
exit $stat
fi
rm -f "$depfile"
echo "$object : \\" > "$depfile"
# The first sed program below extracts the file names and escapes
# backslashes for cygpath. The second sed program outputs the file
# name when reading, but also accumulates all include files in the
# hold buffer in order to output them again at the end. This only
# works with sed implementations that can handle large buffers.
sed < "$tmpdepfile" -n '
/^Note: including file: *\(.*\)/ {
s//\1/
s/\\/\\\\/g
p
}' | $cygpath_u | sort -u | sed -n '
s/ /\\ /g
s/\(.*\)/'"$tab"'\1 \\/p
s/.\(.*\) \\/\1:/
H
$ {
s/.*/'"$tab"'/
G
p
}' >> "$depfile"
echo >> "$depfile" # make sure the fragment doesn't end with a backslash
rm -f "$tmpdepfile"
;;
msvc7msys)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
#nosideeffect)
# This comment above is used by automake to tell side-effect
# dependency tracking mechanisms from slower ones.
dashmstdout)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout, regardless of -o.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# Remove '-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
test -z "$dashmflag" && dashmflag=-M
# Require at least two characters before searching for ':'
# in the target name. This is to cope with DOS-style filenames:
# a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
"$@" $dashmflag |
sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
rm -f "$depfile"
cat < "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process this sed invocation
# correctly. Breaking it into two sed invocations is a workaround.
tr ' ' "$nl" < "$tmpdepfile" \
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
| sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
dashXmstdout)
# This case only exists to satisfy depend.m4. It is never actually
# run, as this mode is specially recognized in the preamble.
exit 1
;;
makedepend)
"$@" || exit $?
# Remove any Libtool call
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# X makedepend
shift
cleared=no eat=no
for arg
do
case $cleared in
no)
set ""; shift
cleared=yes ;;
esac
if test $eat = yes; then
eat=no
continue
fi
case "$arg" in
-D*|-I*)
set fnord "$@" "$arg"; shift ;;
# Strip any option that makedepend may not understand. Remove
# the object too, otherwise makedepend will parse it as a source file.
-arch)
eat=yes ;;
-*|$object)
;;
*)
set fnord "$@" "$arg"; shift ;;
esac
done
obj_suffix=`echo "$object" | sed 's/^.*\././'`
touch "$tmpdepfile"
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
rm -f "$depfile"
# makedepend may prepend the VPATH from the source file name to the object.
# No need to regex-escape $object, excess matching of '.' is harmless.
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
# Some versions of the HPUX 10.20 sed can't process the last invocation
# correctly. Breaking it into two sed invocations is a workaround.
sed '1,2d' "$tmpdepfile" \
| tr ' ' "$nl" \
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
| sed -e 's/$/ :/' >> "$depfile"
rm -f "$tmpdepfile" "$tmpdepfile".bak
;;
cpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
# Remove '-o $object'.
IFS=" "
for arg
do
case $arg in
-o)
shift
;;
$object)
shift
;;
*)
set fnord "$@" "$arg"
shift # fnord
shift # $arg
;;
esac
done
"$@" -E \
| sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
| sed '$ s: \\$::' > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
cat < "$tmpdepfile" >> "$depfile"
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvisualcpp)
# Important note: in order to support this mode, a compiler *must*
# always write the preprocessed file to stdout.
"$@" || exit $?
# Remove the call to Libtool.
if test "$libtool" = yes; then
while test "X$1" != 'X--mode=compile'; do
shift
done
shift
fi
IFS=" "
for arg
do
case "$arg" in
-o)
shift
;;
$object)
shift
;;
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
set fnord "$@"
shift
shift
;;
*)
set fnord "$@" "$arg"
shift
shift
;;
esac
done
"$@" -E 2>/dev/null |
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
rm -f "$depfile"
echo "$object : \\" > "$depfile"
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
echo "$tab" >> "$depfile"
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
rm -f "$tmpdepfile"
;;
msvcmsys)
# This case exists only to let depend.m4 do its work. It works by
# looking at the text of this script. This case will never be run,
# since it is checked for above.
exit 1
;;
none)
exec "$@"
;;
*)
echo "Unknown depmode $depmode" 1>&2
exit 1
;;
esac
exit 0
# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:

58
doc/html/README_8md.html Normal file
View File

@@ -0,0 +1,58 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: README.md File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">README.md File Reference</div> </div>
</div><!--header-->
<div class="contents">
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

72
doc/html/annotated.html Normal file
View File

@@ -0,0 +1,72 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Data Structures</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Data Structures</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structarray__list.html" target="_self">array_list</a></td><td class="desc"></td></tr>
<tr id="row_1_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structjson__object.html" target="_self">json_object</a></td><td class="desc"></td></tr>
<tr id="row_1_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="unionjson__object_1_1data.html" target="_self">data</a></td><td class="desc"></td></tr>
<tr id="row_2_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structjson__object__iter.html" target="_self">json_object_iter</a></td><td class="desc"></td></tr>
<tr id="row_3_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structjson__object__iterator.html" target="_self">json_object_iterator</a></td><td class="desc"></td></tr>
<tr id="row_4_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structjson__tokener.html" target="_self">json_tokener</a></td><td class="desc"></td></tr>
<tr id="row_5_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structjson__tokener__srec.html" target="_self">json_tokener_srec</a></td><td class="desc"></td></tr>
<tr id="row_6_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlh__entry.html" target="_self">lh_entry</a></td><td class="desc"></td></tr>
<tr id="row_7_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structlh__table.html" target="_self">lh_table</a></td><td class="desc"></td></tr>
<tr id="row_8_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structprintbuf.html" target="_self">printbuf</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

368
doc/html/arraylist_8h.html Normal file
View File

@@ -0,0 +1,368 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: arraylist.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">arraylist.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Internal methods for working with json_type_array objects. Although this is exposed by the <a class="el" href="json__object_8h.html#a23d20e3f886c1638a7116be66b7b5ec2">json_object_get_array()</a> method, it is not recommended for direct use.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarray__list.html">array_list</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:acd30d910b398421574eb1f59e78617f5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="arraylist_8h.html#acd30d910b398421574eb1f59e78617f5">ARRAY_LIST_DEFAULT_SIZE</a>&#160;&#160;&#160;32</td></tr>
<tr class="separator:acd30d910b398421574eb1f59e78617f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:aad83e4ed3c8ea274e6f18459276d774b"><td class="memItemLeft" align="right" valign="top">typedef void(&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="arraylist_8h.html#aad83e4ed3c8ea274e6f18459276d774b">array_list_free_fn</a> )(void *data)</td></tr>
<tr class="separator:aad83e4ed3c8ea274e6f18459276d774b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6d6d32d8b026ea2025df519b9e90f44a"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structarray__list.html">array_list</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="arraylist_8h.html#a6d6d32d8b026ea2025df519b9e90f44a">array_list</a></td></tr>
<tr class="separator:a6d6d32d8b026ea2025df519b9e90f44a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a0d4bfac055dfd98e17296142abf4d894"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structarray__list.html">array_list</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="arraylist_8h.html#a0d4bfac055dfd98e17296142abf4d894">array_list_new</a> (<a class="el" href="arraylist_8h.html#aad83e4ed3c8ea274e6f18459276d774b">array_list_free_fn</a> *free_fn)</td></tr>
<tr class="separator:a0d4bfac055dfd98e17296142abf4d894"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd00fb70f7ca82f23b48b812c3498f67"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="arraylist_8h.html#acd00fb70f7ca82f23b48b812c3498f67">array_list_free</a> (struct <a class="el" href="structarray__list.html">array_list</a> *al)</td></tr>
<tr class="separator:acd00fb70f7ca82f23b48b812c3498f67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a114f1af5b20b76a3dbb2d1d055006df8"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="arraylist_8h.html#a114f1af5b20b76a3dbb2d1d055006df8">array_list_get_idx</a> (struct <a class="el" href="structarray__list.html">array_list</a> *al, size_t i)</td></tr>
<tr class="separator:a114f1af5b20b76a3dbb2d1d055006df8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f92076e9d8229f8a07e536dc286f811"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="arraylist_8h.html#a9f92076e9d8229f8a07e536dc286f811">array_list_put_idx</a> (struct <a class="el" href="structarray__list.html">array_list</a> *al, size_t i, void *data)</td></tr>
<tr class="separator:a9f92076e9d8229f8a07e536dc286f811"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e995608aa464244ff3184fb43574dc8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="arraylist_8h.html#a6e995608aa464244ff3184fb43574dc8">array_list_add</a> (struct <a class="el" href="structarray__list.html">array_list</a> *al, void *data)</td></tr>
<tr class="separator:a6e995608aa464244ff3184fb43574dc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa3bf90f47aa210032304b14e7ad09ef7"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="arraylist_8h.html#aa3bf90f47aa210032304b14e7ad09ef7">array_list_length</a> (struct <a class="el" href="structarray__list.html">array_list</a> *al)</td></tr>
<tr class="separator:aa3bf90f47aa210032304b14e7ad09ef7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb67cc8e2e5c9be41c3e644536079169"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="arraylist_8h.html#afb67cc8e2e5c9be41c3e644536079169">array_list_sort</a> (struct <a class="el" href="structarray__list.html">array_list</a> *arr, int(*compar)(const void *, const void *))</td></tr>
<tr class="separator:afb67cc8e2e5c9be41c3e644536079169"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8dae21354e818f13dbe4e952daec2669"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="arraylist_8h.html#a8dae21354e818f13dbe4e952daec2669">array_list_bsearch</a> (const void **key, struct <a class="el" href="structarray__list.html">array_list</a> *arr, int(*sort_fn)(const void *, const void *))</td></tr>
<tr class="separator:a8dae21354e818f13dbe4e952daec2669"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aecedd8601ee96e2fd8eff5d83fda89ab"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="arraylist_8h.html#aecedd8601ee96e2fd8eff5d83fda89ab">array_list_del_idx</a> (struct <a class="el" href="structarray__list.html">array_list</a> *arr, size_t idx, size_t count)</td></tr>
<tr class="separator:aecedd8601ee96e2fd8eff5d83fda89ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Internal methods for working with json_type_array objects. Although this is exposed by the <a class="el" href="json__object_8h.html#a23d20e3f886c1638a7116be66b7b5ec2">json_object_get_array()</a> method, it is not recommended for direct use. </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="acd30d910b398421574eb1f59e78617f5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define ARRAY_LIST_DEFAULT_SIZE&#160;&#160;&#160;32</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="a6d6d32d8b026ea2025df519b9e90f44a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef struct <a class="el" href="structarray__list.html">array_list</a> <a class="el" href="structarray__list.html">array_list</a></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aad83e4ed3c8ea274e6f18459276d774b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void( array_list_free_fn)(void *data)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a6e995608aa464244ff3184fb43574dc8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int array_list_add </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structarray__list.html">array_list</a> *&#160;</td>
<td class="paramname"><em>al</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>data</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a8dae21354e818f13dbe4e952daec2669"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* array_list_bsearch </td>
<td>(</td>
<td class="paramtype">const void **&#160;</td>
<td class="paramname"><em>key</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structarray__list.html">array_list</a> *&#160;</td>
<td class="paramname"><em>arr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int(*)(const void *, const void *)&#160;</td>
<td class="paramname"><em>sort_fn</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aecedd8601ee96e2fd8eff5d83fda89ab"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int array_list_del_idx </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structarray__list.html">array_list</a> *&#160;</td>
<td class="paramname"><em>arr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>idx</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>count</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="acd00fb70f7ca82f23b48b812c3498f67"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void array_list_free </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structarray__list.html">array_list</a> *&#160;</td>
<td class="paramname"><em>al</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a114f1af5b20b76a3dbb2d1d055006df8"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void* array_list_get_idx </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structarray__list.html">array_list</a> *&#160;</td>
<td class="paramname"><em>al</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>i</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aa3bf90f47aa210032304b14e7ad09ef7"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t array_list_length </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structarray__list.html">array_list</a> *&#160;</td>
<td class="paramname"><em>al</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a0d4bfac055dfd98e17296142abf4d894"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structarray__list.html">array_list</a>* array_list_new </td>
<td>(</td>
<td class="paramtype"><a class="el" href="arraylist_8h.html#aad83e4ed3c8ea274e6f18459276d774b">array_list_free_fn</a> *&#160;</td>
<td class="paramname"><em>free_fn</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a9f92076e9d8229f8a07e536dc286f811"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int array_list_put_idx </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structarray__list.html">array_list</a> *&#160;</td>
<td class="paramname"><em>al</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&#160;</td>
<td class="paramname"><em>i</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">void *&#160;</td>
<td class="paramname"><em>data</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="afb67cc8e2e5c9be41c3e644536079169"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void array_list_sort </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structarray__list.html">array_list</a> *&#160;</td>
<td class="paramname"><em>arr</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int(*)(const void *, const void *)&#160;</td>
<td class="paramname"><em>compar</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

BIN
doc/html/bc_s.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 B

BIN
doc/html/bdwn.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

150
doc/html/bits_8h.html Normal file
View File

@@ -0,0 +1,150 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: bits.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> </div>
<div class="headertitle">
<div class="title">bits.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Do not use, only contains deprecated defines.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a1cf38b22d3a118ad48d9282c32c048aa"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bits_8h.html#a1cf38b22d3a118ad48d9282c32c048aa">hexdigit</a>(x)&#160;&#160;&#160;(((x) &lt;= '9') ? (x) - '0' : ((x) &amp; 7) + 9)</td></tr>
<tr class="separator:a1cf38b22d3a118ad48d9282c32c048aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a863a898e607f8c2ff87b7052e326740f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bits_8h.html#a863a898e607f8c2ff87b7052e326740f">error_ptr</a>(error)&#160;&#160;&#160;((void*)error)</td></tr>
<tr class="separator:a863a898e607f8c2ff87b7052e326740f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45afe86501cd57ee2beeef9d67a4d40c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bits_8h.html#a45afe86501cd57ee2beeef9d67a4d40c">error_description</a>(error)&#160;&#160;&#160;(<a class="el" href="json__tokener_8h.html#af5d7ffd95a0f6e5d5bb5994d233b4197">json_tokener_get_error</a>(error))</td></tr>
<tr class="separator:a45afe86501cd57ee2beeef9d67a4d40c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a887e5fb7cde221bcab9c6f39d93fc1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="bits_8h.html#a4a887e5fb7cde221bcab9c6f39d93fc1">is_error</a>(ptr)&#160;&#160;&#160;(ptr == NULL)</td></tr>
<tr class="separator:a4a887e5fb7cde221bcab9c6f39d93fc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Do not use, only contains deprecated defines. </p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>Use <a class="el" href="json__util_8h.html" title="Miscllaneous utility functions and macros. ">json_util.h</a> instead.</dd></dl>
<dl class="section rcs"><dt>Id</dt><dd><a class="el" href="bits_8h.html" title="Do not use, only contains deprecated defines. ">bits.h</a>,v 1.10 2006/01/30 23:07:57 mclark Exp </dd></dl>
<p>Copyright (c) 2004, 2005 Metaparadigm Pte. Ltd. Michael Clark <a href="#" onclick="location.href='mai'+'lto:'+'mic'+'ha'+'el@'+'me'+'tap'+'ar'+'adi'+'gm'+'.co'+'m'; return false;">micha<span style="display: none;">.nosp@m.</span>el@m<span style="display: none;">.nosp@m.</span>etapa<span style="display: none;">.nosp@m.</span>radi<span style="display: none;">.nosp@m.</span>gm.co<span style="display: none;">.nosp@m.</span>m</a></p>
<p>This library is free software; you can redistribute it and/or modify it under the terms of the MIT license. See COPYING for details. </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a45afe86501cd57ee2beeef9d67a4d40c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define error_description</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">error</td><td>)</td>
<td>&#160;&#160;&#160;(<a class="el" href="json__tokener_8h.html#af5d7ffd95a0f6e5d5bb5994d233b4197">json_tokener_get_error</a>(error))</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000004">Deprecated:</a></b></dt><dd></dd></dl>
</div>
</div>
<a class="anchor" id="a863a898e607f8c2ff87b7052e326740f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define error_ptr</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">error</td><td>)</td>
<td>&#160;&#160;&#160;((void*)error)</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000003">Deprecated:</a></b></dt><dd></dd></dl>
</div>
</div>
<a class="anchor" id="a1cf38b22d3a118ad48d9282c32c048aa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define hexdigit</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">x</td><td>)</td>
<td>&#160;&#160;&#160;(((x) &lt;= '9') ? (x) - '0' : ((x) &amp; 7) + 9)</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd></dd></dl>
</div>
</div>
<a class="anchor" id="a4a887e5fb7cde221bcab9c6f39d93fc1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define is_error</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">ptr</td><td>)</td>
<td>&#160;&#160;&#160;(ptr == NULL)</td>
</tr>
</table>
</div><div class="memdoc">
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000005">Deprecated:</a></b></dt><dd></dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

74
doc/html/classes.html Normal file
View File

@@ -0,0 +1,74 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Data Structure Index</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Data Structure Index</div> </div>
</div><!--header-->
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_J">J</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a></div>
<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
<tr><td rowspan="2" valign="bottom"><a name="letter_a"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;a&#160;&#160;</div></td></tr></table>
</td><td rowspan="2" valign="bottom"><a name="letter_j"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;j&#160;&#160;</div></td></tr></table>
</td><td valign="top"><a class="el" href="structjson__object__iterator.html">json_object_iterator</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structlh__table.html">lh_table</a>&#160;&#160;&#160;</td><td></td></tr>
<tr><td valign="top"><a class="el" href="structjson__tokener.html">json_tokener</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_p"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;p&#160;&#160;</div></td></tr></table>
</td><td></td></tr>
<tr><td valign="top"><a class="el" href="structarray__list.html">array_list</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structjson__object.html">json_object</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structjson__tokener__srec.html">json_tokener_srec</a>&#160;&#160;&#160;</td><td></td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_d"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;d&#160;&#160;</div></td></tr></table>
</td><td valign="top"><a class="el" href="structjson__object__iter.html">json_object_iter</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_l"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;l&#160;&#160;</div></td></tr></table>
</td><td valign="top"><a class="el" href="structprintbuf.html">printbuf</a>&#160;&#160;&#160;</td><td></td></tr>
<tr><td></td><td></td><td></td></tr>
<tr><td valign="top"><a class="el" href="unionjson__object_1_1data.html">json_object::data</a>&#160;&#160;&#160;</td><td></td><td valign="top"><a class="el" href="structlh__entry.html">lh_entry</a>&#160;&#160;&#160;</td><td></td><td></td></tr>
<tr><td></td><td></td><td></td><td></td><td></td></tr>
</table>
<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_J">J</a>&#160;|&#160;<a class="qindex" href="#letter_L">L</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a></div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

BIN
doc/html/closed.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 B

386
doc/html/debug_8h.html Normal file
View File

@@ -0,0 +1,386 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: debug.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">debug.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Do not use, json-c internal, may be changed or removed at any time.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a375c4dc9f0fb338999de81aab826f9d6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a375c4dc9f0fb338999de81aab826f9d6">__STRING</a>(x)&#160;&#160;&#160;#x</td></tr>
<tr class="separator:a375c4dc9f0fb338999de81aab826f9d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ca29550d5b1b73948f4a7bce53f2385"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a8ca29550d5b1b73948f4a7bce53f2385">JASSERT</a>(cond)&#160;&#160;&#160;do {} while(0)</td></tr>
<tr class="separator:a8ca29550d5b1b73948f4a7bce53f2385"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11ba39cecbe449af5b86fa2f78e9da9d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a11ba39cecbe449af5b86fa2f78e9da9d">MC_ERROR</a>(x,...)&#160;&#160;&#160;<a class="el" href="debug_8h.html#abf22ea3a331c7ff21c23da91a07c7cb2">mc_error</a>(x, ##__VA_ARGS__)</td></tr>
<tr class="separator:a11ba39cecbe449af5b86fa2f78e9da9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a50f21a239fa040a10ad4cfdb4278b02b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a50f21a239fa040a10ad4cfdb4278b02b">MC_SET_DEBUG</a>(x)&#160;&#160;&#160;if (0) <a class="el" href="debug_8h.html#af65a73617b71476020a005b20bf02726">mc_set_debug</a>(x)</td></tr>
<tr class="separator:a50f21a239fa040a10ad4cfdb4278b02b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb272a4b4444b69cd995236f167f90ba"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#acb272a4b4444b69cd995236f167f90ba">MC_GET_DEBUG</a>()&#160;&#160;&#160;(0)</td></tr>
<tr class="separator:acb272a4b4444b69cd995236f167f90ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf1e895cb5eb7f334cbe51901e6bb918"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#acf1e895cb5eb7f334cbe51901e6bb918">MC_SET_SYSLOG</a>(x)&#160;&#160;&#160;if (0) <a class="el" href="debug_8h.html#aadb888da410116384e75a00db30da705">mc_set_syslog</a>(x)</td></tr>
<tr class="separator:acf1e895cb5eb7f334cbe51901e6bb918"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afda355b35d18bf2e6a2a22d5c8eef42c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#afda355b35d18bf2e6a2a22d5c8eef42c">MC_DEBUG</a>(x,...)&#160;&#160;&#160;if (0) <a class="el" href="debug_8h.html#a600cf4cbbe19c0c15ca3710210e35aba">mc_debug</a>(x, ##__VA_ARGS__)</td></tr>
<tr class="separator:afda355b35d18bf2e6a2a22d5c8eef42c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ef640ce1e9e61c5f6632aefbbfa0041"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a5ef640ce1e9e61c5f6632aefbbfa0041">MC_INFO</a>(x,...)&#160;&#160;&#160;if (0) <a class="el" href="debug_8h.html#acbb92996a994e316ff65ed3a026e12a4">mc_info</a>(x, ##__VA_ARGS__)</td></tr>
<tr class="separator:a5ef640ce1e9e61c5f6632aefbbfa0041"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:af65a73617b71476020a005b20bf02726"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#af65a73617b71476020a005b20bf02726">mc_set_debug</a> (int debug)</td></tr>
<tr class="separator:af65a73617b71476020a005b20bf02726"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b3ab3ae8b438384fb109a2e38646b6e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a3b3ab3ae8b438384fb109a2e38646b6e">mc_get_debug</a> (void)</td></tr>
<tr class="separator:a3b3ab3ae8b438384fb109a2e38646b6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aadb888da410116384e75a00db30da705"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#aadb888da410116384e75a00db30da705">mc_set_syslog</a> (int syslog)</td></tr>
<tr class="separator:aadb888da410116384e75a00db30da705"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a600cf4cbbe19c0c15ca3710210e35aba"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a600cf4cbbe19c0c15ca3710210e35aba">mc_debug</a> (const char *msg,...)</td></tr>
<tr class="separator:a600cf4cbbe19c0c15ca3710210e35aba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf22ea3a331c7ff21c23da91a07c7cb2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#abf22ea3a331c7ff21c23da91a07c7cb2">mc_error</a> (const char *msg,...)</td></tr>
<tr class="separator:abf22ea3a331c7ff21c23da91a07c7cb2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbb92996a994e316ff65ed3a026e12a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#acbb92996a994e316ff65ed3a026e12a4">mc_info</a> (const char *msg,...)</td></tr>
<tr class="separator:acbb92996a994e316ff65ed3a026e12a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Do not use, json-c internal, may be changed or removed at any time. </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a375c4dc9f0fb338999de81aab826f9d6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define __STRING</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">x</td><td>)</td>
<td>&#160;&#160;&#160;#x</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a8ca29550d5b1b73948f4a7bce53f2385"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define JASSERT</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">cond</td><td>)</td>
<td>&#160;&#160;&#160;do {} while(0)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="afda355b35d18bf2e6a2a22d5c8eef42c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MC_DEBUG</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">x, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td>&#160;&#160;&#160;if (0) <a class="el" href="debug_8h.html#a600cf4cbbe19c0c15ca3710210e35aba">mc_debug</a>(x, ##__VA_ARGS__)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a11ba39cecbe449af5b86fa2f78e9da9d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MC_ERROR</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">x, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td>&#160;&#160;&#160;<a class="el" href="debug_8h.html#abf22ea3a331c7ff21c23da91a07c7cb2">mc_error</a>(x, ##__VA_ARGS__)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="acb272a4b4444b69cd995236f167f90ba"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MC_GET_DEBUG</td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td>&#160;&#160;&#160;(0)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a5ef640ce1e9e61c5f6632aefbbfa0041"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MC_INFO</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">x, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td>&#160;&#160;&#160;if (0) <a class="el" href="debug_8h.html#acbb92996a994e316ff65ed3a026e12a4">mc_info</a>(x, ##__VA_ARGS__)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a50f21a239fa040a10ad4cfdb4278b02b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MC_SET_DEBUG</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">x</td><td>)</td>
<td>&#160;&#160;&#160;if (0) <a class="el" href="debug_8h.html#af65a73617b71476020a005b20bf02726">mc_set_debug</a>(x)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="acf1e895cb5eb7f334cbe51901e6bb918"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define MC_SET_SYSLOG</td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname">x</td><td>)</td>
<td>&#160;&#160;&#160;if (0) <a class="el" href="debug_8h.html#aadb888da410116384e75a00db30da705">mc_set_syslog</a>(x)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a600cf4cbbe19c0c15ca3710210e35aba"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void mc_debug </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>msg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="abf22ea3a331c7ff21c23da91a07c7cb2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void mc_error </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>msg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a3b3ab3ae8b438384fb109a2e38646b6e"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int mc_get_debug </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="acbb92996a994e316ff65ed3a026e12a4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void mc_info </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>msg</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="af65a73617b71476020a005b20bf02726"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void mc_set_debug </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>debug</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="aadb888da410116384e75a00db30da705"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void mc_set_syslog </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>syslog</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

74
doc/html/deprecated.html Normal file
View File

@@ -0,0 +1,74 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Deprecated List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">Deprecated List </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><dl class="reflist">
<dt><a class="anchor" id="_deprecated000009"></a>Global <a class="el" href="linkhash_8h.html#a77c5cddef96e6f1ab036ccf911783456">_LH_INLINE</a> </dt>
<dd>Don't use this outside of <a class="el" href="linkhash_8h.html" title="Internal methods for working with json_type_object objects. Although this is exposed by the json_obje...">linkhash.h</a>: </dd>
<dt><a class="anchor" id="_deprecated000010"></a>Global <a class="el" href="linkhash_8h.html#afb856ed4a9bcfd090dde5151fa3ad9ae">_LH_UNCONST</a> (a)</dt>
<dd>Don't use this outside of <a class="el" href="linkhash_8h.html" title="Internal methods for working with json_type_object objects. Although this is exposed by the json_obje...">linkhash.h</a>: </dd>
<dt><a class="anchor" id="_deprecated000001"></a>File <a class="el" href="bits_8h.html">bits.h</a> </dt>
<dd>Use <a class="el" href="json__util_8h.html" title="Miscllaneous utility functions and macros. ">json_util.h</a> instead. </dd>
<dt><a class="anchor" id="_deprecated000004"></a>Global <a class="el" href="bits_8h.html#a45afe86501cd57ee2beeef9d67a4d40c">error_description</a> (error)</dt>
<dd></dd>
<dt><a class="anchor" id="_deprecated000003"></a>Global <a class="el" href="bits_8h.html#a863a898e607f8c2ff87b7052e326740f">error_ptr</a> (error)</dt>
<dd></dd>
<dt><a class="anchor" id="_deprecated000002"></a>Global <a class="el" href="bits_8h.html#a1cf38b22d3a118ad48d9282c32c048aa">hexdigit</a> (x)</dt>
<dd></dd>
<dt><a class="anchor" id="_deprecated000005"></a>Global <a class="el" href="bits_8h.html#a4a887e5fb7cde221bcab9c6f39d93fc1">is_error</a> (ptr)</dt>
<dd></dd>
<dt><a class="anchor" id="_deprecated000006"></a>Global <a class="el" href="json__tokener_8h.html#a4dd5e5b65aee7f376f529f86b210ff49">json_tokener</a> </dt>
<dd>Unused in json-c code </dd>
<dt><a class="anchor" id="_deprecated000008"></a>Global <a class="el" href="linkhash_8h.html#a1294160fa0e80cee04cd745a401f43a4">lh_abort</a> (const char *msg,...)</dt>
<dd>Since it is not a good idea to exit the entire program because of an internal library failure, json-c will no longer use this function internally. However, because its interface is public, it will remain part of the API on the off chance of legacy software using it externally. </dd>
<dt><a class="anchor" id="_deprecated000007"></a>Global <a class="el" href="linkhash_8h.html#a49c27f18a174eaf126d1b7953df13cb1">lh_table_lookup</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, const void *k)</dt>
<dd>Use <a class="el" href="linkhash_8h.html#a81c270bb0dd9d5c8a3e7ae20bc4d67f3">lh_table_lookup_ex()</a> instead. </dd>
</dl>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

BIN
doc/html/doc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 B

1440
doc/html/doxygen.css Normal file

File diff suppressed because it is too large Load Diff

BIN
doc/html/doxygen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

97
doc/html/dynsections.js Normal file
View File

@@ -0,0 +1,97 @@
function toggleVisibility(linkObj)
{
var base = $(linkObj).attr('id');
var summary = $('#'+base+'-summary');
var content = $('#'+base+'-content');
var trigger = $('#'+base+'-trigger');
var src=$(trigger).attr('src');
if (content.is(':visible')===true) {
content.hide();
summary.show();
$(linkObj).addClass('closed').removeClass('opened');
$(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
} else {
content.show();
summary.hide();
$(linkObj).removeClass('closed').addClass('opened');
$(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
}
return false;
}
function updateStripes()
{
$('table.directory tr').
removeClass('even').filter(':visible:even').addClass('even');
}
function toggleLevel(level)
{
$('table.directory tr').each(function() {
var l = this.id.split('_').length-1;
var i = $('#img'+this.id.substring(3));
var a = $('#arr'+this.id.substring(3));
if (l<level+1) {
i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
a.html('&#9660;');
$(this).show();
} else if (l==level+1) {
i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
a.html('&#9658;');
$(this).show();
} else {
$(this).hide();
}
});
updateStripes();
}
function toggleFolder(id)
{
// the clicked row
var currentRow = $('#row_'+id);
// all rows after the clicked row
var rows = currentRow.nextAll("tr");
var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
// only match elements AFTER this one (can't hide elements before)
var childRows = rows.filter(function() { return this.id.match(re); });
// first row is visible we are HIDING
if (childRows.filter(':first').is(':visible')===true) {
// replace down arrow by right arrow for current row
var currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
currentRowSpans.filter(".arrow").html('&#9658;');
rows.filter("[id^=row_"+id+"]").hide(); // hide all children
} else { // we are SHOWING
// replace right arrow by down arrow for current row
var currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
currentRowSpans.filter(".arrow").html('&#9660;');
// replace down arrows by right arrows for child rows
var childRowsSpans = childRows.find("span");
childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
childRowsSpans.filter(".arrow").html('&#9658;');
childRows.show(); //show all children
}
updateStripes();
}
function toggleInherit(id)
{
var rows = $('tr.inherit.'+id);
var img = $('tr.inherit_header.'+id+' img');
var src = $(img).attr('src');
if (rows.filter(':first').is(':visible')===true) {
rows.css('display','none');
$(img).attr('src',src.substring(0,src.length-8)+'closed.png');
} else {
rows.css('display','table-row'); // using show() causes jump in firefox
$(img).attr('src',src.substring(0,src.length-10)+'open.png');
}
}

84
doc/html/files.html Normal file
View File

@@ -0,0 +1,84 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: File List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">File List</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all files with brief descriptions:</div><div class="directory">
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="arraylist_8h.html" target="_self">arraylist.h</a></td><td class="desc">Internal methods for working with json_type_array objects. Although this is exposed by the <a class="el" href="json__object_8h.html#a23d20e3f886c1638a7116be66b7b5ec2">json_object_get_array()</a> method, it is not recommended for direct use </td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="bits_8h.html" target="_self">bits.h</a></td><td class="desc">Do not use, only contains deprecated defines </td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="debug_8h.html" target="_self">debug.h</a></td><td class="desc">Do not use, json-c internal, may be changed or removed at any time </td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="json_8h.html" target="_self">json.h</a></td><td class="desc">A convenience header that may be included instead of other individual ones </td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="json__c__version_8h.html" target="_self">json_c_version.h</a></td><td class="desc">Methods for retrieving the json-c version </td></tr>
<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="json__inttypes_8h.html" target="_self">json_inttypes.h</a></td><td class="desc">Do not use, json-c internal, may be changed or removed at any time </td></tr>
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="json__object_8h.html" target="_self">json_object.h</a></td><td class="desc">Core json-c API. Start here, or with <a class="el" href="json__tokener_8h.html" title="Methods to parse an input string into a tree of json_object objects. ">json_tokener.h</a> </td></tr>
<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="json__object__iterator_8h.html" target="_self">json_object_iterator.h</a></td><td class="desc">An API for iterating over json_type_object objects, styled to be familiar to C++ programmers. Unlike <a class="el" href="json__object_8h.html#acf5f514a9e0061c10fc08055762639ee">json_object_object_foreach()</a> and <a class="el" href="json__object_8h.html#a71f07006c12d78f7bbf4cb716a5af3a6">json_object_object_foreachC()</a>, this avoids the need to expose json-c internals like <a class="el" href="structlh__entry.html">lh_entry</a> </td></tr>
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="json__object__private_8h.html" target="_self">json_object_private.h</a></td><td class="desc">Do not use, json-c internal, may be changed or removed at any time </td></tr>
<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="json__pointer_8h.html" target="_self">json_pointer.h</a></td><td class="desc">JSON Pointer (RFC 6901) implementation for retrieving objects from a json-c object tree </td></tr>
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="json__tokener_8h.html" target="_self">json_tokener.h</a></td><td class="desc">Methods to parse an input string into a tree of <a class="el" href="structjson__object.html">json_object</a> objects </td></tr>
<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="json__util_8h.html" target="_self">json_util.h</a></td><td class="desc">Miscllaneous utility functions and macros </td></tr>
<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="json__visit_8h.html" target="_self">json_visit.h</a></td><td class="desc">Methods for walking a tree of objects </td></tr>
<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="linkhash_8h.html" target="_self">linkhash.h</a></td><td class="desc">Internal methods for working with json_type_object objects. Although this is exposed by the <a class="el" href="json__object_8h.html#a2caa52ae1863bd073444f3737138a4db">json_object_get_object()</a> function and within the <a class="el" href="structjson__object__iter.html">json_object_iter</a> type, it is not recommended for direct use </td></tr>
<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="math__compat_8h.html" target="_self">math_compat.h</a></td><td class="desc">Do not use, json-c internal, may be changed or removed at any time </td></tr>
<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="printbuf_8h.html" target="_self">printbuf.h</a></td><td class="desc">Internal string buffer handing. Unless you're writing a json_object_to_json_string_fn implementation for use with <a class="el" href="json__object_8h.html#a889345512a214b8f78f6a73561523c7c">json_object_set_serializer()</a> direct use of this is not recommended </td></tr>
<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="random__seed_8h.html" target="_self">random_seed.h</a></td><td class="desc">Do not use, json-c internal, may be changed or removed at any time </td></tr>
<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="snprintf__compat_8h.html" target="_self">snprintf_compat.h</a></td><td class="desc">Do not use, json-c internal, may be changed or removed at any time </td></tr>
<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="strdup__compat_8h.html" target="_self">strdup_compat.h</a></td><td class="desc">Do not use, json-c internal, may be changed or removed at any time </td></tr>
<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="strerror__override_8h.html" target="_self">strerror_override.h</a></td><td class="desc">Do not use, json-c internal, may be changed or removed at any time </td></tr>
<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="strerror__override__private_8h.html" target="_self">strerror_override_private.h</a></td><td class="desc">Do not use, json-c internal, may be changed or removed at any time </td></tr>
<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icondoc"></span><a class="el" href="vasprintf__compat_8h.html" target="_self">vasprintf_compat.h</a></td><td class="desc">Do not use, json-c internal, may be changed or removed at any time </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

BIN
doc/html/folderclosed.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 B

BIN
doc/html/folderopen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 B

BIN
doc/html/ftv2blank.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 B

BIN
doc/html/ftv2doc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 B

BIN
doc/html/ftv2folderopen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 B

BIN
doc/html/ftv2lastnode.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 B

BIN
doc/html/ftv2link.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 B

BIN
doc/html/ftv2mlastnode.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

BIN
doc/html/ftv2mnode.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 246 B

BIN
doc/html/ftv2node.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 B

BIN
doc/html/ftv2plastnode.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

BIN
doc/html/ftv2pnode.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

BIN
doc/html/ftv2splitbar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

BIN
doc/html/ftv2vertline.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 B

330
doc/html/functions.html Normal file
View File

@@ -0,0 +1,330 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_vars.html"><span>Variables</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="#index__"><span>_</span></a></li>
<li><a href="#index_a"><span>a</span></a></li>
<li><a href="#index_b"><span>b</span></a></li>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
<li><a href="#index_e"><span>e</span></a></li>
<li><a href="#index_f"><span>f</span></a></li>
<li><a href="#index_h"><span>h</span></a></li>
<li><a href="#index_i"><span>i</span></a></li>
<li><a href="#index_k"><span>k</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_m"><span>m</span></a></li>
<li><a href="#index_n"><span>n</span></a></li>
<li><a href="#index_o"><span>o</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_q"><span>q</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_t"><span>t</span></a></li>
<li><a href="#index_u"><span>u</span></a></li>
<li class="current"><a href="#index_v"><span>v</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
<div class="textblock">Here is a list of all struct and union fields with links to the structures/unions they belong to:</div>
<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
<li>_delete
: <a class="el" href="structjson__object.html#a63666be714a8ce8907d56142c1d9dfb7">json_object</a>
</li>
<li>_pb
: <a class="el" href="structjson__object.html#afdcaa9e24bce7c86c33cb6f6ae65cb56">json_object</a>
</li>
<li>_ref_count
: <a class="el" href="structjson__object.html#aca9b93573ba6bb8cf66d87c170a575b2">json_object</a>
</li>
<li>_to_json_string
: <a class="el" href="structjson__object.html#a077a02daac4653f91584dd7f47c3d632">json_object</a>
</li>
<li>_user_delete
: <a class="el" href="structjson__object.html#ad9e57edb1cbd63578490081b2a9636ad">json_object</a>
</li>
<li>_userdata
: <a class="el" href="structjson__object.html#a592a5391c3717ff7e8930476027226fe">json_object</a>
</li>
</ul>
<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
<li>array
: <a class="el" href="structarray__list.html#a7ba65feda2b156148c08667cf155b657">array_list</a>
</li>
</ul>
<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
<li>bpos
: <a class="el" href="structprintbuf.html#aba980ad7406329e32f557dfa0eb7b1b2">printbuf</a>
</li>
<li>buf
: <a class="el" href="structprintbuf.html#a5d7cf8ac260f1f7c50fecaf9bd7bc651">printbuf</a>
</li>
</ul>
<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
<li>c_array
: <a class="el" href="unionjson__object_1_1data.html#a4ad6bf2fd6d8718f55850509edfe2e45">json_object::data</a>
</li>
<li>c_boolean
: <a class="el" href="unionjson__object_1_1data.html#a98a3964e5fb0b3a0e9d8786b8facde5c">json_object::data</a>
</li>
<li>c_double
: <a class="el" href="unionjson__object_1_1data.html#a9cc4abdb21302913701ac0c8dc75e55a">json_object::data</a>
</li>
<li>c_int64
: <a class="el" href="unionjson__object_1_1data.html#a7733181cdb631570913e3a2abfd6937c">json_object::data</a>
</li>
<li>c_object
: <a class="el" href="unionjson__object_1_1data.html#a68089c942f154d4df590d8ecb476a69b">json_object::data</a>
</li>
<li>c_string
: <a class="el" href="unionjson__object_1_1data.html#af9cd2e329ad7ab0a86b1b622290a663a">json_object::data</a>
</li>
<li>char_offset
: <a class="el" href="structjson__tokener.html#a9daae2516fd6df23555d33ef01020a76">json_tokener</a>
</li>
<li>count
: <a class="el" href="structlh__table.html#aa172ed8fe205367b54e0e2cdf9ea8c6c">lh_table</a>
</li>
<li>current
: <a class="el" href="structjson__tokener__srec.html#a466f192f920368a5a6375aeba1e2757f">json_tokener_srec</a>
</li>
</ul>
<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
<li>data
: <a class="el" href="unionjson__object_1_1data.html#aaa742eb1b88b4b25ec4c27431d1576d7">json_object::data</a>
</li>
<li>depth
: <a class="el" href="structjson__tokener.html#ae0e5102b44cc1fc680be3e0fb5fff028">json_tokener</a>
</li>
</ul>
<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
<li>entry
: <a class="el" href="structjson__object__iter.html#a64e326f050826c644c02ed5bcd214faa">json_object_iter</a>
</li>
<li>equal_fn
: <a class="el" href="structlh__table.html#aa646c287a6a46e09da6c7457c981a359">lh_table</a>
</li>
<li>err
: <a class="el" href="structjson__tokener.html#adef37cdc2578d8f8920db14315728cbd">json_tokener</a>
</li>
</ul>
<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
<li>flags
: <a class="el" href="structjson__tokener.html#aabfdcf2825154108669ffa3f4ab9c4ea">json_tokener</a>
</li>
<li>free_fn
: <a class="el" href="structarray__list.html#ab7989cdde357e5c7819c562c7680ab74">array_list</a>
, <a class="el" href="structlh__table.html#a30ea5903f4f8126abd6aa489ffe14737">lh_table</a>
</li>
</ul>
<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
<li>hash_fn
: <a class="el" href="structlh__table.html#a1488d1a4a320b1a9bb2f441859544be1">lh_table</a>
</li>
<li>head
: <a class="el" href="structlh__table.html#aa7d986a3b12a9fa47e349713794c30fb">lh_table</a>
</li>
</ul>
<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
<li>is_double
: <a class="el" href="structjson__tokener.html#ad3bf0aa728ea14549d5aa6ca8dcba070">json_tokener</a>
</li>
</ul>
<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
<li>k
: <a class="el" href="structlh__entry.html#a79d9f1ef0dc444e17105aaeaf167e22c">lh_entry</a>
</li>
<li>k_is_constant
: <a class="el" href="structlh__entry.html#a14f40cc124c32b03f81151ae7934d2e7">lh_entry</a>
</li>
<li>key
: <a class="el" href="structjson__object__iter.html#a0b76228b3a039075e9d84f88fa72ff53">json_object_iter</a>
</li>
</ul>
<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
<li>len
: <a class="el" href="unionjson__object_1_1data.html#ac2386853b8a4e7d0b28a27ed599ccef7">json_object::data</a>
</li>
<li>length
: <a class="el" href="structarray__list.html#a5638022574f4ddb0f80d62535085bf4f">array_list</a>
</li>
</ul>
<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
<li>max_depth
: <a class="el" href="structjson__tokener.html#a9d9b33c3982925349627dc6a3edca940">json_tokener</a>
</li>
</ul>
<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
<li>next
: <a class="el" href="structlh__entry.html#a7c40c46e72d9a0ba071a8d49d535bc67">lh_entry</a>
</li>
</ul>
<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
<li>o
: <a class="el" href="structjson__object.html#a33aff83ffea02b934235c4821cca8cf0">json_object</a>
</li>
<li>o_type
: <a class="el" href="structjson__object.html#a28307a4a3fe6cefe27e28fec56b76b3e">json_object</a>
</li>
<li>obj
: <a class="el" href="structjson__tokener__srec.html#ad2bb71affec1da5ba1d9952c3bf2c12a">json_tokener_srec</a>
</li>
<li>obj_field_name
: <a class="el" href="structjson__tokener__srec.html#a99551c172e97ac2e7a3849a50b4f51ca">json_tokener_srec</a>
</li>
<li>opaque_
: <a class="el" href="structjson__object__iterator.html#a69c61c14f5a36b1dc2217e49cd987f47">json_object_iterator</a>
</li>
</ul>
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
<li>pb
: <a class="el" href="structjson__tokener.html#a1cdc7f85d7bde95f81bb08b7e61d6684">json_tokener</a>
</li>
<li>prev
: <a class="el" href="structlh__entry.html#a6fb9c3de01fb5af67d8d429921cc6a3b">lh_entry</a>
</li>
<li>ptr
: <a class="el" href="unionjson__object_1_1data.html#ad3f2798f4679c5a3cc7f67a42365b71f">json_object::data</a>
</li>
</ul>
<h3><a class="anchor" id="index_q"></a>- q -</h3><ul>
<li>quote_char
: <a class="el" href="structjson__tokener.html#aea488b73085ac7c5969ae7fc29e25fa0">json_tokener</a>
</li>
</ul>
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
<li>saved_state
: <a class="el" href="structjson__tokener__srec.html#a868b9912dbb1e4813a630c944f522d48">json_tokener_srec</a>
</li>
<li>size
: <a class="el" href="structarray__list.html#a11b92f48ed715b187f8609351405342f">array_list</a>
, <a class="el" href="structlh__table.html#ae251575ec2935bcb0e0589ca8e243839">lh_table</a>
, <a class="el" href="structprintbuf.html#a12ce6440eaa06a55b96ebdc5a9778dd5">printbuf</a>
</li>
<li>st_pos
: <a class="el" href="structjson__tokener.html#a8eed213c0a37d09c1df66c8567e44471">json_tokener</a>
</li>
<li>stack
: <a class="el" href="structjson__tokener.html#a3521d62906eb0e15d07d7b4f64a5fac3">json_tokener</a>
</li>
<li>str
: <a class="el" href="unionjson__object_1_1data.html#a51a177df2ef6d27590696975a4f4a7ee">json_object::data</a>
, <a class="el" href="structjson__tokener.html#a9772e2170322a19d8da6ce5d7dc46895">json_tokener</a>
</li>
</ul>
<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
<li>table
: <a class="el" href="structlh__table.html#a4fd9c5aba38791b26ab0ec614a5caf8f">lh_table</a>
</li>
<li>tail
: <a class="el" href="structlh__table.html#a479895e45db2bdf9bf5d173fa4b7e277">lh_table</a>
</li>
</ul>
<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
<li>ucs_char
: <a class="el" href="structjson__tokener.html#a32fa73e43fb760e6845231a8482eb064">json_tokener</a>
</li>
</ul>
<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
<li>v
: <a class="el" href="structlh__entry.html#a1b676732ab2ad3eeaedf6ec60a6a0835">lh_entry</a>
</li>
<li>val
: <a class="el" href="structjson__object__iter.html#aaae14a8d17aacddacb0a57234e0a4491">json_object_iter</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

View File

@@ -0,0 +1,330 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Data Fields - Variables</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="functions.html"><span>All</span></a></li>
<li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="#index__"><span>_</span></a></li>
<li><a href="#index_a"><span>a</span></a></li>
<li><a href="#index_b"><span>b</span></a></li>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
<li><a href="#index_e"><span>e</span></a></li>
<li><a href="#index_f"><span>f</span></a></li>
<li><a href="#index_h"><span>h</span></a></li>
<li><a href="#index_i"><span>i</span></a></li>
<li><a href="#index_k"><span>k</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_m"><span>m</span></a></li>
<li><a href="#index_n"><span>n</span></a></li>
<li><a href="#index_o"><span>o</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_q"><span>q</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_t"><span>t</span></a></li>
<li><a href="#index_u"><span>u</span></a></li>
<li class="current"><a href="#index_v"><span>v</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
&#160;
<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
<li>_delete
: <a class="el" href="structjson__object.html#a63666be714a8ce8907d56142c1d9dfb7">json_object</a>
</li>
<li>_pb
: <a class="el" href="structjson__object.html#afdcaa9e24bce7c86c33cb6f6ae65cb56">json_object</a>
</li>
<li>_ref_count
: <a class="el" href="structjson__object.html#aca9b93573ba6bb8cf66d87c170a575b2">json_object</a>
</li>
<li>_to_json_string
: <a class="el" href="structjson__object.html#a077a02daac4653f91584dd7f47c3d632">json_object</a>
</li>
<li>_user_delete
: <a class="el" href="structjson__object.html#ad9e57edb1cbd63578490081b2a9636ad">json_object</a>
</li>
<li>_userdata
: <a class="el" href="structjson__object.html#a592a5391c3717ff7e8930476027226fe">json_object</a>
</li>
</ul>
<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
<li>array
: <a class="el" href="structarray__list.html#a7ba65feda2b156148c08667cf155b657">array_list</a>
</li>
</ul>
<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
<li>bpos
: <a class="el" href="structprintbuf.html#aba980ad7406329e32f557dfa0eb7b1b2">printbuf</a>
</li>
<li>buf
: <a class="el" href="structprintbuf.html#a5d7cf8ac260f1f7c50fecaf9bd7bc651">printbuf</a>
</li>
</ul>
<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
<li>c_array
: <a class="el" href="unionjson__object_1_1data.html#a4ad6bf2fd6d8718f55850509edfe2e45">json_object::data</a>
</li>
<li>c_boolean
: <a class="el" href="unionjson__object_1_1data.html#a98a3964e5fb0b3a0e9d8786b8facde5c">json_object::data</a>
</li>
<li>c_double
: <a class="el" href="unionjson__object_1_1data.html#a9cc4abdb21302913701ac0c8dc75e55a">json_object::data</a>
</li>
<li>c_int64
: <a class="el" href="unionjson__object_1_1data.html#a7733181cdb631570913e3a2abfd6937c">json_object::data</a>
</li>
<li>c_object
: <a class="el" href="unionjson__object_1_1data.html#a68089c942f154d4df590d8ecb476a69b">json_object::data</a>
</li>
<li>c_string
: <a class="el" href="unionjson__object_1_1data.html#af9cd2e329ad7ab0a86b1b622290a663a">json_object::data</a>
</li>
<li>char_offset
: <a class="el" href="structjson__tokener.html#a9daae2516fd6df23555d33ef01020a76">json_tokener</a>
</li>
<li>count
: <a class="el" href="structlh__table.html#aa172ed8fe205367b54e0e2cdf9ea8c6c">lh_table</a>
</li>
<li>current
: <a class="el" href="structjson__tokener__srec.html#a466f192f920368a5a6375aeba1e2757f">json_tokener_srec</a>
</li>
</ul>
<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
<li>data
: <a class="el" href="unionjson__object_1_1data.html#aaa742eb1b88b4b25ec4c27431d1576d7">json_object::data</a>
</li>
<li>depth
: <a class="el" href="structjson__tokener.html#ae0e5102b44cc1fc680be3e0fb5fff028">json_tokener</a>
</li>
</ul>
<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
<li>entry
: <a class="el" href="structjson__object__iter.html#a64e326f050826c644c02ed5bcd214faa">json_object_iter</a>
</li>
<li>equal_fn
: <a class="el" href="structlh__table.html#aa646c287a6a46e09da6c7457c981a359">lh_table</a>
</li>
<li>err
: <a class="el" href="structjson__tokener.html#adef37cdc2578d8f8920db14315728cbd">json_tokener</a>
</li>
</ul>
<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
<li>flags
: <a class="el" href="structjson__tokener.html#aabfdcf2825154108669ffa3f4ab9c4ea">json_tokener</a>
</li>
<li>free_fn
: <a class="el" href="structarray__list.html#ab7989cdde357e5c7819c562c7680ab74">array_list</a>
, <a class="el" href="structlh__table.html#a30ea5903f4f8126abd6aa489ffe14737">lh_table</a>
</li>
</ul>
<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
<li>hash_fn
: <a class="el" href="structlh__table.html#a1488d1a4a320b1a9bb2f441859544be1">lh_table</a>
</li>
<li>head
: <a class="el" href="structlh__table.html#aa7d986a3b12a9fa47e349713794c30fb">lh_table</a>
</li>
</ul>
<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
<li>is_double
: <a class="el" href="structjson__tokener.html#ad3bf0aa728ea14549d5aa6ca8dcba070">json_tokener</a>
</li>
</ul>
<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
<li>k
: <a class="el" href="structlh__entry.html#a79d9f1ef0dc444e17105aaeaf167e22c">lh_entry</a>
</li>
<li>k_is_constant
: <a class="el" href="structlh__entry.html#a14f40cc124c32b03f81151ae7934d2e7">lh_entry</a>
</li>
<li>key
: <a class="el" href="structjson__object__iter.html#a0b76228b3a039075e9d84f88fa72ff53">json_object_iter</a>
</li>
</ul>
<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
<li>len
: <a class="el" href="unionjson__object_1_1data.html#ac2386853b8a4e7d0b28a27ed599ccef7">json_object::data</a>
</li>
<li>length
: <a class="el" href="structarray__list.html#a5638022574f4ddb0f80d62535085bf4f">array_list</a>
</li>
</ul>
<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
<li>max_depth
: <a class="el" href="structjson__tokener.html#a9d9b33c3982925349627dc6a3edca940">json_tokener</a>
</li>
</ul>
<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
<li>next
: <a class="el" href="structlh__entry.html#a7c40c46e72d9a0ba071a8d49d535bc67">lh_entry</a>
</li>
</ul>
<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
<li>o
: <a class="el" href="structjson__object.html#a33aff83ffea02b934235c4821cca8cf0">json_object</a>
</li>
<li>o_type
: <a class="el" href="structjson__object.html#a28307a4a3fe6cefe27e28fec56b76b3e">json_object</a>
</li>
<li>obj
: <a class="el" href="structjson__tokener__srec.html#ad2bb71affec1da5ba1d9952c3bf2c12a">json_tokener_srec</a>
</li>
<li>obj_field_name
: <a class="el" href="structjson__tokener__srec.html#a99551c172e97ac2e7a3849a50b4f51ca">json_tokener_srec</a>
</li>
<li>opaque_
: <a class="el" href="structjson__object__iterator.html#a69c61c14f5a36b1dc2217e49cd987f47">json_object_iterator</a>
</li>
</ul>
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
<li>pb
: <a class="el" href="structjson__tokener.html#a1cdc7f85d7bde95f81bb08b7e61d6684">json_tokener</a>
</li>
<li>prev
: <a class="el" href="structlh__entry.html#a6fb9c3de01fb5af67d8d429921cc6a3b">lh_entry</a>
</li>
<li>ptr
: <a class="el" href="unionjson__object_1_1data.html#ad3f2798f4679c5a3cc7f67a42365b71f">json_object::data</a>
</li>
</ul>
<h3><a class="anchor" id="index_q"></a>- q -</h3><ul>
<li>quote_char
: <a class="el" href="structjson__tokener.html#aea488b73085ac7c5969ae7fc29e25fa0">json_tokener</a>
</li>
</ul>
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
<li>saved_state
: <a class="el" href="structjson__tokener__srec.html#a868b9912dbb1e4813a630c944f522d48">json_tokener_srec</a>
</li>
<li>size
: <a class="el" href="structarray__list.html#a11b92f48ed715b187f8609351405342f">array_list</a>
, <a class="el" href="structlh__table.html#ae251575ec2935bcb0e0589ca8e243839">lh_table</a>
, <a class="el" href="structprintbuf.html#a12ce6440eaa06a55b96ebdc5a9778dd5">printbuf</a>
</li>
<li>st_pos
: <a class="el" href="structjson__tokener.html#a8eed213c0a37d09c1df66c8567e44471">json_tokener</a>
</li>
<li>stack
: <a class="el" href="structjson__tokener.html#a3521d62906eb0e15d07d7b4f64a5fac3">json_tokener</a>
</li>
<li>str
: <a class="el" href="unionjson__object_1_1data.html#a51a177df2ef6d27590696975a4f4a7ee">json_object::data</a>
, <a class="el" href="structjson__tokener.html#a9772e2170322a19d8da6ce5d7dc46895">json_tokener</a>
</li>
</ul>
<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
<li>table
: <a class="el" href="structlh__table.html#a4fd9c5aba38791b26ab0ec614a5caf8f">lh_table</a>
</li>
<li>tail
: <a class="el" href="structlh__table.html#a479895e45db2bdf9bf5d173fa4b7e277">lh_table</a>
</li>
</ul>
<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
<li>ucs_char
: <a class="el" href="structjson__tokener.html#a32fa73e43fb760e6845231a8482eb064">json_tokener</a>
</li>
</ul>
<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
<li>v
: <a class="el" href="structlh__entry.html#a1b676732ab2ad3eeaedf6ec60a6a0835">lh_entry</a>
</li>
<li>val
: <a class="el" href="structjson__object__iter.html#aaae14a8d17aacddacb0a57234e0a4491">json_object_iter</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

107
doc/html/globals.html Normal file
View File

@@ -0,0 +1,107 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li class="current"><a href="globals.html#index__"><span>_</span></a></li>
<li><a href="globals_a.html#index_a"><span>a</span></a></li>
<li><a href="globals_e.html#index_e"><span>e</span></a></li>
<li><a href="globals_f.html#index_f"><span>f</span></a></li>
<li><a href="globals_h.html#index_h"><span>h</span></a></li>
<li><a href="globals_i.html#index_i"><span>i</span></a></li>
<li><a href="globals_j.html#index_j"><span>j</span></a></li>
<li><a href="globals_l.html#index_l"><span>l</span></a></li>
<li><a href="globals_m.html#index_m"><span>m</span></a></li>
<li><a href="globals_n.html#index_n"><span>n</span></a></li>
<li><a href="globals_p.html#index_p"><span>p</span></a></li>
<li><a href="globals_s.html#index_s"><span>s</span></a></li>
<li><a href="globals_t.html#index_t"><span>t</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
<li>__STRING
: <a class="el" href="debug_8h.html#a375c4dc9f0fb338999de81aab826f9d6">debug.h</a>
</li>
<li>_json_c_set_last_err()
: <a class="el" href="json__object__private_8h.html#a2b38dd2d14fbfa6585de5664b6d61c0c">json_object_private.h</a>
</li>
<li>_json_c_strerror()
: <a class="el" href="strerror__override_8h.html#a2affa276d0d7b0a446105e324560576f">strerror_override.h</a>
</li>
<li>_json_c_strerror_enable
: <a class="el" href="strerror__override__private_8h.html#ac00e7d4121efe4b2e6ad8961e35e88ba">strerror_override_private.h</a>
</li>
<li>_LH_INLINE
: <a class="el" href="linkhash_8h.html#a77c5cddef96e6f1ab036ccf911783456">linkhash.h</a>
</li>
<li>_LH_UNCONST
: <a class="el" href="linkhash_8h.html#afb856ed4a9bcfd090dde5151fa3ad9ae">linkhash.h</a>
</li>
<li>_printbuf_check_literal
: <a class="el" href="printbuf_8h.html#ab009973c5e15aae191e610cd70752603">printbuf.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

122
doc/html/globals_a.html Normal file
View File

@@ -0,0 +1,122 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="globals.html#index__"><span>_</span></a></li>
<li class="current"><a href="globals_a.html#index_a"><span>a</span></a></li>
<li><a href="globals_e.html#index_e"><span>e</span></a></li>
<li><a href="globals_f.html#index_f"><span>f</span></a></li>
<li><a href="globals_h.html#index_h"><span>h</span></a></li>
<li><a href="globals_i.html#index_i"><span>i</span></a></li>
<li><a href="globals_j.html#index_j"><span>j</span></a></li>
<li><a href="globals_l.html#index_l"><span>l</span></a></li>
<li><a href="globals_m.html#index_m"><span>m</span></a></li>
<li><a href="globals_n.html#index_n"><span>n</span></a></li>
<li><a href="globals_p.html#index_p"><span>p</span></a></li>
<li><a href="globals_s.html#index_s"><span>s</span></a></li>
<li><a href="globals_t.html#index_t"><span>t</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
<li>array_list
: <a class="el" href="arraylist_8h.html#a6d6d32d8b026ea2025df519b9e90f44a">arraylist.h</a>
</li>
<li>array_list_add()
: <a class="el" href="arraylist_8h.html#a6e995608aa464244ff3184fb43574dc8">arraylist.h</a>
</li>
<li>array_list_bsearch()
: <a class="el" href="arraylist_8h.html#a8dae21354e818f13dbe4e952daec2669">arraylist.h</a>
</li>
<li>ARRAY_LIST_DEFAULT_SIZE
: <a class="el" href="arraylist_8h.html#acd30d910b398421574eb1f59e78617f5">arraylist.h</a>
</li>
<li>array_list_del_idx()
: <a class="el" href="arraylist_8h.html#aecedd8601ee96e2fd8eff5d83fda89ab">arraylist.h</a>
</li>
<li>array_list_free()
: <a class="el" href="arraylist_8h.html#acd00fb70f7ca82f23b48b812c3498f67">arraylist.h</a>
</li>
<li>array_list_free_fn
: <a class="el" href="arraylist_8h.html#aad83e4ed3c8ea274e6f18459276d774b">arraylist.h</a>
</li>
<li>array_list_get_idx()
: <a class="el" href="arraylist_8h.html#a114f1af5b20b76a3dbb2d1d055006df8">arraylist.h</a>
</li>
<li>array_list_length()
: <a class="el" href="arraylist_8h.html#aa3bf90f47aa210032304b14e7ad09ef7">arraylist.h</a>
</li>
<li>array_list_new()
: <a class="el" href="arraylist_8h.html#a0d4bfac055dfd98e17296142abf4d894">arraylist.h</a>
</li>
<li>array_list_put_idx()
: <a class="el" href="arraylist_8h.html#a9f92076e9d8229f8a07e536dc286f811">arraylist.h</a>
</li>
<li>array_list_sort()
: <a class="el" href="arraylist_8h.html#afb67cc8e2e5c9be41c3e644536079169">arraylist.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

347
doc/html/globals_defs.html Normal file
View File

@@ -0,0 +1,347 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="#index__"><span>_</span></a></li>
<li><a href="#index_a"><span>a</span></a></li>
<li><a href="#index_e"><span>e</span></a></li>
<li><a href="#index_f"><span>f</span></a></li>
<li><a href="#index_h"><span>h</span></a></li>
<li><a href="#index_i"><span>i</span></a></li>
<li><a href="#index_j"><span>j</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_m"><span>m</span></a></li>
<li><a href="#index_n"><span>n</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li class="current"><a href="#index_t"><span>t</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
&#160;
<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
<li>__STRING
: <a class="el" href="debug_8h.html#a375c4dc9f0fb338999de81aab826f9d6">debug.h</a>
</li>
<li>_LH_INLINE
: <a class="el" href="linkhash_8h.html#a77c5cddef96e6f1ab036ccf911783456">linkhash.h</a>
</li>
<li>_LH_UNCONST
: <a class="el" href="linkhash_8h.html#afb856ed4a9bcfd090dde5151fa3ad9ae">linkhash.h</a>
</li>
<li>_printbuf_check_literal
: <a class="el" href="printbuf_8h.html#ab009973c5e15aae191e610cd70752603">printbuf.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
<li>ARRAY_LIST_DEFAULT_SIZE
: <a class="el" href="arraylist_8h.html#acd30d910b398421574eb1f59e78617f5">arraylist.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
<li>error_description
: <a class="el" href="bits_8h.html#a45afe86501cd57ee2beeef9d67a4d40c">bits.h</a>
</li>
<li>error_ptr
: <a class="el" href="bits_8h.html#a863a898e607f8c2ff87b7052e326740f">bits.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
<li>FALSE
: <a class="el" href="json__object_8h.html#aa93f0eb578d23995850d61f7d61c55c1">json_object.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
<li>HAVE_DECL_INFINITY
: <a class="el" href="math__compat_8h.html#a77914bc4c960d1bfda49328bd0646985">math_compat.h</a>
</li>
<li>HAVE_DECL_NAN
: <a class="el" href="math__compat_8h.html#a9025492cba029d3e372532a1d012f119">math_compat.h</a>
</li>
<li>hexdigit
: <a class="el" href="bits_8h.html#a1cf38b22d3a118ad48d9282c32c048aa">bits.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
<li>INFINITY
: <a class="el" href="math__compat_8h.html#a956e2723d559858d08644ac99146e910">math_compat.h</a>
</li>
<li>is_error
: <a class="el" href="bits_8h.html#a4a887e5fb7cde221bcab9c6f39d93fc1">bits.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_j"></a>- j -</h3><ul>
<li>JASSERT
: <a class="el" href="debug_8h.html#a8ca29550d5b1b73948f4a7bce53f2385">debug.h</a>
</li>
<li>JSON_C_CONST_FUNCTION
: <a class="el" href="json__object_8h.html#a878f59e029f19db79ff9eb41fdcf4c6d">json_object.h</a>
</li>
<li>JSON_C_MAJOR_VERSION
: <a class="el" href="json__c__version_8h.html#a251c3e1f59a379a4a905382b4e855125">json_c_version.h</a>
</li>
<li>JSON_C_MICRO_VERSION
: <a class="el" href="json__c__version_8h.html#a64457730097067ab096906d82e4a51a6">json_c_version.h</a>
</li>
<li>JSON_C_MINOR_VERSION
: <a class="el" href="json__c__version_8h.html#adc87477fbc1c75848fe6b6feec21c2d6">json_c_version.h</a>
</li>
<li>JSON_C_OBJECT_ADD_KEY_IS_NEW
: <a class="el" href="json__object_8h.html#a8cd01c484155ac99043a35b7c85ae411">json_object.h</a>
</li>
<li>JSON_C_OBJECT_KEY_IS_CONSTANT
: <a class="el" href="json__object_8h.html#a134ffafc6116799a20134dc7646b5a37">json_object.h</a>
</li>
<li>JSON_C_OPTION_GLOBAL
: <a class="el" href="json__object_8h.html#a45837b8c6564f9e605f8a2bc76243750">json_object.h</a>
</li>
<li>JSON_C_OPTION_THREAD
: <a class="el" href="json__object_8h.html#a50d1490598fe476d7a53e204e02cdc9d">json_object.h</a>
</li>
<li>JSON_C_STR_HASH_DFLT
: <a class="el" href="linkhash_8h.html#ac32e80138c5be6dd9b0483a9cbcc8799">linkhash.h</a>
</li>
<li>JSON_C_STR_HASH_PERLLIKE
: <a class="el" href="linkhash_8h.html#a62316f34fd42941b97a8e9a6b6e68faa">linkhash.h</a>
</li>
<li>JSON_C_TO_STRING_NOSLASHESCAPE
: <a class="el" href="json__object_8h.html#a5c11d72c55f3ab7c088f19e7bf118163">json_object.h</a>
</li>
<li>JSON_C_TO_STRING_NOZERO
: <a class="el" href="json__object_8h.html#a34f027c147babf69fc530d088f2b49b0">json_object.h</a>
</li>
<li>JSON_C_TO_STRING_PLAIN
: <a class="el" href="json__object_8h.html#a3294cb92765cdeb497cfd346644d1059">json_object.h</a>
</li>
<li>JSON_C_TO_STRING_PRETTY
: <a class="el" href="json__object_8h.html#a2025bc677c35f130e117dfda5bf1ef73">json_object.h</a>
</li>
<li>JSON_C_TO_STRING_PRETTY_TAB
: <a class="el" href="json__object_8h.html#afc1486af21f6b1653c6f523025bdfd3b">json_object.h</a>
</li>
<li>JSON_C_TO_STRING_SPACED
: <a class="el" href="json__object_8h.html#aa821746c8668e6ad62bed90ec9e00103">json_object.h</a>
</li>
<li>JSON_C_VERSION
: <a class="el" href="json__c__version_8h.html#a894adda66a072bc3fd34ebe91a5aa7f4">json_c_version.h</a>
</li>
<li>JSON_C_VERSION_NUM
: <a class="el" href="json__c__version_8h.html#a78e176eee75ee6aed43c4d65ca4c5b44">json_c_version.h</a>
</li>
<li>JSON_C_VISIT_RETURN_CONTINUE
: <a class="el" href="json__visit_8h.html#a98b35e1ba1d52d41799dccbfd2c170a1">json_visit.h</a>
</li>
<li>JSON_C_VISIT_RETURN_ERROR
: <a class="el" href="json__visit_8h.html#abfacb0713b81c897a8ce5f37ff6ffb9c">json_visit.h</a>
</li>
<li>JSON_C_VISIT_RETURN_POP
: <a class="el" href="json__visit_8h.html#a327a21f1f1c6f84e7a13fbaaf4a51b13">json_visit.h</a>
</li>
<li>JSON_C_VISIT_RETURN_SKIP
: <a class="el" href="json__visit_8h.html#adc7ca60a79c4ae870d9463e41527c2a1">json_visit.h</a>
</li>
<li>JSON_C_VISIT_RETURN_STOP
: <a class="el" href="json__visit_8h.html#a5956f41bed48f90a127f9b37fad7ea97">json_visit.h</a>
</li>
<li>JSON_C_VISIT_SECOND
: <a class="el" href="json__visit_8h.html#ac5be4a96b99b724833943003715dfc1c">json_visit.h</a>
</li>
<li>JSON_EXPORT
: <a class="el" href="json__object_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">json_object.h</a>
</li>
<li>JSON_FILE_BUF_SIZE
: <a class="el" href="json__util_8h.html#a084b6afc8f7fbef88976aabe4aca7efd">json_util.h</a>
</li>
<li>json_max
: <a class="el" href="json__util_8h.html#a57d63d199d4b9ea40359253618951300">json_util.h</a>
</li>
<li>json_min
: <a class="el" href="json__util_8h.html#a3dde282dc23d0eaa3c4840df8dc262d4">json_util.h</a>
</li>
<li>JSON_OBJECT_DEF_HASH_ENTRIES
: <a class="el" href="json__object_8h.html#a268a63dd1b2e6d81559e268a4529e9bf">json_object.h</a>
</li>
<li>json_object_object_foreach
: <a class="el" href="json__object_8h.html#acf5f514a9e0061c10fc08055762639ee">json_object.h</a>
</li>
<li>json_object_object_foreachC
: <a class="el" href="json__object_8h.html#a71f07006c12d78f7bbf4cb716a5af3a6">json_object.h</a>
</li>
<li>JSON_TOKENER_DEFAULT_DEPTH
: <a class="el" href="json__tokener_8h.html#a5ccd346459feb66e4e0af32005360279">json_tokener.h</a>
</li>
<li>JSON_TOKENER_STRICT
: <a class="el" href="json__tokener_8h.html#a72be595cb7e090c70b1d29feb1cbfb16">json_tokener.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
<li>LEN_DIRECT_STRING_DATA
: <a class="el" href="json__object__private_8h.html#a227adaf0073e17006f614190d414fa1a">json_object_private.h</a>
</li>
<li>LH_EMPTY
: <a class="el" href="linkhash_8h.html#a93fad7f8ae44575dc89c9567859972d2">linkhash.h</a>
</li>
<li>lh_entry_k
: <a class="el" href="linkhash_8h.html#a7579ce28b8366fc9b8656f14270aa3aa">linkhash.h</a>
</li>
<li>lh_entry_v
: <a class="el" href="linkhash_8h.html#a0d4052ccfd8c5d351a9c1d3ba07671b3">linkhash.h</a>
</li>
<li>lh_foreach
: <a class="el" href="linkhash_8h.html#ad7dd67da915065dce2c6f44cb03e2d82">linkhash.h</a>
</li>
<li>lh_foreach_safe
: <a class="el" href="linkhash_8h.html#abcbb0df08b4976d0649b826b6bacfca1">linkhash.h</a>
</li>
<li>LH_FREED
: <a class="el" href="linkhash_8h.html#ac69428f2de0a6fb080b6fb373d506aa7">linkhash.h</a>
</li>
<li>LH_LOAD_FACTOR
: <a class="el" href="linkhash_8h.html#a66b61772c29d85eb52b697e0b0dc0aaf">linkhash.h</a>
</li>
<li>LH_PRIME
: <a class="el" href="linkhash_8h.html#a032f1bd115df254dda325437203ce5fb">linkhash.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
<li>MC_DEBUG
: <a class="el" href="debug_8h.html#afda355b35d18bf2e6a2a22d5c8eef42c">debug.h</a>
</li>
<li>MC_ERROR
: <a class="el" href="debug_8h.html#a11ba39cecbe449af5b86fa2f78e9da9d">debug.h</a>
</li>
<li>MC_GET_DEBUG
: <a class="el" href="debug_8h.html#acb272a4b4444b69cd995236f167f90ba">debug.h</a>
</li>
<li>MC_INFO
: <a class="el" href="debug_8h.html#a5ef640ce1e9e61c5f6632aefbbfa0041">debug.h</a>
</li>
<li>MC_SET_DEBUG
: <a class="el" href="debug_8h.html#a50f21a239fa040a10ad4cfdb4278b02b">debug.h</a>
</li>
<li>MC_SET_SYSLOG
: <a class="el" href="debug_8h.html#acf1e895cb5eb7f334cbe51901e6bb918">debug.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
<li>NAN
: <a class="el" href="math__compat_8h.html#a8abfcc76130f3f991d124dd22d7e69bc">math_compat.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
<li>PRId64
: <a class="el" href="json__inttypes_8h.html#ae372e90b62c1e8b51dc5d95bf7f5ba48">json_inttypes.h</a>
</li>
<li>printbuf_length
: <a class="el" href="printbuf_8h.html#acdd84ad88987c0166b7ba0e3f1f8f1bb">printbuf.h</a>
</li>
<li>printbuf_memappend_fast
: <a class="el" href="printbuf_8h.html#a6f3a4dc87fab41c37e3eff42f40dc346">printbuf.h</a>
</li>
<li>printbuf_strappend
: <a class="el" href="printbuf_8h.html#a2f30492682f5fbc59a8749b428e0e4ba">printbuf.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
<li>SCNd64
: <a class="el" href="json__inttypes_8h.html#ae7044b3fb4cc5cde22155d59437c348f">json_inttypes.h</a>
</li>
<li>strerror
: <a class="el" href="strerror__override_8h.html#a9dae36435b1668856ec610d6d5238754">strerror_override.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
<li>THIS_FUNCTION_IS_DEPRECATED
: <a class="el" href="json__object_8h.html#a84fa70b86686ce202058f63905c90078">json_object.h</a>
</li>
<li>TRUE
: <a class="el" href="json__object_8h.html#aa8cecfc5c5c054d2875c03e77b7be15d">json_object.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

92
doc/html/globals_e.html Normal file
View File

@@ -0,0 +1,92 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="globals.html#index__"><span>_</span></a></li>
<li><a href="globals_a.html#index_a"><span>a</span></a></li>
<li class="current"><a href="globals_e.html#index_e"><span>e</span></a></li>
<li><a href="globals_f.html#index_f"><span>f</span></a></li>
<li><a href="globals_h.html#index_h"><span>h</span></a></li>
<li><a href="globals_i.html#index_i"><span>i</span></a></li>
<li><a href="globals_j.html#index_j"><span>j</span></a></li>
<li><a href="globals_l.html#index_l"><span>l</span></a></li>
<li><a href="globals_m.html#index_m"><span>m</span></a></li>
<li><a href="globals_n.html#index_n"><span>n</span></a></li>
<li><a href="globals_p.html#index_p"><span>p</span></a></li>
<li><a href="globals_s.html#index_s"><span>s</span></a></li>
<li><a href="globals_t.html#index_t"><span>t</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
<li>error_description
: <a class="el" href="bits_8h.html#a45afe86501cd57ee2beeef9d67a4d40c">bits.h</a>
</li>
<li>error_ptr
: <a class="el" href="bits_8h.html#a863a898e607f8c2ff87b7052e326740f">bits.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

View File

@@ -0,0 +1,76 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li class="current"><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
&#160;<ul>
<li>json_tokener_error
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener.h</a>
</li>
<li>json_tokener_state
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2">json_tokener.h</a>
</li>
<li>json_type
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06c">json_object.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

215
doc/html/globals_eval.html Normal file
View File

@@ -0,0 +1,215 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li class="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li class="current"><a href="#index_j"><span>j</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
&#160;
<h3><a class="anchor" id="index_j"></a>- j -</h3><ul>
<li>json_tokener_continue
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a9b26e920ca765df91c84e999561d8fb0">json_tokener.h</a>
</li>
<li>json_tokener_error_depth
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a59b2c36d9cc30c3038e09b9ddee6c86c">json_tokener.h</a>
</li>
<li>json_tokener_error_parse_array
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a574846740b785146f164a209dc89574e">json_tokener.h</a>
</li>
<li>json_tokener_error_parse_boolean
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59addbdfe084e20709da3d20c8ae8ca278c">json_tokener.h</a>
</li>
<li>json_tokener_error_parse_comment
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a3588c05b1da8b909a8cbdef66b0a1a28">json_tokener.h</a>
</li>
<li>json_tokener_error_parse_eof
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a8f774f4c7869afdd9b92295fca3a9ded">json_tokener.h</a>
</li>
<li>json_tokener_error_parse_null
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a641bbb8d881fdd1e463f20a1a203b77c">json_tokener.h</a>
</li>
<li>json_tokener_error_parse_number
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59ab1b3ad685eb97235d269cc5b9eb7ab81">json_tokener.h</a>
</li>
<li>json_tokener_error_parse_object_key_name
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a2003bd8e96c6680cd22419c5ceafd4c0">json_tokener.h</a>
</li>
<li>json_tokener_error_parse_object_key_sep
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59af91a2a819b0d6344d6d4e1d2579f28fd">json_tokener.h</a>
</li>
<li>json_tokener_error_parse_object_value_sep
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a9ddb98741aebf7ac44735b4a43717013">json_tokener.h</a>
</li>
<li>json_tokener_error_parse_string
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a033ce89ce7b8f9e591e4bea92121c4c7">json_tokener.h</a>
</li>
<li>json_tokener_error_parse_unexpected
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a3309fa8ea4ab3ee0a81c55b69d223710">json_tokener.h</a>
</li>
<li>json_tokener_error_size
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a1eeed74de65c0c12c9f9c28cf4f3ff1d">json_tokener.h</a>
</li>
<li>json_tokener_state_array
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ab3d763300f1914865be09d603ddc11f4">json_tokener.h</a>
</li>
<li>json_tokener_state_array_add
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2aa2a01798ebe318ea91c38a886418f771">json_tokener.h</a>
</li>
<li>json_tokener_state_array_after_sep
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ab1a0ad626ec662c1ba4fb5bfee1cd0a9">json_tokener.h</a>
</li>
<li>json_tokener_state_array_sep
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a4ec7762aeab3424cbb14354c94025865">json_tokener.h</a>
</li>
<li>json_tokener_state_boolean
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a3525b15ecd0a698281b3914115b6bd3e">json_tokener.h</a>
</li>
<li>json_tokener_state_comment
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a8c2680b8873a8dce85f0b1ac25882dc9">json_tokener.h</a>
</li>
<li>json_tokener_state_comment_end
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a62cef297a37a98b1239ea4bbd39723e1">json_tokener.h</a>
</li>
<li>json_tokener_state_comment_eol
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ad8151350b1ef50298bafbab244ac1162">json_tokener.h</a>
</li>
<li>json_tokener_state_comment_start
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a0ff1d1935d49188aa1e6b998d43e655c">json_tokener.h</a>
</li>
<li>json_tokener_state_eatws
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a9db152607ec1872a000f1fcd8757297d">json_tokener.h</a>
</li>
<li>json_tokener_state_escape_unicode
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a6c852da2e694be56799c58c201d6dca0">json_tokener.h</a>
</li>
<li>json_tokener_state_finish
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ad80b689cb709967b67a348de3d8601d2">json_tokener.h</a>
</li>
<li>json_tokener_state_inf
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ab9f6244bfca4924db61ed3050c780b53">json_tokener.h</a>
</li>
<li>json_tokener_state_null
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a668fb2654c59608945370003403a5792">json_tokener.h</a>
</li>
<li>json_tokener_state_number
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a7ce18d281d322af690b45f3b8b599e81">json_tokener.h</a>
</li>
<li>json_tokener_state_object_field
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a77375940a10806e81d99876d13be67fc">json_tokener.h</a>
</li>
<li>json_tokener_state_object_field_end
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a0220aea1d9204aadfffde92c7f73f5f7">json_tokener.h</a>
</li>
<li>json_tokener_state_object_field_start
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a8c7dbda177a5d83a36a64f7cb99b9a29">json_tokener.h</a>
</li>
<li>json_tokener_state_object_field_start_after_sep
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a3a2c9cf26d076936a10a6ae3ca4eb523">json_tokener.h</a>
</li>
<li>json_tokener_state_object_sep
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2adaf3e06c5fc04fd4f04040cd67698215">json_tokener.h</a>
</li>
<li>json_tokener_state_object_value
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a4c7b7deac37355491572f6da84f208aa">json_tokener.h</a>
</li>
<li>json_tokener_state_object_value_add
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ade6bee72f2147e634b19eb84e58eb162">json_tokener.h</a>
</li>
<li>json_tokener_state_start
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a7c4c0bed1ebde45f5a99de4278792d72">json_tokener.h</a>
</li>
<li>json_tokener_state_string
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2aa90ea4c327a285bfbbce49d42d491d65">json_tokener.h</a>
</li>
<li>json_tokener_state_string_escape
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a1cf793d73587f68c4f2b3b4f65ff728e">json_tokener.h</a>
</li>
<li>json_tokener_success
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59afe2fa9bde03155019b2df30f66a5fcd0">json_tokener.h</a>
</li>
<li>json_type_array
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06cae536c8c9da4648e6b9348abddde6113c">json_object.h</a>
</li>
<li>json_type_boolean
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06ca5d15299e90dbb9935ff6d3e2c22a285c">json_object.h</a>
</li>
<li>json_type_double
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06cac6ac2d9a16577d00210fea64d16b47cd">json_object.h</a>
</li>
<li>json_type_int
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06ca7bf325c213b43c5f970ae2d4443ab956">json_object.h</a>
</li>
<li>json_type_null
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06ca127e62d156e13517471fcde3378979c1">json_object.h</a>
</li>
<li>json_type_object
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06cac966c8008f0b2c07da59ee8a60ad440f">json_object.h</a>
</li>
<li>json_type_string
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06cac9f56e57c09245522d764015a054faa6">json_object.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

89
doc/html/globals_f.html Normal file
View File

@@ -0,0 +1,89 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="globals.html#index__"><span>_</span></a></li>
<li><a href="globals_a.html#index_a"><span>a</span></a></li>
<li><a href="globals_e.html#index_e"><span>e</span></a></li>
<li class="current"><a href="globals_f.html#index_f"><span>f</span></a></li>
<li><a href="globals_h.html#index_h"><span>h</span></a></li>
<li><a href="globals_i.html#index_i"><span>i</span></a></li>
<li><a href="globals_j.html#index_j"><span>j</span></a></li>
<li><a href="globals_l.html#index_l"><span>l</span></a></li>
<li><a href="globals_m.html#index_m"><span>m</span></a></li>
<li><a href="globals_n.html#index_n"><span>n</span></a></li>
<li><a href="globals_p.html#index_p"><span>p</span></a></li>
<li><a href="globals_s.html#index_s"><span>s</span></a></li>
<li><a href="globals_t.html#index_t"><span>t</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
<li>FALSE
: <a class="el" href="json__object_8h.html#aa93f0eb578d23995850d61f7d61c55c1">json_object.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

479
doc/html/globals_func.html Normal file
View File

@@ -0,0 +1,479 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="globals.html"><span>All</span></a></li>
<li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="#index__"><span>_</span></a></li>
<li><a href="#index_a"><span>a</span></a></li>
<li><a href="#index_j"><span>j</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_m"><span>m</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li class="current"><a href="#index_s"><span>s</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
&#160;
<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
<li>_json_c_set_last_err()
: <a class="el" href="json__object__private_8h.html#a2b38dd2d14fbfa6585de5664b6d61c0c">json_object_private.h</a>
</li>
<li>_json_c_strerror()
: <a class="el" href="strerror__override_8h.html#a2affa276d0d7b0a446105e324560576f">strerror_override.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
<li>array_list_add()
: <a class="el" href="arraylist_8h.html#a6e995608aa464244ff3184fb43574dc8">arraylist.h</a>
</li>
<li>array_list_bsearch()
: <a class="el" href="arraylist_8h.html#a8dae21354e818f13dbe4e952daec2669">arraylist.h</a>
</li>
<li>array_list_del_idx()
: <a class="el" href="arraylist_8h.html#aecedd8601ee96e2fd8eff5d83fda89ab">arraylist.h</a>
</li>
<li>array_list_free()
: <a class="el" href="arraylist_8h.html#acd00fb70f7ca82f23b48b812c3498f67">arraylist.h</a>
</li>
<li>array_list_get_idx()
: <a class="el" href="arraylist_8h.html#a114f1af5b20b76a3dbb2d1d055006df8">arraylist.h</a>
</li>
<li>array_list_length()
: <a class="el" href="arraylist_8h.html#aa3bf90f47aa210032304b14e7ad09ef7">arraylist.h</a>
</li>
<li>array_list_new()
: <a class="el" href="arraylist_8h.html#a0d4bfac055dfd98e17296142abf4d894">arraylist.h</a>
</li>
<li>array_list_put_idx()
: <a class="el" href="arraylist_8h.html#a9f92076e9d8229f8a07e536dc286f811">arraylist.h</a>
</li>
<li>array_list_sort()
: <a class="el" href="arraylist_8h.html#afb67cc8e2e5c9be41c3e644536079169">arraylist.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_j"></a>- j -</h3><ul>
<li>JSON_C_CONST_FUNCTION()
: <a class="el" href="json__object_8h.html#a922b2d76c73da57174beec82d471743b">json_object.h</a>
</li>
<li>json_c_get_random_seed()
: <a class="el" href="random__seed_8h.html#ae190c6819d7687e110d6ec59a16d006f">random_seed.h</a>
</li>
<li>json_c_set_serialization_double_format()
: <a class="el" href="json__object_8h.html#a865a9a3f897eb64a0354c21b972e8187">json_object.h</a>
</li>
<li>json_c_version()
: <a class="el" href="json__c__version_8h.html#a536b398f292b0669fc824a8486131a27">json_c_version.h</a>
</li>
<li>json_c_version_num()
: <a class="el" href="json__c__version_8h.html#a114bcfed9594f3cd662e43454000938d">json_c_version.h</a>
</li>
<li>json_c_visit()
: <a class="el" href="json__visit_8h.html#ac13d0e2e7bf34cd1be6eee3f0f112045">json_visit.h</a>
</li>
<li>json_global_set_string_hash()
: <a class="el" href="linkhash_8h.html#ac8e1d61af44d9c0824d8c7980385bcd3">linkhash.h</a>
</li>
<li>json_object_array_add()
: <a class="el" href="json__object_8h.html#a18cdd9a7455e09f36cdf6e5756b7f586">json_object.h</a>
</li>
<li>json_object_array_bsearch()
: <a class="el" href="json__object_8h.html#aed353084ed3ad84e7b7575afbe7e719d">json_object.h</a>
</li>
<li>json_object_array_del_idx()
: <a class="el" href="json__object_8h.html#a722eca9f578704d3af38b97549242c1f">json_object.h</a>
</li>
<li>json_object_array_get_idx()
: <a class="el" href="json__object_8h.html#a676711a76545d4ec65cc75f100f5fd19">json_object.h</a>
</li>
<li>json_object_array_length()
: <a class="el" href="json__object_8h.html#ab9ea8f9c72d5adf83fdcbfe69f97fa44">json_object.h</a>
</li>
<li>json_object_array_put_idx()
: <a class="el" href="json__object_8h.html#a1ac0ccdbc13a25da7d8b2dc9e421dfad">json_object.h</a>
</li>
<li>json_object_array_sort()
: <a class="el" href="json__object_8h.html#a5584e2f2051cd1faa7fafd07ba888fd1">json_object.h</a>
</li>
<li>json_object_deep_copy()
: <a class="el" href="json__object_8h.html#aaac16505f13bc56accfad82604d8bcdc">json_object.h</a>
</li>
<li>json_object_double_to_json_string()
: <a class="el" href="json__object_8h.html#ada262c62364e3819b6a64b1e3a632336">json_object.h</a>
</li>
<li>json_object_equal()
: <a class="el" href="json__object_8h.html#a5a1d4640525e0217059868e312f20579">json_object.h</a>
</li>
<li>json_object_from_fd()
: <a class="el" href="json__util_8h.html#a62ba7e0f43eb72c418654acf4e263aa6">json_util.h</a>
</li>
<li>json_object_from_file()
: <a class="el" href="json__util_8h.html#a8fa0bba6b7ddb149a2159d99bae709ce">json_util.h</a>
</li>
<li>json_object_get()
: <a class="el" href="json__object_8h.html#a675aa3a9cced685dbfd1c1a770a0c3e4">json_object.h</a>
</li>
<li>json_object_get_array()
: <a class="el" href="json__object_8h.html#a23d20e3f886c1638a7116be66b7b5ec2">json_object.h</a>
</li>
<li>json_object_get_boolean()
: <a class="el" href="json__object_8h.html#ac003fb99db7ecd674bb16d983d2f92ee">json_object.h</a>
</li>
<li>json_object_get_double()
: <a class="el" href="json__object_8h.html#a94a70cff6a14398b581b7b10b0792c5b">json_object.h</a>
</li>
<li>json_object_get_int()
: <a class="el" href="json__object_8h.html#a8c56dc58a02f92cd6789ba5dcb9fe7b1">json_object.h</a>
</li>
<li>json_object_get_int64()
: <a class="el" href="json__object_8h.html#a1a14750b3af4df18ec8dc93b090a8e8a">json_object.h</a>
</li>
<li>json_object_get_object()
: <a class="el" href="json__object_8h.html#a2caa52ae1863bd073444f3737138a4db">json_object.h</a>
</li>
<li>json_object_get_string()
: <a class="el" href="json__object_8h.html#a9ee29ca8d79896e15007131527f6002e">json_object.h</a>
</li>
<li>json_object_get_string_len()
: <a class="el" href="json__object_8h.html#ac1d1f95a27a5e5d93bb66a8adfc1a2f4">json_object.h</a>
</li>
<li>json_object_get_type()
: <a class="el" href="json__object_8h.html#af256a3a7910e271a2b9735e5044c3827">json_object.h</a>
</li>
<li>json_object_get_userdata()
: <a class="el" href="json__object_8h.html#ae925f3ec0f61cba5ea3dd50e0315f194">json_object.h</a>
</li>
<li>json_object_int_inc()
: <a class="el" href="json__object_8h.html#a25691322b2d1ab24a3797e5752eb659f">json_object.h</a>
</li>
<li>json_object_is_type()
: <a class="el" href="json__object_8h.html#a8ab506a3d8f4ba5eb6a12ce0a6bbd37b">json_object.h</a>
</li>
<li>json_object_iter_begin()
: <a class="el" href="json__object__iterator_8h.html#a925eb97b5aa5b64986a0f663f53cf0fa">json_object_iterator.h</a>
</li>
<li>json_object_iter_end()
: <a class="el" href="json__object__iterator_8h.html#a1fa3784395fb14496e3f1a1633028fd4">json_object_iterator.h</a>
</li>
<li>json_object_iter_equal()
: <a class="el" href="json__object__iterator_8h.html#a878ca25f72b339882aa2607ac938e79c">json_object_iterator.h</a>
</li>
<li>json_object_iter_init_default()
: <a class="el" href="json__object__iterator_8h.html#af30f56ca510d59da42e5592f9a436c10">json_object_iterator.h</a>
</li>
<li>json_object_iter_next()
: <a class="el" href="json__object__iterator_8h.html#aa98a310c340f6d9b4eeecb673aa5e240">json_object_iterator.h</a>
</li>
<li>json_object_iter_peek_name()
: <a class="el" href="json__object__iterator_8h.html#af17775b9b812a4206a84e4d3fb5774ab">json_object_iterator.h</a>
</li>
<li>json_object_iter_peek_value()
: <a class="el" href="json__object__iterator_8h.html#a47b0af7f1722c10475dffd29efc0b89d">json_object_iterator.h</a>
</li>
<li>json_object_new_array()
: <a class="el" href="json__object_8h.html#a84f7f8c0774c4600d958561d7548d649">json_object.h</a>
</li>
<li>json_object_new_boolean()
: <a class="el" href="json__object_8h.html#a2e290acd80e72cca745f89fb4600fb78">json_object.h</a>
</li>
<li>json_object_new_double()
: <a class="el" href="json__object_8h.html#a594a093bafb9091f843da3197e0638aa">json_object.h</a>
</li>
<li>json_object_new_double_s()
: <a class="el" href="json__object_8h.html#ae49671c026fe1ada370a75321e4e65f6">json_object.h</a>
</li>
<li>json_object_new_int()
: <a class="el" href="json__object_8h.html#ae92f0770fb4b3c884ce35de52d3d7de8">json_object.h</a>
</li>
<li>json_object_new_int64()
: <a class="el" href="json__object_8h.html#a7847f74494645c2b076505c37cc4cb93">json_object.h</a>
</li>
<li>json_object_new_object()
: <a class="el" href="json__object_8h.html#a68c383f54544fca19b5f2425be397600">json_object.h</a>
</li>
<li>json_object_new_string()
: <a class="el" href="json__object_8h.html#a7b7b5302b3903c9347eeb1f4a64d657b">json_object.h</a>
</li>
<li>json_object_new_string_len()
: <a class="el" href="json__object_8h.html#a190e9bea8c39b257af69d392dd2ddffb">json_object.h</a>
</li>
<li>json_object_object_add()
: <a class="el" href="json__object_8h.html#a27bd808a022251059a43f1f6370441cd">json_object.h</a>
</li>
<li>json_object_object_add_ex()
: <a class="el" href="json__object_8h.html#a57d3e444dd7db6b4510d21bf3716a002">json_object.h</a>
</li>
<li>json_object_object_del()
: <a class="el" href="json__object_8h.html#ac6605fdafca20bd5d33c84f4f80a3bda">json_object.h</a>
</li>
<li>json_object_object_get()
: <a class="el" href="json__object_8h.html#a1a097805abb53b4c8a60d573730a8939">json_object.h</a>
</li>
<li>json_object_object_get_ex()
: <a class="el" href="json__object_8h.html#a90d5f16d58636f01d2ed1a6030c7366a">json_object.h</a>
</li>
<li>json_object_object_length()
: <a class="el" href="json__object_8h.html#ad59a0ad2ec914a5eef90af53acae06d9">json_object.h</a>
</li>
<li>json_object_put()
: <a class="el" href="json__object_8h.html#afabf61f932cd64a4122ca8092452eed5">json_object.h</a>
</li>
<li>json_object_set_boolean()
: <a class="el" href="json__object_8h.html#a23863c1503f3a8dd8a460a6405da0a65">json_object.h</a>
</li>
<li>json_object_set_double()
: <a class="el" href="json__object_8h.html#a3a7b7ce585565558cb69dad8d45d7757">json_object.h</a>
</li>
<li>json_object_set_int()
: <a class="el" href="json__object_8h.html#a4ab3568f12e01fd2967e765a72456caa">json_object.h</a>
</li>
<li>json_object_set_int64()
: <a class="el" href="json__object_8h.html#a7d3948600dde732abed0e261264ef53a">json_object.h</a>
</li>
<li>json_object_set_serializer()
: <a class="el" href="json__object_8h.html#a889345512a214b8f78f6a73561523c7c">json_object.h</a>
</li>
<li>json_object_set_string()
: <a class="el" href="json__object_8h.html#ac35013e51cdc0651512801c947df431c">json_object.h</a>
</li>
<li>json_object_set_string_len()
: <a class="el" href="json__object_8h.html#ae48707a0c8689e14aaa3a9b831db27fc">json_object.h</a>
</li>
<li>json_object_set_userdata()
: <a class="el" href="json__object_8h.html#a4ee4281ccd123c62878e931a0a3bc43b">json_object.h</a>
</li>
<li>json_object_to_fd()
: <a class="el" href="json__util_8h.html#adc52c3b220effc880270f095cd748433">json_util.h</a>
</li>
<li>json_object_to_file()
: <a class="el" href="json__util_8h.html#abbd121df84ec3878a5cb8fefaff12ec7">json_util.h</a>
</li>
<li>json_object_to_file_ext()
: <a class="el" href="json__util_8h.html#a4e980954930951bf790c1ec3ba68fb76">json_util.h</a>
</li>
<li>json_object_to_json_string()
: <a class="el" href="json__object_8h.html#ab7390c22baa1700d977c2af6b22d43a4">json_object.h</a>
</li>
<li>json_object_to_json_string_ext()
: <a class="el" href="json__object_8h.html#a9db613127bd4ef7db42307e43a85fc1b">json_object.h</a>
</li>
<li>json_object_to_json_string_length()
: <a class="el" href="json__object_8h.html#add3770a3ba3d01a8f9adedfcd6bd8dbb">json_object.h</a>
</li>
<li>json_parse_double()
: <a class="el" href="json__util_8h.html#a6b5790c15178b6ea97841fc5868b1e1a">json_util.h</a>
</li>
<li>json_parse_int64()
: <a class="el" href="json__util_8h.html#a9bb9882ef2859ca2c1ee17805679bc25">json_util.h</a>
</li>
<li>json_pointer_get()
: <a class="el" href="json__pointer_8h.html#abf47f34be3386a5eb510604f05ae9491">json_pointer.h</a>
</li>
<li>json_pointer_getf()
: <a class="el" href="json__pointer_8h.html#ae7eb2cab2f6f50c51053430223a01438">json_pointer.h</a>
</li>
<li>json_pointer_set()
: <a class="el" href="json__pointer_8h.html#ab06a9fd172593748b2dc8d3a11c74fa0">json_pointer.h</a>
</li>
<li>json_pointer_setf()
: <a class="el" href="json__pointer_8h.html#a74edfbe357c7428b1a20ae73e3910ac0">json_pointer.h</a>
</li>
<li>json_tokener_error_desc()
: <a class="el" href="json__tokener_8h.html#a04c5625212aed3216cc303429e47f642">json_tokener.h</a>
</li>
<li>json_tokener_free()
: <a class="el" href="json__tokener_8h.html#a887c4661906fc6b36cc366304e522534">json_tokener.h</a>
</li>
<li>json_tokener_get_error()
: <a class="el" href="json__tokener_8h.html#af5d7ffd95a0f6e5d5bb5994d233b4197">json_tokener.h</a>
</li>
<li>json_tokener_new()
: <a class="el" href="json__tokener_8h.html#a5ac7e2c350bc592cf2fa7b9935b00ef5">json_tokener.h</a>
</li>
<li>json_tokener_new_ex()
: <a class="el" href="json__tokener_8h.html#a6a1583ddd434e13515d6232de813462e">json_tokener.h</a>
</li>
<li>json_tokener_parse()
: <a class="el" href="json__tokener_8h.html#a236ef64d079822a4411d13eae7190c4d">json_tokener.h</a>
</li>
<li>json_tokener_parse_ex()
: <a class="el" href="json__tokener_8h.html#a61679f178111963a9ffa3c8179553f7a">json_tokener.h</a>
</li>
<li>json_tokener_parse_verbose()
: <a class="el" href="json__tokener_8h.html#a735f2dc755d57ed5c5b807aaaaef3b14">json_tokener.h</a>
</li>
<li>json_tokener_reset()
: <a class="el" href="json__tokener_8h.html#a238649a59737be5152d525aeaf4153ab">json_tokener.h</a>
</li>
<li>json_tokener_set_flags()
: <a class="el" href="json__tokener_8h.html#a7e7a0c0c9dc79e5e47b2608bb8aad7b7">json_tokener.h</a>
</li>
<li>json_type_to_name()
: <a class="el" href="json__util_8h.html#a74031a1b948dc9fed3f367ea6ce78389">json_util.h</a>
</li>
<li>json_util_get_last_err()
: <a class="el" href="json__util_8h.html#a811b1a5a7544337811a44c26fbe88761">json_util.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
<li>lh_abort()
: <a class="el" href="linkhash_8h.html#a1294160fa0e80cee04cd745a401f43a4">linkhash.h</a>
</li>
<li>lh_kchar_table_new()
: <a class="el" href="linkhash_8h.html#a6bf630754affe92612639542a6c49c3f">linkhash.h</a>
</li>
<li>lh_kptr_table_new()
: <a class="el" href="linkhash_8h.html#af8108563b961dbf5471fe2c0e51f40a5">linkhash.h</a>
</li>
<li>lh_table_delete()
: <a class="el" href="linkhash_8h.html#a2fed2c78f70d229edb2d00775ffe593c">linkhash.h</a>
</li>
<li>lh_table_delete_entry()
: <a class="el" href="linkhash_8h.html#ae5885a71c3457190fb1dc2d6e20dde3b">linkhash.h</a>
</li>
<li>lh_table_free()
: <a class="el" href="linkhash_8h.html#a81653acf740cf8c9fe672e6cd16df0cf">linkhash.h</a>
</li>
<li>lh_table_insert()
: <a class="el" href="linkhash_8h.html#a86c0cd547be1e2c2486a73bd58e1352c">linkhash.h</a>
</li>
<li>lh_table_insert_w_hash()
: <a class="el" href="linkhash_8h.html#a4558a9347a422e03a15b0b7a29b82dc3">linkhash.h</a>
</li>
<li>lh_table_length()
: <a class="el" href="linkhash_8h.html#ac9ba631c91fe80fb905f04c7cd526f2b">linkhash.h</a>
</li>
<li>lh_table_lookup()
: <a class="el" href="linkhash_8h.html#a49c27f18a174eaf126d1b7953df13cb1">linkhash.h</a>
</li>
<li>lh_table_lookup_entry()
: <a class="el" href="linkhash_8h.html#ad3b6ca2d967a6c3021ee6c39e014a918">linkhash.h</a>
</li>
<li>lh_table_lookup_entry_w_hash()
: <a class="el" href="linkhash_8h.html#a59ecaf34ef59280952f4459b2de63677">linkhash.h</a>
</li>
<li>lh_table_lookup_ex()
: <a class="el" href="linkhash_8h.html#a81c270bb0dd9d5c8a3e7ae20bc4d67f3">linkhash.h</a>
</li>
<li>lh_table_new()
: <a class="el" href="linkhash_8h.html#a9c4f8a71dbe4d3390d9f7adb331beb0e">linkhash.h</a>
</li>
<li>lh_table_resize()
: <a class="el" href="linkhash_8h.html#a30c8414e31aeee7669acc938116d933f">linkhash.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
<li>mc_debug()
: <a class="el" href="debug_8h.html#a600cf4cbbe19c0c15ca3710210e35aba">debug.h</a>
</li>
<li>mc_error()
: <a class="el" href="debug_8h.html#abf22ea3a331c7ff21c23da91a07c7cb2">debug.h</a>
</li>
<li>mc_get_debug()
: <a class="el" href="debug_8h.html#a3b3ab3ae8b438384fb109a2e38646b6e">debug.h</a>
</li>
<li>mc_info()
: <a class="el" href="debug_8h.html#acbb92996a994e316ff65ed3a026e12a4">debug.h</a>
</li>
<li>mc_set_debug()
: <a class="el" href="debug_8h.html#af65a73617b71476020a005b20bf02726">debug.h</a>
</li>
<li>mc_set_syslog()
: <a class="el" href="debug_8h.html#aadb888da410116384e75a00db30da705">debug.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
<li>printbuf_free()
: <a class="el" href="printbuf_8h.html#ab525221c767ac65c58ddeea8a655a4e8">printbuf.h</a>
</li>
<li>printbuf_memappend()
: <a class="el" href="printbuf_8h.html#a22f09779a19db59a83e7cb8c2ce4c75f">printbuf.h</a>
</li>
<li>printbuf_memset()
: <a class="el" href="printbuf_8h.html#ad7fc6ec4c296e85abf404244614cded5">printbuf.h</a>
</li>
<li>printbuf_new()
: <a class="el" href="printbuf_8h.html#a3e390ebc7660a18335edd89f640fd415">printbuf.h</a>
</li>
<li>printbuf_reset()
: <a class="el" href="printbuf_8h.html#a4393ee3dedb376af11c96fe97532292e">printbuf.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
<li>sprintbuf()
: <a class="el" href="printbuf_8h.html#adf6214db6c8ce994c7f7f1180863c8a4">printbuf.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

95
doc/html/globals_h.html Normal file
View File

@@ -0,0 +1,95 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="globals.html#index__"><span>_</span></a></li>
<li><a href="globals_a.html#index_a"><span>a</span></a></li>
<li><a href="globals_e.html#index_e"><span>e</span></a></li>
<li><a href="globals_f.html#index_f"><span>f</span></a></li>
<li class="current"><a href="globals_h.html#index_h"><span>h</span></a></li>
<li><a href="globals_i.html#index_i"><span>i</span></a></li>
<li><a href="globals_j.html#index_j"><span>j</span></a></li>
<li><a href="globals_l.html#index_l"><span>l</span></a></li>
<li><a href="globals_m.html#index_m"><span>m</span></a></li>
<li><a href="globals_n.html#index_n"><span>n</span></a></li>
<li><a href="globals_p.html#index_p"><span>p</span></a></li>
<li><a href="globals_s.html#index_s"><span>s</span></a></li>
<li><a href="globals_t.html#index_t"><span>t</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
<li>HAVE_DECL_INFINITY
: <a class="el" href="math__compat_8h.html#a77914bc4c960d1bfda49328bd0646985">math_compat.h</a>
</li>
<li>HAVE_DECL_NAN
: <a class="el" href="math__compat_8h.html#a9025492cba029d3e372532a1d012f119">math_compat.h</a>
</li>
<li>hexdigit
: <a class="el" href="bits_8h.html#a1cf38b22d3a118ad48d9282c32c048aa">bits.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

92
doc/html/globals_i.html Normal file
View File

@@ -0,0 +1,92 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="globals.html#index__"><span>_</span></a></li>
<li><a href="globals_a.html#index_a"><span>a</span></a></li>
<li><a href="globals_e.html#index_e"><span>e</span></a></li>
<li><a href="globals_f.html#index_f"><span>f</span></a></li>
<li><a href="globals_h.html#index_h"><span>h</span></a></li>
<li class="current"><a href="globals_i.html#index_i"><span>i</span></a></li>
<li><a href="globals_j.html#index_j"><span>j</span></a></li>
<li><a href="globals_l.html#index_l"><span>l</span></a></li>
<li><a href="globals_m.html#index_m"><span>m</span></a></li>
<li><a href="globals_n.html#index_n"><span>n</span></a></li>
<li><a href="globals_p.html#index_p"><span>p</span></a></li>
<li><a href="globals_s.html#index_s"><span>s</span></a></li>
<li><a href="globals_t.html#index_t"><span>t</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
<li>INFINITY
: <a class="el" href="math__compat_8h.html#a956e2723d559858d08644ac99146e910">math_compat.h</a>
</li>
<li>is_error
: <a class="el" href="bits_8h.html#a4a887e5fb7cde221bcab9c6f39d93fc1">bits.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

638
doc/html/globals_j.html Normal file
View File

@@ -0,0 +1,638 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="globals.html#index__"><span>_</span></a></li>
<li><a href="globals_a.html#index_a"><span>a</span></a></li>
<li><a href="globals_e.html#index_e"><span>e</span></a></li>
<li><a href="globals_f.html#index_f"><span>f</span></a></li>
<li><a href="globals_h.html#index_h"><span>h</span></a></li>
<li><a href="globals_i.html#index_i"><span>i</span></a></li>
<li class="current"><a href="globals_j.html#index_j"><span>j</span></a></li>
<li><a href="globals_l.html#index_l"><span>l</span></a></li>
<li><a href="globals_m.html#index_m"><span>m</span></a></li>
<li><a href="globals_n.html#index_n"><span>n</span></a></li>
<li><a href="globals_p.html#index_p"><span>p</span></a></li>
<li><a href="globals_s.html#index_s"><span>s</span></a></li>
<li><a href="globals_t.html#index_t"><span>t</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
<h3><a class="anchor" id="index_j"></a>- j -</h3><ul>
<li>JASSERT
: <a class="el" href="debug_8h.html#a8ca29550d5b1b73948f4a7bce53f2385">debug.h</a>
</li>
<li>json_bool
: <a class="el" href="json__object_8h.html#a81f02022906fafc71eb9197049f07f73">json_object.h</a>
</li>
<li>JSON_C_CONST_FUNCTION()
: <a class="el" href="json__object_8h.html#a922b2d76c73da57174beec82d471743b">json_object.h</a>
</li>
<li>json_c_get_random_seed()
: <a class="el" href="random__seed_8h.html#ae190c6819d7687e110d6ec59a16d006f">random_seed.h</a>
</li>
<li>JSON_C_MAJOR_VERSION
: <a class="el" href="json__c__version_8h.html#a251c3e1f59a379a4a905382b4e855125">json_c_version.h</a>
</li>
<li>JSON_C_MICRO_VERSION
: <a class="el" href="json__c__version_8h.html#a64457730097067ab096906d82e4a51a6">json_c_version.h</a>
</li>
<li>JSON_C_MINOR_VERSION
: <a class="el" href="json__c__version_8h.html#adc87477fbc1c75848fe6b6feec21c2d6">json_c_version.h</a>
</li>
<li>JSON_C_OBJECT_ADD_KEY_IS_NEW
: <a class="el" href="json__object_8h.html#a8cd01c484155ac99043a35b7c85ae411">json_object.h</a>
</li>
<li>JSON_C_OBJECT_KEY_IS_CONSTANT
: <a class="el" href="json__object_8h.html#a134ffafc6116799a20134dc7646b5a37">json_object.h</a>
</li>
<li>JSON_C_OPTION_GLOBAL
: <a class="el" href="json__object_8h.html#a45837b8c6564f9e605f8a2bc76243750">json_object.h</a>
</li>
<li>JSON_C_OPTION_THREAD
: <a class="el" href="json__object_8h.html#a50d1490598fe476d7a53e204e02cdc9d">json_object.h</a>
</li>
<li>json_c_set_serialization_double_format()
: <a class="el" href="json__object_8h.html#a865a9a3f897eb64a0354c21b972e8187">json_object.h</a>
</li>
<li>json_c_shallow_copy_default
: <a class="el" href="json__object_8h.html#ad79dbd850536be7f59714b52bbd7ec30">json_object.h</a>
</li>
<li>json_c_shallow_copy_fn
: <a class="el" href="json__object_8h.html#af4562514916f62ea56adf752ada10b52">json_object.h</a>
</li>
<li>JSON_C_STR_HASH_DFLT
: <a class="el" href="linkhash_8h.html#ac32e80138c5be6dd9b0483a9cbcc8799">linkhash.h</a>
</li>
<li>JSON_C_STR_HASH_PERLLIKE
: <a class="el" href="linkhash_8h.html#a62316f34fd42941b97a8e9a6b6e68faa">linkhash.h</a>
</li>
<li>JSON_C_TO_STRING_NOSLASHESCAPE
: <a class="el" href="json__object_8h.html#a5c11d72c55f3ab7c088f19e7bf118163">json_object.h</a>
</li>
<li>JSON_C_TO_STRING_NOZERO
: <a class="el" href="json__object_8h.html#a34f027c147babf69fc530d088f2b49b0">json_object.h</a>
</li>
<li>JSON_C_TO_STRING_PLAIN
: <a class="el" href="json__object_8h.html#a3294cb92765cdeb497cfd346644d1059">json_object.h</a>
</li>
<li>JSON_C_TO_STRING_PRETTY
: <a class="el" href="json__object_8h.html#a2025bc677c35f130e117dfda5bf1ef73">json_object.h</a>
</li>
<li>JSON_C_TO_STRING_PRETTY_TAB
: <a class="el" href="json__object_8h.html#afc1486af21f6b1653c6f523025bdfd3b">json_object.h</a>
</li>
<li>JSON_C_TO_STRING_SPACED
: <a class="el" href="json__object_8h.html#aa821746c8668e6ad62bed90ec9e00103">json_object.h</a>
</li>
<li>JSON_C_VERSION
: <a class="el" href="json__c__version_8h.html#a894adda66a072bc3fd34ebe91a5aa7f4">json_c_version.h</a>
</li>
<li>json_c_version()
: <a class="el" href="json__c__version_8h.html#a536b398f292b0669fc824a8486131a27">json_c_version.h</a>
</li>
<li>JSON_C_VERSION_NUM
: <a class="el" href="json__c__version_8h.html#a78e176eee75ee6aed43c4d65ca4c5b44">json_c_version.h</a>
</li>
<li>json_c_version_num()
: <a class="el" href="json__c__version_8h.html#a114bcfed9594f3cd662e43454000938d">json_c_version.h</a>
</li>
<li>json_c_visit()
: <a class="el" href="json__visit_8h.html#ac13d0e2e7bf34cd1be6eee3f0f112045">json_visit.h</a>
</li>
<li>JSON_C_VISIT_RETURN_CONTINUE
: <a class="el" href="json__visit_8h.html#a98b35e1ba1d52d41799dccbfd2c170a1">json_visit.h</a>
</li>
<li>JSON_C_VISIT_RETURN_ERROR
: <a class="el" href="json__visit_8h.html#abfacb0713b81c897a8ce5f37ff6ffb9c">json_visit.h</a>
</li>
<li>JSON_C_VISIT_RETURN_POP
: <a class="el" href="json__visit_8h.html#a327a21f1f1c6f84e7a13fbaaf4a51b13">json_visit.h</a>
</li>
<li>JSON_C_VISIT_RETURN_SKIP
: <a class="el" href="json__visit_8h.html#adc7ca60a79c4ae870d9463e41527c2a1">json_visit.h</a>
</li>
<li>JSON_C_VISIT_RETURN_STOP
: <a class="el" href="json__visit_8h.html#a5956f41bed48f90a127f9b37fad7ea97">json_visit.h</a>
</li>
<li>JSON_C_VISIT_SECOND
: <a class="el" href="json__visit_8h.html#ac5be4a96b99b724833943003715dfc1c">json_visit.h</a>
</li>
<li>json_c_visit_userfunc
: <a class="el" href="json__visit_8h.html#a0fadec4abb2befcacfaff7df822f3f8d">json_visit.h</a>
</li>
<li>JSON_EXPORT
: <a class="el" href="json__object_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">json_object.h</a>
</li>
<li>JSON_FILE_BUF_SIZE
: <a class="el" href="json__util_8h.html#a084b6afc8f7fbef88976aabe4aca7efd">json_util.h</a>
</li>
<li>json_global_set_string_hash()
: <a class="el" href="linkhash_8h.html#ac8e1d61af44d9c0824d8c7980385bcd3">linkhash.h</a>
</li>
<li>json_hex_chars
: <a class="el" href="json__object__private_8h.html#a20dbe4913551cefa6b4b0a77fd4397c4">json_object_private.h</a>
</li>
<li>json_max
: <a class="el" href="json__util_8h.html#a57d63d199d4b9ea40359253618951300">json_util.h</a>
</li>
<li>json_min
: <a class="el" href="json__util_8h.html#a3dde282dc23d0eaa3c4840df8dc262d4">json_util.h</a>
</li>
<li>json_number_chars
: <a class="el" href="json__object__private_8h.html#a27427f89f2fc995639e366635fbe58ac">json_object_private.h</a>
</li>
<li>json_object
: <a class="el" href="json__object_8h.html#af27907ced0f5a43409ad96430fe0f914">json_object.h</a>
</li>
<li>json_object_array_add()
: <a class="el" href="json__object_8h.html#a18cdd9a7455e09f36cdf6e5756b7f586">json_object.h</a>
</li>
<li>json_object_array_bsearch()
: <a class="el" href="json__object_8h.html#aed353084ed3ad84e7b7575afbe7e719d">json_object.h</a>
</li>
<li>json_object_array_del_idx()
: <a class="el" href="json__object_8h.html#a722eca9f578704d3af38b97549242c1f">json_object.h</a>
</li>
<li>json_object_array_get_idx()
: <a class="el" href="json__object_8h.html#a676711a76545d4ec65cc75f100f5fd19">json_object.h</a>
</li>
<li>json_object_array_length()
: <a class="el" href="json__object_8h.html#ab9ea8f9c72d5adf83fdcbfe69f97fa44">json_object.h</a>
</li>
<li>json_object_array_put_idx()
: <a class="el" href="json__object_8h.html#a1ac0ccdbc13a25da7d8b2dc9e421dfad">json_object.h</a>
</li>
<li>json_object_array_sort()
: <a class="el" href="json__object_8h.html#a5584e2f2051cd1faa7fafd07ba888fd1">json_object.h</a>
</li>
<li>json_object_deep_copy()
: <a class="el" href="json__object_8h.html#aaac16505f13bc56accfad82604d8bcdc">json_object.h</a>
</li>
<li>JSON_OBJECT_DEF_HASH_ENTRIES
: <a class="el" href="json__object_8h.html#a268a63dd1b2e6d81559e268a4529e9bf">json_object.h</a>
</li>
<li>json_object_delete_fn
: <a class="el" href="json__object_8h.html#aa647d7c567a06abe1a1a511f6d6860e4">json_object.h</a>
</li>
<li>json_object_double_to_json_string()
: <a class="el" href="json__object_8h.html#ada262c62364e3819b6a64b1e3a632336">json_object.h</a>
</li>
<li>json_object_equal()
: <a class="el" href="json__object_8h.html#a5a1d4640525e0217059868e312f20579">json_object.h</a>
</li>
<li>json_object_free_userdata
: <a class="el" href="json__object_8h.html#adda8476609cc566ee62b80eaed310283">json_object.h</a>
</li>
<li>json_object_from_fd()
: <a class="el" href="json__util_8h.html#a62ba7e0f43eb72c418654acf4e263aa6">json_util.h</a>
</li>
<li>json_object_from_file()
: <a class="el" href="json__util_8h.html#a8fa0bba6b7ddb149a2159d99bae709ce">json_util.h</a>
</li>
<li>json_object_get()
: <a class="el" href="json__object_8h.html#a675aa3a9cced685dbfd1c1a770a0c3e4">json_object.h</a>
</li>
<li>json_object_get_array()
: <a class="el" href="json__object_8h.html#a23d20e3f886c1638a7116be66b7b5ec2">json_object.h</a>
</li>
<li>json_object_get_boolean()
: <a class="el" href="json__object_8h.html#ac003fb99db7ecd674bb16d983d2f92ee">json_object.h</a>
</li>
<li>json_object_get_double()
: <a class="el" href="json__object_8h.html#a94a70cff6a14398b581b7b10b0792c5b">json_object.h</a>
</li>
<li>json_object_get_int()
: <a class="el" href="json__object_8h.html#a8c56dc58a02f92cd6789ba5dcb9fe7b1">json_object.h</a>
</li>
<li>json_object_get_int64()
: <a class="el" href="json__object_8h.html#a1a14750b3af4df18ec8dc93b090a8e8a">json_object.h</a>
</li>
<li>json_object_get_object()
: <a class="el" href="json__object_8h.html#a2caa52ae1863bd073444f3737138a4db">json_object.h</a>
</li>
<li>json_object_get_string()
: <a class="el" href="json__object_8h.html#a9ee29ca8d79896e15007131527f6002e">json_object.h</a>
</li>
<li>json_object_get_string_len()
: <a class="el" href="json__object_8h.html#ac1d1f95a27a5e5d93bb66a8adfc1a2f4">json_object.h</a>
</li>
<li>json_object_get_type()
: <a class="el" href="json__object_8h.html#af256a3a7910e271a2b9735e5044c3827">json_object.h</a>
</li>
<li>json_object_get_userdata()
: <a class="el" href="json__object_8h.html#ae925f3ec0f61cba5ea3dd50e0315f194">json_object.h</a>
</li>
<li>json_object_int_inc()
: <a class="el" href="json__object_8h.html#a25691322b2d1ab24a3797e5752eb659f">json_object.h</a>
</li>
<li>json_object_is_type()
: <a class="el" href="json__object_8h.html#a8ab506a3d8f4ba5eb6a12ce0a6bbd37b">json_object.h</a>
</li>
<li>json_object_iter
: <a class="el" href="json__object_8h.html#af88126730e765f2068968f4b16fd074f">json_object.h</a>
</li>
<li>json_object_iter_begin()
: <a class="el" href="json__object__iterator_8h.html#a925eb97b5aa5b64986a0f663f53cf0fa">json_object_iterator.h</a>
</li>
<li>json_object_iter_end()
: <a class="el" href="json__object__iterator_8h.html#a1fa3784395fb14496e3f1a1633028fd4">json_object_iterator.h</a>
</li>
<li>json_object_iter_equal()
: <a class="el" href="json__object__iterator_8h.html#a878ca25f72b339882aa2607ac938e79c">json_object_iterator.h</a>
</li>
<li>json_object_iter_init_default()
: <a class="el" href="json__object__iterator_8h.html#af30f56ca510d59da42e5592f9a436c10">json_object_iterator.h</a>
</li>
<li>json_object_iter_next()
: <a class="el" href="json__object__iterator_8h.html#aa98a310c340f6d9b4eeecb673aa5e240">json_object_iterator.h</a>
</li>
<li>json_object_iter_peek_name()
: <a class="el" href="json__object__iterator_8h.html#af17775b9b812a4206a84e4d3fb5774ab">json_object_iterator.h</a>
</li>
<li>json_object_iter_peek_value()
: <a class="el" href="json__object__iterator_8h.html#a47b0af7f1722c10475dffd29efc0b89d">json_object_iterator.h</a>
</li>
<li>json_object_new_array()
: <a class="el" href="json__object_8h.html#a84f7f8c0774c4600d958561d7548d649">json_object.h</a>
</li>
<li>json_object_new_boolean()
: <a class="el" href="json__object_8h.html#a2e290acd80e72cca745f89fb4600fb78">json_object.h</a>
</li>
<li>json_object_new_double()
: <a class="el" href="json__object_8h.html#a594a093bafb9091f843da3197e0638aa">json_object.h</a>
</li>
<li>json_object_new_double_s()
: <a class="el" href="json__object_8h.html#ae49671c026fe1ada370a75321e4e65f6">json_object.h</a>
</li>
<li>json_object_new_int()
: <a class="el" href="json__object_8h.html#ae92f0770fb4b3c884ce35de52d3d7de8">json_object.h</a>
</li>
<li>json_object_new_int64()
: <a class="el" href="json__object_8h.html#a7847f74494645c2b076505c37cc4cb93">json_object.h</a>
</li>
<li>json_object_new_object()
: <a class="el" href="json__object_8h.html#a68c383f54544fca19b5f2425be397600">json_object.h</a>
</li>
<li>json_object_new_string()
: <a class="el" href="json__object_8h.html#a7b7b5302b3903c9347eeb1f4a64d657b">json_object.h</a>
</li>
<li>json_object_new_string_len()
: <a class="el" href="json__object_8h.html#a190e9bea8c39b257af69d392dd2ddffb">json_object.h</a>
</li>
<li>json_object_object_add()
: <a class="el" href="json__object_8h.html#a27bd808a022251059a43f1f6370441cd">json_object.h</a>
</li>
<li>json_object_object_add_ex()
: <a class="el" href="json__object_8h.html#a57d3e444dd7db6b4510d21bf3716a002">json_object.h</a>
</li>
<li>json_object_object_del()
: <a class="el" href="json__object_8h.html#ac6605fdafca20bd5d33c84f4f80a3bda">json_object.h</a>
</li>
<li>json_object_object_foreach
: <a class="el" href="json__object_8h.html#acf5f514a9e0061c10fc08055762639ee">json_object.h</a>
</li>
<li>json_object_object_foreachC
: <a class="el" href="json__object_8h.html#a71f07006c12d78f7bbf4cb716a5af3a6">json_object.h</a>
</li>
<li>json_object_object_get()
: <a class="el" href="json__object_8h.html#a1a097805abb53b4c8a60d573730a8939">json_object.h</a>
</li>
<li>json_object_object_get_ex()
: <a class="el" href="json__object_8h.html#a90d5f16d58636f01d2ed1a6030c7366a">json_object.h</a>
</li>
<li>json_object_object_length()
: <a class="el" href="json__object_8h.html#ad59a0ad2ec914a5eef90af53acae06d9">json_object.h</a>
</li>
<li>json_object_private_delete_fn
: <a class="el" href="json__object__private_8h.html#aa125a0d39945a73a7d52b9823a2ef741">json_object_private.h</a>
</li>
<li>json_object_put()
: <a class="el" href="json__object_8h.html#afabf61f932cd64a4122ca8092452eed5">json_object.h</a>
</li>
<li>json_object_set_boolean()
: <a class="el" href="json__object_8h.html#a23863c1503f3a8dd8a460a6405da0a65">json_object.h</a>
</li>
<li>json_object_set_double()
: <a class="el" href="json__object_8h.html#a3a7b7ce585565558cb69dad8d45d7757">json_object.h</a>
</li>
<li>json_object_set_int()
: <a class="el" href="json__object_8h.html#a4ab3568f12e01fd2967e765a72456caa">json_object.h</a>
</li>
<li>json_object_set_int64()
: <a class="el" href="json__object_8h.html#a7d3948600dde732abed0e261264ef53a">json_object.h</a>
</li>
<li>json_object_set_serializer()
: <a class="el" href="json__object_8h.html#a889345512a214b8f78f6a73561523c7c">json_object.h</a>
</li>
<li>json_object_set_string()
: <a class="el" href="json__object_8h.html#ac35013e51cdc0651512801c947df431c">json_object.h</a>
</li>
<li>json_object_set_string_len()
: <a class="el" href="json__object_8h.html#ae48707a0c8689e14aaa3a9b831db27fc">json_object.h</a>
</li>
<li>json_object_set_userdata()
: <a class="el" href="json__object_8h.html#a4ee4281ccd123c62878e931a0a3bc43b">json_object.h</a>
</li>
<li>json_object_to_fd()
: <a class="el" href="json__util_8h.html#adc52c3b220effc880270f095cd748433">json_util.h</a>
</li>
<li>json_object_to_file()
: <a class="el" href="json__util_8h.html#abbd121df84ec3878a5cb8fefaff12ec7">json_util.h</a>
</li>
<li>json_object_to_file_ext()
: <a class="el" href="json__util_8h.html#a4e980954930951bf790c1ec3ba68fb76">json_util.h</a>
</li>
<li>json_object_to_json_string()
: <a class="el" href="json__object_8h.html#ab7390c22baa1700d977c2af6b22d43a4">json_object.h</a>
</li>
<li>json_object_to_json_string_ext()
: <a class="el" href="json__object_8h.html#a9db613127bd4ef7db42307e43a85fc1b">json_object.h</a>
</li>
<li>json_object_to_json_string_fn
: <a class="el" href="json__object_8h.html#af84078100a9025df418f31626ea866fa">json_object.h</a>
</li>
<li>json_object_to_json_string_length()
: <a class="el" href="json__object_8h.html#add3770a3ba3d01a8f9adedfcd6bd8dbb">json_object.h</a>
</li>
<li>json_object_userdata_to_json_string
: <a class="el" href="json__object_8h.html#a8bc341281f4dd60b53b03b2dec0fae28">json_object.h</a>
</li>
<li>json_parse_double()
: <a class="el" href="json__util_8h.html#a6b5790c15178b6ea97841fc5868b1e1a">json_util.h</a>
</li>
<li>json_parse_int64()
: <a class="el" href="json__util_8h.html#a9bb9882ef2859ca2c1ee17805679bc25">json_util.h</a>
</li>
<li>json_pointer_get()
: <a class="el" href="json__pointer_8h.html#abf47f34be3386a5eb510604f05ae9491">json_pointer.h</a>
</li>
<li>json_pointer_getf()
: <a class="el" href="json__pointer_8h.html#ae7eb2cab2f6f50c51053430223a01438">json_pointer.h</a>
</li>
<li>json_pointer_set()
: <a class="el" href="json__pointer_8h.html#ab06a9fd172593748b2dc8d3a11c74fa0">json_pointer.h</a>
</li>
<li>json_pointer_setf()
: <a class="el" href="json__pointer_8h.html#a74edfbe357c7428b1a20ae73e3910ac0">json_pointer.h</a>
</li>
<li>json_tokener
: <a class="el" href="json__tokener_8h.html#a4dd5e5b65aee7f376f529f86b210ff49">json_tokener.h</a>
</li>
<li>json_tokener_continue
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a9b26e920ca765df91c84e999561d8fb0">json_tokener.h</a>
</li>
<li>JSON_TOKENER_DEFAULT_DEPTH
: <a class="el" href="json__tokener_8h.html#a5ccd346459feb66e4e0af32005360279">json_tokener.h</a>
</li>
<li>json_tokener_error
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener.h</a>
</li>
<li>json_tokener_error_depth
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a59b2c36d9cc30c3038e09b9ddee6c86c">json_tokener.h</a>
</li>
<li>json_tokener_error_desc()
: <a class="el" href="json__tokener_8h.html#a04c5625212aed3216cc303429e47f642">json_tokener.h</a>
</li>
<li>json_tokener_error_parse_array
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a574846740b785146f164a209dc89574e">json_tokener.h</a>
</li>
<li>json_tokener_error_parse_boolean
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59addbdfe084e20709da3d20c8ae8ca278c">json_tokener.h</a>
</li>
<li>json_tokener_error_parse_comment
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a3588c05b1da8b909a8cbdef66b0a1a28">json_tokener.h</a>
</li>
<li>json_tokener_error_parse_eof
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a8f774f4c7869afdd9b92295fca3a9ded">json_tokener.h</a>
</li>
<li>json_tokener_error_parse_null
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a641bbb8d881fdd1e463f20a1a203b77c">json_tokener.h</a>
</li>
<li>json_tokener_error_parse_number
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59ab1b3ad685eb97235d269cc5b9eb7ab81">json_tokener.h</a>
</li>
<li>json_tokener_error_parse_object_key_name
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a2003bd8e96c6680cd22419c5ceafd4c0">json_tokener.h</a>
</li>
<li>json_tokener_error_parse_object_key_sep
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59af91a2a819b0d6344d6d4e1d2579f28fd">json_tokener.h</a>
</li>
<li>json_tokener_error_parse_object_value_sep
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a9ddb98741aebf7ac44735b4a43717013">json_tokener.h</a>
</li>
<li>json_tokener_error_parse_string
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a033ce89ce7b8f9e591e4bea92121c4c7">json_tokener.h</a>
</li>
<li>json_tokener_error_parse_unexpected
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a3309fa8ea4ab3ee0a81c55b69d223710">json_tokener.h</a>
</li>
<li>json_tokener_error_size
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a1eeed74de65c0c12c9f9c28cf4f3ff1d">json_tokener.h</a>
</li>
<li>json_tokener_free()
: <a class="el" href="json__tokener_8h.html#a887c4661906fc6b36cc366304e522534">json_tokener.h</a>
</li>
<li>json_tokener_get_error()
: <a class="el" href="json__tokener_8h.html#af5d7ffd95a0f6e5d5bb5994d233b4197">json_tokener.h</a>
</li>
<li>json_tokener_new()
: <a class="el" href="json__tokener_8h.html#a5ac7e2c350bc592cf2fa7b9935b00ef5">json_tokener.h</a>
</li>
<li>json_tokener_new_ex()
: <a class="el" href="json__tokener_8h.html#a6a1583ddd434e13515d6232de813462e">json_tokener.h</a>
</li>
<li>json_tokener_parse()
: <a class="el" href="json__tokener_8h.html#a236ef64d079822a4411d13eae7190c4d">json_tokener.h</a>
</li>
<li>json_tokener_parse_ex()
: <a class="el" href="json__tokener_8h.html#a61679f178111963a9ffa3c8179553f7a">json_tokener.h</a>
</li>
<li>json_tokener_parse_verbose()
: <a class="el" href="json__tokener_8h.html#a735f2dc755d57ed5c5b807aaaaef3b14">json_tokener.h</a>
</li>
<li>json_tokener_reset()
: <a class="el" href="json__tokener_8h.html#a238649a59737be5152d525aeaf4153ab">json_tokener.h</a>
</li>
<li>json_tokener_set_flags()
: <a class="el" href="json__tokener_8h.html#a7e7a0c0c9dc79e5e47b2608bb8aad7b7">json_tokener.h</a>
</li>
<li>json_tokener_state
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2">json_tokener.h</a>
</li>
<li>json_tokener_state_array
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ab3d763300f1914865be09d603ddc11f4">json_tokener.h</a>
</li>
<li>json_tokener_state_array_add
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2aa2a01798ebe318ea91c38a886418f771">json_tokener.h</a>
</li>
<li>json_tokener_state_array_after_sep
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ab1a0ad626ec662c1ba4fb5bfee1cd0a9">json_tokener.h</a>
</li>
<li>json_tokener_state_array_sep
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a4ec7762aeab3424cbb14354c94025865">json_tokener.h</a>
</li>
<li>json_tokener_state_boolean
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a3525b15ecd0a698281b3914115b6bd3e">json_tokener.h</a>
</li>
<li>json_tokener_state_comment
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a8c2680b8873a8dce85f0b1ac25882dc9">json_tokener.h</a>
</li>
<li>json_tokener_state_comment_end
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a62cef297a37a98b1239ea4bbd39723e1">json_tokener.h</a>
</li>
<li>json_tokener_state_comment_eol
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ad8151350b1ef50298bafbab244ac1162">json_tokener.h</a>
</li>
<li>json_tokener_state_comment_start
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a0ff1d1935d49188aa1e6b998d43e655c">json_tokener.h</a>
</li>
<li>json_tokener_state_eatws
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a9db152607ec1872a000f1fcd8757297d">json_tokener.h</a>
</li>
<li>json_tokener_state_escape_unicode
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a6c852da2e694be56799c58c201d6dca0">json_tokener.h</a>
</li>
<li>json_tokener_state_finish
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ad80b689cb709967b67a348de3d8601d2">json_tokener.h</a>
</li>
<li>json_tokener_state_inf
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ab9f6244bfca4924db61ed3050c780b53">json_tokener.h</a>
</li>
<li>json_tokener_state_null
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a668fb2654c59608945370003403a5792">json_tokener.h</a>
</li>
<li>json_tokener_state_number
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a7ce18d281d322af690b45f3b8b599e81">json_tokener.h</a>
</li>
<li>json_tokener_state_object_field
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a77375940a10806e81d99876d13be67fc">json_tokener.h</a>
</li>
<li>json_tokener_state_object_field_end
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a0220aea1d9204aadfffde92c7f73f5f7">json_tokener.h</a>
</li>
<li>json_tokener_state_object_field_start
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a8c7dbda177a5d83a36a64f7cb99b9a29">json_tokener.h</a>
</li>
<li>json_tokener_state_object_field_start_after_sep
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a3a2c9cf26d076936a10a6ae3ca4eb523">json_tokener.h</a>
</li>
<li>json_tokener_state_object_sep
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2adaf3e06c5fc04fd4f04040cd67698215">json_tokener.h</a>
</li>
<li>json_tokener_state_object_value
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a4c7b7deac37355491572f6da84f208aa">json_tokener.h</a>
</li>
<li>json_tokener_state_object_value_add
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ade6bee72f2147e634b19eb84e58eb162">json_tokener.h</a>
</li>
<li>json_tokener_state_start
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a7c4c0bed1ebde45f5a99de4278792d72">json_tokener.h</a>
</li>
<li>json_tokener_state_string
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2aa90ea4c327a285bfbbce49d42d491d65">json_tokener.h</a>
</li>
<li>json_tokener_state_string_escape
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a1cf793d73587f68c4f2b3b4f65ff728e">json_tokener.h</a>
</li>
<li>JSON_TOKENER_STRICT
: <a class="el" href="json__tokener_8h.html#a72be595cb7e090c70b1d29feb1cbfb16">json_tokener.h</a>
</li>
<li>json_tokener_success
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59afe2fa9bde03155019b2df30f66a5fcd0">json_tokener.h</a>
</li>
<li>json_type
: <a class="el" href="json__object_8h.html#aba5eff84f8638d22f50403175f270c96">json_object.h</a>
</li>
<li>json_type_array
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06cae536c8c9da4648e6b9348abddde6113c">json_object.h</a>
</li>
<li>json_type_boolean
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06ca5d15299e90dbb9935ff6d3e2c22a285c">json_object.h</a>
</li>
<li>json_type_double
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06cac6ac2d9a16577d00210fea64d16b47cd">json_object.h</a>
</li>
<li>json_type_int
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06ca7bf325c213b43c5f970ae2d4443ab956">json_object.h</a>
</li>
<li>json_type_null
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06ca127e62d156e13517471fcde3378979c1">json_object.h</a>
</li>
<li>json_type_object
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06cac966c8008f0b2c07da59ee8a60ad440f">json_object.h</a>
</li>
<li>json_type_string
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06cac9f56e57c09245522d764015a054faa6">json_object.h</a>
</li>
<li>json_type_to_name()
: <a class="el" href="json__util_8h.html#a74031a1b948dc9fed3f367ea6ce78389">json_util.h</a>
</li>
<li>json_util_get_last_err()
: <a class="el" href="json__util_8h.html#a811b1a5a7544337811a44c26fbe88761">json_util.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

170
doc/html/globals_l.html Normal file
View File

@@ -0,0 +1,170 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="globals.html#index__"><span>_</span></a></li>
<li><a href="globals_a.html#index_a"><span>a</span></a></li>
<li><a href="globals_e.html#index_e"><span>e</span></a></li>
<li><a href="globals_f.html#index_f"><span>f</span></a></li>
<li><a href="globals_h.html#index_h"><span>h</span></a></li>
<li><a href="globals_i.html#index_i"><span>i</span></a></li>
<li><a href="globals_j.html#index_j"><span>j</span></a></li>
<li class="current"><a href="globals_l.html#index_l"><span>l</span></a></li>
<li><a href="globals_m.html#index_m"><span>m</span></a></li>
<li><a href="globals_n.html#index_n"><span>n</span></a></li>
<li><a href="globals_p.html#index_p"><span>p</span></a></li>
<li><a href="globals_s.html#index_s"><span>s</span></a></li>
<li><a href="globals_t.html#index_t"><span>t</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
<li>LEN_DIRECT_STRING_DATA
: <a class="el" href="json__object__private_8h.html#a227adaf0073e17006f614190d414fa1a">json_object_private.h</a>
</li>
<li>lh_abort()
: <a class="el" href="linkhash_8h.html#a1294160fa0e80cee04cd745a401f43a4">linkhash.h</a>
</li>
<li>LH_EMPTY
: <a class="el" href="linkhash_8h.html#a93fad7f8ae44575dc89c9567859972d2">linkhash.h</a>
</li>
<li>lh_entry_free_fn
: <a class="el" href="linkhash_8h.html#a671553d0ee3c2a123190ba0f8ed2b635">linkhash.h</a>
</li>
<li>lh_entry_k
: <a class="el" href="linkhash_8h.html#a7579ce28b8366fc9b8656f14270aa3aa">linkhash.h</a>
</li>
<li>lh_entry_v
: <a class="el" href="linkhash_8h.html#a0d4052ccfd8c5d351a9c1d3ba07671b3">linkhash.h</a>
</li>
<li>lh_equal_fn
: <a class="el" href="linkhash_8h.html#a91fd85fc81b0c7c83c62f00e84729091">linkhash.h</a>
</li>
<li>lh_foreach
: <a class="el" href="linkhash_8h.html#ad7dd67da915065dce2c6f44cb03e2d82">linkhash.h</a>
</li>
<li>lh_foreach_safe
: <a class="el" href="linkhash_8h.html#abcbb0df08b4976d0649b826b6bacfca1">linkhash.h</a>
</li>
<li>LH_FREED
: <a class="el" href="linkhash_8h.html#ac69428f2de0a6fb080b6fb373d506aa7">linkhash.h</a>
</li>
<li>lh_hash_fn
: <a class="el" href="linkhash_8h.html#a38bae27995dcfb6ee3fb109a9be229b2">linkhash.h</a>
</li>
<li>lh_kchar_table_new()
: <a class="el" href="linkhash_8h.html#a6bf630754affe92612639542a6c49c3f">linkhash.h</a>
</li>
<li>lh_kptr_table_new()
: <a class="el" href="linkhash_8h.html#af8108563b961dbf5471fe2c0e51f40a5">linkhash.h</a>
</li>
<li>LH_LOAD_FACTOR
: <a class="el" href="linkhash_8h.html#a66b61772c29d85eb52b697e0b0dc0aaf">linkhash.h</a>
</li>
<li>LH_PRIME
: <a class="el" href="linkhash_8h.html#a032f1bd115df254dda325437203ce5fb">linkhash.h</a>
</li>
<li>lh_table
: <a class="el" href="linkhash_8h.html#a766e90057496fc6712d6be0da180a21f">linkhash.h</a>
</li>
<li>lh_table_delete()
: <a class="el" href="linkhash_8h.html#a2fed2c78f70d229edb2d00775ffe593c">linkhash.h</a>
</li>
<li>lh_table_delete_entry()
: <a class="el" href="linkhash_8h.html#ae5885a71c3457190fb1dc2d6e20dde3b">linkhash.h</a>
</li>
<li>lh_table_free()
: <a class="el" href="linkhash_8h.html#a81653acf740cf8c9fe672e6cd16df0cf">linkhash.h</a>
</li>
<li>lh_table_insert()
: <a class="el" href="linkhash_8h.html#a86c0cd547be1e2c2486a73bd58e1352c">linkhash.h</a>
</li>
<li>lh_table_insert_w_hash()
: <a class="el" href="linkhash_8h.html#a4558a9347a422e03a15b0b7a29b82dc3">linkhash.h</a>
</li>
<li>lh_table_length()
: <a class="el" href="linkhash_8h.html#ac9ba631c91fe80fb905f04c7cd526f2b">linkhash.h</a>
</li>
<li>lh_table_lookup()
: <a class="el" href="linkhash_8h.html#a49c27f18a174eaf126d1b7953df13cb1">linkhash.h</a>
</li>
<li>lh_table_lookup_entry()
: <a class="el" href="linkhash_8h.html#ad3b6ca2d967a6c3021ee6c39e014a918">linkhash.h</a>
</li>
<li>lh_table_lookup_entry_w_hash()
: <a class="el" href="linkhash_8h.html#a59ecaf34ef59280952f4459b2de63677">linkhash.h</a>
</li>
<li>lh_table_lookup_ex()
: <a class="el" href="linkhash_8h.html#a81c270bb0dd9d5c8a3e7ae20bc4d67f3">linkhash.h</a>
</li>
<li>lh_table_new()
: <a class="el" href="linkhash_8h.html#a9c4f8a71dbe4d3390d9f7adb331beb0e">linkhash.h</a>
</li>
<li>lh_table_resize()
: <a class="el" href="linkhash_8h.html#a30c8414e31aeee7669acc938116d933f">linkhash.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

122
doc/html/globals_m.html Normal file
View File

@@ -0,0 +1,122 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="globals.html#index__"><span>_</span></a></li>
<li><a href="globals_a.html#index_a"><span>a</span></a></li>
<li><a href="globals_e.html#index_e"><span>e</span></a></li>
<li><a href="globals_f.html#index_f"><span>f</span></a></li>
<li><a href="globals_h.html#index_h"><span>h</span></a></li>
<li><a href="globals_i.html#index_i"><span>i</span></a></li>
<li><a href="globals_j.html#index_j"><span>j</span></a></li>
<li><a href="globals_l.html#index_l"><span>l</span></a></li>
<li class="current"><a href="globals_m.html#index_m"><span>m</span></a></li>
<li><a href="globals_n.html#index_n"><span>n</span></a></li>
<li><a href="globals_p.html#index_p"><span>p</span></a></li>
<li><a href="globals_s.html#index_s"><span>s</span></a></li>
<li><a href="globals_t.html#index_t"><span>t</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
<li>mc_debug()
: <a class="el" href="debug_8h.html#a600cf4cbbe19c0c15ca3710210e35aba">debug.h</a>
</li>
<li>MC_DEBUG
: <a class="el" href="debug_8h.html#afda355b35d18bf2e6a2a22d5c8eef42c">debug.h</a>
</li>
<li>MC_ERROR
: <a class="el" href="debug_8h.html#a11ba39cecbe449af5b86fa2f78e9da9d">debug.h</a>
</li>
<li>mc_error()
: <a class="el" href="debug_8h.html#abf22ea3a331c7ff21c23da91a07c7cb2">debug.h</a>
</li>
<li>mc_get_debug()
: <a class="el" href="debug_8h.html#a3b3ab3ae8b438384fb109a2e38646b6e">debug.h</a>
</li>
<li>MC_GET_DEBUG
: <a class="el" href="debug_8h.html#acb272a4b4444b69cd995236f167f90ba">debug.h</a>
</li>
<li>MC_INFO
: <a class="el" href="debug_8h.html#a5ef640ce1e9e61c5f6632aefbbfa0041">debug.h</a>
</li>
<li>mc_info()
: <a class="el" href="debug_8h.html#acbb92996a994e316ff65ed3a026e12a4">debug.h</a>
</li>
<li>mc_set_debug()
: <a class="el" href="debug_8h.html#af65a73617b71476020a005b20bf02726">debug.h</a>
</li>
<li>MC_SET_DEBUG
: <a class="el" href="debug_8h.html#a50f21a239fa040a10ad4cfdb4278b02b">debug.h</a>
</li>
<li>mc_set_syslog()
: <a class="el" href="debug_8h.html#aadb888da410116384e75a00db30da705">debug.h</a>
</li>
<li>MC_SET_SYSLOG
: <a class="el" href="debug_8h.html#acf1e895cb5eb7f334cbe51901e6bb918">debug.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

89
doc/html/globals_n.html Normal file
View File

@@ -0,0 +1,89 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="globals.html#index__"><span>_</span></a></li>
<li><a href="globals_a.html#index_a"><span>a</span></a></li>
<li><a href="globals_e.html#index_e"><span>e</span></a></li>
<li><a href="globals_f.html#index_f"><span>f</span></a></li>
<li><a href="globals_h.html#index_h"><span>h</span></a></li>
<li><a href="globals_i.html#index_i"><span>i</span></a></li>
<li><a href="globals_j.html#index_j"><span>j</span></a></li>
<li><a href="globals_l.html#index_l"><span>l</span></a></li>
<li><a href="globals_m.html#index_m"><span>m</span></a></li>
<li class="current"><a href="globals_n.html#index_n"><span>n</span></a></li>
<li><a href="globals_p.html#index_p"><span>p</span></a></li>
<li><a href="globals_s.html#index_s"><span>s</span></a></li>
<li><a href="globals_t.html#index_t"><span>t</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
<li>NAN
: <a class="el" href="math__compat_8h.html#a8abfcc76130f3f991d124dd22d7e69bc">math_compat.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

116
doc/html/globals_p.html Normal file
View File

@@ -0,0 +1,116 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="globals.html#index__"><span>_</span></a></li>
<li><a href="globals_a.html#index_a"><span>a</span></a></li>
<li><a href="globals_e.html#index_e"><span>e</span></a></li>
<li><a href="globals_f.html#index_f"><span>f</span></a></li>
<li><a href="globals_h.html#index_h"><span>h</span></a></li>
<li><a href="globals_i.html#index_i"><span>i</span></a></li>
<li><a href="globals_j.html#index_j"><span>j</span></a></li>
<li><a href="globals_l.html#index_l"><span>l</span></a></li>
<li><a href="globals_m.html#index_m"><span>m</span></a></li>
<li><a href="globals_n.html#index_n"><span>n</span></a></li>
<li class="current"><a href="globals_p.html#index_p"><span>p</span></a></li>
<li><a href="globals_s.html#index_s"><span>s</span></a></li>
<li><a href="globals_t.html#index_t"><span>t</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
<li>PRId64
: <a class="el" href="json__inttypes_8h.html#ae372e90b62c1e8b51dc5d95bf7f5ba48">json_inttypes.h</a>
</li>
<li>printbuf
: <a class="el" href="printbuf_8h.html#ace274df280df67463ff417b1b3392395">printbuf.h</a>
</li>
<li>printbuf_free()
: <a class="el" href="printbuf_8h.html#ab525221c767ac65c58ddeea8a655a4e8">printbuf.h</a>
</li>
<li>printbuf_length
: <a class="el" href="printbuf_8h.html#acdd84ad88987c0166b7ba0e3f1f8f1bb">printbuf.h</a>
</li>
<li>printbuf_memappend()
: <a class="el" href="printbuf_8h.html#a22f09779a19db59a83e7cb8c2ce4c75f">printbuf.h</a>
</li>
<li>printbuf_memappend_fast
: <a class="el" href="printbuf_8h.html#a6f3a4dc87fab41c37e3eff42f40dc346">printbuf.h</a>
</li>
<li>printbuf_memset()
: <a class="el" href="printbuf_8h.html#ad7fc6ec4c296e85abf404244614cded5">printbuf.h</a>
</li>
<li>printbuf_new()
: <a class="el" href="printbuf_8h.html#a3e390ebc7660a18335edd89f640fd415">printbuf.h</a>
</li>
<li>printbuf_reset()
: <a class="el" href="printbuf_8h.html#a4393ee3dedb376af11c96fe97532292e">printbuf.h</a>
</li>
<li>printbuf_strappend
: <a class="el" href="printbuf_8h.html#a2f30492682f5fbc59a8749b428e0e4ba">printbuf.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

95
doc/html/globals_s.html Normal file
View File

@@ -0,0 +1,95 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="globals.html#index__"><span>_</span></a></li>
<li><a href="globals_a.html#index_a"><span>a</span></a></li>
<li><a href="globals_e.html#index_e"><span>e</span></a></li>
<li><a href="globals_f.html#index_f"><span>f</span></a></li>
<li><a href="globals_h.html#index_h"><span>h</span></a></li>
<li><a href="globals_i.html#index_i"><span>i</span></a></li>
<li><a href="globals_j.html#index_j"><span>j</span></a></li>
<li><a href="globals_l.html#index_l"><span>l</span></a></li>
<li><a href="globals_m.html#index_m"><span>m</span></a></li>
<li><a href="globals_n.html#index_n"><span>n</span></a></li>
<li><a href="globals_p.html#index_p"><span>p</span></a></li>
<li class="current"><a href="globals_s.html#index_s"><span>s</span></a></li>
<li><a href="globals_t.html#index_t"><span>t</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
<li>SCNd64
: <a class="el" href="json__inttypes_8h.html#ae7044b3fb4cc5cde22155d59437c348f">json_inttypes.h</a>
</li>
<li>sprintbuf()
: <a class="el" href="printbuf_8h.html#adf6214db6c8ce994c7f7f1180863c8a4">printbuf.h</a>
</li>
<li>strerror
: <a class="el" href="strerror__override_8h.html#a9dae36435b1668856ec610d6d5238754">strerror_override.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

92
doc/html/globals_t.html Normal file
View File

@@ -0,0 +1,92 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
<div id="navrow4" class="tabs3">
<ul class="tablist">
<li><a href="globals.html#index__"><span>_</span></a></li>
<li><a href="globals_a.html#index_a"><span>a</span></a></li>
<li><a href="globals_e.html#index_e"><span>e</span></a></li>
<li><a href="globals_f.html#index_f"><span>f</span></a></li>
<li><a href="globals_h.html#index_h"><span>h</span></a></li>
<li><a href="globals_i.html#index_i"><span>i</span></a></li>
<li><a href="globals_j.html#index_j"><span>j</span></a></li>
<li><a href="globals_l.html#index_l"><span>l</span></a></li>
<li><a href="globals_m.html#index_m"><span>m</span></a></li>
<li><a href="globals_n.html#index_n"><span>n</span></a></li>
<li><a href="globals_p.html#index_p"><span>p</span></a></li>
<li><a href="globals_s.html#index_s"><span>s</span></a></li>
<li class="current"><a href="globals_t.html#index_t"><span>t</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
<li>THIS_FUNCTION_IS_DEPRECATED
: <a class="el" href="json__object_8h.html#a84fa70b86686ce202058f63905c90078">json_object.h</a>
</li>
<li>TRUE
: <a class="el" href="json__object_8h.html#aa8cecfc5c5c054d2875c03e77b7be15d">json_object.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

118
doc/html/globals_type.html Normal file
View File

@@ -0,0 +1,118 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
&#160;<ul>
<li>array_list
: <a class="el" href="arraylist_8h.html#a6d6d32d8b026ea2025df519b9e90f44a">arraylist.h</a>
</li>
<li>array_list_free_fn
: <a class="el" href="arraylist_8h.html#aad83e4ed3c8ea274e6f18459276d774b">arraylist.h</a>
</li>
<li>json_bool
: <a class="el" href="json__object_8h.html#a81f02022906fafc71eb9197049f07f73">json_object.h</a>
</li>
<li>json_c_shallow_copy_fn
: <a class="el" href="json__object_8h.html#af4562514916f62ea56adf752ada10b52">json_object.h</a>
</li>
<li>json_c_visit_userfunc
: <a class="el" href="json__visit_8h.html#a0fadec4abb2befcacfaff7df822f3f8d">json_visit.h</a>
</li>
<li>json_object
: <a class="el" href="json__object_8h.html#af27907ced0f5a43409ad96430fe0f914">json_object.h</a>
</li>
<li>json_object_delete_fn
: <a class="el" href="json__object_8h.html#aa647d7c567a06abe1a1a511f6d6860e4">json_object.h</a>
</li>
<li>json_object_iter
: <a class="el" href="json__object_8h.html#af88126730e765f2068968f4b16fd074f">json_object.h</a>
</li>
<li>json_object_private_delete_fn
: <a class="el" href="json__object__private_8h.html#aa125a0d39945a73a7d52b9823a2ef741">json_object_private.h</a>
</li>
<li>json_object_to_json_string_fn
: <a class="el" href="json__object_8h.html#af84078100a9025df418f31626ea866fa">json_object.h</a>
</li>
<li>json_tokener
: <a class="el" href="json__tokener_8h.html#a4dd5e5b65aee7f376f529f86b210ff49">json_tokener.h</a>
</li>
<li>json_type
: <a class="el" href="json__object_8h.html#aba5eff84f8638d22f50403175f270c96">json_object.h</a>
</li>
<li>lh_entry_free_fn
: <a class="el" href="linkhash_8h.html#a671553d0ee3c2a123190ba0f8ed2b635">linkhash.h</a>
</li>
<li>lh_equal_fn
: <a class="el" href="linkhash_8h.html#a91fd85fc81b0c7c83c62f00e84729091">linkhash.h</a>
</li>
<li>lh_hash_fn
: <a class="el" href="linkhash_8h.html#a38bae27995dcfb6ee3fb109a9be229b2">linkhash.h</a>
</li>
<li>lh_table
: <a class="el" href="linkhash_8h.html#a766e90057496fc6712d6be0da180a21f">linkhash.h</a>
</li>
<li>printbuf
: <a class="el" href="printbuf_8h.html#ace274df280df67463ff417b1b3392395">printbuf.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

View File

@@ -0,0 +1,85 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: Globals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Macros</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
&#160;<ul>
<li>_json_c_strerror_enable
: <a class="el" href="strerror__override__private_8h.html#ac00e7d4121efe4b2e6ad8961e35e88ba">strerror_override_private.h</a>
</li>
<li>json_c_shallow_copy_default
: <a class="el" href="json__object_8h.html#ad79dbd850536be7f59714b52bbd7ec30">json_object.h</a>
</li>
<li>json_hex_chars
: <a class="el" href="json__object__private_8h.html#a20dbe4913551cefa6b4b0a77fd4397c4">json_object_private.h</a>
</li>
<li>json_number_chars
: <a class="el" href="json__object__private_8h.html#a27427f89f2fc995639e366635fbe58ac">json_object_private.h</a>
</li>
<li>json_object_free_userdata
: <a class="el" href="json__object_8h.html#adda8476609cc566ee62b80eaed310283">json_object.h</a>
</li>
<li>json_object_userdata_to_json_string
: <a class="el" href="json__object_8h.html#a8bc341281f4dd60b53b03b2dec0fae28">json_object.h</a>
</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

129
doc/html/index.html Normal file
View File

@@ -0,0 +1,129 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: `json-c`</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">`json-c` </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><ol type="1">
<li><a href="#overview">Overview and Build Status</a></li>
<li><a href="#buildunix">Building on Unix</a></li>
<li><a href="#installprereq">Install Prerequisites</a></li>
<li><a href="#buildthreaded">Building with partial threading support</a></li>
<li><a href="#linking">Linking to libjson-c</a></li>
<li><a href="#using">Using json-c</a></li>
</ol>
<h2>JSON-C - A JSON implementation in C <a class="anchor" id="overview"></a> </h2>
<p>Build Status</p><ul>
<li><a href="https://ci.appveyor.com/project/hawicz/json-c">AppVeyor Build</a> <div class="image">
<img src="https://ci.appveyor.com/api/projects/status/github/json-c/json-c?branch=master&svg=true" alt="AppVeyor Build Status"/>
</div>
</li>
<li><a href="https://travis-ci.org/json-c/json-c">Travis Build</a> <div class="image">
<img src="https://travis-ci.org/json-c/json-c.svg?branch=master" alt="Travis Build Status"/>
</div>
</li>
</ul>
<p>JSON-C implements a reference counting object model that allows you to easily construct JSON objects in C, output them as JSON formatted strings and parse JSON formatted strings back into the C representation of JSON objects. It aims to conform to <a href="https://tools.ietf.org/html/rfc7159">RFC 7159</a>.</p>
<h2>Building on Unix with <code>git</code>, <code>gcc</code> and <code>autotools</code> <a class="anchor" id="buildunix"></a> </h2>
<p>Home page for json-c: <a href="https://github.com/json-c/json-c/wiki">https://github.com/json-c/json-c/wiki</a></p>
<h3>Prerequisites:</h3>
<p>See also the "Installing prerequisites" section below.</p>
<ul>
<li><code>gcc</code>, <code>clang</code>, or another C compiler</li>
<li><code>libtool&gt;=2.2.6b</code></li>
</ul>
<p>If you're not using a release tarball, you'll also need:</p>
<ul>
<li><code>autoconf&gt;=2.64</code> (<code>autoreconf</code>)</li>
<li><code>automake&gt;=1.13</code></li>
</ul>
<p>Make sure you have a complete <code>libtool</code> install, including <code>libtoolize</code>.</p>
<p>To generate docs (e.g. as part of make distcheck) you'll also need:</p><ul>
<li><code>doxygen&gt;=1.8.13</code></li>
</ul>
<h3>Build instructions:</h3>
<p><code>json-c</code> GitHub repo: <a href="https://github.com/json-c/json-c">https://github.com/json-c/json-c</a></p>
<p>```sh $ git clone <a href="https://github.com/json-c/json-c.git">https://github.com/json-c/json-c.git</a> $ cd json-c $ sh autogen.sh ```</p>
<p>followed by</p>
<p>```sh $ ./configure # &ndash;enable-threading $ make $ make install ```</p>
<p>To build and run the test programs:</p>
<p>```sh $ make check $ make USE_VALGRIND=0 check # optionally skip using valgrind ```</p>
<h2>Install prerequisites <a class="anchor" id="installprereq"></a> </h2>
<p>If you are on a relatively modern system, you'll likely be able to install the prerequisites using your OS's packaging system.</p>
<h3>Install using apt (e.g. Ubuntu 16.04.2 LTS)</h3>
<p>```sh sudo apt install git sudo apt install autoconf automake libtool sudo apt install valgrind # optional ```</p>
<p>Then start from the "git clone" command, above.</p>
<h3>Manually install and build autoconf, automake and libtool</h3>
<p>For older OS's that don't have up-to-date version of the packages will require a bit more work. For example, CentOS release 5.11, etc...</p>
<p>```sh curl -O <a href="http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz">http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz</a> curl -O <a href="http://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz">http://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz</a> curl -O <a href="http://ftp.gnu.org/gnu/libtool/libtool-2.2.6b.tar.gz">http://ftp.gnu.org/gnu/libtool/libtool-2.2.6b.tar.gz</a></p>
<p>tar xzf autoconf-2.69.tar.gz tar xzf automake-1.15.tar.gz tar xzf libtool-2.2.6b.tar.gz</p>
<p>export PATH=${HOME}/ac_install/bin:$PATH</p>
<p>(cd autoconf-2.69 &amp;&amp; \ ./configure &ndash;prefix ${HOME}/ac_install &amp;&amp; \ make &amp;&amp; \ make install)</p>
<p>(cd automake-1.15 &amp;&amp; \ ./configure &ndash;prefix ${HOME}/ac_install &amp;&amp; \ make &amp;&amp; \ make install)</p>
<p>(cd libtool-2.2.6b &amp;&amp; \ ./configure &ndash;prefix ${HOME}/ac_install &amp;&amp; \ make &amp;&amp; \ make install) ```</p>
<h2>Building with partial threading support <a class="anchor" id="buildthreaded"></a> </h2>
<p>Although json-c does not support fully multi-threaded access to object trees, it has some code to help make use in threaded programs a bit safer. Currently, this is limited to using atomic operations for <a class="el" href="json__object_8h.html#a675aa3a9cced685dbfd1c1a770a0c3e4">json_object_get()</a> and <a class="el" href="json__object_8h.html#afabf61f932cd64a4122ca8092452eed5">json_object_put()</a>.</p>
<p>Since this may have a performance impact, of at least 3x slower according to <a href="https://stackoverflow.com/a/11609063,">https://stackoverflow.com/a/11609063,</a> it is disabled by default. You may turn it on by adjusting your configure command with: &ndash;enable-threading</p>
<p>Separately, the default hash function used for object field keys, lh_char_hash, uses a compare-and-swap operation to ensure the randomly seed is only generated once. Because this is a one-time operation, it is always compiled in when the compare-and-swap operation is available.</p>
<h2>Linking to <code>libjson-c</code> <a class="anchor" id="linking"></a> </h2>
<p>If your system has <code>pkgconfig</code>, then you can just add this to your <code>makefile</code>:</p>
<p>```make CFLAGS += $(shell pkg-config &ndash;cflags json-c) LDFLAGS += $(shell pkg-config &ndash;libs json-c) ```</p>
<p>Without <code>pkgconfig</code>, you would do something like this:</p>
<p>```make JSON_C_DIR=/path/to/json_c/install CFLAGS += -I/include/json-c LDFLAGS+= -L/lib -ljson-c ```</p>
<h2>Using json-c <a class="anchor" id="using"></a> </h2>
<p>To use json-c you can either include <a class="el" href="json_8h.html" title="A convenience header that may be included instead of other individual ones. ">json.h</a>, or preferrably, one of the following more specific header files:</p>
<ul>
<li><a class="el" href="json__object_8h.html" title="Core json-c API. Start here, or with json_tokener.h. ">json_object.h</a> - Core types and methods.</li>
<li><a class="el" href="json__tokener_8h.html" title="Methods to parse an input string into a tree of json_object objects. ">json_tokener.h</a> - Methods for parsing and serializing json-c object trees.</li>
<li><a class="el" href="json__pointer_8h.html" title="JSON Pointer (RFC 6901) implementation for retrieving objects from a json-c object tree...">json_pointer.h</a> - JSON Pointer (RFC 6901) implementation for retrieving objects from a json-c object tree.</li>
<li><a class="el" href="json__object__iterator_8h.html" title="An API for iterating over json_type_object objects, styled to be familiar to C++ programmers. Unlike json_object_object_foreach() and json_object_object_foreachC(), this avoids the need to expose json-c internals like lh_entry. ">json_object_iterator.h</a> - Methods for iterating over single <a class="el" href="structjson__object.html">json_object</a> instances.</li>
<li><a class="el" href="json__visit_8h.html" title="Methods for walking a tree of objects. ">json_visit.h</a> - Methods for walking a tree of json-c objects.</li>
<li><a class="el" href="json__util_8h.html" title="Miscllaneous utility functions and macros. ">json_util.h</a> - Miscelleanous utility functions.</li>
</ul>
<p>For a full list of headers see <a href="files.html">files.html</a> </p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

View File

@@ -0,0 +1,58 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: issues_closed_for_0.13.md File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">issues_closed_for_0.13.md File Reference</div> </div>
</div><!--header-->
<div class="contents">
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

87
doc/html/jquery.js vendored Normal file

File diff suppressed because one or more lines are too long

63
doc/html/json_8h.html Normal file
View File

@@ -0,0 +1,63 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: json.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">json.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>A convenience header that may be included instead of other individual ones.
<a href="#details">More...</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A convenience header that may be included instead of other individual ones. </p>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

View File

@@ -0,0 +1,192 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: json_c_version.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">json_c_version.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Methods for retrieving the json-c version.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a251c3e1f59a379a4a905382b4e855125"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__c__version_8h.html#a251c3e1f59a379a4a905382b4e855125">JSON_C_MAJOR_VERSION</a>&#160;&#160;&#160;0</td></tr>
<tr class="separator:a251c3e1f59a379a4a905382b4e855125"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc87477fbc1c75848fe6b6feec21c2d6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__c__version_8h.html#adc87477fbc1c75848fe6b6feec21c2d6">JSON_C_MINOR_VERSION</a>&#160;&#160;&#160;13</td></tr>
<tr class="separator:adc87477fbc1c75848fe6b6feec21c2d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64457730097067ab096906d82e4a51a6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__c__version_8h.html#a64457730097067ab096906d82e4a51a6">JSON_C_MICRO_VERSION</a>&#160;&#160;&#160;01</td></tr>
<tr class="separator:a64457730097067ab096906d82e4a51a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78e176eee75ee6aed43c4d65ca4c5b44"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__c__version_8h.html#a78e176eee75ee6aed43c4d65ca4c5b44">JSON_C_VERSION_NUM</a></td></tr>
<tr class="separator:a78e176eee75ee6aed43c4d65ca4c5b44"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a894adda66a072bc3fd34ebe91a5aa7f4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__c__version_8h.html#a894adda66a072bc3fd34ebe91a5aa7f4">JSON_C_VERSION</a>&#160;&#160;&#160;&quot;0.13.1&quot;</td></tr>
<tr class="separator:a894adda66a072bc3fd34ebe91a5aa7f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a536b398f292b0669fc824a8486131a27"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__c__version_8h.html#a536b398f292b0669fc824a8486131a27">json_c_version</a> (void)</td></tr>
<tr class="separator:a536b398f292b0669fc824a8486131a27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a114bcfed9594f3cd662e43454000938d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__c__version_8h.html#a114bcfed9594f3cd662e43454000938d">json_c_version_num</a> (void)</td></tr>
<tr class="separator:a114bcfed9594f3cd662e43454000938d"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Methods for retrieving the json-c version. </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a251c3e1f59a379a4a905382b4e855125"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define JSON_C_MAJOR_VERSION&#160;&#160;&#160;0</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a64457730097067ab096906d82e4a51a6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define JSON_C_MICRO_VERSION&#160;&#160;&#160;01</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="adc87477fbc1c75848fe6b6feec21c2d6"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define JSON_C_MINOR_VERSION&#160;&#160;&#160;13</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a894adda66a072bc3fd34ebe91a5aa7f4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define JSON_C_VERSION&#160;&#160;&#160;&quot;0.13.1&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a78e176eee75ee6aed43c4d65ca4c5b44"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define JSON_C_VERSION_NUM</td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">((<a class="code" href="json__c__version_8h.html#a251c3e1f59a379a4a905382b4e855125">JSON_C_MAJOR_VERSION</a> &lt;&lt; 16) | \</div>
<div class="line"> (<a class="code" href="json__c__version_8h.html#adc87477fbc1c75848fe6b6feec21c2d6">JSON_C_MINOR_VERSION</a> &lt;&lt; 8) | <a class="code" href="json__c__version_8h.html#a64457730097067ab096906d82e4a51a6">\</a></div>
<div class="line"><a class="code" href="json__c__version_8h.html#a64457730097067ab096906d82e4a51a6"> JSON_C_MICRO_VERSION</a>)</div>
<div class="ttc" id="json__c__version_8h_html_a64457730097067ab096906d82e4a51a6"><div class="ttname"><a href="json__c__version_8h.html#a64457730097067ab096906d82e4a51a6">JSON_C_MICRO_VERSION</a></div><div class="ttdeci">#define JSON_C_MICRO_VERSION</div><div class="ttdef"><b>Definition:</b> json_c_version.h:17</div></div>
<div class="ttc" id="json__c__version_8h_html_adc87477fbc1c75848fe6b6feec21c2d6"><div class="ttname"><a href="json__c__version_8h.html#adc87477fbc1c75848fe6b6feec21c2d6">JSON_C_MINOR_VERSION</a></div><div class="ttdeci">#define JSON_C_MINOR_VERSION</div><div class="ttdef"><b>Definition:</b> json_c_version.h:16</div></div>
<div class="ttc" id="json__c__version_8h_html_a251c3e1f59a379a4a905382b4e855125"><div class="ttname"><a href="json__c__version_8h.html#a251c3e1f59a379a4a905382b4e855125">JSON_C_MAJOR_VERSION</a></div><div class="ttdeci">#define JSON_C_MAJOR_VERSION</div><div class="ttdef"><b>Definition:</b> json_c_version.h:15</div></div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a536b398f292b0669fc824a8486131a27"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* json_c_version </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd><a class="el" href="json__c__version_8h.html#a894adda66a072bc3fd34ebe91a5aa7f4">JSON_C_VERSION</a> </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>the version of the json-c library as a string </dd></dl>
</div>
</div>
<a class="anchor" id="a114bcfed9594f3cd662e43454000938d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int json_c_version_num </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>The json-c version encoded into an int, with the low order 8 bits being the micro version, the next higher 8 bits being the minor version and the next higher 8 bits being the major version. For example, 7.12.99 would be 0x00070B63.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="json__c__version_8h.html#a78e176eee75ee6aed43c4d65ca4c5b44">JSON_C_VERSION_NUM</a> </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>the version of the json-c library as an int </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

View File

@@ -0,0 +1,98 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: json_inttypes.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#define-members">Macros</a> </div>
<div class="headertitle">
<div class="title">json_inttypes.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Do not use, json-c internal, may be changed or removed at any time.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ae372e90b62c1e8b51dc5d95bf7f5ba48"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__inttypes_8h.html#ae372e90b62c1e8b51dc5d95bf7f5ba48">PRId64</a>&#160;&#160;&#160;&quot;I64d&quot;</td></tr>
<tr class="separator:ae372e90b62c1e8b51dc5d95bf7f5ba48"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7044b3fb4cc5cde22155d59437c348f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__inttypes_8h.html#ae7044b3fb4cc5cde22155d59437c348f">SCNd64</a>&#160;&#160;&#160;&quot;I64d&quot;</td></tr>
<tr class="separator:ae7044b3fb4cc5cde22155d59437c348f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Do not use, json-c internal, may be changed or removed at any time. </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ae372e90b62c1e8b51dc5d95bf7f5ba48"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define PRId64&#160;&#160;&#160;&quot;I64d&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="ae7044b3fb4cc5cde22155d59437c348f"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define SCNd64&#160;&#160;&#160;&quot;I64d&quot;</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,299 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: json_object_iterator.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">json_object_iterator.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>An API for iterating over json_type_object objects, styled to be familiar to C++ programmers. Unlike <a class="el" href="json__object_8h.html#acf5f514a9e0061c10fc08055762639ee">json_object_object_foreach()</a> and <a class="el" href="json__object_8h.html#a71f07006c12d78f7bbf4cb716a5af3a6">json_object_object_foreachC()</a>, this avoids the need to expose json-c internals like <a class="el" href="structlh__entry.html">lh_entry</a>.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__object__iterator.html">json_object_iterator</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:af30f56ca510d59da42e5592f9a436c10"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object__iterator_8h.html#af30f56ca510d59da42e5592f9a436c10">json_object_iter_init_default</a> (void)</td></tr>
<tr class="separator:af30f56ca510d59da42e5592f9a436c10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a925eb97b5aa5b64986a0f663f53cf0fa"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object__iterator_8h.html#a925eb97b5aa5b64986a0f663f53cf0fa">json_object_iter_begin</a> (struct <a class="el" href="structjson__object.html">json_object</a> *obj)</td></tr>
<tr class="separator:a925eb97b5aa5b64986a0f663f53cf0fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fa3784395fb14496e3f1a1633028fd4"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object__iterator_8h.html#a1fa3784395fb14496e3f1a1633028fd4">json_object_iter_end</a> (const struct <a class="el" href="structjson__object.html">json_object</a> *obj)</td></tr>
<tr class="separator:a1fa3784395fb14496e3f1a1633028fd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa98a310c340f6d9b4eeecb673aa5e240"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object__iterator_8h.html#aa98a310c340f6d9b4eeecb673aa5e240">json_object_iter_next</a> (struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> *iter)</td></tr>
<tr class="separator:aa98a310c340f6d9b4eeecb673aa5e240"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af17775b9b812a4206a84e4d3fb5774ab"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object__iterator_8h.html#af17775b9b812a4206a84e4d3fb5774ab">json_object_iter_peek_name</a> (const struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> *iter)</td></tr>
<tr class="separator:af17775b9b812a4206a84e4d3fb5774ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47b0af7f1722c10475dffd29efc0b89d"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object__iterator_8h.html#a47b0af7f1722c10475dffd29efc0b89d">json_object_iter_peek_value</a> (const struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> *iter)</td></tr>
<tr class="separator:a47b0af7f1722c10475dffd29efc0b89d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a878ca25f72b339882aa2607ac938e79c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="json__object_8h.html#a81f02022906fafc71eb9197049f07f73">json_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object__iterator_8h.html#a878ca25f72b339882aa2607ac938e79c">json_object_iter_equal</a> (const struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> *iter1, const struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> *iter2)</td></tr>
<tr class="separator:a878ca25f72b339882aa2607ac938e79c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>An API for iterating over json_type_object objects, styled to be familiar to C++ programmers. Unlike <a class="el" href="json__object_8h.html#acf5f514a9e0061c10fc08055762639ee">json_object_object_foreach()</a> and <a class="el" href="json__object_8h.html#a71f07006c12d78f7bbf4cb716a5af3a6">json_object_object_foreachC()</a>, this avoids the need to expose json-c internals like <a class="el" href="structlh__entry.html">lh_entry</a>. </p>
<p>Copyright (c) 2009-2012 Hewlett-Packard Development Company, L.P.</p>
<p>This library is free software; you can redistribute it and/or modify it under the terms of the MIT license. See COPYING for details.</p>
<p>API attributes: <br />
</p><ul>
<li>Thread-safe: NO<br />
</li>
<li>Reentrant: NO </li>
</ul>
</div><h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a925eb97b5aa5b64986a0f663f53cf0fa"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> json_object_iter_begin </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
<td class="paramname"><em>obj</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieves an iterator to the first pair of the JSON Object.</p>
<dl class="section warning"><dt>Warning</dt><dd>Any modification of the underlying pair invalidates all iterators to that pair.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">obj</td><td>JSON Object instance (MUST be of type <a class="el" href="structjson__object.html">json_object</a>)</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structjson__object__iterator.html">json_object_iterator</a> If the JSON Object has at least one pair, on return, the iterator refers to the first pair. If the JSON Object doesn't have any pairs, the returned iterator is equivalent to the "end" iterator for the same JSON Object instance.</dd></dl>
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;struct json_object_iterator it;</div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;struct json_object_iterator itEnd;</div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;struct json_object* obj;</div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;obj = json_tokener_parse(&quot;{&#39;first&#39;:&#39;george&#39;, &#39;age&#39;:100}&quot;);</div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;it = json_object_iter_begin(obj);</div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;itEnd = json_object_iter_end(obj);</div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;while (!json_object_iter_equal(&amp;it, &amp;itEnd)) {</div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; printf(&quot;%s\n&quot;,</div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; json_object_iter_peek_name(&amp;it));</div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; json_object_iter_next(&amp;it);</div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a1fa3784395fb14496e3f1a1633028fd4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> json_object_iter_end </td>
<td>(</td>
<td class="paramtype">const struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
<td class="paramname"><em>obj</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieves the iterator that represents the position beyond the last pair of the given JSON Object instance.</p>
<dl class="section warning"><dt>Warning</dt><dd>Do NOT write code that assumes that the "end" iterator value is NULL, even if it is so in a particular instance of the implementation.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The reason we do not (and MUST NOT) provide "json_object_iter_is_end(json_object_iterator* iter)" type of API is because it would limit the underlying representation of name/value containment (or force us to add additional, otherwise unnecessary, fields to the iterator structure). The "end" iterator and the equality test method, on the other hand, permit us to cleanly abstract pretty much any reasonable underlying representation without burdening the iterator structure with unnecessary data.</dd>
<dd>
For performance reasons, memorize the "end" iterator prior to any loop.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">obj</td><td>JSON Object instance (MUST be of type <a class="el" href="structjson__object.html">json_object</a>)</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structjson__object__iterator.html">json_object_iterator</a> On return, the iterator refers to the "end" of the Object instance's pairs (i.e., NOT the last pair, but "beyond the last
pair" value) </dd></dl>
</div>
</div>
<a class="anchor" id="a878ca25f72b339882aa2607ac938e79c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="json__object_8h.html#a81f02022906fafc71eb9197049f07f73">json_bool</a> json_object_iter_equal </td>
<td>(</td>
<td class="paramtype">const struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> *&#160;</td>
<td class="paramname"><em>iter1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> *&#160;</td>
<td class="paramname"><em>iter2</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Tests two iterators for equality. Typically used to test for end of iteration by comparing an iterator to the corresponding "end" iterator (that was derived from the same JSON Object instance).</p>
<dl class="section note"><dt>Note</dt><dd>The reason we do not (and MUST NOT) provide "json_object_iter_is_end(json_object_iterator* iter)" type of API is because it would limit the underlying representation of name/value containment (or force us to add additional, otherwise unnecessary, fields to the iterator structure). The equality test method, on the other hand, permits us to cleanly abstract pretty much any reasonable underlying representation.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">iter1</td><td>Pointer to first valid, non-NULL iterator </td></tr>
<tr><td class="paramname">iter2</td><td>POinter to second valid, non-NULL iterator</td></tr>
</table>
</dd>
</dl>
<dl class="section warning"><dt>Warning</dt><dd>if a NULL iterator pointer or an uninitialized or invalid iterator, or iterators derived from different JSON Object instances are passed, bad things will happen!</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>json_bool non-zero if iterators are equal (i.e., both reference the same name/value pair or are both at "end"); zero if they are not equal. </dd></dl>
</div>
</div>
<a class="anchor" id="af30f56ca510d59da42e5592f9a436c10"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> json_object_iter_init_default </td>
<td>(</td>
<td class="paramtype">void&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Initializes an iterator structure to a "default" value that is convenient for initializing an iterator variable to a default state (e.g., initialization list in a class' constructor).</p>
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;struct json_object_iterator iter = json_object_iter_init_default();</div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;MyClass() : iter_(json_object_iter_init_default())</div>
</div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>The initialized value doesn't reference any specific pair, is considered an invalid iterator, and MUST NOT be passed to any json-c API that expects a valid iterator.</dd>
<dd>
User and internal code MUST NOT make any assumptions about and dependencies on the value of the "default" iterator value.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structjson__object__iterator.html">json_object_iterator</a> </dd></dl>
</div>
</div>
<a class="anchor" id="aa98a310c340f6d9b4eeecb673aa5e240"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void json_object_iter_next </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> *&#160;</td>
<td class="paramname"><em>iter</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns an iterator to the next pair, if any</p>
<dl class="section warning"><dt>Warning</dt><dd>Any modification of the underlying pair invalidates all iterators to that pair.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">iter</td><td>[IN/OUT] Pointer to iterator that references a name/value pair; MUST be a valid, non-end iterator. WARNING: bad things will happen if invalid or "end" iterator is passed. Upon return will contain the reference to the next pair if there is one; if there are no more pairs, will contain the "end" iterator value, which may be compared against the return value of <a class="el" href="json__object__iterator_8h.html#a1fa3784395fb14496e3f1a1633028fd4">json_object_iter_end()</a> for the same JSON Object instance. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="af17775b9b812a4206a84e4d3fb5774ab"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* json_object_iter_peek_name </td>
<td>(</td>
<td class="paramtype">const struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> *&#160;</td>
<td class="paramname"><em>iter</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a const pointer to the name of the pair referenced by the given iterator.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">iter</td><td>pointer to iterator that references a name/value pair; MUST be a valid, non-end iterator.</td></tr>
</table>
</dd>
</dl>
<dl class="section warning"><dt>Warning</dt><dd>bad things will happen if an invalid or "end" iterator is passed.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>const char* Pointer to the name of the referenced name/value pair. The name memory belongs to the name/value pair, will be freed when the pair is deleted or modified, and MUST NOT be modified or freed by the user. </dd></dl>
</div>
</div>
<a class="anchor" id="a47b0af7f1722c10475dffd29efc0b89d"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structjson__object.html">json_object</a>* json_object_iter_peek_value </td>
<td>(</td>
<td class="paramtype">const struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> *&#160;</td>
<td class="paramname"><em>iter</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a pointer to the json-c instance representing the value of the referenced name/value pair, without altering the instance's reference count.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">iter</td><td>pointer to iterator that references a name/value pair; MUST be a valid, non-end iterator.</td></tr>
</table>
</dd>
</dl>
<dl class="section warning"><dt>Warning</dt><dd>bad things will happen if invalid or "end" iterator is passed.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>struct json_object* Pointer to the json-c value instance of the referenced name/value pair; the value's reference count is not changed by this function: if you plan to hold on to this json-c node, take a look at <a class="el" href="json__object_8h.html#a675aa3a9cced685dbfd1c1a770a0c3e4">json_object_get()</a> and <a class="el" href="json__object_8h.html#afabf61f932cd64a4122ca8092452eed5">json_object_put()</a>. IMPORTANT: json-c API represents the JSON Null value as a NULL <a class="el" href="structjson__object.html">json_object</a> instance pointer. </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

View File

@@ -0,0 +1,178 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: json_object_private.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">json_object_private.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Do not use, json-c internal, may be changed or removed at any time.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__object.html">json_object</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">union &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionjson__object_1_1data.html">json_object::data</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a227adaf0073e17006f614190d414fa1a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object__private_8h.html#a227adaf0073e17006f614190d414fa1a">LEN_DIRECT_STRING_DATA</a>&#160;&#160;&#160;32</td></tr>
<tr class="separator:a227adaf0073e17006f614190d414fa1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:aa125a0d39945a73a7d52b9823a2ef741"><td class="memItemLeft" align="right" valign="top">typedef void(&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object__private_8h.html#aa125a0d39945a73a7d52b9823a2ef741">json_object_private_delete_fn</a> )(struct <a class="el" href="structjson__object.html">json_object</a> *o)</td></tr>
<tr class="separator:aa125a0d39945a73a7d52b9823a2ef741"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a2b38dd2d14fbfa6585de5664b6d61c0c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object__private_8h.html#a2b38dd2d14fbfa6585de5664b6d61c0c">_json_c_set_last_err</a> (const char *err_fmt,...)</td></tr>
<tr class="separator:a2b38dd2d14fbfa6585de5664b6d61c0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:a27427f89f2fc995639e366635fbe58ac"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object__private_8h.html#a27427f89f2fc995639e366635fbe58ac">json_number_chars</a></td></tr>
<tr class="separator:a27427f89f2fc995639e366635fbe58ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20dbe4913551cefa6b4b0a77fd4397c4"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object__private_8h.html#a20dbe4913551cefa6b4b0a77fd4397c4">json_hex_chars</a></td></tr>
<tr class="separator:a20dbe4913551cefa6b4b0a77fd4397c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Do not use, json-c internal, may be changed or removed at any time. </p>
</div><h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="a227adaf0073e17006f614190d414fa1a"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LEN_DIRECT_STRING_DATA&#160;&#160;&#160;32</td>
</tr>
</table>
</div><div class="memdoc">
<p>how many bytes are directly stored in <a class="el" href="structjson__object.html">json_object</a> for strings? </p>
</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="aa125a0d39945a73a7d52b9823a2ef741"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef void( json_object_private_delete_fn)(struct <a class="el" href="structjson__object.html">json_object</a> *o)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="a2b38dd2d14fbfa6585de5664b6d61c0c"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void _json_c_set_last_err </td>
<td>(</td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>err_fmt</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a class="anchor" id="a20dbe4913551cefa6b4b0a77fd4397c4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* json_hex_chars</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a class="anchor" id="a27427f89f2fc995639e366635fbe58ac"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* json_number_chars</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

View File

@@ -0,0 +1,269 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.8"/>
<title>json-c: json_pointer.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">json-c
&#160;<span id="projectnumber">0.13.1</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.8 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle">
<div class="title">json_pointer.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>JSON Pointer (RFC 6901) implementation for retrieving objects from a json-c object tree.
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:abf47f34be3386a5eb510604f05ae9491"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__pointer_8h.html#abf47f34be3386a5eb510604f05ae9491">json_pointer_get</a> (struct <a class="el" href="structjson__object.html">json_object</a> *obj, const char *path, struct <a class="el" href="structjson__object.html">json_object</a> **res)</td></tr>
<tr class="separator:abf47f34be3386a5eb510604f05ae9491"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7eb2cab2f6f50c51053430223a01438"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__pointer_8h.html#ae7eb2cab2f6f50c51053430223a01438">json_pointer_getf</a> (struct <a class="el" href="structjson__object.html">json_object</a> *obj, struct <a class="el" href="structjson__object.html">json_object</a> **res, const char *path_fmt,...)</td></tr>
<tr class="separator:ae7eb2cab2f6f50c51053430223a01438"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab06a9fd172593748b2dc8d3a11c74fa0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__pointer_8h.html#ab06a9fd172593748b2dc8d3a11c74fa0">json_pointer_set</a> (struct <a class="el" href="structjson__object.html">json_object</a> **obj, const char *path, struct <a class="el" href="structjson__object.html">json_object</a> *value)</td></tr>
<tr class="separator:ab06a9fd172593748b2dc8d3a11c74fa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74edfbe357c7428b1a20ae73e3910ac0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__pointer_8h.html#a74edfbe357c7428b1a20ae73e3910ac0">json_pointer_setf</a> (struct <a class="el" href="structjson__object.html">json_object</a> **obj, struct <a class="el" href="structjson__object.html">json_object</a> *value, const char *path_fmt,...)</td></tr>
<tr class="separator:a74edfbe357c7428b1a20ae73e3910ac0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>JSON Pointer (RFC 6901) implementation for retrieving objects from a json-c object tree. </p>
</div><h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="abf47f34be3386a5eb510604f05ae9491"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int json_pointer_get </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
<td class="paramname"><em>obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> **&#160;</td>
<td class="paramname"><em>res</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Retrieves a JSON sub-object from inside another JSON object using the JSON pointer notation as defined in RFC 6901 <a href="https://tools.ietf.org/html/rfc6901">https://tools.ietf.org/html/rfc6901</a></p>
<p>The returned JSON sub-object is equivalent to parsing manually the 'obj' JSON tree ; i.e. it's not a new object that is created, but rather a pointer inside the JSON tree.</p>
<p>Internally, this is equivalent to doing a series of '<a class="el" href="json__object_8h.html#a1a097805abb53b4c8a60d573730a8939">json_object_object_get()</a>' and '<a class="el" href="json__object_8h.html#a676711a76545d4ec65cc75f100f5fd19">json_object_array_get_idx()</a>' along the given 'path'.</p>
<p>Note that the 'path' string supports 'printf()' type arguments, so, whatever is added after the 'res' param will be treated as an argument for 'path' Example: json_pointer_get(obj, "/foo/%d/%s", &amp;res, 0, bar) This means, that you need to escape '' with '%' (just like in printf())</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance/tree from where to retrieve sub-objects </td></tr>
<tr><td class="paramname">path</td><td>a (RFC6901) string notation for the sub-object to retrieve </td></tr>
<tr><td class="paramname">res</td><td>a pointer where to store a reference to the <a class="el" href="structjson__object.html">json_object</a> associated with the given path</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>negative if an error (or not found), or 0 if succeeded </dd></dl>
</div>
</div>
<a class="anchor" id="ae7eb2cab2f6f50c51053430223a01438"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int json_pointer_getf </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
<td class="paramname"><em>obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> **&#160;</td>
<td class="paramname"><em>res</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>path_fmt</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This is a variant of '<a class="el" href="json__pointer_8h.html#abf47f34be3386a5eb510604f05ae9491">json_pointer_get()</a>' that supports printf() style arguments.</p>
<p>Example: json_pointer_getf(obj, res, "/foo/%d/%s", 0, bak) This also means that you need to escape '' with '%' (just like in printf())</p>
<p>Please take into consideration all recommended 'printf()' format security aspects when using this function.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance/tree to which to add a sub-object </td></tr>
<tr><td class="paramname">res</td><td>a pointer where to store a reference to the <a class="el" href="structjson__object.html">json_object</a> associated with the given path </td></tr>
<tr><td class="paramname">path_fmt</td><td>a printf() style format for the path</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>negative if an error (or not found), or 0 if succeeded </dd></dl>
</div>
</div>
<a class="anchor" id="ab06a9fd172593748b2dc8d3a11c74fa0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int json_pointer_set </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> **&#160;</td>
<td class="paramname"><em>obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>path</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
<td class="paramname"><em>value</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets JSON object 'value' in the 'obj' tree at the location specified by the 'path'. 'path' is JSON pointer notation as defined in RFC 6901 <a href="https://tools.ietf.org/html/rfc6901">https://tools.ietf.org/html/rfc6901</a></p>
<p>Note that 'obj' is a double pointer, mostly for the "" (empty string) case, where the entire JSON object would be replaced by 'value'. In the case of the "" path, the object at '*obj' will have it's refcount decremented with '<a class="el" href="json__object_8h.html#afabf61f932cd64a4122ca8092452eed5">json_object_put()</a>' and the 'value' object will be assigned to it.</p>
<p>For other cases (JSON sub-objects) ownership of 'value' will be transferred into '*obj' via '<a class="el" href="json__object_8h.html#a27bd808a022251059a43f1f6370441cd">json_object_object_add()</a>' &amp; '<a class="el" href="json__object_8h.html#a1ac0ccdbc13a25da7d8b2dc9e421dfad">json_object_array_put_idx()</a>', so the only time the refcount should be decremented for 'value' is when the return value of '<a class="el" href="json__pointer_8h.html#ab06a9fd172593748b2dc8d3a11c74fa0">json_pointer_set()</a>' is negative (meaning the 'value' object did not get set into '*obj').</p>
<p>That also implies that '<a class="el" href="json__pointer_8h.html#ab06a9fd172593748b2dc8d3a11c74fa0">json_pointer_set()</a>' does not do any refcount incrementing. (Just that single decrement that was mentioned above).</p>
<p>Note that the 'path' string supports 'printf()' type arguments, so, whatever is added after the 'value' param will be treated as an argument for 'path' Example: json_pointer_set(obj, "/foo/%d/%s", value, 0, bak) This means, that you need to escape '' with '%' (just like in printf())</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance/tree to which to add a sub-object </td></tr>
<tr><td class="paramname">path</td><td>a (RFC6901) string notation for the sub-object to set in the tree </td></tr>
<tr><td class="paramname">value</td><td>object to set at path</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>negative if an error (or not found), or 0 if succeeded </dd></dl>
</div>
</div>
<a class="anchor" id="a74edfbe357c7428b1a20ae73e3910ac0"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int json_pointer_setf </td>
<td>(</td>
<td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> **&#160;</td>
<td class="paramname"><em>obj</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
<td class="paramname"><em>value</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&#160;</td>
<td class="paramname"><em>path_fmt</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>...</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>This is a variant of '<a class="el" href="json__pointer_8h.html#ab06a9fd172593748b2dc8d3a11c74fa0">json_pointer_set()</a>' that supports printf() style arguments.</p>
<p>Example: json_pointer_setf(obj, value, "/foo/%d/%s", 0, bak) This also means that you need to escape '' with '%' (just like in printf())</p>
<p>Please take into consideration all recommended 'printf()' format security aspects when using this function.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance/tree to which to add a sub-object </td></tr>
<tr><td class="paramname">value</td><td>object to set at path </td></tr>
<tr><td class="paramname">path_fmt</td><td>a printf() style format for the path</td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>negative if an error (or not found), or 0 if succeeded </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Mar 5 2018 23:17:09 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.8
</small></address>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More