Codebase list json-c / 2eb4ed3
New upstream version 0.15+dfsg Nicolas Mora 3 years ago
150 changed file(s) with 5344 addition(s) and 19459 deletion(s). Raw diff Collapse all Expand all
+0
-89
.gitignore less more
0 # Temp files
1 *~
2 *.swp
3 *.bak
4 *.backup
5 \#*
6 .\#*
7 *\#
8 *.sav
9 *.save
10 *.autosav
11 *.autosave
12
13 # Tests
14 /tests/Makefile
15 /tests/test1
16 /tests/test1Formatted
17 /tests/test2
18 /tests/test2Formatted
19 /tests/test4
20 /tests/testReplaceExisting
21 /tests/testSubDir
22 /tests/test_cast
23 /tests/test_charcase
24 /tests/test_compare
25 /tests/test_deep_copy
26 /tests/test_double_serializer
27 /tests/test_float
28 /tests/test_int_add
29 /tests/test_json_pointer
30 /tests/test_locale
31 /tests/test_null
32 /tests/test_parse
33 /tests/test_parse_int64
34 /tests/test_printbuf
35 /tests/test_set_serializer
36 /tests/test_set_value
37 /tests/test_util_file
38 /tests/test_visit
39 /tests/*.vg.out
40 /tests/*.log
41 /tests/*.trs
42
43 # Generated folders
44 /build
45 /Debug
46 /Release
47 /*/Debug
48 /*/Release
49
50 # Archives
51 *.zip
52 *.tar.*
53 *.tgz
54 *.gz
55 *.bz2
56 *.xz
57 *.lz
58 *.lzma
59 *.7z
60 *.dll
61 *.deb
62 *.rpm
63 *.apk
64 *.exe
65 *.msi
66 *.dmg
67 *.ipa
68
69 # It's not good practice to build directly in the source tree
70 # but ignore cmake auto-generated files anyway:
71 /json_config.h
72 /config.h
73 /json-c.pc
74 /Makefile
75 /CMakeCache.txt
76 /CMakeFiles
77 /CMakeDoxyfile.in
78 /*.cmake
79 /DartConfiguration.tcl
80 /tests/CMakeFiles/
81 /tests/*.cmake
82 /Testing/
83
84 # ...and build artifacts.
85 /doc
86 /libjson-c.a
87 /libjson-c.so
88 /libjson-c.so.*
+0
-153
.travis.yml less more
0 language: cpp
1 matrix:
2 include:
3 # gcc
4 # xenial
5 # gcc 5 is the default on xenial
6 - os: linux
7 dist: xenial
8 compiler: gcc
9 addons:
10 apt:
11 packages:
12 - valgrind
13 - cppcheck
14 - doxygen
15 - cmake
16 env: CHECK="true"
17 # bionic
18 - os: linux
19 dist: bionic
20 compiler: gcc
21 env: MATRIX_EVAL="CC=gcc-6 && CXX=g++-6"
22
23 # gcc 7 is the default on bionic
24 - os: linux
25 dist: bionic
26 compiler: gcc
27 env: CHECK="true"
28 - os: linux
29 dist: bionic
30 compiler: gcc
31 env: MATRIX_EVAL="CC=gcc-8 && CXX=g++-8"
32
33 # clang
34 # xenial
35 - os: linux
36 dist: xenial
37 compiler: clang
38 addons:
39 apt:
40 sources:
41 - llvm-toolchain-xenial-5.0
42 packages:
43 - clang-5.0
44 - cmake
45 env: MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0"
46 - os: linux
47 dist: xenial
48 compiler: clang
49 addons:
50 apt:
51 sources:
52 - llvm-toolchain-xenial-6.0
53 packages:
54 - clang-6.0
55 - cmake
56 env: MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0"
57
58 # clang-7 is the default on xenial and bionic
59 - os: linux
60 dist: xenial
61 compiler: clang
62 addons:
63 apt:
64 packages:
65 - valgrind
66 - cppcheck
67 - doxygen
68 - cmake
69 env: CHECK="true"
70
71 # bionic
72 - os: linux
73 dist: bionic
74 compiler: clang
75 env: CHECK="true"
76 # osx
77 - os: osx
78 osx_image: xcode9.4
79 env: XCODE="true"
80 - os: osx
81 osx_image: xcode10.1
82 env: XCODE="true" CHECK="true"
83
84 # run coveralls
85 - os: linux
86 dist: xenial
87 compiler: gcc
88 addons:
89 apt:
90 packages:
91 - lcov
92 env: CHECK="true"
93 before_install:
94 - sudo gem install coveralls-lcov
95 - echo $CC
96 - echo $LANG
97 - echo $LC_ALL
98 - set -e
99 - if [ "$TRAVIS_OS_NAME" = "linux" ]; then
100 eval "${MATRIX_EVAL}";
101 if [ -n "$MATRIX_EVAL" ] && [ "$TRAVIS_COMPILER" != "clang" ]; then
102 sudo apt-get install -y $CC;
103 fi;
104 fi
105 before_script:
106 - export CFLAGS="-fprofile-arcs -ftest-coverage"
107 - mkdir build && cd build && cmake ..
108 script:
109 - make
110 - make test
111 after_success:
112 - cd ..
113 - lcov -d build/ -b . -c -o build/all_coverage.info
114 - lcov -r build/all_coverage.info '/usr/*' '*CMakeFiles*' '*fuzz*' '*test*' -o build/coverage.info
115 - coveralls-lcov --verbose build/coverage.info
116
117 # allow_failures:
118 # - os: osx
119
120 before_install:
121 - echo $CC
122 - echo $LANG
123 - echo $LC_ALL
124 - set -e
125 - if [ "$TRAVIS_OS_NAME" = "linux" ]; then
126 eval "${MATRIX_EVAL}";
127 if [ -n "$MATRIX_EVAL" ] && [ "$TRAVIS_COMPILER" != "clang" ]; then
128 sudo apt-get install -y $CC;
129 fi;
130 fi
131
132 before_script:
133 # XXX osx on travis doesn't work w/ set -e, so turn it off :(
134 - set +e
135 - mkdir -p build || echo "Failed to mkdir build"
136 - cd build || echo "Failed to cd build"
137 - cmake .. || echo "Failed to run cmake"
138
139 script:
140 - make
141 # when using bionic, Travis seems to ignore the "addons" section, so installing the packages with apt-get...
142 - if [ -n "$CHECK" ]; then
143 if [ "$TRAVIS_OS_NAME" = "osx" ]; then
144 brew install doxygen;
145 else
146 if [ "$TRAVIS_DIST" = "bionic" ]; then
147 sudo apt-get install -y valgrind cppcheck doxygen;
148 fi;
149 fi;
150 make distcheck;
151 if type cppcheck &> /dev/null ; then cppcheck --error-exitcode=1 --quiet *.h *.c tests/ ; fi;
152 fi
66 endif()
77
88 # JSON-C library is C only project.
9 project(json-c LANGUAGES C VERSION 0.14)
9 if (CMAKE_VERSION VERSION_LESS 3.0)
10 project(json-c)
11 set(PROJECT_VERSION_MAJOR "0")
12 set(PROJECT_VERSION_MINOR "15")
13 set(PROJECT_VERSION_PATCH "0")
14 set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
15 else()
16 project(json-c LANGUAGES C VERSION 0.15)
17 endif()
1018
1119 # If we've got 3.0 then it's good, let's provide support. Otherwise, leave it be.
1220 if(POLICY CMP0038)
3745 (NOT MSVC OR NOT (MSVC_VERSION LESS 1800)) # Tests need at least VS2013
3846 )
3947 add_subdirectory(tests)
48 endif()
49
50 if (NOT MSVC) # cmd line apps don't built on Windows currently.
51 add_subdirectory(apps)
4052 endif()
4153
4254 # Set some packaging variables.
6476 include(CMakePackageConfigHelpers)
6577
6678 option(BUILD_SHARED_LIBS "Default to building shared libraries" ON)
79 option(BUILD_STATIC_LIBS "Default to building static libraries" ON)
6780
6881 # Generate a release merge and test it to verify the correctness of republishing the package.
6982 ADD_CUSTOM_TARGET(distcheck
7790 )
7891
7992 # Enable or disable features. By default, all features are turned off.
80 option(ENABLE_RDRAND "Enable RDRAND Hardware RNG Hash Seed" OFF)
81 option(ENABLE_THREADING "Enable partial threading support." OFF)
82 option(DISABLE_WERROR "Avoid treating compiler warnings as fatal errors" OFF)
83 option(DISABLE_BSYMBOLIC "Avoid linking with -Bsymbolic-function" OFF)
93 option(DISABLE_BSYMBOLIC "Avoid linking with -Bsymbolic-function." OFF)
94 option(DISABLE_THREAD_LOCAL_STORAGE "Disable using Thread-Local Storage (HAVE___THREAD)." OFF)
95 option(DISABLE_WERROR "Avoid treating compiler warnings as fatal errors." OFF)
96 option(ENABLE_RDRAND "Enable RDRAND Hardware RNG Hash Seed." OFF)
97 option(ENABLE_THREADING "Enable partial threading support." OFF)
98 option(OVERRIDE_GET_RANDOM_SEED "Override json_c_get_random_seed() with custom code." OFF)
99
84100
85101 if (UNIX OR MINGW OR CYGWIN)
86102 list(APPEND CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
93109 if (MSVC)
94110 list(APPEND CMAKE_REQUIRED_DEFINITIONS /D_CRT_SECURE_NO_DEPRECATE)
95111 list(APPEND CMAKE_REQUIRED_FLAGS /wd4996)
112 endif()
113
114 if (NOT DISABLE_STATIC_FPIC)
115 # Use '-fPIC'/'-fPIE' option.
116 # This will allow other libraries to statically link in libjson-c.a
117 # which in turn prevents crashes in downstream apps that may use
118 # a different JSON library with identical symbol names.
119 set(CMAKE_POSITION_INDEPENDENT_CODE ON)
96120 endif()
97121
98122 check_include_file("fcntl.h" HAVE_FCNTL_H)
107131
108132 check_include_file(unistd.h HAVE_UNISTD_H)
109133 check_include_file(sys/types.h HAVE_SYS_TYPES_H)
134 check_include_file(sys/resource.h HAVE_SYS_RESOURCE_H) # for getrusage
110135
111136 check_include_file("dlfcn.h" HAVE_DLFCN_H)
112137 check_include_file("endian.h" HAVE_ENDIAN_H)
163188 endif()
164189 if (HAVE_SYSLOG_H)
165190 check_symbol_exists(vsyslog "syslog.h" HAVE_VSYSLOG)
191 endif()
192 if (HAVE_SYS_RESOURCE_H)
193 check_symbol_exists(getrusage "sys/resource.h" HAVE_GETRUSAGE)
166194 endif()
167195
168196 check_symbol_exists(strtoll "stdlib.h" HAVE_STRTOLL)
194222 check_type_size(long SIZEOF_LONG)
195223 check_type_size("long long" SIZEOF_LONG_LONG)
196224 check_type_size("size_t" SIZEOF_SIZE_T)
225 if (MSVC)
226 list(APPEND CMAKE_EXTRA_INCLUDE_FILES BaseTsd.h)
227 check_type_size("SSIZE_T" SIZEOF_SSIZE_T)
228 else()
229 check_type_size("ssize_t" SIZEOF_SSIZE_T)
230 endif()
197231
198232 check_c_source_compiles(
199 [=[
233 "
200234 extern void json_object_get();
201 __asm__(".section .gnu.json_object_get\\n\\t.ascii \\"Please link against libjson-c instead of libjson\\"\\n\\t.text");
235 __asm__(\".section .gnu.json_object_get\\n\\t.ascii \\\"Please link against libjson-c instead of libjson\\\"\\n\\t.text\");
202236 int main(int c, char *v) { return 0;}
203 ]=]
237 "
204238 HAS_GNU_WARNING_LONG)
205239
206240 check_c_source_compiles(
207241 "int main() { int i, x = 0; i = __sync_add_and_fetch(&x,1); return x; }"
208242 HAVE_ATOMIC_BUILTINS)
209243
210 check_c_source_compiles(
211 "__thread int x = 0; int main() { return 0; }"
212 HAVE___THREAD)
213
214 if (HAVE___THREAD)
215 set(SPEC___THREAD __thread)
216 elseif (MSVC)
217 set(SPEC___THREAD __declspec(thread))
244 if (NOT DISABLE_THREAD_LOCAL_STORAGE)
245 check_c_source_compiles(
246 "__thread int x = 0; int main() { return 0; }"
247 HAVE___THREAD)
248
249 if (HAVE___THREAD)
250 set(SPEC___THREAD __thread)
251 elseif (MSVC)
252 set(SPEC___THREAD __declspec(thread))
253 endif()
218254 endif()
219255
220256 # Hardware random number is not available on Windows? Says, config.h.win32. Best to preserve compatibility.
224260
225261 # Once we've done basic symbol/header searches let's add them in.
226262 configure_file(${PROJECT_SOURCE_DIR}/cmake/config.h.in ${PROJECT_BINARY_DIR}/config.h)
227 message(STATUS "Written ${PROJECT_BINARY_DIR}/config.h")
263 message(STATUS "Wrote ${PROJECT_BINARY_DIR}/config.h")
228264 configure_file(${PROJECT_SOURCE_DIR}/cmake/json_config.h.in ${PROJECT_BINARY_DIR}/json_config.h)
229 message(STATUS "Written ${PROJECT_BINARY_DIR}/json_config.h")
265 message(STATUS "Wrote ${PROJECT_BINARY_DIR}/json_config.h")
230266
231267 if ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
232268 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffunction-sections -fdata-sections")
257293
258294 if (NOT ("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC"))
259295 check_c_source_compiles(
260 [=[
296 "
261297 /* uClibc toolchains without threading barf when _REENTRANT is defined */
262298 #define _REENTRANT 1
263299 #include <sys/types.h>
265301 {
266302 return 0;
267303 }
268 ]=]
304 "
269305 REENTRANT_WORKS
270306 )
271307 if (REENTRANT_WORKS)
276312 # Others may not support it, too.
277313 list(APPEND CMAKE_REQUIRED_LIBRARIES "-Wl,-Bsymbolic-functions")
278314 check_c_source_compiles(
279 [=[
315 "
280316 int main (void)
281317 {
282318 return 0;
283319 }
284 ]=]
320 "
285321 BSYMBOLIC_WORKS
286322 )
287323 list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "-Wl,-Bsymbolic-functions")
290326 # XXX need cmake>=3.13 for this:
291327 #add_link_options("-Wl,-Bsymbolic-functions")
292328 endif()
329
330 file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/check-version-script.sym" "TEST { global: *; };")
331 list(APPEND CMAKE_REQUIRED_LIBRARIES "-Wl,--version-script,${CMAKE_CURRENT_BINARY_DIR}/check-version-script.sym")
332 check_c_source_compiles(
333 "
334 int main (void)
335 {
336 return 0;
337 }
338 "
339 VERSION_SCRIPT_WORKS
340 )
341 list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "-Wl,--version-script,${CMAKE_CURRENT_BINARY_DIR}/check-version-script.sym")
342 if (VERSION_SCRIPT_WORKS)
343 set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--version-script,${CMAKE_CURRENT_SOURCE_DIR}/json-c.sym")
344 endif()
293345 endif()
294346
295347 if ($ENV{VALGRIND})
298350 endif()
299351
300352 set(JSON_C_PUBLIC_HEADERS
301 ${PROJECT_BINARY_DIR}/config.h
353 # Note: config.h is _not_ included here
302354 ${PROJECT_BINARY_DIR}/json_config.h
303355
304356 ${PROJECT_SOURCE_DIR}/json.h
348400 include_directories(${PROJECT_SOURCE_DIR})
349401 include_directories(${PROJECT_BINARY_DIR})
350402
351 # generate doxygen documentation for json-c API
352
353 find_package(Doxygen)
354 option(BUILD_DOCUMENTATION "Create and install the HTML based API documentation(requires Doxygen)" ${DOXYGEN_FOUND})
355
356 if (DOXYGEN_FOUND)
357
358 add_custom_target(doc
359 COMMAND ${DOXYGEN_EXECUTABLE} ${PROJECT_SOURCE_DIR}/Doxyfile
360 WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
361
362 # request to configure the file
363 configure_file(Doxyfile Doxyfile)
364
365 else (DOXYGEN_FOUND)
366 message("Warning: doxygen not found, the 'doc' target will not be included")
367 endif(DOXYGEN_FOUND)
403 add_subdirectory(doc)
368404
369405 # uninstall
370406 add_custom_target(uninstall
380416 ${JSON_C_HEADERS}
381417 )
382418 set_target_properties(${PROJECT_NAME} PROPERTIES
383 VERSION 5.0.0
419 VERSION 5.1.0
384420 SOVERSION 5)
385
421 list(APPEND CMAKE_TARGETS ${PROJECT_NAME})
386422 # If json-c is used as subroject it set to target correct interface -I flags and allow
387423 # to build external target without extra include_directories(...)
388424 target_include_directories(${PROJECT_NAME}
391427 $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}>
392428 )
393429
394 install(TARGETS ${PROJECT_NAME}
430 # Allow to build static and shared libraries at the same time
431 if (BUILD_STATIC_LIBS AND BUILD_SHARED_LIBS)
432 set(STATIC_LIB ${PROJECT_NAME}-static)
433 add_library(${STATIC_LIB} STATIC
434 ${JSON_C_SOURCES}
435 ${JSON_C_HEADERS}
436 )
437
438 # rename the static library
439 if (NOT MSVC)
440 set_target_properties(${STATIC_LIB} PROPERTIES
441 OUTPUT_NAME ${PROJECT_NAME}
442 )
443 endif()
444 list(APPEND CMAKE_TARGETS ${STATIC_LIB})
445 endif ()
446
447 # Always create new install dirs with 0755 permissions, regardless of umask
448 set(CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS
449 OWNER_READ
450 OWNER_WRITE
451 OWNER_EXECUTE
452 GROUP_READ
453 GROUP_EXECUTE
454 WORLD_READ
455 WORLD_EXECUTE
456 )
457
458 install(TARGETS ${CMAKE_TARGETS}
395459 EXPORT ${PROJECT_NAME}-targets
396460 RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
397461 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
00
1 Next Release 0.15
2 =====================
3
4 Deprecated and removed features:
5 --------------------------------
6 * Deprecate `array_list_new()` in favor of `array_list_new2()`
7 * Remove the THIS_FUNCTION_IS_DEPRECATED define.
8 * Remove config.h.win32
9
10 New features
11 ------------
12 * Add a `JSON_TOKENER_ALLOW_TRAILING_CHARS` flag to allow multiple objects
13 to be parsed even when `JSON_TOKENER_STRICT` is set.
14 * Add `json_object_new_array_ext(int)` and `array_list_new_2(int)` to allow
15 arrays to be allocated with the exact size needed, when known.
16 * Add `json_object_array_shrink()` (and `array_list_shrink()`) and use it in
17 json_tokener to minimize the amount of memory used.
18 * Add a json_parse binary, for use in testing changes (not installed, but
19 available in the apps directory).
20
21 Build changes
22 -------------
23 * #639/#621 - Add symbol versions to all exported symbols
24 * #508/#634 - Always enable -fPIC to allow use of the json-c static library in
25 other libraries
26 * Build both static and shared libraries at the same time.
27 * #626 - Restore compatibility with cmake 2.8
28 * #471 - Always create directories with mode 0755, regardless of umask.
29 * #606/#604 - Improve support for OSes like AIX and IBM i, as well as for
30 MINGW32 and old versions of MSVC
31 * #451/#617 - Add a DISABLE_THREAD_LOCAL_STORAGE cmake option to disable
32 the use of thread-local storage.
33
34 Significant changes and bug fixes
35 ---------------------------------
36 * Split the internal json_object structure into several sub-types, one for
37 each json_type (json_object_object, json_object_string, etc...).
38 This improves memory usage and speed, with the benchmark under
39 bench/ report 5.8% faster test time and 6%(max RSS)-12%(peak heap)
40 less memory usage.
41 Memory used just for json_object structures decreased 27%, so use cases
42 with fewer arrays and/or strings would benefit more.
43 * Minimize memory usage in array handling in json_tokener by shrinking
44 arrays to the exact number of elements parsed. On bench/ benchmark:
45 9% faster test time, 39%(max RSS)-50%(peak heap) less memory usage.
46 Add json_object_array_shrink() and array_list_shrink() functions.
47 * #616 - Parsing of surrogate pairs in unicode escapes now properly handles
48 incremental parsing.
49 * Fix incremental parsing of numbers, especially those with exponents, e.g.
50 so parsing "[0", "e+", "-]" now properly returns an error.
51 Strict mode now rejects missing exponents ("0e").
52 * Successfully return number objects at the top level even when they are
53 followed by a "-", "." or "e". This makes parsing things like "123-45"
54 behave consistently with things like "123xyz".
55
56 Other changes
57 -------------
58 * #589 - Detect broken RDRAND during initialization; also, fix segfault
59 in the CPUID check.
60 * #592 - Fix integer overflows to prevert out of bounds write on large input.
61 * Protect against division by zero in linkhash, when creaed with zero size.
62 * #602 - Fix json_parse_uint64() internal error checking, leaving the retval
63 untouched in more failure cases.
64 * #614 - Prevent truncation when custom double formatters insert extra \0's
65
66
67 ***
168
269 0.14 (up to commit 9ed00a6, 2020/04/14)
370 =========================================
+0
-2353
Doxyfile less more
0 # Doxyfile 1.8.8
1
2 # This file describes the settings to be used by the documentation system
3 # doxygen (www.doxygen.org) for a project.
4 #
5 # All text after a double hash (##) is considered a comment and is placed in
6 # front of the TAG it is preceding.
7 #
8 # All text after a single hash (#) is considered a comment and will be ignored.
9 # The format is:
10 # TAG = value [value, ...]
11 # For lists, items can also be appended using:
12 # TAG += value [value, ...]
13 # Values that contain spaces should be placed between quotes (\" \").
14
15 #---------------------------------------------------------------------------
16 # Project related configuration options
17 #---------------------------------------------------------------------------
18
19 # This tag specifies the encoding used for all characters in the config file
20 # that follow. The default is UTF-8 which is also the encoding used for all text
21 # before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
22 # built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
23 # for the list of possible encodings.
24 # The default value is: UTF-8.
25
26 DOXYFILE_ENCODING = UTF-8
27
28 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
29 # double-quotes, unless you are using Doxywizard) that should identify the
30 # project for which the documentation is generated. This name is used in the
31 # title of most generated pages and in a few other places.
32 # The default value is: My Project.
33
34 PROJECT_NAME = json-c
35
36 # The PROJECT_NUMBER tag can be used to enter a project or revision number. This
37 # could be handy for archiving the generated documentation or if some version
38 # control system is used.
39
40 PROJECT_NUMBER = 0.14
41
42 # Using the PROJECT_BRIEF tag one can provide an optional one line description
43 # for a project that appears at the top of each page and should give viewer a
44 # quick idea about the purpose of the project. Keep the description short.
45
46 PROJECT_BRIEF =
47
48 # With the PROJECT_LOGO tag one can specify an logo or icon that is included in
49 # the documentation. The maximum height of the logo should not exceed 55 pixels
50 # and the maximum width should not exceed 200 pixels. Doxygen will copy the logo
51 # to the output directory.
52
53 PROJECT_LOGO =
54
55 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
56 # into which the generated documentation will be written. If a relative path is
57 # entered, it will be relative to the location where doxygen was started. If
58 # left blank the current directory will be used.
59
60 OUTPUT_DIRECTORY = doc
61
62 # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
63 # directories (in 2 levels) under the output directory of each output format and
64 # will distribute the generated files over these directories. Enabling this
65 # option can be useful when feeding doxygen a huge amount of source files, where
66 # putting all generated files in the same directory would otherwise causes
67 # performance problems for the file system.
68 # The default value is: NO.
69
70 CREATE_SUBDIRS = NO
71
72 # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
73 # characters to appear in the names of generated files. If set to NO, non-ASCII
74 # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
75 # U+3044.
76 # The default value is: NO.
77
78 ALLOW_UNICODE_NAMES = NO
79
80 # The OUTPUT_LANGUAGE tag is used to specify the language in which all
81 # documentation generated by doxygen is written. Doxygen will use this
82 # information to generate all constant output in the proper language.
83 # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
84 # Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
85 # Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
86 # Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
87 # Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
88 # Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
89 # Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
90 # Ukrainian and Vietnamese.
91 # The default value is: English.
92
93 OUTPUT_LANGUAGE = English
94
95 # If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member
96 # descriptions after the members that are listed in the file and class
97 # documentation (similar to Javadoc). Set to NO to disable this.
98 # The default value is: YES.
99
100 BRIEF_MEMBER_DESC = YES
101
102 # If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief
103 # description of a member or function before the detailed description
104 #
105 # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
106 # brief descriptions will be completely suppressed.
107 # The default value is: YES.
108
109 REPEAT_BRIEF = YES
110
111 # This tag implements a quasi-intelligent brief description abbreviator that is
112 # used to form the text in various listings. Each string in this list, if found
113 # as the leading text of the brief description, will be stripped from the text
114 # and the result, after processing the whole list, is used as the annotated
115 # text. Otherwise, the brief description is used as-is. If left blank, the
116 # following values are used ($name is automatically replaced with the name of
117 # the entity):The $name class, The $name widget, The $name file, is, provides,
118 # specifies, contains, represents, a, an and the.
119
120 ABBREVIATE_BRIEF =
121
122 # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
123 # doxygen will generate a detailed section even if there is only a brief
124 # description.
125 # The default value is: NO.
126
127 ALWAYS_DETAILED_SEC = NO
128
129 # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
130 # inherited members of a class in the documentation of that class as if those
131 # members were ordinary class members. Constructors, destructors and assignment
132 # operators of the base classes will not be shown.
133 # The default value is: NO.
134
135 INLINE_INHERITED_MEMB = NO
136
137 # If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path
138 # before files name in the file list and in the header files. If set to NO the
139 # shortest path that makes the file name unique will be used
140 # The default value is: YES.
141
142 FULL_PATH_NAMES = YES
143
144 # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
145 # Stripping is only done if one of the specified strings matches the left-hand
146 # part of the path. The tag can be used to show relative paths in the file list.
147 # If left blank the directory from which doxygen is run is used as the path to
148 # strip.
149 #
150 # Note that you can specify absolute paths here, but also relative paths, which
151 # will be relative from the directory where doxygen is started.
152 # This tag requires that the tag FULL_PATH_NAMES is set to YES.
153
154 STRIP_FROM_PATH =
155
156 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
157 # path mentioned in the documentation of a class, which tells the reader which
158 # header file to include in order to use a class. If left blank only the name of
159 # the header file containing the class definition is used. Otherwise one should
160 # specify the list of include paths that are normally passed to the compiler
161 # using the -I flag.
162
163 STRIP_FROM_INC_PATH =
164
165 # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
166 # less readable) file names. This can be useful is your file systems doesn't
167 # support long names like on DOS, Mac, or CD-ROM.
168 # The default value is: NO.
169
170 SHORT_NAMES = NO
171
172 # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
173 # first line (until the first dot) of a Javadoc-style comment as the brief
174 # description. If set to NO, the Javadoc-style will behave just like regular Qt-
175 # style comments (thus requiring an explicit @brief command for a brief
176 # description.)
177 # The default value is: NO.
178
179 JAVADOC_AUTOBRIEF = NO
180
181 # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
182 # line (until the first dot) of a Qt-style comment as the brief description. If
183 # set to NO, the Qt-style will behave just like regular Qt-style comments (thus
184 # requiring an explicit \brief command for a brief description.)
185 # The default value is: NO.
186
187 QT_AUTOBRIEF = NO
188
189 # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
190 # multi-line C++ special comment block (i.e. a block of //! or /// comments) as
191 # a brief description. This used to be the default behavior. The new default is
192 # to treat a multi-line C++ comment block as a detailed description. Set this
193 # tag to YES if you prefer the old behavior instead.
194 #
195 # Note that setting this tag to YES also means that rational rose comments are
196 # not recognized any more.
197 # The default value is: NO.
198
199 MULTILINE_CPP_IS_BRIEF = NO
200
201 # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
202 # documentation from any documented member that it re-implements.
203 # The default value is: YES.
204
205 INHERIT_DOCS = YES
206
207 # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a
208 # new page for each member. If set to NO, the documentation of a member will be
209 # part of the file/class/namespace that contains it.
210 # The default value is: NO.
211
212 SEPARATE_MEMBER_PAGES = NO
213
214 # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
215 # uses this value to replace tabs by spaces in code fragments.
216 # Minimum value: 1, maximum value: 16, default value: 4.
217
218 TAB_SIZE = 8
219
220 # This tag can be used to specify a number of aliases that act as commands in
221 # the documentation. An alias has the form:
222 # name=value
223 # For example adding
224 # "sideeffect=@par Side Effects:\n"
225 # will allow you to put the command \sideeffect (or @sideeffect) in the
226 # documentation, which will result in a user-defined paragraph with heading
227 # "Side Effects:". You can put \n's in the value part of an alias to insert
228 # newlines.
229
230 ALIASES =
231
232 # This tag can be used to specify a number of word-keyword mappings (TCL only).
233 # A mapping has the form "name=value". For example adding "class=itcl::class"
234 # will allow you to use the command class in the itcl::class meaning.
235
236 TCL_SUBST =
237
238 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
239 # only. Doxygen will then generate output that is more tailored for C. For
240 # instance, some of the names that are used will be different. The list of all
241 # members will be omitted, etc.
242 # The default value is: NO.
243
244 OPTIMIZE_OUTPUT_FOR_C = YES
245
246 # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
247 # Python sources only. Doxygen will then generate output that is more tailored
248 # for that language. For instance, namespaces will be presented as packages,
249 # qualified scopes will look different, etc.
250 # The default value is: NO.
251
252 OPTIMIZE_OUTPUT_JAVA = NO
253
254 # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
255 # sources. Doxygen will then generate output that is tailored for Fortran.
256 # The default value is: NO.
257
258 OPTIMIZE_FOR_FORTRAN = NO
259
260 # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
261 # sources. Doxygen will then generate output that is tailored for VHDL.
262 # The default value is: NO.
263
264 OPTIMIZE_OUTPUT_VHDL = NO
265
266 # Doxygen selects the parser to use depending on the extension of the files it
267 # parses. With this tag you can assign which parser to use for a given
268 # extension. Doxygen has a built-in mapping, but you can override or extend it
269 # using this tag. The format is ext=language, where ext is a file extension, and
270 # language is one of the parsers supported by doxygen: IDL, Java, Javascript,
271 # C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
272 # FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
273 # Fortran. In the later case the parser tries to guess whether the code is fixed
274 # or free formatted code, this is the default for Fortran type files), VHDL. For
275 # instance to make doxygen treat .inc files as Fortran files (default is PHP),
276 # and .f files as C (default is Fortran), use: inc=Fortran f=C.
277 #
278 # Note For files without extension you can use no_extension as a placeholder.
279 #
280 # Note that for custom extensions you also need to set FILE_PATTERNS otherwise
281 # the files are not read by doxygen.
282
283 EXTENSION_MAPPING =
284
285 # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
286 # according to the Markdown format, which allows for more readable
287 # documentation. See http://daringfireball.net/projects/markdown/ for details.
288 # The output of markdown processing is further processed by doxygen, so you can
289 # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
290 # case of backward compatibilities issues.
291 # The default value is: YES.
292
293 MARKDOWN_SUPPORT = YES
294
295 # When enabled doxygen tries to link words that correspond to documented
296 # classes, or namespaces to their corresponding documentation. Such a link can
297 # be prevented in individual cases by by putting a % sign in front of the word
298 # or globally by setting AUTOLINK_SUPPORT to NO.
299 # The default value is: YES.
300
301 AUTOLINK_SUPPORT = YES
302
303 # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
304 # to include (a tag file for) the STL sources as input, then you should set this
305 # tag to YES in order to let doxygen match functions declarations and
306 # definitions whose arguments contain STL classes (e.g. func(std::string);
307 # versus func(std::string) {}). This also make the inheritance and collaboration
308 # diagrams that involve STL classes more complete and accurate.
309 # The default value is: NO.
310
311 BUILTIN_STL_SUPPORT = NO
312
313 # If you use Microsoft's C++/CLI language, you should set this option to YES to
314 # enable parsing support.
315 # The default value is: NO.
316
317 CPP_CLI_SUPPORT = NO
318
319 # Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
320 # http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
321 # will parse them like normal C++ but will assume all classes use public instead
322 # of private inheritance when no explicit protection keyword is present.
323 # The default value is: NO.
324
325 SIP_SUPPORT = NO
326
327 # For Microsoft's IDL there are propget and propput attributes to indicate
328 # getter and setter methods for a property. Setting this option to YES will make
329 # doxygen to replace the get and set methods by a property in the documentation.
330 # This will only work if the methods are indeed getting or setting a simple
331 # type. If this is not the case, or you want to show the methods anyway, you
332 # should set this option to NO.
333 # The default value is: YES.
334
335 IDL_PROPERTY_SUPPORT = YES
336
337 # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
338 # tag is set to YES, then doxygen will reuse the documentation of the first
339 # member in the group (if any) for the other members of the group. By default
340 # all members of a group must be documented explicitly.
341 # The default value is: NO.
342
343 DISTRIBUTE_GROUP_DOC = NO
344
345 # Set the SUBGROUPING tag to YES to allow class member groups of the same type
346 # (for instance a group of public functions) to be put as a subgroup of that
347 # type (e.g. under the Public Functions section). Set it to NO to prevent
348 # subgrouping. Alternatively, this can be done per class using the
349 # \nosubgrouping command.
350 # The default value is: YES.
351
352 SUBGROUPING = YES
353
354 # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
355 # are shown inside the group in which they are included (e.g. using \ingroup)
356 # instead of on a separate page (for HTML and Man pages) or section (for LaTeX
357 # and RTF).
358 #
359 # Note that this feature does not work in combination with
360 # SEPARATE_MEMBER_PAGES.
361 # The default value is: NO.
362
363 INLINE_GROUPED_CLASSES = NO
364
365 # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
366 # with only public data fields or simple typedef fields will be shown inline in
367 # the documentation of the scope in which they are defined (i.e. file,
368 # namespace, or group documentation), provided this scope is documented. If set
369 # to NO, structs, classes, and unions are shown on a separate page (for HTML and
370 # Man pages) or section (for LaTeX and RTF).
371 # The default value is: NO.
372
373 INLINE_SIMPLE_STRUCTS = NO
374
375 # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
376 # enum is documented as struct, union, or enum with the name of the typedef. So
377 # typedef struct TypeS {} TypeT, will appear in the documentation as a struct
378 # with name TypeT. When disabled the typedef will appear as a member of a file,
379 # namespace, or class. And the struct will be named TypeS. This can typically be
380 # useful for C code in case the coding convention dictates that all compound
381 # types are typedef'ed and only the typedef is referenced, never the tag name.
382 # The default value is: NO.
383
384 TYPEDEF_HIDES_STRUCT = NO
385
386 # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
387 # cache is used to resolve symbols given their name and scope. Since this can be
388 # an expensive process and often the same symbol appears multiple times in the
389 # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
390 # doxygen will become slower. If the cache is too large, memory is wasted. The
391 # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
392 # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
393 # symbols. At the end of a run doxygen will report the cache usage and suggest
394 # the optimal cache size from a speed point of view.
395 # Minimum value: 0, maximum value: 9, default value: 0.
396
397 LOOKUP_CACHE_SIZE = 0
398
399 #---------------------------------------------------------------------------
400 # Build related configuration options
401 #---------------------------------------------------------------------------
402
403 # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
404 # documentation are documented, even if no documentation was available. Private
405 # class members and static file members will be hidden unless the
406 # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
407 # Note: This will also disable the warnings about undocumented members that are
408 # normally produced when WARNINGS is set to YES.
409 # The default value is: NO.
410
411 EXTRACT_ALL = YES
412
413 # If the EXTRACT_PRIVATE tag is set to YES all private members of a class will
414 # be included in the documentation.
415 # The default value is: NO.
416
417 EXTRACT_PRIVATE = NO
418
419 # If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
420 # scope will be included in the documentation.
421 # The default value is: NO.
422
423 EXTRACT_PACKAGE = NO
424
425 # If the EXTRACT_STATIC tag is set to YES all static members of a file will be
426 # included in the documentation.
427 # The default value is: NO.
428
429 EXTRACT_STATIC = NO
430
431 # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
432 # locally in source files will be included in the documentation. If set to NO
433 # only classes defined in header files are included. Does not have any effect
434 # for Java sources.
435 # The default value is: YES.
436
437 EXTRACT_LOCAL_CLASSES = NO
438
439 # This flag is only useful for Objective-C code. When set to YES local methods,
440 # which are defined in the implementation section but not in the interface are
441 # included in the documentation. If set to NO only methods in the interface are
442 # included.
443 # The default value is: NO.
444
445 EXTRACT_LOCAL_METHODS = NO
446
447 # If this flag is set to YES, the members of anonymous namespaces will be
448 # extracted and appear in the documentation as a namespace called
449 # 'anonymous_namespace{file}', where file will be replaced with the base name of
450 # the file that contains the anonymous namespace. By default anonymous namespace
451 # are hidden.
452 # The default value is: NO.
453
454 EXTRACT_ANON_NSPACES = NO
455
456 # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
457 # undocumented members inside documented classes or files. If set to NO these
458 # members will be included in the various overviews, but no documentation
459 # section is generated. This option has no effect if EXTRACT_ALL is enabled.
460 # The default value is: NO.
461
462 HIDE_UNDOC_MEMBERS = NO
463
464 # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
465 # undocumented classes that are normally visible in the class hierarchy. If set
466 # to NO these classes will be included in the various overviews. This option has
467 # no effect if EXTRACT_ALL is enabled.
468 # The default value is: NO.
469
470 HIDE_UNDOC_CLASSES = NO
471
472 # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
473 # (class|struct|union) declarations. If set to NO these declarations will be
474 # included in the documentation.
475 # The default value is: NO.
476
477 HIDE_FRIEND_COMPOUNDS = NO
478
479 # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
480 # documentation blocks found inside the body of a function. If set to NO these
481 # blocks will be appended to the function's detailed documentation block.
482 # The default value is: NO.
483
484 HIDE_IN_BODY_DOCS = NO
485
486 # The INTERNAL_DOCS tag determines if documentation that is typed after a
487 # \internal command is included. If the tag is set to NO then the documentation
488 # will be excluded. Set it to YES to include the internal documentation.
489 # The default value is: NO.
490
491 INTERNAL_DOCS = NO
492
493 # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
494 # names in lower-case letters. If set to YES upper-case letters are also
495 # allowed. This is useful if you have classes or files whose names only differ
496 # in case and if your file system supports case sensitive file names. Windows
497 # and Mac users are advised to set this option to NO.
498 # The default value is: system dependent.
499
500 CASE_SENSE_NAMES = YES
501
502 # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
503 # their full class and namespace scopes in the documentation. If set to YES the
504 # scope will be hidden.
505 # The default value is: NO.
506
507 HIDE_SCOPE_NAMES = NO
508
509 # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
510 # the files that are included by a file in the documentation of that file.
511 # The default value is: YES.
512
513 SHOW_INCLUDE_FILES = NO
514
515 # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
516 # grouped member an include statement to the documentation, telling the reader
517 # which file to include in order to use the member.
518 # The default value is: NO.
519
520 SHOW_GROUPED_MEMB_INC = NO
521
522 # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
523 # files with double quotes in the documentation rather than with sharp brackets.
524 # The default value is: NO.
525
526 FORCE_LOCAL_INCLUDES = NO
527
528 # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
529 # documentation for inline members.
530 # The default value is: YES.
531
532 INLINE_INFO = YES
533
534 # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
535 # (detailed) documentation of file and class members alphabetically by member
536 # name. If set to NO the members will appear in declaration order.
537 # The default value is: YES.
538
539 SORT_MEMBER_DOCS = YES
540
541 # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
542 # descriptions of file, namespace and class members alphabetically by member
543 # name. If set to NO the members will appear in declaration order. Note that
544 # this will also influence the order of the classes in the class list.
545 # The default value is: NO.
546
547 SORT_BRIEF_DOCS = NO
548
549 # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
550 # (brief and detailed) documentation of class members so that constructors and
551 # destructors are listed first. If set to NO the constructors will appear in the
552 # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
553 # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
554 # member documentation.
555 # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
556 # detailed member documentation.
557 # The default value is: NO.
558
559 SORT_MEMBERS_CTORS_1ST = NO
560
561 # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
562 # of group names into alphabetical order. If set to NO the group names will
563 # appear in their defined order.
564 # The default value is: NO.
565
566 SORT_GROUP_NAMES = NO
567
568 # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
569 # fully-qualified names, including namespaces. If set to NO, the class list will
570 # be sorted only by class name, not including the namespace part.
571 # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
572 # Note: This option applies only to the class list, not to the alphabetical
573 # list.
574 # The default value is: NO.
575
576 SORT_BY_SCOPE_NAME = NO
577
578 # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
579 # type resolution of all parameters of a function it will reject a match between
580 # the prototype and the implementation of a member function even if there is
581 # only one candidate or it is obvious which candidate to choose by doing a
582 # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
583 # accept a match between prototype and implementation in such cases.
584 # The default value is: NO.
585
586 STRICT_PROTO_MATCHING = NO
587
588 # The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the
589 # todo list. This list is created by putting \todo commands in the
590 # documentation.
591 # The default value is: YES.
592
593 GENERATE_TODOLIST = YES
594
595 # The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the
596 # test list. This list is created by putting \test commands in the
597 # documentation.
598 # The default value is: YES.
599
600 GENERATE_TESTLIST = YES
601
602 # The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug
603 # list. This list is created by putting \bug commands in the documentation.
604 # The default value is: YES.
605
606 GENERATE_BUGLIST = YES
607
608 # The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO)
609 # the deprecated list. This list is created by putting \deprecated commands in
610 # the documentation.
611 # The default value is: YES.
612
613 GENERATE_DEPRECATEDLIST= YES
614
615 # The ENABLED_SECTIONS tag can be used to enable conditional documentation
616 # sections, marked by \if <section_label> ... \endif and \cond <section_label>
617 # ... \endcond blocks.
618
619 ENABLED_SECTIONS =
620
621 # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
622 # initial value of a variable or macro / define can have for it to appear in the
623 # documentation. If the initializer consists of more lines than specified here
624 # it will be hidden. Use a value of 0 to hide initializers completely. The
625 # appearance of the value of individual variables and macros / defines can be
626 # controlled using \showinitializer or \hideinitializer command in the
627 # documentation regardless of this setting.
628 # Minimum value: 0, maximum value: 10000, default value: 30.
629
630 MAX_INITIALIZER_LINES = 30
631
632 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
633 # the bottom of the documentation of classes and structs. If set to YES the list
634 # will mention the files that were used to generate the documentation.
635 # The default value is: YES.
636
637 SHOW_USED_FILES = YES
638
639 # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
640 # will remove the Files entry from the Quick Index and from the Folder Tree View
641 # (if specified).
642 # The default value is: YES.
643
644 SHOW_FILES = YES
645
646 # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
647 # page. This will remove the Namespaces entry from the Quick Index and from the
648 # Folder Tree View (if specified).
649 # The default value is: YES.
650
651 SHOW_NAMESPACES = YES
652
653 # The FILE_VERSION_FILTER tag can be used to specify a program or script that
654 # doxygen should invoke to get the current version for each file (typically from
655 # the version control system). Doxygen will invoke the program by executing (via
656 # popen()) the command command input-file, where command is the value of the
657 # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
658 # by doxygen. Whatever the program writes to standard output is used as the file
659 # version. For an example see the documentation.
660
661 FILE_VERSION_FILTER =
662
663 # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
664 # by doxygen. The layout file controls the global structure of the generated
665 # output files in an output format independent way. To create the layout file
666 # that represents doxygen's defaults, run doxygen with the -l option. You can
667 # optionally specify a file name after the option, if omitted DoxygenLayout.xml
668 # will be used as the name of the layout file.
669 #
670 # Note that if you run doxygen from a directory containing a file called
671 # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
672 # tag is left empty.
673
674 LAYOUT_FILE =
675
676 # The CITE_BIB_FILES tag can be used to specify one or more bib files containing
677 # the reference definitions. This must be a list of .bib files. The .bib
678 # extension is automatically appended if omitted. This requires the bibtex tool
679 # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
680 # For LaTeX the style of the bibliography can be controlled using
681 # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
682 # search path. See also \cite for info how to create references.
683
684 CITE_BIB_FILES =
685
686 #---------------------------------------------------------------------------
687 # Configuration options related to warning and progress messages
688 #---------------------------------------------------------------------------
689
690 # The QUIET tag can be used to turn on/off the messages that are generated to
691 # standard output by doxygen. If QUIET is set to YES this implies that the
692 # messages are off.
693 # The default value is: NO.
694
695 QUIET = NO
696
697 # The WARNINGS tag can be used to turn on/off the warning messages that are
698 # generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES
699 # this implies that the warnings are on.
700 #
701 # Tip: Turn warnings on while writing the documentation.
702 # The default value is: YES.
703
704 WARNINGS = YES
705
706 # If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate
707 # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
708 # will automatically be disabled.
709 # The default value is: YES.
710
711 WARN_IF_UNDOCUMENTED = YES
712
713 # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
714 # potential errors in the documentation, such as not documenting some parameters
715 # in a documented function, or documenting parameters that don't exist or using
716 # markup commands wrongly.
717 # The default value is: YES.
718
719 WARN_IF_DOC_ERROR = YES
720
721 # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
722 # are documented, but have no documentation for their parameters or return
723 # value. If set to NO doxygen will only warn about wrong or incomplete parameter
724 # documentation, but not about the absence of documentation.
725 # The default value is: NO.
726
727 WARN_NO_PARAMDOC = NO
728
729 # The WARN_FORMAT tag determines the format of the warning messages that doxygen
730 # can produce. The string should contain the $file, $line, and $text tags, which
731 # will be replaced by the file and line number from which the warning originated
732 # and the warning text. Optionally the format may contain $version, which will
733 # be replaced by the version of the file (if it could be obtained via
734 # FILE_VERSION_FILTER)
735 # The default value is: $file:$line: $text.
736
737 WARN_FORMAT = "$file:$line: $text"
738
739 # The WARN_LOGFILE tag can be used to specify a file to which warning and error
740 # messages should be written. If left blank the output is written to standard
741 # error (stderr).
742
743 WARN_LOGFILE =
744
745 #---------------------------------------------------------------------------
746 # Configuration options related to the input files
747 #---------------------------------------------------------------------------
748
749 # The INPUT tag is used to specify the files and/or directories that contain
750 # documented source files. You may enter file names like myfile.cpp or
751 # directories like /usr/src/myproject. Separate the files or directories with
752 # spaces.
753 # Note: If this tag is empty the current directory is searched.
754
755 INPUT =
756
757 # This tag can be used to specify the character encoding of the source files
758 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
759 # libiconv (or the iconv built into libc) for the transcoding. See the libiconv
760 # documentation (see: http://www.gnu.org/software/libiconv) for the list of
761 # possible encodings.
762 # The default value is: UTF-8.
763
764 INPUT_ENCODING = UTF-8
765
766 # If the value of the INPUT tag contains directories, you can use the
767 # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
768 # *.h) to filter out the source-files in the directories. If left blank the
769 # following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
770 # *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
771 # *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
772 # *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
773 # *.qsf, *.as and *.js.
774
775 FILE_PATTERNS = *.h \
776 *.md
777
778 # The RECURSIVE tag can be used to specify whether or not subdirectories should
779 # be searched for input files as well.
780 # The default value is: NO.
781
782 RECURSIVE = NO
783
784 # The EXCLUDE tag can be used to specify files and/or directories that should be
785 # excluded from the INPUT source files. This way you can easily exclude a
786 # subdirectory from a directory tree whose root is specified with the INPUT tag.
787 #
788 # Note that relative paths are relative to the directory from which doxygen is
789 # run.
790
791 EXCLUDE =
792
793 # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
794 # directories that are symbolic links (a Unix file system feature) are excluded
795 # from the input.
796 # The default value is: NO.
797
798 EXCLUDE_SYMLINKS = NO
799
800 # If the value of the INPUT tag contains directories, you can use the
801 # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
802 # certain files from those directories.
803 #
804 # Note that the wildcards are matched against the file with absolute path, so to
805 # exclude all test directories for example use the pattern */test/*
806
807 EXCLUDE_PATTERNS =
808
809 # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
810 # (namespaces, classes, functions, etc.) that should be excluded from the
811 # output. The symbol name can be a fully qualified name, a word, or if the
812 # wildcard * is used, a substring. Examples: ANamespace, AClass,
813 # AClass::ANamespace, ANamespace::*Test
814 #
815 # Note that the wildcards are matched against the file with absolute path, so to
816 # exclude all test directories use the pattern */test/*
817
818 EXCLUDE_SYMBOLS =
819
820 # The EXAMPLE_PATH tag can be used to specify one or more files or directories
821 # that contain example code fragments that are included (see the \include
822 # command).
823
824 EXAMPLE_PATH =
825
826 # If the value of the EXAMPLE_PATH tag contains directories, you can use the
827 # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
828 # *.h) to filter out the source-files in the directories. If left blank all
829 # files are included.
830
831 EXAMPLE_PATTERNS =
832
833 # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
834 # searched for input files to be used with the \include or \dontinclude commands
835 # irrespective of the value of the RECURSIVE tag.
836 # The default value is: NO.
837
838 EXAMPLE_RECURSIVE = NO
839
840 # The IMAGE_PATH tag can be used to specify one or more files or directories
841 # that contain images that are to be included in the documentation (see the
842 # \image command).
843
844 IMAGE_PATH =
845
846 # The INPUT_FILTER tag can be used to specify a program that doxygen should
847 # invoke to filter for each input file. Doxygen will invoke the filter program
848 # by executing (via popen()) the command:
849 #
850 # <filter> <input-file>
851 #
852 # where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
853 # name of an input file. Doxygen will then use the output that the filter
854 # program writes to standard output. If FILTER_PATTERNS is specified, this tag
855 # will be ignored.
856 #
857 # Note that the filter must not add or remove lines; it is applied before the
858 # code is scanned, but not when the output code is generated. If lines are added
859 # or removed, the anchors will not be placed correctly.
860
861 INPUT_FILTER =
862
863 # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
864 # basis. Doxygen will compare the file name with each pattern and apply the
865 # filter if there is a match. The filters are a list of the form: pattern=filter
866 # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
867 # filters are used. If the FILTER_PATTERNS tag is empty or if none of the
868 # patterns match the file name, INPUT_FILTER is applied.
869
870 FILTER_PATTERNS =
871
872 # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
873 # INPUT_FILTER ) will also be used to filter the input files that are used for
874 # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
875 # The default value is: NO.
876
877 FILTER_SOURCE_FILES = NO
878
879 # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
880 # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
881 # it is also possible to disable source filtering for a specific pattern using
882 # *.ext= (so without naming a filter).
883 # This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
884
885 FILTER_SOURCE_PATTERNS =
886
887 # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
888 # is part of the input, its contents will be placed on the main page
889 # (index.html). This can be useful if you have a project on for instance GitHub
890 # and want to reuse the introduction page also for the doxygen output.
891
892 USE_MDFILE_AS_MAINPAGE = README.md
893
894 #---------------------------------------------------------------------------
895 # Configuration options related to source browsing
896 #---------------------------------------------------------------------------
897
898 # If the SOURCE_BROWSER tag is set to YES then a list of source files will be
899 # generated. Documented entities will be cross-referenced with these sources.
900 #
901 # Note: To get rid of all source code in the generated output, make sure that
902 # also VERBATIM_HEADERS is set to NO.
903 # The default value is: NO.
904
905 SOURCE_BROWSER = NO
906
907 # Setting the INLINE_SOURCES tag to YES will include the body of functions,
908 # classes and enums directly into the documentation.
909 # The default value is: NO.
910
911 INLINE_SOURCES = NO
912
913 # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
914 # special comment blocks from generated source code fragments. Normal C, C++ and
915 # Fortran comments will always remain visible.
916 # The default value is: YES.
917
918 STRIP_CODE_COMMENTS = YES
919
920 # If the REFERENCED_BY_RELATION tag is set to YES then for each documented
921 # function all documented functions referencing it will be listed.
922 # The default value is: NO.
923
924 REFERENCED_BY_RELATION = YES
925
926 # If the REFERENCES_RELATION tag is set to YES then for each documented function
927 # all documented entities called/used by that function will be listed.
928 # The default value is: NO.
929
930 REFERENCES_RELATION = YES
931
932 # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
933 # to YES, then the hyperlinks from functions in REFERENCES_RELATION and
934 # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
935 # link to the documentation.
936 # The default value is: YES.
937
938 REFERENCES_LINK_SOURCE = YES
939
940 # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
941 # source code will show a tooltip with additional information such as prototype,
942 # brief description and links to the definition and documentation. Since this
943 # will make the HTML file larger and loading of large files a bit slower, you
944 # can opt to disable this feature.
945 # The default value is: YES.
946 # This tag requires that the tag SOURCE_BROWSER is set to YES.
947
948 SOURCE_TOOLTIPS = YES
949
950 # If the USE_HTAGS tag is set to YES then the references to source code will
951 # point to the HTML generated by the htags(1) tool instead of doxygen built-in
952 # source browser. The htags tool is part of GNU's global source tagging system
953 # (see http://www.gnu.org/software/global/global.html). You will need version
954 # 4.8.6 or higher.
955 #
956 # To use it do the following:
957 # - Install the latest version of global
958 # - Enable SOURCE_BROWSER and USE_HTAGS in the config file
959 # - Make sure the INPUT points to the root of the source tree
960 # - Run doxygen as normal
961 #
962 # Doxygen will invoke htags (and that will in turn invoke gtags), so these
963 # tools must be available from the command line (i.e. in the search path).
964 #
965 # The result: instead of the source browser generated by doxygen, the links to
966 # source code will now point to the output of htags.
967 # The default value is: NO.
968 # This tag requires that the tag SOURCE_BROWSER is set to YES.
969
970 USE_HTAGS = NO
971
972 # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
973 # verbatim copy of the header file for each class for which an include is
974 # specified. Set to NO to disable this.
975 # See also: Section \class.
976 # The default value is: YES.
977
978 VERBATIM_HEADERS = NO
979
980 # If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the
981 # clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
982 # cost of reduced performance. This can be particularly helpful with template
983 # rich C++ code for which doxygen's built-in parser lacks the necessary type
984 # information.
985 # Note: The availability of this option depends on whether or not doxygen was
986 # compiled with the --with-libclang option.
987 # The default value is: NO.
988
989 #CLANG_ASSISTED_PARSING = NO
990
991 # If clang assisted parsing is enabled you can provide the compiler with command
992 # line options that you would normally use when invoking the compiler. Note that
993 # the include paths will already be set by doxygen for the files and directories
994 # specified with INPUT and INCLUDE_PATH.
995 # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
996
997 #CLANG_OPTIONS =
998
999 #---------------------------------------------------------------------------
1000 # Configuration options related to the alphabetical class index
1001 #---------------------------------------------------------------------------
1002
1003 # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
1004 # compounds will be generated. Enable this if the project contains a lot of
1005 # classes, structs, unions or interfaces.
1006 # The default value is: YES.
1007
1008 ALPHABETICAL_INDEX = NO
1009
1010 # The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
1011 # which the alphabetical index list will be split.
1012 # Minimum value: 1, maximum value: 20, default value: 5.
1013 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
1014
1015 COLS_IN_ALPHA_INDEX = 5
1016
1017 # In case all classes in a project start with a common prefix, all classes will
1018 # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
1019 # can be used to specify a prefix (or a list of prefixes) that should be ignored
1020 # while generating the index headers.
1021 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
1022
1023 IGNORE_PREFIX =
1024
1025 #---------------------------------------------------------------------------
1026 # Configuration options related to the HTML output
1027 #---------------------------------------------------------------------------
1028
1029 # If the GENERATE_HTML tag is set to YES doxygen will generate HTML output
1030 # The default value is: YES.
1031
1032 GENERATE_HTML = YES
1033
1034 # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
1035 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
1036 # it.
1037 # The default directory is: html.
1038 # This tag requires that the tag GENERATE_HTML is set to YES.
1039
1040 HTML_OUTPUT = html
1041
1042 # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
1043 # generated HTML page (for example: .htm, .php, .asp).
1044 # The default value is: .html.
1045 # This tag requires that the tag GENERATE_HTML is set to YES.
1046
1047 HTML_FILE_EXTENSION = .html
1048
1049 # The HTML_HEADER tag can be used to specify a user-defined HTML header file for
1050 # each generated HTML page. If the tag is left blank doxygen will generate a
1051 # standard header.
1052 #
1053 # To get valid HTML the header file that includes any scripts and style sheets
1054 # that doxygen needs, which is dependent on the configuration options used (e.g.
1055 # the setting GENERATE_TREEVIEW). It is highly recommended to start with a
1056 # default header using
1057 # doxygen -w html new_header.html new_footer.html new_stylesheet.css
1058 # YourConfigFile
1059 # and then modify the file new_header.html. See also section "Doxygen usage"
1060 # for information on how to generate the default header that doxygen normally
1061 # uses.
1062 # Note: The header is subject to change so you typically have to regenerate the
1063 # default header when upgrading to a newer version of doxygen. For a description
1064 # of the possible markers and block names see the documentation.
1065 # This tag requires that the tag GENERATE_HTML is set to YES.
1066
1067 HTML_HEADER =
1068
1069 # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
1070 # generated HTML page. If the tag is left blank doxygen will generate a standard
1071 # footer. See HTML_HEADER for more information on how to generate a default
1072 # footer and what special commands can be used inside the footer. See also
1073 # section "Doxygen usage" for information on how to generate the default footer
1074 # that doxygen normally uses.
1075 # This tag requires that the tag GENERATE_HTML is set to YES.
1076
1077 HTML_FOOTER =
1078
1079 # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
1080 # sheet that is used by each HTML page. It can be used to fine-tune the look of
1081 # the HTML output. If left blank doxygen will generate a default style sheet.
1082 # See also section "Doxygen usage" for information on how to generate the style
1083 # sheet that doxygen normally uses.
1084 # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
1085 # it is more robust and this tag (HTML_STYLESHEET) will in the future become
1086 # obsolete.
1087 # This tag requires that the tag GENERATE_HTML is set to YES.
1088
1089 HTML_STYLESHEET =
1090
1091 # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
1092 # cascading style sheets that are included after the standard style sheets
1093 # created by doxygen. Using this option one can overrule certain style aspects.
1094 # This is preferred over using HTML_STYLESHEET since it does not replace the
1095 # standard style sheet and is therefor more robust against future updates.
1096 # Doxygen will copy the style sheet files to the output directory.
1097 # Note: The order of the extra stylesheet files is of importance (e.g. the last
1098 # stylesheet in the list overrules the setting of the previous ones in the
1099 # list). For an example see the documentation.
1100 # This tag requires that the tag GENERATE_HTML is set to YES.
1101
1102 HTML_EXTRA_STYLESHEET =
1103
1104 # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
1105 # other source files which should be copied to the HTML output directory. Note
1106 # that these files will be copied to the base HTML output directory. Use the
1107 # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
1108 # files. In the HTML_STYLESHEET file, use the file name only. Also note that the
1109 # files will be copied as-is; there are no commands or markers available.
1110 # This tag requires that the tag GENERATE_HTML is set to YES.
1111
1112 HTML_EXTRA_FILES =
1113
1114 # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
1115 # will adjust the colors in the stylesheet and background images according to
1116 # this color. Hue is specified as an angle on a colorwheel, see
1117 # http://en.wikipedia.org/wiki/Hue for more information. For instance the value
1118 # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
1119 # purple, and 360 is red again.
1120 # Minimum value: 0, maximum value: 359, default value: 220.
1121 # This tag requires that the tag GENERATE_HTML is set to YES.
1122
1123 HTML_COLORSTYLE_HUE = 220
1124
1125 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
1126 # in the HTML output. For a value of 0 the output will use grayscales only. A
1127 # value of 255 will produce the most vivid colors.
1128 # Minimum value: 0, maximum value: 255, default value: 100.
1129 # This tag requires that the tag GENERATE_HTML is set to YES.
1130
1131 HTML_COLORSTYLE_SAT = 100
1132
1133 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
1134 # luminance component of the colors in the HTML output. Values below 100
1135 # gradually make the output lighter, whereas values above 100 make the output
1136 # darker. The value divided by 100 is the actual gamma applied, so 80 represents
1137 # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
1138 # change the gamma.
1139 # Minimum value: 40, maximum value: 240, default value: 80.
1140 # This tag requires that the tag GENERATE_HTML is set to YES.
1141
1142 HTML_COLORSTYLE_GAMMA = 80
1143
1144 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
1145 # page will contain the date and time when the page was generated. Setting this
1146 # to NO can help when comparing the output of multiple runs.
1147 # The default value is: YES.
1148 # This tag requires that the tag GENERATE_HTML is set to YES.
1149
1150 HTML_TIMESTAMP = YES
1151
1152 # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
1153 # documentation will contain sections that can be hidden and shown after the
1154 # page has loaded.
1155 # The default value is: NO.
1156 # This tag requires that the tag GENERATE_HTML is set to YES.
1157
1158 HTML_DYNAMIC_SECTIONS = NO
1159
1160 # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
1161 # shown in the various tree structured indices initially; the user can expand
1162 # and collapse entries dynamically later on. Doxygen will expand the tree to
1163 # such a level that at most the specified number of entries are visible (unless
1164 # a fully collapsed tree already exceeds this amount). So setting the number of
1165 # entries 1 will produce a full collapsed tree by default. 0 is a special value
1166 # representing an infinite number of entries and will result in a full expanded
1167 # tree by default.
1168 # Minimum value: 0, maximum value: 9999, default value: 100.
1169 # This tag requires that the tag GENERATE_HTML is set to YES.
1170
1171 HTML_INDEX_NUM_ENTRIES = 100
1172
1173 # If the GENERATE_DOCSET tag is set to YES, additional index files will be
1174 # generated that can be used as input for Apple's Xcode 3 integrated development
1175 # environment (see: http://developer.apple.com/tools/xcode/), introduced with
1176 # OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
1177 # Makefile in the HTML output directory. Running make will produce the docset in
1178 # that directory and running make install will install the docset in
1179 # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
1180 # startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
1181 # for more information.
1182 # The default value is: NO.
1183 # This tag requires that the tag GENERATE_HTML is set to YES.
1184
1185 GENERATE_DOCSET = NO
1186
1187 # This tag determines the name of the docset feed. A documentation feed provides
1188 # an umbrella under which multiple documentation sets from a single provider
1189 # (such as a company or product suite) can be grouped.
1190 # The default value is: Doxygen generated docs.
1191 # This tag requires that the tag GENERATE_DOCSET is set to YES.
1192
1193 DOCSET_FEEDNAME = "Doxygen generated docs"
1194
1195 # This tag specifies a string that should uniquely identify the documentation
1196 # set bundle. This should be a reverse domain-name style string, e.g.
1197 # com.mycompany.MyDocSet. Doxygen will append .docset to the name.
1198 # The default value is: org.doxygen.Project.
1199 # This tag requires that the tag GENERATE_DOCSET is set to YES.
1200
1201 DOCSET_BUNDLE_ID = org.doxygen.Project
1202
1203 # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
1204 # the documentation publisher. This should be a reverse domain-name style
1205 # string, e.g. com.mycompany.MyDocSet.documentation.
1206 # The default value is: org.doxygen.Publisher.
1207 # This tag requires that the tag GENERATE_DOCSET is set to YES.
1208
1209 DOCSET_PUBLISHER_ID = org.doxygen.Publisher
1210
1211 # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
1212 # The default value is: Publisher.
1213 # This tag requires that the tag GENERATE_DOCSET is set to YES.
1214
1215 DOCSET_PUBLISHER_NAME = Publisher
1216
1217 # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
1218 # additional HTML index files: index.hhp, index.hhc, and index.hhk. The
1219 # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
1220 # (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
1221 # Windows.
1222 #
1223 # The HTML Help Workshop contains a compiler that can convert all HTML output
1224 # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
1225 # files are now used as the Windows 98 help format, and will replace the old
1226 # Windows help format (.hlp) on all Windows platforms in the future. Compressed
1227 # HTML files also contain an index, a table of contents, and you can search for
1228 # words in the documentation. The HTML workshop also contains a viewer for
1229 # compressed HTML files.
1230 # The default value is: NO.
1231 # This tag requires that the tag GENERATE_HTML is set to YES.
1232
1233 GENERATE_HTMLHELP = NO
1234
1235 # The CHM_FILE tag can be used to specify the file name of the resulting .chm
1236 # file. You can add a path in front of the file if the result should not be
1237 # written to the html output directory.
1238 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
1239
1240 CHM_FILE =
1241
1242 # The HHC_LOCATION tag can be used to specify the location (absolute path
1243 # including file name) of the HTML help compiler ( hhc.exe). If non-empty
1244 # doxygen will try to run the HTML help compiler on the generated index.hhp.
1245 # The file has to be specified with full path.
1246 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
1247
1248 HHC_LOCATION =
1249
1250 # The GENERATE_CHI flag controls if a separate .chi index file is generated (
1251 # YES) or that it should be included in the master .chm file ( NO).
1252 # The default value is: NO.
1253 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
1254
1255 GENERATE_CHI = NO
1256
1257 # The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc)
1258 # and project file content.
1259 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
1260
1261 CHM_INDEX_ENCODING =
1262
1263 # The BINARY_TOC flag controls whether a binary table of contents is generated (
1264 # YES) or a normal table of contents ( NO) in the .chm file. Furthermore it
1265 # enables the Previous and Next buttons.
1266 # The default value is: NO.
1267 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
1268
1269 BINARY_TOC = NO
1270
1271 # The TOC_EXPAND flag can be set to YES to add extra items for group members to
1272 # the table of contents of the HTML help documentation and to the tree view.
1273 # The default value is: NO.
1274 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
1275
1276 TOC_EXPAND = NO
1277
1278 # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
1279 # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
1280 # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
1281 # (.qch) of the generated HTML documentation.
1282 # The default value is: NO.
1283 # This tag requires that the tag GENERATE_HTML is set to YES.
1284
1285 GENERATE_QHP = NO
1286
1287 # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
1288 # the file name of the resulting .qch file. The path specified is relative to
1289 # the HTML output folder.
1290 # This tag requires that the tag GENERATE_QHP is set to YES.
1291
1292 QCH_FILE =
1293
1294 # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
1295 # Project output. For more information please see Qt Help Project / Namespace
1296 # (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
1297 # The default value is: org.doxygen.Project.
1298 # This tag requires that the tag GENERATE_QHP is set to YES.
1299
1300 QHP_NAMESPACE = org.doxygen.Project
1301
1302 # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
1303 # Help Project output. For more information please see Qt Help Project / Virtual
1304 # Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
1305 # folders).
1306 # The default value is: doc.
1307 # This tag requires that the tag GENERATE_QHP is set to YES.
1308
1309 QHP_VIRTUAL_FOLDER = doc
1310
1311 # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
1312 # filter to add. For more information please see Qt Help Project / Custom
1313 # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
1314 # filters).
1315 # This tag requires that the tag GENERATE_QHP is set to YES.
1316
1317 QHP_CUST_FILTER_NAME =
1318
1319 # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
1320 # custom filter to add. For more information please see Qt Help Project / Custom
1321 # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
1322 # filters).
1323 # This tag requires that the tag GENERATE_QHP is set to YES.
1324
1325 QHP_CUST_FILTER_ATTRS =
1326
1327 # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
1328 # project's filter section matches. Qt Help Project / Filter Attributes (see:
1329 # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
1330 # This tag requires that the tag GENERATE_QHP is set to YES.
1331
1332 QHP_SECT_FILTER_ATTRS =
1333
1334 # The QHG_LOCATION tag can be used to specify the location of Qt's
1335 # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
1336 # generated .qhp file.
1337 # This tag requires that the tag GENERATE_QHP is set to YES.
1338
1339 QHG_LOCATION =
1340
1341 # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
1342 # generated, together with the HTML files, they form an Eclipse help plugin. To
1343 # install this plugin and make it available under the help contents menu in
1344 # Eclipse, the contents of the directory containing the HTML and XML files needs
1345 # to be copied into the plugins directory of eclipse. The name of the directory
1346 # within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
1347 # After copying Eclipse needs to be restarted before the help appears.
1348 # The default value is: NO.
1349 # This tag requires that the tag GENERATE_HTML is set to YES.
1350
1351 GENERATE_ECLIPSEHELP = NO
1352
1353 # A unique identifier for the Eclipse help plugin. When installing the plugin
1354 # the directory name containing the HTML and XML files should also have this
1355 # name. Each documentation set should have its own identifier.
1356 # The default value is: org.doxygen.Project.
1357 # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
1358
1359 ECLIPSE_DOC_ID = org.doxygen.Project
1360
1361 # If you want full control over the layout of the generated HTML pages it might
1362 # be necessary to disable the index and replace it with your own. The
1363 # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
1364 # of each HTML page. A value of NO enables the index and the value YES disables
1365 # it. Since the tabs in the index contain the same information as the navigation
1366 # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
1367 # The default value is: NO.
1368 # This tag requires that the tag GENERATE_HTML is set to YES.
1369
1370 DISABLE_INDEX = NO
1371
1372 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
1373 # structure should be generated to display hierarchical information. If the tag
1374 # value is set to YES, a side panel will be generated containing a tree-like
1375 # index structure (just like the one that is generated for HTML Help). For this
1376 # to work a browser that supports JavaScript, DHTML, CSS and frames is required
1377 # (i.e. any modern browser). Windows users are probably better off using the
1378 # HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can
1379 # further fine-tune the look of the index. As an example, the default style
1380 # sheet generated by doxygen has an example that shows how to put an image at
1381 # the root of the tree instead of the PROJECT_NAME. Since the tree basically has
1382 # the same information as the tab index, you could consider setting
1383 # DISABLE_INDEX to YES when enabling this option.
1384 # The default value is: NO.
1385 # This tag requires that the tag GENERATE_HTML is set to YES.
1386
1387 GENERATE_TREEVIEW = NO
1388
1389 # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
1390 # doxygen will group on one line in the generated HTML documentation.
1391 #
1392 # Note that a value of 0 will completely suppress the enum values from appearing
1393 # in the overview section.
1394 # Minimum value: 0, maximum value: 20, default value: 4.
1395 # This tag requires that the tag GENERATE_HTML is set to YES.
1396
1397 ENUM_VALUES_PER_LINE = 4
1398
1399 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
1400 # to set the initial width (in pixels) of the frame in which the tree is shown.
1401 # Minimum value: 0, maximum value: 1500, default value: 250.
1402 # This tag requires that the tag GENERATE_HTML is set to YES.
1403
1404 TREEVIEW_WIDTH = 250
1405
1406 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to
1407 # external symbols imported via tag files in a separate window.
1408 # The default value is: NO.
1409 # This tag requires that the tag GENERATE_HTML is set to YES.
1410
1411 EXT_LINKS_IN_WINDOW = NO
1412
1413 # Use this tag to change the font size of LaTeX formulas included as images in
1414 # the HTML documentation. When you change the font size after a successful
1415 # doxygen run you need to manually remove any form_*.png images from the HTML
1416 # output directory to force them to be regenerated.
1417 # Minimum value: 8, maximum value: 50, default value: 10.
1418 # This tag requires that the tag GENERATE_HTML is set to YES.
1419
1420 FORMULA_FONTSIZE = 10
1421
1422 # Use the FORMULA_TRANPARENT tag to determine whether or not the images
1423 # generated for formulas are transparent PNGs. Transparent PNGs are not
1424 # supported properly for IE 6.0, but are supported on all modern browsers.
1425 #
1426 # Note that when changing this option you need to delete any form_*.png files in
1427 # the HTML output directory before the changes have effect.
1428 # The default value is: YES.
1429 # This tag requires that the tag GENERATE_HTML is set to YES.
1430
1431 FORMULA_TRANSPARENT = YES
1432
1433 # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
1434 # http://www.mathjax.org) which uses client side Javascript for the rendering
1435 # instead of using prerendered bitmaps. Use this if you do not have LaTeX
1436 # installed or if you want to formulas look prettier in the HTML output. When
1437 # enabled you may also need to install MathJax separately and configure the path
1438 # to it using the MATHJAX_RELPATH option.
1439 # The default value is: NO.
1440 # This tag requires that the tag GENERATE_HTML is set to YES.
1441
1442 USE_MATHJAX = NO
1443
1444 # When MathJax is enabled you can set the default output format to be used for
1445 # the MathJax output. See the MathJax site (see:
1446 # http://docs.mathjax.org/en/latest/output.html) for more details.
1447 # Possible values are: HTML-CSS (which is slower, but has the best
1448 # compatibility), NativeMML (i.e. MathML) and SVG.
1449 # The default value is: HTML-CSS.
1450 # This tag requires that the tag USE_MATHJAX is set to YES.
1451
1452 MATHJAX_FORMAT = HTML-CSS
1453
1454 # When MathJax is enabled you need to specify the location relative to the HTML
1455 # output directory using the MATHJAX_RELPATH option. The destination directory
1456 # should contain the MathJax.js script. For instance, if the mathjax directory
1457 # is located at the same level as the HTML output directory, then
1458 # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
1459 # Content Delivery Network so you can quickly see the result without installing
1460 # MathJax. However, it is strongly recommended to install a local copy of
1461 # MathJax from http://www.mathjax.org before deployment.
1462 # The default value is: http://cdn.mathjax.org/mathjax/latest.
1463 # This tag requires that the tag USE_MATHJAX is set to YES.
1464
1465 MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
1466
1467 # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
1468 # extension names that should be enabled during MathJax rendering. For example
1469 # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
1470 # This tag requires that the tag USE_MATHJAX is set to YES.
1471
1472 MATHJAX_EXTENSIONS =
1473
1474 # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
1475 # of code that will be used on startup of the MathJax code. See the MathJax site
1476 # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
1477 # example see the documentation.
1478 # This tag requires that the tag USE_MATHJAX is set to YES.
1479
1480 MATHJAX_CODEFILE =
1481
1482 # When the SEARCHENGINE tag is enabled doxygen will generate a search box for
1483 # the HTML output. The underlying search engine uses javascript and DHTML and
1484 # should work on any modern browser. Note that when using HTML help
1485 # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
1486 # there is already a search function so this one should typically be disabled.
1487 # For large projects the javascript based search engine can be slow, then
1488 # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
1489 # search using the keyboard; to jump to the search box use <access key> + S
1490 # (what the <access key> is depends on the OS and browser, but it is typically
1491 # <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
1492 # key> to jump into the search results window, the results can be navigated
1493 # using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
1494 # the search. The filter options can be selected when the cursor is inside the
1495 # search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
1496 # to select a filter and <Enter> or <escape> to activate or cancel the filter
1497 # option.
1498 # The default value is: YES.
1499 # This tag requires that the tag GENERATE_HTML is set to YES.
1500
1501 SEARCHENGINE = NO
1502
1503 # When the SERVER_BASED_SEARCH tag is enabled the search engine will be
1504 # implemented using a web server instead of a web client using Javascript. There
1505 # are two flavors of web server based searching depending on the EXTERNAL_SEARCH
1506 # setting. When disabled, doxygen will generate a PHP script for searching and
1507 # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
1508 # and searching needs to be provided by external tools. See the section
1509 # "External Indexing and Searching" for details.
1510 # The default value is: NO.
1511 # This tag requires that the tag SEARCHENGINE is set to YES.
1512
1513 SERVER_BASED_SEARCH = NO
1514
1515 # When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
1516 # script for searching. Instead the search results are written to an XML file
1517 # which needs to be processed by an external indexer. Doxygen will invoke an
1518 # external search engine pointed to by the SEARCHENGINE_URL option to obtain the
1519 # search results.
1520 #
1521 # Doxygen ships with an example indexer ( doxyindexer) and search engine
1522 # (doxysearch.cgi) which are based on the open source search engine library
1523 # Xapian (see: http://xapian.org/).
1524 #
1525 # See the section "External Indexing and Searching" for details.
1526 # The default value is: NO.
1527 # This tag requires that the tag SEARCHENGINE is set to YES.
1528
1529 EXTERNAL_SEARCH = NO
1530
1531 # The SEARCHENGINE_URL should point to a search engine hosted by a web server
1532 # which will return the search results when EXTERNAL_SEARCH is enabled.
1533 #
1534 # Doxygen ships with an example indexer ( doxyindexer) and search engine
1535 # (doxysearch.cgi) which are based on the open source search engine library
1536 # Xapian (see: http://xapian.org/). See the section "External Indexing and
1537 # Searching" for details.
1538 # This tag requires that the tag SEARCHENGINE is set to YES.
1539
1540 SEARCHENGINE_URL =
1541
1542 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
1543 # search data is written to a file for indexing by an external tool. With the
1544 # SEARCHDATA_FILE tag the name of this file can be specified.
1545 # The default file is: searchdata.xml.
1546 # This tag requires that the tag SEARCHENGINE is set to YES.
1547
1548 SEARCHDATA_FILE = searchdata.xml
1549
1550 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
1551 # EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
1552 # useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
1553 # projects and redirect the results back to the right project.
1554 # This tag requires that the tag SEARCHENGINE is set to YES.
1555
1556 EXTERNAL_SEARCH_ID =
1557
1558 # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
1559 # projects other than the one defined by this configuration file, but that are
1560 # all added to the same external search index. Each project needs to have a
1561 # unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
1562 # to a relative location where the documentation can be found. The format is:
1563 # EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
1564 # This tag requires that the tag SEARCHENGINE is set to YES.
1565
1566 EXTRA_SEARCH_MAPPINGS =
1567
1568 #---------------------------------------------------------------------------
1569 # Configuration options related to the LaTeX output
1570 #---------------------------------------------------------------------------
1571
1572 # If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output.
1573 # The default value is: YES.
1574
1575 GENERATE_LATEX = NO
1576
1577 # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
1578 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
1579 # it.
1580 # The default directory is: latex.
1581 # This tag requires that the tag GENERATE_LATEX is set to YES.
1582
1583 LATEX_OUTPUT = latex
1584
1585 # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
1586 # invoked.
1587 #
1588 # Note that when enabling USE_PDFLATEX this option is only used for generating
1589 # bitmaps for formulas in the HTML output, but not in the Makefile that is
1590 # written to the output directory.
1591 # The default file is: latex.
1592 # This tag requires that the tag GENERATE_LATEX is set to YES.
1593
1594 LATEX_CMD_NAME = latex
1595
1596 # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
1597 # index for LaTeX.
1598 # The default file is: makeindex.
1599 # This tag requires that the tag GENERATE_LATEX is set to YES.
1600
1601 MAKEINDEX_CMD_NAME = makeindex
1602
1603 # If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX
1604 # documents. This may be useful for small projects and may help to save some
1605 # trees in general.
1606 # The default value is: NO.
1607 # This tag requires that the tag GENERATE_LATEX is set to YES.
1608
1609 COMPACT_LATEX = NO
1610
1611 # The PAPER_TYPE tag can be used to set the paper type that is used by the
1612 # printer.
1613 # Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
1614 # 14 inches) and executive (7.25 x 10.5 inches).
1615 # The default value is: a4.
1616 # This tag requires that the tag GENERATE_LATEX is set to YES.
1617
1618 PAPER_TYPE = a4wide
1619
1620 # The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
1621 # that should be included in the LaTeX output. To get the times font for
1622 # instance you can specify
1623 # EXTRA_PACKAGES=times
1624 # If left blank no extra packages will be included.
1625 # This tag requires that the tag GENERATE_LATEX is set to YES.
1626
1627 EXTRA_PACKAGES =
1628
1629 # The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
1630 # generated LaTeX document. The header should contain everything until the first
1631 # chapter. If it is left blank doxygen will generate a standard header. See
1632 # section "Doxygen usage" for information on how to let doxygen write the
1633 # default header to a separate file.
1634 #
1635 # Note: Only use a user-defined header if you know what you are doing! The
1636 # following commands have a special meaning inside the header: $title,
1637 # $datetime, $date, $doxygenversion, $projectname, $projectnumber,
1638 # $projectbrief, $projectlogo. Doxygen will replace $title with the empy string,
1639 # for the replacement values of the other commands the user is refered to
1640 # HTML_HEADER.
1641 # This tag requires that the tag GENERATE_LATEX is set to YES.
1642
1643 LATEX_HEADER =
1644
1645 # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
1646 # generated LaTeX document. The footer should contain everything after the last
1647 # chapter. If it is left blank doxygen will generate a standard footer. See
1648 # LATEX_HEADER for more information on how to generate a default footer and what
1649 # special commands can be used inside the footer.
1650 #
1651 # Note: Only use a user-defined footer if you know what you are doing!
1652 # This tag requires that the tag GENERATE_LATEX is set to YES.
1653
1654 LATEX_FOOTER =
1655
1656 # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
1657 # other source files which should be copied to the LATEX_OUTPUT output
1658 # directory. Note that the files will be copied as-is; there are no commands or
1659 # markers available.
1660 # This tag requires that the tag GENERATE_LATEX is set to YES.
1661
1662 LATEX_EXTRA_FILES =
1663
1664 # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
1665 # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
1666 # contain links (just like the HTML output) instead of page references. This
1667 # makes the output suitable for online browsing using a PDF viewer.
1668 # The default value is: YES.
1669 # This tag requires that the tag GENERATE_LATEX is set to YES.
1670
1671 PDF_HYPERLINKS = NO
1672
1673 # If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
1674 # the PDF file directly from the LaTeX files. Set this option to YES to get a
1675 # higher quality PDF documentation.
1676 # The default value is: YES.
1677 # This tag requires that the tag GENERATE_LATEX is set to YES.
1678
1679 USE_PDFLATEX = NO
1680
1681 # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
1682 # command to the generated LaTeX files. This will instruct LaTeX to keep running
1683 # if errors occur, instead of asking the user for help. This option is also used
1684 # when generating formulas in HTML.
1685 # The default value is: NO.
1686 # This tag requires that the tag GENERATE_LATEX is set to YES.
1687
1688 LATEX_BATCHMODE = NO
1689
1690 # If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
1691 # index chapters (such as File Index, Compound Index, etc.) in the output.
1692 # The default value is: NO.
1693 # This tag requires that the tag GENERATE_LATEX is set to YES.
1694
1695 LATEX_HIDE_INDICES = NO
1696
1697 # If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
1698 # code with syntax highlighting in the LaTeX output.
1699 #
1700 # Note that which sources are shown also depends on other settings such as
1701 # SOURCE_BROWSER.
1702 # The default value is: NO.
1703 # This tag requires that the tag GENERATE_LATEX is set to YES.
1704
1705 LATEX_SOURCE_CODE = NO
1706
1707 # The LATEX_BIB_STYLE tag can be used to specify the style to use for the
1708 # bibliography, e.g. plainnat, or ieeetr. See
1709 # http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
1710 # The default value is: plain.
1711 # This tag requires that the tag GENERATE_LATEX is set to YES.
1712
1713 LATEX_BIB_STYLE = plain
1714
1715 #---------------------------------------------------------------------------
1716 # Configuration options related to the RTF output
1717 #---------------------------------------------------------------------------
1718
1719 # If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The
1720 # RTF output is optimized for Word 97 and may not look too pretty with other RTF
1721 # readers/editors.
1722 # The default value is: NO.
1723
1724 GENERATE_RTF = NO
1725
1726 # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
1727 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
1728 # it.
1729 # The default directory is: rtf.
1730 # This tag requires that the tag GENERATE_RTF is set to YES.
1731
1732 RTF_OUTPUT = rtf
1733
1734 # If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF
1735 # documents. This may be useful for small projects and may help to save some
1736 # trees in general.
1737 # The default value is: NO.
1738 # This tag requires that the tag GENERATE_RTF is set to YES.
1739
1740 COMPACT_RTF = NO
1741
1742 # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
1743 # contain hyperlink fields. The RTF file will contain links (just like the HTML
1744 # output) instead of page references. This makes the output suitable for online
1745 # browsing using Word or some other Word compatible readers that support those
1746 # fields.
1747 #
1748 # Note: WordPad (write) and others do not support links.
1749 # The default value is: NO.
1750 # This tag requires that the tag GENERATE_RTF is set to YES.
1751
1752 RTF_HYPERLINKS = NO
1753
1754 # Load stylesheet definitions from file. Syntax is similar to doxygen's config
1755 # file, i.e. a series of assignments. You only have to provide replacements,
1756 # missing definitions are set to their default value.
1757 #
1758 # See also section "Doxygen usage" for information on how to generate the
1759 # default style sheet that doxygen normally uses.
1760 # This tag requires that the tag GENERATE_RTF is set to YES.
1761
1762 RTF_STYLESHEET_FILE =
1763
1764 # Set optional variables used in the generation of an RTF document. Syntax is
1765 # similar to doxygen's config file. A template extensions file can be generated
1766 # using doxygen -e rtf extensionFile.
1767 # This tag requires that the tag GENERATE_RTF is set to YES.
1768
1769 RTF_EXTENSIONS_FILE =
1770
1771 #---------------------------------------------------------------------------
1772 # Configuration options related to the man page output
1773 #---------------------------------------------------------------------------
1774
1775 # If the GENERATE_MAN tag is set to YES doxygen will generate man pages for
1776 # classes and files.
1777 # The default value is: NO.
1778
1779 GENERATE_MAN = NO
1780
1781 # The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
1782 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
1783 # it. A directory man3 will be created inside the directory specified by
1784 # MAN_OUTPUT.
1785 # The default directory is: man.
1786 # This tag requires that the tag GENERATE_MAN is set to YES.
1787
1788 MAN_OUTPUT = man
1789
1790 # The MAN_EXTENSION tag determines the extension that is added to the generated
1791 # man pages. In case the manual section does not start with a number, the number
1792 # 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
1793 # optional.
1794 # The default value is: .3.
1795 # This tag requires that the tag GENERATE_MAN is set to YES.
1796
1797 MAN_EXTENSION = .3
1798
1799 # The MAN_SUBDIR tag determines the name of the directory created within
1800 # MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
1801 # MAN_EXTENSION with the initial . removed.
1802 # This tag requires that the tag GENERATE_MAN is set to YES.
1803
1804 MAN_SUBDIR =
1805
1806 # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
1807 # will generate one additional man file for each entity documented in the real
1808 # man page(s). These additional files only source the real man page, but without
1809 # them the man command would be unable to find the correct page.
1810 # The default value is: NO.
1811 # This tag requires that the tag GENERATE_MAN is set to YES.
1812
1813 MAN_LINKS = NO
1814
1815 #---------------------------------------------------------------------------
1816 # Configuration options related to the XML output
1817 #---------------------------------------------------------------------------
1818
1819 # If the GENERATE_XML tag is set to YES doxygen will generate an XML file that
1820 # captures the structure of the code including all documentation.
1821 # The default value is: NO.
1822
1823 GENERATE_XML = NO
1824
1825 # The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
1826 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
1827 # it.
1828 # The default directory is: xml.
1829 # This tag requires that the tag GENERATE_XML is set to YES.
1830
1831 XML_OUTPUT = xml
1832
1833 # If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program
1834 # listings (including syntax highlighting and cross-referencing information) to
1835 # the XML output. Note that enabling this will significantly increase the size
1836 # of the XML output.
1837 # The default value is: YES.
1838 # This tag requires that the tag GENERATE_XML is set to YES.
1839
1840 XML_PROGRAMLISTING = YES
1841
1842 #---------------------------------------------------------------------------
1843 # Configuration options related to the DOCBOOK output
1844 #---------------------------------------------------------------------------
1845
1846 # If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files
1847 # that can be used to generate PDF.
1848 # The default value is: NO.
1849
1850 GENERATE_DOCBOOK = NO
1851
1852 # The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
1853 # If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
1854 # front of it.
1855 # The default directory is: docbook.
1856 # This tag requires that the tag GENERATE_DOCBOOK is set to YES.
1857
1858 DOCBOOK_OUTPUT = docbook
1859
1860 # If the DOCBOOK_PROGRAMLISTING tag is set to YES doxygen will include the
1861 # program listings (including syntax highlighting and cross-referencing
1862 # information) to the DOCBOOK output. Note that enabling this will significantly
1863 # increase the size of the DOCBOOK output.
1864 # The default value is: NO.
1865 # This tag requires that the tag GENERATE_DOCBOOK is set to YES.
1866
1867 DOCBOOK_PROGRAMLISTING = NO
1868
1869 #---------------------------------------------------------------------------
1870 # Configuration options for the AutoGen Definitions output
1871 #---------------------------------------------------------------------------
1872
1873 # If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen
1874 # Definitions (see http://autogen.sf.net) file that captures the structure of
1875 # the code including all documentation. Note that this feature is still
1876 # experimental and incomplete at the moment.
1877 # The default value is: NO.
1878
1879 GENERATE_AUTOGEN_DEF = NO
1880
1881 #---------------------------------------------------------------------------
1882 # Configuration options related to the Perl module output
1883 #---------------------------------------------------------------------------
1884
1885 # If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module
1886 # file that captures the structure of the code including all documentation.
1887 #
1888 # Note that this feature is still experimental and incomplete at the moment.
1889 # The default value is: NO.
1890
1891 GENERATE_PERLMOD = NO
1892
1893 # If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary
1894 # Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
1895 # output from the Perl module output.
1896 # The default value is: NO.
1897 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
1898
1899 PERLMOD_LATEX = NO
1900
1901 # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely
1902 # formatted so it can be parsed by a human reader. This is useful if you want to
1903 # understand what is going on. On the other hand, if this tag is set to NO the
1904 # size of the Perl module output will be much smaller and Perl will parse it
1905 # just the same.
1906 # The default value is: YES.
1907 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
1908
1909 PERLMOD_PRETTY = YES
1910
1911 # The names of the make variables in the generated doxyrules.make file are
1912 # prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
1913 # so different doxyrules.make files included by the same Makefile don't
1914 # overwrite each other's variables.
1915 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
1916
1917 PERLMOD_MAKEVAR_PREFIX =
1918
1919 #---------------------------------------------------------------------------
1920 # Configuration options related to the preprocessor
1921 #---------------------------------------------------------------------------
1922
1923 # If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all
1924 # C-preprocessor directives found in the sources and include files.
1925 # The default value is: YES.
1926
1927 ENABLE_PREPROCESSING = YES
1928
1929 # If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names
1930 # in the source code. If set to NO only conditional compilation will be
1931 # performed. Macro expansion can be done in a controlled way by setting
1932 # EXPAND_ONLY_PREDEF to YES.
1933 # The default value is: NO.
1934 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
1935
1936 MACRO_EXPANSION = YES
1937
1938 # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
1939 # the macro expansion is limited to the macros specified with the PREDEFINED and
1940 # EXPAND_AS_DEFINED tags.
1941 # The default value is: NO.
1942 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
1943
1944 EXPAND_ONLY_PREDEF = YES
1945
1946 # If the SEARCH_INCLUDES tag is set to YES the includes files in the
1947 # INCLUDE_PATH will be searched if a #include is found.
1948 # The default value is: YES.
1949 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
1950
1951 SEARCH_INCLUDES = YES
1952
1953 # The INCLUDE_PATH tag can be used to specify one or more directories that
1954 # contain include files that are not input files but should be processed by the
1955 # preprocessor.
1956 # This tag requires that the tag SEARCH_INCLUDES is set to YES.
1957
1958 INCLUDE_PATH =
1959
1960 # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
1961 # patterns (like *.h and *.hpp) to filter out the header-files in the
1962 # directories. If left blank, the patterns specified with FILE_PATTERNS will be
1963 # used.
1964 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
1965
1966 INCLUDE_FILE_PATTERNS =
1967
1968 # The PREDEFINED tag can be used to specify one or more macro names that are
1969 # defined before the preprocessor is started (similar to the -D option of e.g.
1970 # gcc). The argument of the tag is a list of macros of the form: name or
1971 # name=definition (no spaces). If the definition and the "=" are omitted, "=1"
1972 # is assumed. To prevent a macro definition from being undefined via #undef or
1973 # recursively expanded use the := operator instead of the = operator.
1974 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
1975
1976 PREDEFINED = THIS_FUNCTION_IS_DEPRECATED(f)=f
1977
1978 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
1979 # tag can be used to specify a list of macro names that should be expanded. The
1980 # macro definition that is found in the sources will be used. Use the PREDEFINED
1981 # tag if you want to use a different macro definition that overrules the
1982 # definition found in the source code.
1983 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
1984
1985 EXPAND_AS_DEFINED =
1986
1987 # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
1988 # remove all references to function-like macros that are alone on a line, have
1989 # an all uppercase name, and do not end with a semicolon. Such function macros
1990 # are typically used for boiler-plate code, and will confuse the parser if not
1991 # removed.
1992 # The default value is: YES.
1993 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
1994
1995 SKIP_FUNCTION_MACROS = YES
1996
1997 #---------------------------------------------------------------------------
1998 # Configuration options related to external references
1999 #---------------------------------------------------------------------------
2000
2001 # The TAGFILES tag can be used to specify one or more tag files. For each tag
2002 # file the location of the external documentation should be added. The format of
2003 # a tag file without this location is as follows:
2004 # TAGFILES = file1 file2 ...
2005 # Adding location for the tag files is done as follows:
2006 # TAGFILES = file1=loc1 "file2 = loc2" ...
2007 # where loc1 and loc2 can be relative or absolute paths or URLs. See the
2008 # section "Linking to external documentation" for more information about the use
2009 # of tag files.
2010 # Note: Each tag file must have a unique name (where the name does NOT include
2011 # the path). If a tag file is not located in the directory in which doxygen is
2012 # run, you must also specify the path to the tagfile here.
2013
2014 TAGFILES =
2015
2016 # When a file name is specified after GENERATE_TAGFILE, doxygen will create a
2017 # tag file that is based on the input files it reads. See section "Linking to
2018 # external documentation" for more information about the usage of tag files.
2019
2020 GENERATE_TAGFILE =
2021
2022 # If the ALLEXTERNALS tag is set to YES all external class will be listed in the
2023 # class index. If set to NO only the inherited external classes will be listed.
2024 # The default value is: NO.
2025
2026 ALLEXTERNALS = NO
2027
2028 # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in
2029 # the modules index. If set to NO, only the current project's groups will be
2030 # listed.
2031 # The default value is: YES.
2032
2033 EXTERNAL_GROUPS = YES
2034
2035 # If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in
2036 # the related pages index. If set to NO, only the current project's pages will
2037 # be listed.
2038 # The default value is: YES.
2039
2040 EXTERNAL_PAGES = YES
2041
2042 # The PERL_PATH should be the absolute path and name of the perl script
2043 # interpreter (i.e. the result of 'which perl').
2044 # The default file (with absolute path) is: /usr/bin/perl.
2045
2046 PERL_PATH = /usr/bin/perl
2047
2048 #---------------------------------------------------------------------------
2049 # Configuration options related to the dot tool
2050 #---------------------------------------------------------------------------
2051
2052 # If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram
2053 # (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
2054 # NO turns the diagrams off. Note that this option also works with HAVE_DOT
2055 # disabled, but it is recommended to install and use dot, since it yields more
2056 # powerful graphs.
2057 # The default value is: YES.
2058
2059 CLASS_DIAGRAMS = YES
2060
2061 # You can define message sequence charts within doxygen comments using the \msc
2062 # command. Doxygen will then run the mscgen tool (see:
2063 # http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
2064 # documentation. The MSCGEN_PATH tag allows you to specify the directory where
2065 # the mscgen tool resides. If left empty the tool is assumed to be found in the
2066 # default search path.
2067
2068 MSCGEN_PATH =
2069
2070 # You can include diagrams made with dia in doxygen documentation. Doxygen will
2071 # then run dia to produce the diagram and insert it in the documentation. The
2072 # DIA_PATH tag allows you to specify the directory where the dia binary resides.
2073 # If left empty dia is assumed to be found in the default search path.
2074
2075 DIA_PATH =
2076
2077 # If set to YES, the inheritance and collaboration graphs will hide inheritance
2078 # and usage relations if the target is undocumented or is not a class.
2079 # The default value is: YES.
2080
2081 HIDE_UNDOC_RELATIONS = YES
2082
2083 # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
2084 # available from the path. This tool is part of Graphviz (see:
2085 # http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
2086 # Bell Labs. The other options in this section have no effect if this option is
2087 # set to NO
2088 # The default value is: YES.
2089
2090 HAVE_DOT = NO
2091
2092 # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
2093 # to run in parallel. When set to 0 doxygen will base this on the number of
2094 # processors available in the system. You can set it explicitly to a value
2095 # larger than 0 to get control over the balance between CPU load and processing
2096 # speed.
2097 # Minimum value: 0, maximum value: 32, default value: 0.
2098 # This tag requires that the tag HAVE_DOT is set to YES.
2099
2100 DOT_NUM_THREADS = 0
2101
2102 # When you want a differently looking font in the dot files that doxygen
2103 # generates you can specify the font name using DOT_FONTNAME. You need to make
2104 # sure dot is able to find the font, which can be done by putting it in a
2105 # standard location or by setting the DOTFONTPATH environment variable or by
2106 # setting DOT_FONTPATH to the directory containing the font.
2107 # The default value is: Helvetica.
2108 # This tag requires that the tag HAVE_DOT is set to YES.
2109
2110 DOT_FONTNAME = Helvetica
2111
2112 # The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
2113 # dot graphs.
2114 # Minimum value: 4, maximum value: 24, default value: 10.
2115 # This tag requires that the tag HAVE_DOT is set to YES.
2116
2117 DOT_FONTSIZE = 10
2118
2119 # By default doxygen will tell dot to use the default font as specified with
2120 # DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
2121 # the path where dot can find it using this tag.
2122 # This tag requires that the tag HAVE_DOT is set to YES.
2123
2124 DOT_FONTPATH =
2125
2126 # If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
2127 # each documented class showing the direct and indirect inheritance relations.
2128 # Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
2129 # The default value is: YES.
2130 # This tag requires that the tag HAVE_DOT is set to YES.
2131
2132 CLASS_GRAPH = YES
2133
2134 # If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
2135 # graph for each documented class showing the direct and indirect implementation
2136 # dependencies (inheritance, containment, and class references variables) of the
2137 # class with other documented classes.
2138 # The default value is: YES.
2139 # This tag requires that the tag HAVE_DOT is set to YES.
2140
2141 COLLABORATION_GRAPH = YES
2142
2143 # If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
2144 # groups, showing the direct groups dependencies.
2145 # The default value is: YES.
2146 # This tag requires that the tag HAVE_DOT is set to YES.
2147
2148 GROUP_GRAPHS = YES
2149
2150 # If the UML_LOOK tag is set to YES doxygen will generate inheritance and
2151 # collaboration diagrams in a style similar to the OMG's Unified Modeling
2152 # Language.
2153 # The default value is: NO.
2154 # This tag requires that the tag HAVE_DOT is set to YES.
2155
2156 UML_LOOK = NO
2157
2158 # If the UML_LOOK tag is enabled, the fields and methods are shown inside the
2159 # class node. If there are many fields or methods and many nodes the graph may
2160 # become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
2161 # number of items for each type to make the size more manageable. Set this to 0
2162 # for no limit. Note that the threshold may be exceeded by 50% before the limit
2163 # is enforced. So when you set the threshold to 10, up to 15 fields may appear,
2164 # but if the number exceeds 15, the total amount of fields shown is limited to
2165 # 10.
2166 # Minimum value: 0, maximum value: 100, default value: 10.
2167 # This tag requires that the tag HAVE_DOT is set to YES.
2168
2169 UML_LIMIT_NUM_FIELDS = 10
2170
2171 # If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
2172 # collaboration graphs will show the relations between templates and their
2173 # instances.
2174 # The default value is: NO.
2175 # This tag requires that the tag HAVE_DOT is set to YES.
2176
2177 TEMPLATE_RELATIONS = NO
2178
2179 # If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
2180 # YES then doxygen will generate a graph for each documented file showing the
2181 # direct and indirect include dependencies of the file with other documented
2182 # files.
2183 # The default value is: YES.
2184 # This tag requires that the tag HAVE_DOT is set to YES.
2185
2186 INCLUDE_GRAPH = YES
2187
2188 # If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
2189 # set to YES then doxygen will generate a graph for each documented file showing
2190 # the direct and indirect include dependencies of the file with other documented
2191 # files.
2192 # The default value is: YES.
2193 # This tag requires that the tag HAVE_DOT is set to YES.
2194
2195 INCLUDED_BY_GRAPH = YES
2196
2197 # If the CALL_GRAPH tag is set to YES then doxygen will generate a call
2198 # dependency graph for every global function or class method.
2199 #
2200 # Note that enabling this option will significantly increase the time of a run.
2201 # So in most cases it will be better to enable call graphs for selected
2202 # functions only using the \callgraph command.
2203 # The default value is: NO.
2204 # This tag requires that the tag HAVE_DOT is set to YES.
2205
2206 CALL_GRAPH = NO
2207
2208 # If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
2209 # dependency graph for every global function or class method.
2210 #
2211 # Note that enabling this option will significantly increase the time of a run.
2212 # So in most cases it will be better to enable caller graphs for selected
2213 # functions only using the \callergraph command.
2214 # The default value is: NO.
2215 # This tag requires that the tag HAVE_DOT is set to YES.
2216
2217 CALLER_GRAPH = NO
2218
2219 # If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
2220 # hierarchy of all classes instead of a textual one.
2221 # The default value is: YES.
2222 # This tag requires that the tag HAVE_DOT is set to YES.
2223
2224 GRAPHICAL_HIERARCHY = YES
2225
2226 # If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
2227 # dependencies a directory has on other directories in a graphical way. The
2228 # dependency relations are determined by the #include relations between the
2229 # files in the directories.
2230 # The default value is: YES.
2231 # This tag requires that the tag HAVE_DOT is set to YES.
2232
2233 DIRECTORY_GRAPH = YES
2234
2235 # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
2236 # generated by dot.
2237 # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
2238 # to make the SVG files visible in IE 9+ (other browsers do not have this
2239 # requirement).
2240 # Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd,
2241 # png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo,
2242 # gif:cairo:gd, gif:gd, gif:gd:gd and svg.
2243 # The default value is: png.
2244 # This tag requires that the tag HAVE_DOT is set to YES.
2245
2246 DOT_IMAGE_FORMAT = png
2247
2248 # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
2249 # enable generation of interactive SVG images that allow zooming and panning.
2250 #
2251 # Note that this requires a modern browser other than Internet Explorer. Tested
2252 # and working are Firefox, Chrome, Safari, and Opera.
2253 # Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
2254 # the SVG files visible. Older versions of IE do not have SVG support.
2255 # The default value is: NO.
2256 # This tag requires that the tag HAVE_DOT is set to YES.
2257
2258 INTERACTIVE_SVG = NO
2259
2260 # The DOT_PATH tag can be used to specify the path where the dot tool can be
2261 # found. If left blank, it is assumed the dot tool can be found in the path.
2262 # This tag requires that the tag HAVE_DOT is set to YES.
2263
2264 DOT_PATH =
2265
2266 # The DOTFILE_DIRS tag can be used to specify one or more directories that
2267 # contain dot files that are included in the documentation (see the \dotfile
2268 # command).
2269 # This tag requires that the tag HAVE_DOT is set to YES.
2270
2271 DOTFILE_DIRS =
2272
2273 # The MSCFILE_DIRS tag can be used to specify one or more directories that
2274 # contain msc files that are included in the documentation (see the \mscfile
2275 # command).
2276
2277 MSCFILE_DIRS =
2278
2279 # The DIAFILE_DIRS tag can be used to specify one or more directories that
2280 # contain dia files that are included in the documentation (see the \diafile
2281 # command).
2282
2283 DIAFILE_DIRS =
2284
2285 # When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
2286 # path where java can find the plantuml.jar file. If left blank, it is assumed
2287 # PlantUML is not used or called during a preprocessing step. Doxygen will
2288 # generate a warning when it encounters a \startuml command in this case and
2289 # will not generate output for the diagram.
2290 # This tag requires that the tag HAVE_DOT is set to YES.
2291
2292 PLANTUML_JAR_PATH =
2293
2294 # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
2295 # that will be shown in the graph. If the number of nodes in a graph becomes
2296 # larger than this value, doxygen will truncate the graph, which is visualized
2297 # by representing a node as a red box. Note that doxygen if the number of direct
2298 # children of the root node in a graph is already larger than
2299 # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
2300 # the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
2301 # Minimum value: 0, maximum value: 10000, default value: 50.
2302 # This tag requires that the tag HAVE_DOT is set to YES.
2303
2304 DOT_GRAPH_MAX_NODES = 50
2305
2306 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
2307 # generated by dot. A depth value of 3 means that only nodes reachable from the
2308 # root by following a path via at most 3 edges will be shown. Nodes that lay
2309 # further from the root node will be omitted. Note that setting this option to 1
2310 # or 2 may greatly reduce the computation time needed for large code bases. Also
2311 # note that the size of a graph can be further restricted by
2312 # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
2313 # Minimum value: 0, maximum value: 1000, default value: 0.
2314 # This tag requires that the tag HAVE_DOT is set to YES.
2315
2316 MAX_DOT_GRAPH_DEPTH = 0
2317
2318 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
2319 # background. This is disabled by default, because dot on Windows does not seem
2320 # to support this out of the box.
2321 #
2322 # Warning: Depending on the platform used, enabling this option may lead to
2323 # badly anti-aliased labels on the edges of a graph (i.e. they become hard to
2324 # read).
2325 # The default value is: NO.
2326 # This tag requires that the tag HAVE_DOT is set to YES.
2327
2328 DOT_TRANSPARENT = NO
2329
2330 # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
2331 # files in one run (i.e. multiple -o and -T options on the command line). This
2332 # makes dot run faster, but since only newer versions of dot (>1.8.10) support
2333 # this, this feature is disabled by default.
2334 # The default value is: NO.
2335 # This tag requires that the tag HAVE_DOT is set to YES.
2336
2337 DOT_MULTI_TARGETS = NO
2338
2339 # If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
2340 # explaining the meaning of the various boxes and arrows in the dot generated
2341 # graphs.
2342 # The default value is: YES.
2343 # This tag requires that the tag HAVE_DOT is set to YES.
2344
2345 GENERATE_LEGEND = YES
2346
2347 # If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot
2348 # files that are used to generate the various graphs.
2349 # The default value is: YES.
2350 # This tag requires that the tag HAVE_DOT is set to YES.
2351
2352 DOT_CLEANUP = YES
0 \mainpage
1
02 `json-c`
13 ========
24
9294 The json-c library is built with [CMake](https://cmake.org/cmake-tutorial/),
9395 which can take a few options.
9496
95 Variable | Type | Description
96 ---------------------|--------|--------------
97 CMAKE_INSTALL_PREFIX | String | The install location.
98 CMAKE_BUILD_TYPE | String | Defaults to "debug"
99 BUILD_SHARED_LIBS | Bool | The default build generates a dynamic (dll/so) library. Set this to OFF to create a static library instead.
100 ENABLE_RDRAND | Bool | Enable RDRAND Hardware RNG Hash Seed
101 ENABLE_THREADING | Bool | Enable partial threading support
102 DISABLE_WERROR | Bool | Disable use of -Werror
103 DISABLE_BSYMBOLIC | Bool | Disable use of -Bsymbolic-functions
97 Variable | Type | Description
98 -----------------------------|--------|--------------
99 CMAKE_INSTALL_PREFIX | String | The install location.
100 CMAKE_BUILD_TYPE | String | Defaults to "debug".
101 BUILD_SHARED_LIBS | Bool | The default build generates a dynamic (dll/so) library. Set this to OFF to create a static library only.
102 BUILD_STATIC_LIBS | Bool | The default build generates a static (lib/a) library. Set this to OFF to create a shared library only.
103 DISABLE_STATIC_FPIC | Bool | The default builds position independent code. Set this to OFF to create a shared library only.
104 DISABLE_BSYMBOLIC | Bool | Disable use of -Bsymbolic-functions.
105 DISABLE_THREAD_LOCAL_STORAGE | Bool | Disable use of Thread-Local Storage (HAVE___THREAD).
106 DISABLE_WERROR | Bool | Disable use of -Werror.
107 ENABLE_RDRAND | Bool | Enable RDRAND Hardware RNG Hash Seed.
108 ENABLE_THREADING | Bool | Enable partial threading support.
109 OVERRIDE_GET_RANDOM_SEED | String | A block of code to use instead of the default implementation of json_c_get_random_seed(), e.g. on embedded platforms where not even the fallback to time() works. Must be a single line.
104110
105111 Pass these options as `-D` on CMake's command-line.
106112
107113 ```sh
108 cmake -DBUILD_SHARED_LIBS=OFF ...
114 # build a static library only
115 cmake -DBUILD_SHARED_LIBS=OFF ..
109116 ```
110117
111118 ### Building with partial threading support
231238 * json_tokener.h - Methods for parsing and serializing json-c object trees.
232239 * json_pointer.h - JSON Pointer (RFC 6901) implementation for retrieving
233240 objects from a json-c object tree.
234 * json_object_iterator.h - Methods for iterating over single json_object instances.
241 * json_object_iterator.h - Methods for iterating over single json_object instances. (See also `json_object_object_foreach()` in json_object.h)
235242 * json_visit.h - Methods for walking a tree of json-c objects.
236243 * json_util.h - Miscelleanous utility functions.
237244
238 For a full list of headers see [files.html](http://json-c.github.io/json-c/json-c-0.13.1/doc/html/files.html)
245 For a full list of headers see [files.html](http://json-c.github.io/json-c/json-c-current-release/doc/html/files.html)
246
247 The primary type in json-c is json_object. It describes a reference counted
248 tree of json objects which are created by either parsing text with a
249 json_tokener (i.e. `json_tokener_parse_ex()`), or by creating
250 (with `json_object_new_object()`, `json_object_new_int()`, etc...) and adding
251 (with `json_object_object_add()`, `json_object_array_add()`, etc...) them
252 individually.
253 Typically, every object in the tree will have one reference, from it's parent.
254 When you are done with the tree of objects, you call json_object_put() on just
255 the root object to free it, which recurses down through any child objects
256 calling json_object_put() on each one of those in turn.
257
258 You can get a reference to a single child
259 (`json_object_object_get()` or `json_object_array_get_idx()`)
260 and use that object as long as its parent is valid.
261 If you need a child object to live longer than its parent, you can
262 increment the child's refcount (`json_object_get()`) to allow it to survive
263 the parent being freed or it being removed from its parent
264 (`json_object_object_del()` or `json_object_array_del_idx()`)
265
266 When parsing text, the json_tokener object is independent from the json_object
267 that it returns. It can be allocated (`json_tokener_new()`)
268 used ones or multiple times (`json_tokener_parse_ex()`, and
269 freed (`json_tokener_free()`) while the json_object objects live on.
270
271 A json_object tree can be serialized back into a string with
272 `json_object_to_json_string_ext()`. The string that is returned
273 is only valid until the next "to_json_string" call on that same object.
274 Also, it is freed when the json_object is freed.
275
1717 * https://github.com/lvc/abi-compliance-checker
1818 * If the new release is not backwards compatible, then this is a MAJOR release.
1919 * Mention removed features in ChangeLog
20 * Consider re-adding backwards compatible support, through symbol
21 aliases and appropriate entries in json-c.sym
2022 * Update the AUTHORS file
2123 * Exclude mentioning changes that have already been included in a point
2224 release of the previous release branch.
3032 ## Release creation
3133
3234 Start creating the new release:
33 release=0.14
35 release=0.15
3436 git clone https://github.com/json-c/json-c json-c-${release}
3537
3638 mkdir distcheck
5153
5254 Using ${release}:
5355 Update the version in json_c_version.h
54 Update the version in Doxyfile (PROJECT_NUMBER)
5556 Update the version in CMakeLists.txt (VERSION in the project(...) line)
5657 Update the version in config.h.win32 (several places)
5758
6263 VERSION x.y+1.z
6364
6465 git commit -a -m "Bump version to ${release}"
66
67 If we're doing a major release (SONAME bump), also bump the version
68 of ALL symbols in json-c.sym.
69 See explanation at https://github.com/json-c/json-c/issues/621
70 More info at: https://software.intel.com/sites/default/files/m/a/1/e/dsohowto.pdf
6571
6672 ------------
6773
98104 https://console.aws.amazon.com/s3/
99105
100106 Upload the two tarballs in the json-c_releases folder.
101 When uploading, use "Reduced Redundancy", and make the uploaded files publicly accessible.
107 When uploading, use "Standard" storage class, and make the uploaded files publicly accessible.
102108
103109 Logout of Amazon S3, and verify that the files are visible.
104110 https://s3.amazonaws.com/json-c_releases/releases/index.html
113119
114120 Use ${release}.99 to indicate a version "newer" than anything on the branch:
115121 Update the version in json_c_version.h
116 Update the version in Doxyfile
117122 Update the version in CMakeLists.txt
118123 Update the version in config.h.win32
119124
120125 Update RELEASE_CHECKLIST.txt, set release=${release}+1
121126
122127 Update the set_target_properties() line in CmakeLists.txt to match the release branch.
128
129 git commit -a -m "Update the master branch to version 0.${release}.99"
130 git push
123131
124132 ------------
125133
134142 mkdir json-c-${release}
135143 cp -R ../json-c-${release}/doc json-c-${release}/.
136144 git add json-c-${release}
137 git commit
145 git commit -a -m "Add the ${release} docs."
138146
139147 vi index.html
140148 # Add/change links to current release.
141149
142 git commit index.html
150 git commit -a -m "Update the doc links to point at ${release}"
143151
144152 git push
145153
0
1 cmake_minimum_required(VERSION 2.8) # see ../CMakeLists.txt for why 2.8
2
3 if(POLICY CMP0075)
4 cmake_policy(SET CMP0075 NEW)
5 endif()
6
7 include(CheckSymbolExists)
8 include(CheckIncludeFile)
9 include(CMakePackageConfigHelpers)
10
11 # First, sort out whether we're running inside a json-c build,
12 # or standalone, such as part of a benchmark build.
13
14 if ("${PROJECT_NAME}" STREQUAL "json-c")
15 # Part of an overall json-c build
16 set(APPS_LINK_LIBS "${PROJECT_NAME}")
17
18 # We know we have this in our current sources:
19 set(HAVE_JSON_TOKENER_GET_PARSE_END)
20
21 else()
22
23 # Standalone mode, using an already installed json-c library, somewhere.
24 # The path to the json-c install must be specified with -DCMAKE_PREFIX_PATH=...
25
26 project(apps)
27 find_package(PkgConfig)
28
29 # PkgConfig is supposed to include CMAKE_PREFIX_PATH in the PKG_CONFIG_PATH
30 # that's used when running pkg-config, but it just doesn't work :(
31 # https://gitlab.kitware.com/cmake/cmake/issues/18150
32 #set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH True)
33
34 # Instead, we handle it explicitly here and update PKG_CONFIG_PATH ourselves.
35 if (NOT CMAKE_PREFIX_PATH)
36 message(FATAL_ERROR "Please specify -DCMAKE_PREFIX_PATH=... when running cmake.")
37 endif()
38
39 # Note: find_file isn't recursive :(
40 find_file(PC_FILE_PATH "json-c.pc"
41 PATHS "${CMAKE_PREFIX_PATH}/lib64" "${CMAKE_PREFIX_PATH}/lib"
42 PATH_SUFFIXES "pkgconfig"
43 NO_DEFAULT_PATH)
44 get_filename_component(PC_DIR_PATH "${PC_FILE_PATH}" DIRECTORY)
45 set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:${PC_DIR_PATH}")
46 message(STATUS "PC_FILE_PATH=${PC_FILE_PATH}")
47 message(STATUS "PC_DIR_PATH=${PC_DIR_PATH}")
48
49 pkg_check_modules(PC_JSONC json-c)
50 if (PC_JSONC_FOUND)
51 message(STATUS "Found json-c using pkg-config: ${PC_JSONC_PREFIX}")
52 message(STATUS " PC_JSONC_INCLUDE_DIRS=${PC_JSONC_INCLUDE_DIRS}")
53 message(STATUS " PC_JSONC_LIBRARIES=${PC_JSONC_LIBRARIES}")
54 message(STATUS " PC_JSONC_LIBRARY_DIRS=${PC_JSONC_LIBRARY_DIRS}")
55 link_directories(${PC_JSONC_LIBRARY_DIRS})
56 include_directories(${PC_JSONC_INCLUDE_DIRS})
57 # for target_link_libraries(...)
58 set(APPS_INCLUDE_DIRS ${PC_JSONC_INCLUDE_DIRS})
59 set(APPS_LINK_DIRS ${PC_JSONC_LIBRARY_DIRS})
60 set(APPS_LINK_LIBS ${PC_JSONC_LIBRARIES})
61 else()
62 message(STATUS "Using find_package to locate json-c")
63
64 # Note: find_package needs CMAKE_PREFIX_PATH set appropriately.
65 # XXX json-c's installed cmake files don't actually set up what's
66 # needed to use find_package() by itself, so we're just using it
67 # to confirm the top of the install location.
68 find_package(json-c CONFIG) # sets json-c_DIR
69
70 # Assume json-c-config.cmake is in lib64/cmake/json-c/
71 get_filename_component(json-c_TOP "${json-c_DIR}/../../.." ABSOLUTE)
72 get_filename_component(json-c_LIBDIR "${json-c_DIR}/../.." ABSOLUTE)
73
74 message(STATUS " json-c_TOP=${json-c_TOP}")
75 message(STATUS " json-c_DIR=${json-c_DIR}")
76 message(STATUS " json-c_LIBDIR=${json-c_LIBDIR}")
77
78 link_directories(${json-c_LIBDIR})
79 include_directories(${json-c_TOP}/include)
80 include_directories(${json-c_TOP}/include/json-c)
81 set(APPS_LINK_DIRS "${json-c_LIBDIR}")
82 set(APPS_INCLUDE_DIRS "${json-c_TOP}/include;${json-c_TOP}/include/json-c")
83
84 set(APPS_LINK_LIBS json-c)
85 endif()
86
87 set(CMAKE_REQUIRED_LINK_OPTIONS "-L${APPS_LINK_DIRS}")
88 set(CMAKE_REQUIRED_LIBRARIES ${APPS_LINK_LIBS})
89 set(CMAKE_REQUIRED_INCLUDES ${APPS_INCLUDE_DIRS})
90 check_symbol_exists(json_tokener_get_parse_end "json_tokener.h" HAVE_JSON_TOKENER_GET_PARSE_END)
91
92 endif() # end "standalone mode" block
93
94 # ---------------------------------
95
96 check_include_file(sys/resource.h HAVE_SYS_RESOURCE_H) # for getrusage
97 if (HAVE_SYS_RESOURCE_H)
98 check_symbol_exists(getrusage "sys/resource.h" HAVE_GETRUSAGE)
99 endif()
100
101 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/apps_config.h.in
102 ${PROJECT_BINARY_DIR}/apps_config.h)
103 message(STATUS "Wrote ${PROJECT_BINARY_DIR}/apps_config.h")
104
105 # ---------------------------------
106
107 include_directories(PUBLIC ${CMAKE_SOURCE_DIR})
108 include_directories(${PROJECT_SOURCE_DIR})
109 include_directories(${PROJECT_BINARY_DIR})
110
111 # ---------------------------------
112
113 # Now, finally, the actual executables we're building:
114
115 add_executable(json_parse json_parse.c)
116 target_link_libraries(json_parse PRIVATE ${APPS_LINK_LIBS})
117
118 # Note: it is intentional that there are no install instructions here yet.
119 # When/if the interface of the app(s) listed here settles down enough to
120 # publish as part of a regular build that will be added.
121
0
1 /* Define to 1 if you have the <sys/resource.h> header file. */
2 #cmakedefine HAVE_SYS_RESOURCE_H
3
4 /* Define if you have the `getrusage' function. */
5 #cmakedefine HAVE_GETRUSAGE
6
7 #cmakedefine HAVE_JSON_TOKENER_GET_PARSE_END
0 #include <assert.h>
1 #include <errno.h>
2 #include <fcntl.h>
3 #include <getopt.h>
4 #include <stddef.h>
5 #include <stdio.h>
6 #include <stdlib.h>
7 #include <string.h>
8 #include <unistd.h>
9
10 #include "apps_config.h"
11
12 /* XXX for a regular program, these should be <json-c/foo.h>
13 * but that's inconvenient when building in the json-c source tree.
14 */
15 #include "json_object.h"
16 #include "json_tokener.h"
17 #include "json_util.h"
18
19 #ifdef HAVE_SYS_RESOURCE_H
20 #include <sys/resource.h>
21 #include <sys/time.h>
22 #endif
23
24 static int formatted_output = 0;
25 static int show_output = 1;
26 static int strict_mode = 0;
27 static const char *fname = NULL;
28
29 #ifndef HAVE_JSON_TOKENER_GET_PARSE_END
30 #define json_tokener_get_parse_end(tok) ((tok)->char_offset)
31 #endif
32
33 static void usage(const char *argv0, int exitval, const char *errmsg);
34 static void showmem(void);
35 static int parseit(int fd, int (*callback)(struct json_object *));
36 static int showobj(struct json_object *new_obj);
37
38 static void showmem(void)
39 {
40 #ifdef HAVE_GETRUSAGE
41 struct rusage rusage;
42 memset(&rusage, 0, sizeof(rusage));
43 getrusage(RUSAGE_SELF, &rusage);
44 printf("maxrss: %ld KB\n", rusage.ru_maxrss);
45 #endif
46 }
47
48 static int parseit(int fd, int (*callback)(struct json_object *))
49 {
50 struct json_object *obj;
51 char buf[32768];
52 int ret;
53 int depth = JSON_TOKENER_DEFAULT_DEPTH;
54 json_tokener *tok;
55
56 tok = json_tokener_new_ex(depth);
57 if (!tok)
58 {
59 fprintf(stderr, "unable to allocate json_tokener: %s\n", strerror(errno));
60 return 1;
61 }
62 json_tokener_set_flags(tok, JSON_TOKENER_STRICT
63 #ifdef JSON_TOKENER_ALLOW_TRAILING_CHARS
64 | JSON_TOKENER_ALLOW_TRAILING_CHARS
65 #endif
66 );
67
68 // XXX push this into some kind of json_tokener_parse_fd API?
69 // json_object_from_fd isn't flexible enough, and mirroring
70 // everything you can do with a tokener into json_util.c seems
71 // like the wrong approach.
72 size_t total_read = 0;
73 while ((ret = read(fd, buf, sizeof(buf))) > 0)
74 {
75 total_read += ret;
76 int start_pos = 0;
77 while (start_pos != ret)
78 {
79 obj = json_tokener_parse_ex(tok, &buf[start_pos], ret - start_pos);
80 enum json_tokener_error jerr = json_tokener_get_error(tok);
81 int parse_end = json_tokener_get_parse_end(tok);
82 if (obj == NULL && jerr != json_tokener_continue)
83 {
84 char *aterr = &buf[start_pos + parse_end];
85 fflush(stdout);
86 int fail_offset = total_read - ret + start_pos + parse_end;
87 fprintf(stderr, "Failed at offset %d: %s %c\n", fail_offset,
88 json_tokener_error_desc(jerr), aterr[0]);
89 json_tokener_free(tok);
90 return 1;
91 }
92 if (obj != NULL)
93 {
94 int cb_ret = callback(obj);
95 json_object_put(obj);
96 if (cb_ret != 0)
97 {
98 json_tokener_free(tok);
99 return 1;
100 }
101 }
102 start_pos += json_tokener_get_parse_end(tok);
103 assert(start_pos <= ret);
104 }
105 }
106 if (ret < 0)
107 {
108 fprintf(stderr, "error reading fd %d: %s\n", fd, strerror(errno));
109 }
110
111 json_tokener_free(tok);
112 return 0;
113 }
114
115 static int showobj(struct json_object *new_obj)
116 {
117 if (new_obj == NULL)
118 {
119 fprintf(stderr, "%s: Failed to parse\n", fname);
120 return 1;
121 }
122
123 printf("Successfully parsed object from %s\n", fname);
124
125 if (show_output)
126 {
127 const char *output;
128 if (formatted_output)
129 output = json_object_to_json_string(new_obj);
130 else
131 output = json_object_to_json_string_ext(new_obj, JSON_C_TO_STRING_PRETTY);
132 printf("%s\n", output);
133 }
134
135 showmem();
136 return 0;
137 }
138
139 static void usage(const char *argv0, int exitval, const char *errmsg)
140 {
141 FILE *fp = stdout;
142 if (exitval != 0)
143 fp = stderr;
144 if (errmsg != NULL)
145 fprintf(fp, "ERROR: %s\n\n", errmsg);
146 fprintf(fp, "Usage: %s [-f] [-n] [-s]\n", argv0);
147 fprintf(fp, " -f - Format the output with JSON_C_TO_STRING_PRETTY\n");
148 fprintf(fp, " -n - No output\n");
149 fprintf(fp, " -s - Parse in strict mode, flags:\n");
150 fprintf(fp, " JSON_TOKENER_STRICT|JSON_TOKENER_ALLOW_TRAILING_CHARS\n");
151
152 fprintf(fp, "\nWARNING WARNING WARNING\n");
153 fprintf(fp, "This is a prototype, it may change or be removed at any time!\n");
154 exit(exitval);
155 }
156
157 int main(int argc, char **argv)
158 {
159 json_object *new_obj;
160 int opt;
161
162 while ((opt = getopt(argc, argv, "fhns")) != -1)
163 {
164 switch (opt)
165 {
166 case 'f': formatted_output = 1; break;
167 case 'n': show_output = 0; break;
168 case 's': strict_mode = 1; break;
169 case 'h': usage(argv[0], 0, NULL);
170 default: /* '?' */ usage(argv[0], EXIT_FAILURE, "Unknown arguments");
171 }
172 }
173 if (optind >= argc)
174 {
175 usage(argv[0], EXIT_FAILURE, "Expected argument after options");
176 }
177 fname = argv[optind];
178
179 int fd = open(argv[optind], O_RDONLY, 0);
180 showmem();
181 if (parseit(fd, showobj) != 0)
182 exit(EXIT_FAILURE);
183 showmem();
184
185 exit(EXIT_SUCCESS);
186 }
3737
3838 struct array_list *array_list_new(array_list_free_fn *free_fn)
3939 {
40 return array_list_new2(free_fn, ARRAY_LIST_DEFAULT_SIZE);
41 }
42
43 struct array_list *array_list_new2(array_list_free_fn *free_fn, int initial_size)
44 {
4045 struct array_list *arr;
4146
42 arr = (struct array_list *)calloc(1, sizeof(struct array_list));
47 arr = (struct array_list *)malloc(sizeof(struct array_list));
4348 if (!arr)
4449 return NULL;
45 arr->size = ARRAY_LIST_DEFAULT_SIZE;
50 arr->size = initial_size;
4651 arr->length = 0;
4752 arr->free_fn = free_fn;
48 if (!(arr->array = (void **)calloc(arr->size, sizeof(void *))))
53 if (!(arr->array = (void **)malloc(arr->size * sizeof(void *))))
4954 {
5055 free(arr);
5156 return NULL;
9196 if (!(t = realloc(arr->array, new_size * sizeof(void *))))
9297 return -1;
9398 arr->array = (void **)t;
94 (void)memset(arr->array + arr->size, 0, (new_size - arr->size) * sizeof(void *));
9599 arr->size = new_size;
96100 return 0;
97101 }
98102
103 int array_list_shrink(struct array_list *arr, size_t empty_slots)
104 {
105 void *t;
106 size_t new_size;
107
108 new_size = arr->length + empty_slots;
109 if (new_size == arr->size)
110 return 0;
111 if (new_size > arr->size)
112 return array_list_expand_internal(arr, new_size);
113 if (new_size == 0)
114 new_size = 1;
115
116 if (!(t = realloc(arr->array, new_size * sizeof(void *))))
117 return -1;
118 arr->array = (void **)t;
119 arr->size = new_size;
120 return 0;
121 }
122
123 //static inline int _array_list_put_idx(struct array_list *arr, size_t idx, void *data)
99124 int array_list_put_idx(struct array_list *arr, size_t idx, void *data)
100125 {
101126 if (idx > SIZE_T_MAX - 1)
105130 if (idx < arr->length && arr->array[idx])
106131 arr->free_fn(arr->array[idx]);
107132 arr->array[idx] = data;
133 if (idx > arr->length)
134 {
135 /* Zero out the arraylist slots in between the old length
136 and the newly added entry so we know those entries are
137 empty.
138 e.g. when setting array[7] in an array that used to be
139 only 5 elements longs, array[5] and array[6] need to be
140 set to 0.
141 */
142 memset(arr->array + arr->length, 0, (idx - arr->length) * sizeof(void *));
143 }
108144 if (arr->length <= idx)
109145 arr->length = idx + 1;
110146 return 0;
112148
113149 int array_list_add(struct array_list *arr, void *data)
114150 {
115 return array_list_put_idx(arr, arr->length, data);
151 /* Repeat some of array_list_put_idx() so we can skip several
152 checks that we know are unnecessary when appending at the end
153 */
154 size_t idx = arr->length;
155 if (idx > SIZE_T_MAX - 1)
156 return -1;
157 if (array_list_expand_internal(arr, idx + 1))
158 return -1;
159 arr->array[idx] = data;
160 arr->length++;
161 return 0;
116162 }
117163
118164 void array_list_sort(struct array_list *arr, int (*compar)(const void *, const void *))
135181 {
136182 size_t i, stop;
137183
184 /* Avoid overflow in calculation with large indices. */
185 if (idx > SIZE_T_MAX - count)
186 return -1;
138187 stop = idx + count;
139188 if (idx >= arr->length || stop > arr->length)
140189 return -1;
141190 for (i = idx; i < stop; ++i)
142191 {
192 // Because put_idx can skip entries, we need to check if
193 // there's actually anything in each slot we're erasing.
143194 if (arr->array[i])
144195 arr->free_fn(arr->array[i]);
145196 }
3636 };
3737 typedef struct array_list array_list;
3838
39 /**
40 * Allocate an array_list of the default size (32).
41 * @deprecated Use array_list_new2() instead.
42 */
3943 extern struct array_list *array_list_new(array_list_free_fn *free_fn);
44
45 /**
46 * Allocate an array_list of the desired size.
47 *
48 * If possible, the size should be chosen to closely match
49 * the actual number of elements expected to be used.
50 * If the exact size is unknown, there are tradeoffs to be made:
51 * - too small - the array_list code will need to call realloc() more
52 * often (which might incur an additional memory copy).
53 * - too large - will waste memory, but that can be mitigated
54 * by calling array_list_shrink() once the final size is known.
55 *
56 * @see array_list_shrink
57 */
58 extern struct array_list *array_list_new2(array_list_free_fn *free_fn, int initial_size);
4059
4160 extern void array_list_free(struct array_list *al);
4261
5574
5675 extern int array_list_del_idx(struct array_list *arr, size_t idx, size_t count);
5776
77 /**
78 * Shrink the array list to just enough to fit the number of elements in it,
79 * plus empty_slots.
80 */
81 extern int array_list_shrink(struct array_list *arr, size_t empty_slots);
82
5883 #ifdef __cplusplus
5984 }
6085 #endif
0
1 Benchmark tests for json-c
2
3 General strategy:
4 -------------------
5
6 * Identify "after" commit hash
7 * Use provided directory
8 * Use provided commit hash
9 * Local changes in current working directory
10 * ${cur_branch}
11 * Identify "before" commit hash, in order of preference
12 * Use provided directory
13 * Use provided commit hash
14 * Use origin/${cur_branch}, if different from ${after_commit}
15 * Use previous release
16
17 * If not using existing dir, clone to src-${after_commit}
18 * or, checkout appropriate commit in existing src-${after_commit}
19 * Create build & install dirs for ${after_commit}
20 * Build & install ${after_commit}
21 * Compile benchmark programs against install-${after_commit}
22
23 * If not using existing dir, clone to src-${before_commit}
24 * or, checkout appropriate commit in existing src-${before_commit}
25 * Create build & install dirs for ${before_commit}
26 * Build & install ${before_commit}
27 * Compile benchmark programs against install-${before_commit}
28
29 * Run benchmark in each location
30 * Compare results
31
32 heaptrack memory profiler
33 ---------------------------
34
35 https://milianw.de/blog/heaptrack-a-heap-memory-profiler-for-linux.html
36
37
38 ```
39 yum install libdwarf-devel elfutils boost-devel libunwind-devel
40
41 git clone git://anongit.kde.org/heaptrack
42 cd heaptrack
43 mkdir build
44 cd build
45 cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
46 -DCMAKE_INSTALL_PREFIX=$HOME/heaptrack-install ..
47 make install
48 ```
49
50
51 Issues
52 --------
53
54 * jc-bench.sh is incomplete.
55
56 * valgrind massif misreports "extra-heap" bytes?
57
58 "json_parse -n canada.json" shows 38640 KB maxrss.
59
60 Using valgrind --tool=massif, a large amount of memory is listed as
61 wasted "extra-heap" bytes. (~5.6MB)
62
63 ```
64 valgrind --tool=massif --massif-out-file=massif.out ./json_parse -n ~/canada.json
65 ms_print massif.out
66 ```
67
68
69 Using heaptrack, and analyzing the histogram, only shows ~2.6MB
70 ```
71 heaptrack ./json_parse -n canada.json
72 heaptrack --analyze heaptrack*gz -H histgram.out
73 awk ' { s=$1; count=$2; ru=(int((s+ 15) / 16)) * 16; wasted = ((ru-s)*count); print s, count, ru-s, wasted; total=total+wasted} END { print "Total: ", total }' histogram.out
74 ```
75
76 With the (unreleased) arraylist trimming changes, maxrss reported by
77 getrusage() goes down, but massif claims *more* total usage, and a HUGE
78 extra-heap amount (50% of total).
79
0 #!/bin/sh
1 #
2 # Benchmarking harness for json-c
3 #
4 # Use this to compare the behavior of two different versions of the library,
5 # such as json-c-0.14 release vs master, master vs local changes, etc...
6 #
7
8 set -e
9
10 trap 'echo "FAILED!"' EXIT
11
12 RUNDIR=$(dirname "$0")
13 RUNDIR=$(cd "$RUNDIR" && pwd)
14
15 TOP=$(cd "$RUNDIR/.." && pwd)
16
17 usage()
18 {
19 exitval=$1
20 errmsg=$2
21 if [ $exitval -ne 0 ] ; then
22 exec 1>&2
23 fi
24 if [ ! -z "$errmsg" ] ; then
25 echo "ERROR: $errmsg" 1>&2
26 fi
27 cat <<EOF
28 Usage: $0 [-h] [-v] [--build] [--run] [--compare] ...XAX...
29 EOF
30
31 exit $extival
32 }
33
34 before_arg=
35 after_arg=
36 do_all=1
37 do_build=0
38 do_run=0
39 do_compare=0
40
41 while [ $# -gt 0 ] ; do
42 case "$1" in
43 --before)
44 before_arg=$2
45 shift
46 ;;
47 --after)
48 after_arg=$2
49 shift
50 ;;
51 --build)
52 do_all=0
53 do_build=1
54 ;;
55 --run)
56 do_all=0
57 do_run=1
58 ;;
59 --compare)
60 do_all=0
61 do_compare=1
62 ;;
63 -h)
64 usage 0 ""
65 ;;
66 -v)
67 set -x
68 ;;
69 *)
70 usage 1 "Unknown args: $*"
71 ;;
72 esac
73 shift
74 done
75
76 WORK="${RUNDIR}/work"
77 mkdir -p "${WORK}"
78
79 DATA="${RUNDIR}/data"
80 mkdir -p "${DATA}"
81
82 for file in citm_catalog.json twitter.json canada.json ; do
83 if [ ! -r "${DATA}/${file}" ] ; then
84 echo "Fetching ${file} from github.com/mloskot/json_benchmark"
85 URL="https://github.com/mloskot/json_benchmark/raw/master/data/${file}"
86 curl -s -L -o "${DATA}/${file}" "$URL"
87 fi
88 done
89 echo
90
91 # Identify "after" commit hash, in order of preference
92 if [ ! -z "$after_arg" -a -d "$after_arg" ] ; then
93 # Use provided directory
94 after_src_dir="$after_arg"
95 after_commit=
96 echo "Using provided directory [$after_arg] as 'after'"
97 else
98 _commit=
99 if [ ! -z "$after_arg" ] ; then
100 # Use provided commit hash
101 _commit=$(git rev-parse --verify "$after_arg")
102 fi
103 if [ ! -z "$_commit" ] ;then
104 after_src_dir= # i.e. current tree
105 after_commit="$_commit"
106 echo "Using provided commit [$after_arg => $_commit] as 'after'"
107 else
108 # Local changes in current working directory
109 # ${cur_branch}
110 after_src_dir=$TOP
111 after_commit=
112 echo "Using local changes in $TOP as 'after'"
113 fi
114 fi
115
116 # Identify "before" commit hash, in order of preference
117 if [ ! -z "$before_arg" -a -d "$before_arg" ] ; then
118 # Use provided directory
119 before_src_dir="$before_arg"
120 before_commit=
121 echo "Using provided directory [$before_arg] as 'before'"
122 else
123 _commit=
124 if [ ! -z "$before_arg" ] ; then
125 # Use provided commit hash
126 _commit=$(git rev-parse --verify "$before_arg")
127 fi
128 if [ ! -z "$_commit" ] ;then
129 before_src_dir= # i.e. current tree
130 before_commit="$_commit"
131 echo "Using provided commit [$before_arg => $_commit] as 'before'"
132 else
133 # Use origin/${cur_branch}, if different from ${after_commit}
134 _cur_branch=$(git rev-parse --abbrev-ref HEAD)
135 _commit=
136 if [ ! -z "${_cur_branch}" ] ; then
137 _commit=$(git rev-parse --verify "origin/${_cur_branch}")
138 echo "Using origin/${_cur_branch} [$_commit] as 'before'"
139 fi
140 if [ "$_commit" = "${after_commit}" ] ; then
141 _commit=
142 fi
143 fi
144
145 if [ ! -z "$_commit" ] ; then
146 before_src_dir= # i.e. current tree
147 before_commit="$_commit"
148 else
149 # Use previous release
150 before_src_dir= # i.e. current tree
151 before_commit="$(git tag | sort | tail -1)"
152 echo "Using previous release [$before_commit] as 'before'"
153 fi
154 fi
155
156 echo
157
158 compile_benchmark()
159 {
160 local bname=$1
161 local src_dir="$2"
162 local src_commit="$3"
163
164 local build_dir="${WORK}/$bname/build"
165 local inst_dir="${WORK}/$bname/install"
166 local bench_dir="${WORK}/$bname/bench"
167
168 echo
169 echo "=========== $bname ==========="
170 echo
171
172 mkdir -p "${build_dir}"
173 mkdir -p "${inst_dir}"
174 mkdir -p "${bench_dir}"
175
176 if [ ! -z "$src_commit" ] ; then
177 # Resolve the short hash, tag or branch name to full hash
178 src_commit=$(git rev-parse $src_commit)
179 fi
180
181 # No src dir specified, clone and checkout $src_commit
182 if [ -z "$src_dir" ] ; then
183 src_dir="${WORK}/$bname/src"
184 echo "=== Using sources in $src_dir"
185 mkdir -p "$src_dir"
186 at_commit=$(git --git-dir="$src_dir/.git" rev-parse HEAD 2> /dev/null || true)
187 echo "at_commit: $at_commit"
188 if [ -z "$at_commit" ] ; then
189 # Assume it's an empty dir
190 git clone -n "$TOP" "$src_dir"
191 fi
192 git -C "$src_dir" --git-dir="$src_dir/.git" checkout "$src_commit"
193 fi
194 # else, use the provided $src_dir
195
196 if [ -e "${src_dir}/CMakeLists.txt" ] ; then
197 cd "${build_dir}"
198 cmake -DCMAKE_INSTALL_PREFIX="${inst_dir}" "${src_dir}"
199 else
200 # Old versions of json-c used automake/autoconf
201 cd "${src_dir}"
202 sh autogen.sh # always run it, configure doesn't always work
203 cd "${build_dir}"
204 "${src_dir}/configure" --prefix="${inst_dir}"
205 fi
206 make all install
207
208 cd "${bench_dir}"
209 cmake -DCMAKE_PREFIX_PATH="${inst_dir}" "${TOP}/apps"
210 make all
211 }
212
213 # XXX TODO: name "after" and "before" uniquely using the dir & commit
214
215 if [ $do_all -ne 0 -o $do_build -ne 0 ] ; then
216 sleep 5 # Wait slightly, to allow the human to read the message
217 # about what exactly we're doing to benchmark.
218 compile_benchmark "after" "${after_src_dir}" "${after_commit}"
219 compile_benchmark "before" "${before_src_dir}" "${before_commit}"
220 fi
221
222 run_benchmark()
223 {
224 local bname=$1
225 local inst_dir="${WORK}/$bname/install"
226 local bench_dir="${WORK}/$bname/bench"
227
228 local INPUT=${DATA}/canada.json
229
230 cd "${bench_dir}"
231 mkdir -p results
232 (time ./json_parse -n "${INPUT}") > results/basic_timing.out 2>&1
233 valgrind --tool=massif --massif-out-file=massif.out ./json_parse -n "${INPUT}"
234 ms_print massif.out > results/ms_print.out
235 heaptrack -o heaptrack_out ./json_parse -n "${INPUT}"
236 heaptrack --analyze heaptrack_out.gz -H histogram.out > results/heaptrack.out
237 awk ' { s=$1; count=$2; ru=(int((s+ 15) / 16)) * 16; wasted = ((ru-s)*count); print s, count, ru-s, wasted; total=total+wasted} END { print "Total: ", total }' histogram.out > results/histogram2.out
238
239 # XXX stamp some info about what was built & run into ./results/.
240
241 echo "DONE with $bname"
242 }
243
244 if [ $do_all -ne 0 -o $do_run -ne 0 ] ; then
245 run_benchmark "after"
246 run_benchmark "before"
247 fi
248
249 if [ $do_compare -ne 0 ] ; then
250 # XXX this needs better analysis
251 cd "${WORK}"
252 diff -udr before/bench/results after/bench/results || true
253 else
254 echo "To compare results, run:"
255 echo "$0 --compare"
256 fi
257
258 trap '' EXIT
259
260 :<<=cut
261
262 Benchmarks to run:
263
264 * Parse JSON strings, of various sizes and characteristics
265 * Flags: STRICT vs. non-STRICT, validate UTF8
266
267 * Serialization time
268 * plain, spaces, pretty
269
270 * json_c_visit tests
271 * JSON pointer tests
272
273 Things to record and compare:
274
275 * Running time
276 * Peak memory usage
277 * Useful bytes vs. overhead for memory allocations
278 * Total number of allocations
279 * Average allocation size
280 * Log of all allocation sizes
281
282 =cut
283
0 /* config.h.in. Generated from configure.ac by autoheader. */
10
21 /* Enable RDRAND Hardware RNG Hash Seed */
32 #cmakedefine ENABLE_RDRAND "@ENABLE_RDRAND@"
43
4 /* Override json_c_get_random_seed() with custom code */
5 #cmakedefine OVERRIDE_GET_RANDOM_SEED @OVERRIDE_GET_RANDOM_SEED@
6
57 /* Enable partial threading support */
68 #cmakedefine ENABLE_THREADING "@@"
79
5254
5355 /* Define to 1 if you have the <sys/param.h> header file. */
5456 #cmakedefine HAVE_SYS_PARAM_H @HAVE_SYS_PARAM_H@
57
58 /* Define to 1 if you have the <sys/resource.h> header file. */
59 #cmakedefine HAVE_SYS_RESOURCE_H
5560
5661 /* Define to 1 if you have the <sys/stat.h> header file. */
5762 #cmakedefine HAVE_SYS_STAT_H
133138
134139 /* Define to 1 if you have the `vsyslog' function. */
135140 #cmakedefine HAVE_VSYSLOG @HAVE_VSYSLOG@
141
142 /* Define if you have the `getrusage' function. */
143 #cmakedefine HAVE_GETRUSAGE
136144
137145 #cmakedefine HAVE_STRTOLL
138146 #if !defined(HAVE_STRTOLL)
188196 /* The number of bytes in type size_t */
189197 #cmakedefine SIZEOF_SIZE_T @SIZEOF_SIZE_T@
190198
199 /* The number of bytes in type ssize_t */
200 #cmakedefine SIZEOF_SSIZE_T @SIZEOF_SSIZE_T@
201
191202 /* Specifier for __thread */
192203 #cmakedefine SPEC___THREAD @SPEC___THREAD@
193204
5151 FLAGS+=(-DCMAKE_INSTALL_PREFIX="$2")
5252 shift
5353 ;;
54 --prefix=*)
55 FLAGS+=(-DCMAKE_INSTALL_PREFIX="${1##--prefix=}")
56 ;;
5457 --enable-threading)
5558 FLAGS+=(-DENABLE_THREADING=ON)
5659 ;;
6164 FLAGS+=(-DBUILD_SHARED_LIBS=ON)
6265 ;;
6366 --enable-static)
64 FLAGS+=(-DBUILD_SHARED_LIBS=OFF)
67 FLAGS+=(-DBUILD_STATIC_LIBS=ON)
6568 ;;
6669 --disable-Bsymbolic)
6770 FLAGS+=(-DDISABLE_BSYMBOLIC=ON)
+0
-207
config.h.win32 less more
0 /* config.h.in. Generated from configure.ac by autoheader. */
1
2 /* Enable RDRANR Hardware RNG Hash Seed */
3 #undef ENABLE_RDRAND
4
5 /* Define if .gnu.warning accepts long strings. */
6 #undef HAS_GNU_WARNING_LONG
7
8 /* Define to 1 if you have the declaration of `INFINITY', and to 0 if you
9 don't. */
10 #if (defined(_MSC_VER) && _MSC_VER >= 1800) || defined(__MINGW32__)
11 #define HAVE_DECL_INFINITY 1
12 #endif
13
14 /* Define to 1 if you have the declaration of `isinf', and to 0 if you don't.
15 */
16 #if (defined(_MSC_VER) && _MSC_VER >= 1800) || defined(__MINGW32__)
17 #define HAVE_DECL_ISINF 1
18 #endif
19
20 /* Define to 1 if you have the declaration of `isnan', and to 0 if you don't.
21 */
22 #if (defined(_MSC_VER) && _MSC_VER >= 1800) || defined(__MINGW32__)
23 #define HAVE_DECL_ISNAN 1
24 #endif
25
26 /* Define to 1 if you have the declaration of `nan', and to 0 if you don't. */
27 #if (defined(_MSC_VER) && _MSC_VER >= 1800) || defined(__MINGW32__)
28 #define HAVE_DECL_NAN 1
29 #endif
30
31 /* Define to 1 if you have the declaration of `_finite', and to 0 if you
32 don't. */
33 #define HAVE_DECL__FINITE 1
34
35 /* Define to 1 if you have the declaration of `_isnan', and to 0 if you don't.
36 */
37 #define HAVE_DECL__ISNAN 1
38
39 /* Define to 1 if you have the <dlfcn.h> header file. */
40 #define HAVE_DLFCN_H 1
41
42 /* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
43 #define HAVE_DOPRNT 1
44
45 /* Define to 1 if you have the <endian.h> header file. */
46 #undef HAVE_ENDIAN_H
47
48 /* Define to 1 if you have the <fcntl.h> header file. */
49 #define HAVE_FCNTL_H 1
50
51 /* Define to 1 if you have the <inttypes.h> header file. */
52 #define HAVE_INTTYPES_H 1
53
54 /* Define to 1 if you have the <limits.h> header file. */
55 #define HAVE_LIMITS_H 1
56
57 /* Define to 1 if you have the <locale.h> header file. */
58 #define HAVE_LOCALE_H 1
59
60 /* Define to 1 if your system has a GNU libc compatible `malloc' function, and
61 to 0 otherwise. */
62 #define HAVE_MALLOC 1
63
64 /* Define to 1 if you have the <memory.h> header file. */
65 #define HAVE_MEMORY_H 1
66
67 /* Define to 1 if you have the `open' function. */
68 #define HAVE_OPEN 1
69
70 /* Define to 1 if your system has a GNU libc compatible `realloc' function,
71 and to 0 otherwise. */
72 #define HAVE_REALLOC 1
73
74 /* Define to 1 if you have the `setlocale' function. */
75 #define HAVE_SETLOCALE 1
76
77 /* Define to 1 if you have the `snprintf' function. */
78 #if defined(__MINGW32__)
79 #define HAVE_SNPRINTF 1
80 #else
81 #undef HAVE_SNPRINTF
82 #endif
83
84 /* Define to 1 if you have the <stdarg.h> header file. */
85 #define HAVE_STDARG_H 1
86
87 /* Define to 1 if you have the <stdint.h> header file. */
88 #define HAVE_STDINT_H 1
89
90 /* Define to 1 if you have the <stdlib.h> header file. */
91 #define HAVE_STDLIB_H 1
92
93 /* Define to 1 if you have the `strcasecmp' function. */
94 #define HAVE_STRCASECMP 1
95
96 /* Define to 1 if you have the `strdup' function. */
97 #define HAVE_STRDUP 0
98
99 /* Define to 1 if you have the `strerror' function. */
100 #define HAVE_STRERROR 1
101
102 /* Define to 1 if you have the <strings.h> header file. */
103 #undef HAVE_STRINGS_H
104
105 /* Define to 1 if you have the <string.h> header file. */
106 #define HAVE_STRING_H 1
107
108 /* Define to 1 if you have the `strncasecmp' function. */
109 #if defined(__MINGW32__)
110 #define HAVE_STRNCASECMP 1
111 #else
112 #undef HAVE_STRNCASECMP
113 #endif
114
115 #cmakedefine HAVE_STRTOLL
116 #cmakedefine strtoll @cmake_strtoll@
117 #cmakedefine HAVE_STRTOULL
118 #cmakedefine strtoull @cmake_strtoull@
119
120 /* Define to 1 if you have the <syslog.h> header file. */
121 #undef HAVE_SYSLOG_H
122
123 /* Define to 1 if you have the <sys/cdefs.h> header file. */
124 #define HAVE_SYS_CDEFS_H 1
125
126 /* Define to 1 if you have the <sys/param.h> header file. */
127 #if defined(__MINGW32__)
128 #define HAVE_SYS_PARAM_H 1
129 #else
130 #undef HAVE_SYS_PARAM_H
131 #endif
132
133 /* Define to 1 if you have the <sys/stat.h> header file. */
134 #define HAVE_SYS_STAT_H 1
135
136 /* Define to 1 if you have the <sys/types.h> header file. */
137 #define HAVE_SYS_TYPES_H 1
138
139 /* Define to 1 if you have the <unistd.h> header file. */
140 #if defined(__MINGW32__)
141 #define HAVE_UNISTD_H 1
142 #else
143 #undef HAVE_UNISTD_H
144 #endif
145
146 /* Define to 1 if you have the `vasprintf' function. */
147 #if defined(__MINGW32__)
148 #define HAVE_VASPRINTF 1
149 #else
150 #undef HAVE_VASPRINTF
151 #endif
152
153 /* Define to 1 if you have the `vprintf' function. */
154 #define HAVE_VPRINTF 1
155
156 /* Define to 1 if you have the `vsnprintf' function. */
157 #define HAVE_VSNPRINTF 1
158
159 /* Define to 1 if you have the `vsyslog' function. */
160 #undef HAVE_VSYSLOG
161
162 /* Define to the sub-directory in which libtool stores uninstalled libraries.
163 */
164 #undef LT_OBJDIR
165
166 /* Define to 1 if your C compiler doesn't accept -c and -o together. */
167 /* #undef NO_MINUS_C_MINUS_O */
168
169 /* Name of package */
170 #define PACKAGE "json-c"
171
172 /* Define to the address where bug reports for this package should be sent. */
173 #define PACKAGE_BUGREPORT "json-c@googlegroups.com"
174
175 /* Define to the full name of this package. */
176 #define PACKAGE_NAME "JSON C Library"
177
178 /* Define to the full name and version of this package. */
179 #define PACKAGE_STRING "JSON C Library 0.14"
180
181 /* Define to the one symbol short name of this package. */
182 #define PACKAGE_TARNAME "json-c"
183
184 /* Define to the home page for this package. */
185 #define PACKAGE_URL "https://github.com/json-c/json-c"
186
187 /* Define to the version of this package. */
188 #define PACKAGE_VERSION "0.14"
189
190 /* Define to 1 if you have the ANSI C header files. */
191 #define STDC_HEADERS 1
192
193 /* Version number of package */
194 #define VERSION "0.14"
195
196 /* Define to empty if `const' does not conform to ANSI C. */
197 /* #undef const */
198
199 /* Define to rpl_malloc if the replacement function should be used. */
200 /* #undef malloc */
201
202 /* Define to rpl_realloc if the replacement function should be used. */
203 /* #undef realloc */
204
205 /* Define to `unsigned int' if <sys/types.h> does not define. */
206 /* #undef size_t */
0 # generate doxygen documentation for json-c API
1
2 find_package(Doxygen)
3
4 if (DOXYGEN_FOUND)
5
6 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
7 ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
8 message(STATUS "Wrote ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile")
9
10 add_custom_target(doc
11 COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
12
13 else (DOXYGEN_FOUND)
14 message("Warning: doxygen not found, the 'doc' target will not be included")
15 endif(DOXYGEN_FOUND)
0 # Doxyfile 1.8.8
1
2 # This file describes the settings to be used by the documentation system
3 # doxygen (www.doxygen.org) for a project.
4 #
5 # All text after a double hash (##) is considered a comment and is placed in
6 # front of the TAG it is preceding.
7 #
8 # All text after a single hash (#) is considered a comment and will be ignored.
9 # The format is:
10 # TAG = value [value, ...]
11 # For lists, items can also be appended using:
12 # TAG += value [value, ...]
13 # Values that contain spaces should be placed between quotes (\" \").
14
15 #---------------------------------------------------------------------------
16 # Project related configuration options
17 #---------------------------------------------------------------------------
18
19 # This tag specifies the encoding used for all characters in the config file
20 # that follow. The default is UTF-8 which is also the encoding used for all text
21 # before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
22 # built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
23 # for the list of possible encodings.
24 # The default value is: UTF-8.
25
26 DOXYFILE_ENCODING = UTF-8
27
28 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
29 # double-quotes, unless you are using Doxywizard) that should identify the
30 # project for which the documentation is generated. This name is used in the
31 # title of most generated pages and in a few other places.
32 # The default value is: My Project.
33
34 PROJECT_NAME = json-c
35
36 # The PROJECT_NUMBER tag can be used to enter a project or revision number. This
37 # could be handy for archiving the generated documentation or if some version
38 # control system is used.
39
40 PROJECT_NUMBER = @PROJECT_VERSION@
41
42 # Using the PROJECT_BRIEF tag one can provide an optional one line description
43 # for a project that appears at the top of each page and should give viewer a
44 # quick idea about the purpose of the project. Keep the description short.
45
46 PROJECT_BRIEF =
47
48 # With the PROJECT_LOGO tag one can specify an logo or icon that is included in
49 # the documentation. The maximum height of the logo should not exceed 55 pixels
50 # and the maximum width should not exceed 200 pixels. Doxygen will copy the logo
51 # to the output directory.
52
53 PROJECT_LOGO =
54
55 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
56 # into which the generated documentation will be written. If a relative path is
57 # entered, it will be relative to the location where doxygen was started. If
58 # left blank the current directory will be used.
59
60 OUTPUT_DIRECTORY = @CMAKE_CURRENT_BINARY_DIR@
61
62 # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
63 # directories (in 2 levels) under the output directory of each output format and
64 # will distribute the generated files over these directories. Enabling this
65 # option can be useful when feeding doxygen a huge amount of source files, where
66 # putting all generated files in the same directory would otherwise causes
67 # performance problems for the file system.
68 # The default value is: NO.
69
70 CREATE_SUBDIRS = NO
71
72 # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
73 # characters to appear in the names of generated files. If set to NO, non-ASCII
74 # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
75 # U+3044.
76 # The default value is: NO.
77
78 ALLOW_UNICODE_NAMES = NO
79
80 # The OUTPUT_LANGUAGE tag is used to specify the language in which all
81 # documentation generated by doxygen is written. Doxygen will use this
82 # information to generate all constant output in the proper language.
83 # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
84 # Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
85 # Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
86 # Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
87 # Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
88 # Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
89 # Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
90 # Ukrainian and Vietnamese.
91 # The default value is: English.
92
93 OUTPUT_LANGUAGE = English
94
95 # If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member
96 # descriptions after the members that are listed in the file and class
97 # documentation (similar to Javadoc). Set to NO to disable this.
98 # The default value is: YES.
99
100 BRIEF_MEMBER_DESC = YES
101
102 # If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief
103 # description of a member or function before the detailed description
104 #
105 # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
106 # brief descriptions will be completely suppressed.
107 # The default value is: YES.
108
109 REPEAT_BRIEF = YES
110
111 # This tag implements a quasi-intelligent brief description abbreviator that is
112 # used to form the text in various listings. Each string in this list, if found
113 # as the leading text of the brief description, will be stripped from the text
114 # and the result, after processing the whole list, is used as the annotated
115 # text. Otherwise, the brief description is used as-is. If left blank, the
116 # following values are used ($name is automatically replaced with the name of
117 # the entity):The $name class, The $name widget, The $name file, is, provides,
118 # specifies, contains, represents, a, an and the.
119
120 ABBREVIATE_BRIEF =
121
122 # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
123 # doxygen will generate a detailed section even if there is only a brief
124 # description.
125 # The default value is: NO.
126
127 ALWAYS_DETAILED_SEC = NO
128
129 # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
130 # inherited members of a class in the documentation of that class as if those
131 # members were ordinary class members. Constructors, destructors and assignment
132 # operators of the base classes will not be shown.
133 # The default value is: NO.
134
135 INLINE_INHERITED_MEMB = NO
136
137 # If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path
138 # before files name in the file list and in the header files. If set to NO the
139 # shortest path that makes the file name unique will be used
140 # The default value is: YES.
141
142 FULL_PATH_NAMES = YES
143
144 # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
145 # Stripping is only done if one of the specified strings matches the left-hand
146 # part of the path. The tag can be used to show relative paths in the file list.
147 # If left blank the directory from which doxygen is run is used as the path to
148 # strip.
149 #
150 # Note that you can specify absolute paths here, but also relative paths, which
151 # will be relative from the directory where doxygen is started.
152 # This tag requires that the tag FULL_PATH_NAMES is set to YES.
153
154 STRIP_FROM_PATH =
155
156 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
157 # path mentioned in the documentation of a class, which tells the reader which
158 # header file to include in order to use a class. If left blank only the name of
159 # the header file containing the class definition is used. Otherwise one should
160 # specify the list of include paths that are normally passed to the compiler
161 # using the -I flag.
162
163 STRIP_FROM_INC_PATH =
164
165 # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
166 # less readable) file names. This can be useful is your file systems doesn't
167 # support long names like on DOS, Mac, or CD-ROM.
168 # The default value is: NO.
169
170 SHORT_NAMES = NO
171
172 # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
173 # first line (until the first dot) of a Javadoc-style comment as the brief
174 # description. If set to NO, the Javadoc-style will behave just like regular Qt-
175 # style comments (thus requiring an explicit @brief command for a brief
176 # description.)
177 # The default value is: NO.
178
179 JAVADOC_AUTOBRIEF = NO
180
181 # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
182 # line (until the first dot) of a Qt-style comment as the brief description. If
183 # set to NO, the Qt-style will behave just like regular Qt-style comments (thus
184 # requiring an explicit \brief command for a brief description.)
185 # The default value is: NO.
186
187 QT_AUTOBRIEF = NO
188
189 # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
190 # multi-line C++ special comment block (i.e. a block of //! or /// comments) as
191 # a brief description. This used to be the default behavior. The new default is
192 # to treat a multi-line C++ comment block as a detailed description. Set this
193 # tag to YES if you prefer the old behavior instead.
194 #
195 # Note that setting this tag to YES also means that rational rose comments are
196 # not recognized any more.
197 # The default value is: NO.
198
199 MULTILINE_CPP_IS_BRIEF = NO
200
201 # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
202 # documentation from any documented member that it re-implements.
203 # The default value is: YES.
204
205 INHERIT_DOCS = YES
206
207 # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a
208 # new page for each member. If set to NO, the documentation of a member will be
209 # part of the file/class/namespace that contains it.
210 # The default value is: NO.
211
212 SEPARATE_MEMBER_PAGES = NO
213
214 # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
215 # uses this value to replace tabs by spaces in code fragments.
216 # Minimum value: 1, maximum value: 16, default value: 4.
217
218 TAB_SIZE = 8
219
220 # This tag can be used to specify a number of aliases that act as commands in
221 # the documentation. An alias has the form:
222 # name=value
223 # For example adding
224 # "sideeffect=@par Side Effects:\n"
225 # will allow you to put the command \sideeffect (or @sideeffect) in the
226 # documentation, which will result in a user-defined paragraph with heading
227 # "Side Effects:". You can put \n's in the value part of an alias to insert
228 # newlines.
229
230 ALIASES =
231
232 # This tag can be used to specify a number of word-keyword mappings (TCL only).
233 # A mapping has the form "name=value". For example adding "class=itcl::class"
234 # will allow you to use the command class in the itcl::class meaning.
235
236 TCL_SUBST =
237
238 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
239 # only. Doxygen will then generate output that is more tailored for C. For
240 # instance, some of the names that are used will be different. The list of all
241 # members will be omitted, etc.
242 # The default value is: NO.
243
244 OPTIMIZE_OUTPUT_FOR_C = YES
245
246 # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
247 # Python sources only. Doxygen will then generate output that is more tailored
248 # for that language. For instance, namespaces will be presented as packages,
249 # qualified scopes will look different, etc.
250 # The default value is: NO.
251
252 OPTIMIZE_OUTPUT_JAVA = NO
253
254 # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
255 # sources. Doxygen will then generate output that is tailored for Fortran.
256 # The default value is: NO.
257
258 OPTIMIZE_FOR_FORTRAN = NO
259
260 # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
261 # sources. Doxygen will then generate output that is tailored for VHDL.
262 # The default value is: NO.
263
264 OPTIMIZE_OUTPUT_VHDL = NO
265
266 # Doxygen selects the parser to use depending on the extension of the files it
267 # parses. With this tag you can assign which parser to use for a given
268 # extension. Doxygen has a built-in mapping, but you can override or extend it
269 # using this tag. The format is ext=language, where ext is a file extension, and
270 # language is one of the parsers supported by doxygen: IDL, Java, Javascript,
271 # C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
272 # FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
273 # Fortran. In the later case the parser tries to guess whether the code is fixed
274 # or free formatted code, this is the default for Fortran type files), VHDL. For
275 # instance to make doxygen treat .inc files as Fortran files (default is PHP),
276 # and .f files as C (default is Fortran), use: inc=Fortran f=C.
277 #
278 # Note For files without extension you can use no_extension as a placeholder.
279 #
280 # Note that for custom extensions you also need to set FILE_PATTERNS otherwise
281 # the files are not read by doxygen.
282
283 EXTENSION_MAPPING =
284
285 # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
286 # according to the Markdown format, which allows for more readable
287 # documentation. See http://daringfireball.net/projects/markdown/ for details.
288 # The output of markdown processing is further processed by doxygen, so you can
289 # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
290 # case of backward compatibilities issues.
291 # The default value is: YES.
292
293 MARKDOWN_SUPPORT = YES
294
295 # When enabled doxygen tries to link words that correspond to documented
296 # classes, or namespaces to their corresponding documentation. Such a link can
297 # be prevented in individual cases by by putting a % sign in front of the word
298 # or globally by setting AUTOLINK_SUPPORT to NO.
299 # The default value is: YES.
300
301 AUTOLINK_SUPPORT = YES
302
303 # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
304 # to include (a tag file for) the STL sources as input, then you should set this
305 # tag to YES in order to let doxygen match functions declarations and
306 # definitions whose arguments contain STL classes (e.g. func(std::string);
307 # versus func(std::string) {}). This also make the inheritance and collaboration
308 # diagrams that involve STL classes more complete and accurate.
309 # The default value is: NO.
310
311 BUILTIN_STL_SUPPORT = NO
312
313 # If you use Microsoft's C++/CLI language, you should set this option to YES to
314 # enable parsing support.
315 # The default value is: NO.
316
317 CPP_CLI_SUPPORT = NO
318
319 # Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
320 # http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
321 # will parse them like normal C++ but will assume all classes use public instead
322 # of private inheritance when no explicit protection keyword is present.
323 # The default value is: NO.
324
325 SIP_SUPPORT = NO
326
327 # For Microsoft's IDL there are propget and propput attributes to indicate
328 # getter and setter methods for a property. Setting this option to YES will make
329 # doxygen to replace the get and set methods by a property in the documentation.
330 # This will only work if the methods are indeed getting or setting a simple
331 # type. If this is not the case, or you want to show the methods anyway, you
332 # should set this option to NO.
333 # The default value is: YES.
334
335 IDL_PROPERTY_SUPPORT = YES
336
337 # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
338 # tag is set to YES, then doxygen will reuse the documentation of the first
339 # member in the group (if any) for the other members of the group. By default
340 # all members of a group must be documented explicitly.
341 # The default value is: NO.
342
343 DISTRIBUTE_GROUP_DOC = NO
344
345 # Set the SUBGROUPING tag to YES to allow class member groups of the same type
346 # (for instance a group of public functions) to be put as a subgroup of that
347 # type (e.g. under the Public Functions section). Set it to NO to prevent
348 # subgrouping. Alternatively, this can be done per class using the
349 # \nosubgrouping command.
350 # The default value is: YES.
351
352 SUBGROUPING = YES
353
354 # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
355 # are shown inside the group in which they are included (e.g. using \ingroup)
356 # instead of on a separate page (for HTML and Man pages) or section (for LaTeX
357 # and RTF).
358 #
359 # Note that this feature does not work in combination with
360 # SEPARATE_MEMBER_PAGES.
361 # The default value is: NO.
362
363 INLINE_GROUPED_CLASSES = NO
364
365 # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
366 # with only public data fields or simple typedef fields will be shown inline in
367 # the documentation of the scope in which they are defined (i.e. file,
368 # namespace, or group documentation), provided this scope is documented. If set
369 # to NO, structs, classes, and unions are shown on a separate page (for HTML and
370 # Man pages) or section (for LaTeX and RTF).
371 # The default value is: NO.
372
373 INLINE_SIMPLE_STRUCTS = NO
374
375 # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
376 # enum is documented as struct, union, or enum with the name of the typedef. So
377 # typedef struct TypeS {} TypeT, will appear in the documentation as a struct
378 # with name TypeT. When disabled the typedef will appear as a member of a file,
379 # namespace, or class. And the struct will be named TypeS. This can typically be
380 # useful for C code in case the coding convention dictates that all compound
381 # types are typedef'ed and only the typedef is referenced, never the tag name.
382 # The default value is: NO.
383
384 TYPEDEF_HIDES_STRUCT = NO
385
386 # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
387 # cache is used to resolve symbols given their name and scope. Since this can be
388 # an expensive process and often the same symbol appears multiple times in the
389 # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
390 # doxygen will become slower. If the cache is too large, memory is wasted. The
391 # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
392 # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
393 # symbols. At the end of a run doxygen will report the cache usage and suggest
394 # the optimal cache size from a speed point of view.
395 # Minimum value: 0, maximum value: 9, default value: 0.
396
397 LOOKUP_CACHE_SIZE = 0
398
399 #---------------------------------------------------------------------------
400 # Build related configuration options
401 #---------------------------------------------------------------------------
402
403 # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
404 # documentation are documented, even if no documentation was available. Private
405 # class members and static file members will be hidden unless the
406 # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
407 # Note: This will also disable the warnings about undocumented members that are
408 # normally produced when WARNINGS is set to YES.
409 # The default value is: NO.
410
411 EXTRACT_ALL = YES
412
413 # If the EXTRACT_PRIVATE tag is set to YES all private members of a class will
414 # be included in the documentation.
415 # The default value is: NO.
416
417 EXTRACT_PRIVATE = NO
418
419 # If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
420 # scope will be included in the documentation.
421 # The default value is: NO.
422
423 EXTRACT_PACKAGE = NO
424
425 # If the EXTRACT_STATIC tag is set to YES all static members of a file will be
426 # included in the documentation.
427 # The default value is: NO.
428
429 EXTRACT_STATIC = NO
430
431 # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
432 # locally in source files will be included in the documentation. If set to NO
433 # only classes defined in header files are included. Does not have any effect
434 # for Java sources.
435 # The default value is: YES.
436
437 EXTRACT_LOCAL_CLASSES = NO
438
439 # This flag is only useful for Objective-C code. When set to YES local methods,
440 # which are defined in the implementation section but not in the interface are
441 # included in the documentation. If set to NO only methods in the interface are
442 # included.
443 # The default value is: NO.
444
445 EXTRACT_LOCAL_METHODS = NO
446
447 # If this flag is set to YES, the members of anonymous namespaces will be
448 # extracted and appear in the documentation as a namespace called
449 # 'anonymous_namespace{file}', where file will be replaced with the base name of
450 # the file that contains the anonymous namespace. By default anonymous namespace
451 # are hidden.
452 # The default value is: NO.
453
454 EXTRACT_ANON_NSPACES = NO
455
456 # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
457 # undocumented members inside documented classes or files. If set to NO these
458 # members will be included in the various overviews, but no documentation
459 # section is generated. This option has no effect if EXTRACT_ALL is enabled.
460 # The default value is: NO.
461
462 HIDE_UNDOC_MEMBERS = NO
463
464 # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
465 # undocumented classes that are normally visible in the class hierarchy. If set
466 # to NO these classes will be included in the various overviews. This option has
467 # no effect if EXTRACT_ALL is enabled.
468 # The default value is: NO.
469
470 HIDE_UNDOC_CLASSES = NO
471
472 # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
473 # (class|struct|union) declarations. If set to NO these declarations will be
474 # included in the documentation.
475 # The default value is: NO.
476
477 HIDE_FRIEND_COMPOUNDS = NO
478
479 # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
480 # documentation blocks found inside the body of a function. If set to NO these
481 # blocks will be appended to the function's detailed documentation block.
482 # The default value is: NO.
483
484 HIDE_IN_BODY_DOCS = NO
485
486 # The INTERNAL_DOCS tag determines if documentation that is typed after a
487 # \internal command is included. If the tag is set to NO then the documentation
488 # will be excluded. Set it to YES to include the internal documentation.
489 # The default value is: NO.
490
491 INTERNAL_DOCS = NO
492
493 # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
494 # names in lower-case letters. If set to YES upper-case letters are also
495 # allowed. This is useful if you have classes or files whose names only differ
496 # in case and if your file system supports case sensitive file names. Windows
497 # and Mac users are advised to set this option to NO.
498 # The default value is: system dependent.
499
500 CASE_SENSE_NAMES = YES
501
502 # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
503 # their full class and namespace scopes in the documentation. If set to YES the
504 # scope will be hidden.
505 # The default value is: NO.
506
507 HIDE_SCOPE_NAMES = NO
508
509 # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
510 # the files that are included by a file in the documentation of that file.
511 # The default value is: YES.
512
513 SHOW_INCLUDE_FILES = NO
514
515 # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
516 # grouped member an include statement to the documentation, telling the reader
517 # which file to include in order to use the member.
518 # The default value is: NO.
519
520 SHOW_GROUPED_MEMB_INC = NO
521
522 # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
523 # files with double quotes in the documentation rather than with sharp brackets.
524 # The default value is: NO.
525
526 FORCE_LOCAL_INCLUDES = NO
527
528 # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
529 # documentation for inline members.
530 # The default value is: YES.
531
532 INLINE_INFO = YES
533
534 # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
535 # (detailed) documentation of file and class members alphabetically by member
536 # name. If set to NO the members will appear in declaration order.
537 # The default value is: YES.
538
539 SORT_MEMBER_DOCS = YES
540
541 # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
542 # descriptions of file, namespace and class members alphabetically by member
543 # name. If set to NO the members will appear in declaration order. Note that
544 # this will also influence the order of the classes in the class list.
545 # The default value is: NO.
546
547 SORT_BRIEF_DOCS = NO
548
549 # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
550 # (brief and detailed) documentation of class members so that constructors and
551 # destructors are listed first. If set to NO the constructors will appear in the
552 # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
553 # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
554 # member documentation.
555 # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
556 # detailed member documentation.
557 # The default value is: NO.
558
559 SORT_MEMBERS_CTORS_1ST = NO
560
561 # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
562 # of group names into alphabetical order. If set to NO the group names will
563 # appear in their defined order.
564 # The default value is: NO.
565
566 SORT_GROUP_NAMES = NO
567
568 # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
569 # fully-qualified names, including namespaces. If set to NO, the class list will
570 # be sorted only by class name, not including the namespace part.
571 # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
572 # Note: This option applies only to the class list, not to the alphabetical
573 # list.
574 # The default value is: NO.
575
576 SORT_BY_SCOPE_NAME = NO
577
578 # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
579 # type resolution of all parameters of a function it will reject a match between
580 # the prototype and the implementation of a member function even if there is
581 # only one candidate or it is obvious which candidate to choose by doing a
582 # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
583 # accept a match between prototype and implementation in such cases.
584 # The default value is: NO.
585
586 STRICT_PROTO_MATCHING = NO
587
588 # The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the
589 # todo list. This list is created by putting \todo commands in the
590 # documentation.
591 # The default value is: YES.
592
593 GENERATE_TODOLIST = YES
594
595 # The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the
596 # test list. This list is created by putting \test commands in the
597 # documentation.
598 # The default value is: YES.
599
600 GENERATE_TESTLIST = YES
601
602 # The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug
603 # list. This list is created by putting \bug commands in the documentation.
604 # The default value is: YES.
605
606 GENERATE_BUGLIST = YES
607
608 # The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO)
609 # the deprecated list. This list is created by putting \deprecated commands in
610 # the documentation.
611 # The default value is: YES.
612
613 GENERATE_DEPRECATEDLIST= YES
614
615 # The ENABLED_SECTIONS tag can be used to enable conditional documentation
616 # sections, marked by \if <section_label> ... \endif and \cond <section_label>
617 # ... \endcond blocks.
618
619 ENABLED_SECTIONS =
620
621 # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
622 # initial value of a variable or macro / define can have for it to appear in the
623 # documentation. If the initializer consists of more lines than specified here
624 # it will be hidden. Use a value of 0 to hide initializers completely. The
625 # appearance of the value of individual variables and macros / defines can be
626 # controlled using \showinitializer or \hideinitializer command in the
627 # documentation regardless of this setting.
628 # Minimum value: 0, maximum value: 10000, default value: 30.
629
630 MAX_INITIALIZER_LINES = 30
631
632 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
633 # the bottom of the documentation of classes and structs. If set to YES the list
634 # will mention the files that were used to generate the documentation.
635 # The default value is: YES.
636
637 SHOW_USED_FILES = YES
638
639 # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
640 # will remove the Files entry from the Quick Index and from the Folder Tree View
641 # (if specified).
642 # The default value is: YES.
643
644 SHOW_FILES = YES
645
646 # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
647 # page. This will remove the Namespaces entry from the Quick Index and from the
648 # Folder Tree View (if specified).
649 # The default value is: YES.
650
651 SHOW_NAMESPACES = YES
652
653 # The FILE_VERSION_FILTER tag can be used to specify a program or script that
654 # doxygen should invoke to get the current version for each file (typically from
655 # the version control system). Doxygen will invoke the program by executing (via
656 # popen()) the command command input-file, where command is the value of the
657 # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
658 # by doxygen. Whatever the program writes to standard output is used as the file
659 # version. For an example see the documentation.
660
661 FILE_VERSION_FILTER =
662
663 # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
664 # by doxygen. The layout file controls the global structure of the generated
665 # output files in an output format independent way. To create the layout file
666 # that represents doxygen's defaults, run doxygen with the -l option. You can
667 # optionally specify a file name after the option, if omitted DoxygenLayout.xml
668 # will be used as the name of the layout file.
669 #
670 # Note that if you run doxygen from a directory containing a file called
671 # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
672 # tag is left empty.
673
674 LAYOUT_FILE =
675
676 # The CITE_BIB_FILES tag can be used to specify one or more bib files containing
677 # the reference definitions. This must be a list of .bib files. The .bib
678 # extension is automatically appended if omitted. This requires the bibtex tool
679 # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
680 # For LaTeX the style of the bibliography can be controlled using
681 # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
682 # search path. See also \cite for info how to create references.
683
684 CITE_BIB_FILES =
685
686 #---------------------------------------------------------------------------
687 # Configuration options related to warning and progress messages
688 #---------------------------------------------------------------------------
689
690 # The QUIET tag can be used to turn on/off the messages that are generated to
691 # standard output by doxygen. If QUIET is set to YES this implies that the
692 # messages are off.
693 # The default value is: NO.
694
695 QUIET = NO
696
697 # The WARNINGS tag can be used to turn on/off the warning messages that are
698 # generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES
699 # this implies that the warnings are on.
700 #
701 # Tip: Turn warnings on while writing the documentation.
702 # The default value is: YES.
703
704 WARNINGS = YES
705
706 # If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate
707 # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
708 # will automatically be disabled.
709 # The default value is: YES.
710
711 WARN_IF_UNDOCUMENTED = YES
712
713 # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
714 # potential errors in the documentation, such as not documenting some parameters
715 # in a documented function, or documenting parameters that don't exist or using
716 # markup commands wrongly.
717 # The default value is: YES.
718
719 WARN_IF_DOC_ERROR = YES
720
721 # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
722 # are documented, but have no documentation for their parameters or return
723 # value. If set to NO doxygen will only warn about wrong or incomplete parameter
724 # documentation, but not about the absence of documentation.
725 # The default value is: NO.
726
727 WARN_NO_PARAMDOC = NO
728
729 # The WARN_FORMAT tag determines the format of the warning messages that doxygen
730 # can produce. The string should contain the $file, $line, and $text tags, which
731 # will be replaced by the file and line number from which the warning originated
732 # and the warning text. Optionally the format may contain $version, which will
733 # be replaced by the version of the file (if it could be obtained via
734 # FILE_VERSION_FILTER)
735 # The default value is: $file:$line: $text.
736
737 WARN_FORMAT = "$file:$line: $text"
738
739 # The WARN_LOGFILE tag can be used to specify a file to which warning and error
740 # messages should be written. If left blank the output is written to standard
741 # error (stderr).
742
743 WARN_LOGFILE =
744
745 #---------------------------------------------------------------------------
746 # Configuration options related to the input files
747 #---------------------------------------------------------------------------
748
749 # The INPUT tag is used to specify the files and/or directories that contain
750 # documented source files. You may enter file names like myfile.cpp or
751 # directories like /usr/src/myproject. Separate the files or directories with
752 # spaces.
753 # Note: If this tag is empty the current directory is searched.
754
755 INPUT = @CMAKE_SOURCE_DIR@ @CMAKE_BINARY_DIR@
756
757 # This tag can be used to specify the character encoding of the source files
758 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
759 # libiconv (or the iconv built into libc) for the transcoding. See the libiconv
760 # documentation (see: http://www.gnu.org/software/libiconv) for the list of
761 # possible encodings.
762 # The default value is: UTF-8.
763
764 INPUT_ENCODING = UTF-8
765
766 # If the value of the INPUT tag contains directories, you can use the
767 # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
768 # *.h) to filter out the source-files in the directories. If left blank the
769 # following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
770 # *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
771 # *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
772 # *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
773 # *.qsf, *.as and *.js.
774
775 FILE_PATTERNS = *.h \
776 *.md
777
778 # The RECURSIVE tag can be used to specify whether or not subdirectories should
779 # be searched for input files as well.
780 # The default value is: NO.
781
782 RECURSIVE = NO
783
784 # The EXCLUDE tag can be used to specify files and/or directories that should be
785 # excluded from the INPUT source files. This way you can easily exclude a
786 # subdirectory from a directory tree whose root is specified with the INPUT tag.
787 #
788 # Note that relative paths are relative to the directory from which doxygen is
789 # run.
790
791 EXCLUDE =
792
793 # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
794 # directories that are symbolic links (a Unix file system feature) are excluded
795 # from the input.
796 # The default value is: NO.
797
798 EXCLUDE_SYMLINKS = NO
799
800 # If the value of the INPUT tag contains directories, you can use the
801 # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
802 # certain files from those directories.
803 #
804 # Note that the wildcards are matched against the file with absolute path, so to
805 # exclude all test directories for example use the pattern */test/*
806
807 EXCLUDE_PATTERNS = \
808 */json_object_private.h \
809 */debug.h \
810 */*config.h \
811 */random_seed.h \
812 */strerror_*h \
813 */*compat.h
814
815 # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
816 # (namespaces, classes, functions, etc.) that should be excluded from the
817 # output. The symbol name can be a fully qualified name, a word, or if the
818 # wildcard * is used, a substring. Examples: ANamespace, AClass,
819 # AClass::ANamespace, ANamespace::*Test
820 #
821 # Note that the wildcards are matched against the file with absolute path, so to
822 # exclude all test directories use the pattern */test/*
823
824 EXCLUDE_SYMBOLS = \
825 _json_c_* \
826 _LH_* \
827 _printbuf_* \
828 __STRING
829
830 # The EXAMPLE_PATH tag can be used to specify one or more files or directories
831 # that contain example code fragments that are included (see the \include
832 # command).
833
834 EXAMPLE_PATH =
835
836 # If the value of the EXAMPLE_PATH tag contains directories, you can use the
837 # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
838 # *.h) to filter out the source-files in the directories. If left blank all
839 # files are included.
840
841 EXAMPLE_PATTERNS =
842
843 # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
844 # searched for input files to be used with the \include or \dontinclude commands
845 # irrespective of the value of the RECURSIVE tag.
846 # The default value is: NO.
847
848 EXAMPLE_RECURSIVE = NO
849
850 # The IMAGE_PATH tag can be used to specify one or more files or directories
851 # that contain images that are to be included in the documentation (see the
852 # \image command).
853
854 IMAGE_PATH =
855
856 # The INPUT_FILTER tag can be used to specify a program that doxygen should
857 # invoke to filter for each input file. Doxygen will invoke the filter program
858 # by executing (via popen()) the command:
859 #
860 # <filter> <input-file>
861 #
862 # where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
863 # name of an input file. Doxygen will then use the output that the filter
864 # program writes to standard output. If FILTER_PATTERNS is specified, this tag
865 # will be ignored.
866 #
867 # Note that the filter must not add or remove lines; it is applied before the
868 # code is scanned, but not when the output code is generated. If lines are added
869 # or removed, the anchors will not be placed correctly.
870
871 INPUT_FILTER = @CMAKE_CURRENT_SOURCE_DIR@/fixup_markdown.sh
872
873 # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
874 # basis. Doxygen will compare the file name with each pattern and apply the
875 # filter if there is a match. The filters are a list of the form: pattern=filter
876 # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
877 # filters are used. If the FILTER_PATTERNS tag is empty or if none of the
878 # patterns match the file name, INPUT_FILTER is applied.
879
880 FILTER_PATTERNS =
881
882 # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
883 # INPUT_FILTER ) will also be used to filter the input files that are used for
884 # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
885 # The default value is: NO.
886
887 FILTER_SOURCE_FILES = NO
888
889 # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
890 # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
891 # it is also possible to disable source filtering for a specific pattern using
892 # *.ext= (so without naming a filter).
893 # This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
894
895 FILTER_SOURCE_PATTERNS =
896
897 # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
898 # is part of the input, its contents will be placed on the main page
899 # (index.html). This can be useful if you have a project on for instance GitHub
900 # and want to reuse the introduction page also for the doxygen output.
901
902 USE_MDFILE_AS_MAINPAGE = README.md
903
904 #---------------------------------------------------------------------------
905 # Configuration options related to source browsing
906 #---------------------------------------------------------------------------
907
908 # If the SOURCE_BROWSER tag is set to YES then a list of source files will be
909 # generated. Documented entities will be cross-referenced with these sources.
910 #
911 # Note: To get rid of all source code in the generated output, make sure that
912 # also VERBATIM_HEADERS is set to NO.
913 # The default value is: NO.
914
915 SOURCE_BROWSER = NO
916
917 # Setting the INLINE_SOURCES tag to YES will include the body of functions,
918 # classes and enums directly into the documentation.
919 # The default value is: NO.
920
921 INLINE_SOURCES = NO
922
923 # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
924 # special comment blocks from generated source code fragments. Normal C, C++ and
925 # Fortran comments will always remain visible.
926 # The default value is: YES.
927
928 STRIP_CODE_COMMENTS = YES
929
930 # If the REFERENCED_BY_RELATION tag is set to YES then for each documented
931 # function all documented functions referencing it will be listed.
932 # The default value is: NO.
933
934 REFERENCED_BY_RELATION = YES
935
936 # If the REFERENCES_RELATION tag is set to YES then for each documented function
937 # all documented entities called/used by that function will be listed.
938 # The default value is: NO.
939
940 REFERENCES_RELATION = YES
941
942 # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
943 # to YES, then the hyperlinks from functions in REFERENCES_RELATION and
944 # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
945 # link to the documentation.
946 # The default value is: YES.
947
948 REFERENCES_LINK_SOURCE = YES
949
950 # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
951 # source code will show a tooltip with additional information such as prototype,
952 # brief description and links to the definition and documentation. Since this
953 # will make the HTML file larger and loading of large files a bit slower, you
954 # can opt to disable this feature.
955 # The default value is: YES.
956 # This tag requires that the tag SOURCE_BROWSER is set to YES.
957
958 SOURCE_TOOLTIPS = YES
959
960 # If the USE_HTAGS tag is set to YES then the references to source code will
961 # point to the HTML generated by the htags(1) tool instead of doxygen built-in
962 # source browser. The htags tool is part of GNU's global source tagging system
963 # (see http://www.gnu.org/software/global/global.html). You will need version
964 # 4.8.6 or higher.
965 #
966 # To use it do the following:
967 # - Install the latest version of global
968 # - Enable SOURCE_BROWSER and USE_HTAGS in the config file
969 # - Make sure the INPUT points to the root of the source tree
970 # - Run doxygen as normal
971 #
972 # Doxygen will invoke htags (and that will in turn invoke gtags), so these
973 # tools must be available from the command line (i.e. in the search path).
974 #
975 # The result: instead of the source browser generated by doxygen, the links to
976 # source code will now point to the output of htags.
977 # The default value is: NO.
978 # This tag requires that the tag SOURCE_BROWSER is set to YES.
979
980 USE_HTAGS = NO
981
982 # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
983 # verbatim copy of the header file for each class for which an include is
984 # specified. Set to NO to disable this.
985 # See also: Section \class.
986 # The default value is: YES.
987
988 VERBATIM_HEADERS = NO
989
990 # If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the
991 # clang parser (see: http://clang.llvm.org/) for more accurate parsing at the
992 # cost of reduced performance. This can be particularly helpful with template
993 # rich C++ code for which doxygen's built-in parser lacks the necessary type
994 # information.
995 # Note: The availability of this option depends on whether or not doxygen was
996 # compiled with the --with-libclang option.
997 # The default value is: NO.
998
999 #CLANG_ASSISTED_PARSING = NO
1000
1001 # If clang assisted parsing is enabled you can provide the compiler with command
1002 # line options that you would normally use when invoking the compiler. Note that
1003 # the include paths will already be set by doxygen for the files and directories
1004 # specified with INPUT and INCLUDE_PATH.
1005 # This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
1006
1007 #CLANG_OPTIONS =
1008
1009 #---------------------------------------------------------------------------
1010 # Configuration options related to the alphabetical class index
1011 #---------------------------------------------------------------------------
1012
1013 # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
1014 # compounds will be generated. Enable this if the project contains a lot of
1015 # classes, structs, unions or interfaces.
1016 # The default value is: YES.
1017
1018 ALPHABETICAL_INDEX = NO
1019
1020 # The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
1021 # which the alphabetical index list will be split.
1022 # Minimum value: 1, maximum value: 20, default value: 5.
1023 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
1024
1025 COLS_IN_ALPHA_INDEX = 5
1026
1027 # In case all classes in a project start with a common prefix, all classes will
1028 # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
1029 # can be used to specify a prefix (or a list of prefixes) that should be ignored
1030 # while generating the index headers.
1031 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
1032
1033 IGNORE_PREFIX =
1034
1035 #---------------------------------------------------------------------------
1036 # Configuration options related to the HTML output
1037 #---------------------------------------------------------------------------
1038
1039 # If the GENERATE_HTML tag is set to YES doxygen will generate HTML output
1040 # The default value is: YES.
1041
1042 GENERATE_HTML = YES
1043
1044 # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
1045 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
1046 # it.
1047 # The default directory is: html.
1048 # This tag requires that the tag GENERATE_HTML is set to YES.
1049
1050 HTML_OUTPUT = html
1051
1052 # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
1053 # generated HTML page (for example: .htm, .php, .asp).
1054 # The default value is: .html.
1055 # This tag requires that the tag GENERATE_HTML is set to YES.
1056
1057 HTML_FILE_EXTENSION = .html
1058
1059 # The HTML_HEADER tag can be used to specify a user-defined HTML header file for
1060 # each generated HTML page. If the tag is left blank doxygen will generate a
1061 # standard header.
1062 #
1063 # To get valid HTML the header file that includes any scripts and style sheets
1064 # that doxygen needs, which is dependent on the configuration options used (e.g.
1065 # the setting GENERATE_TREEVIEW). It is highly recommended to start with a
1066 # default header using
1067 # doxygen -w html new_header.html new_footer.html new_stylesheet.css
1068 # YourConfigFile
1069 # and then modify the file new_header.html. See also section "Doxygen usage"
1070 # for information on how to generate the default header that doxygen normally
1071 # uses.
1072 # Note: The header is subject to change so you typically have to regenerate the
1073 # default header when upgrading to a newer version of doxygen. For a description
1074 # of the possible markers and block names see the documentation.
1075 # This tag requires that the tag GENERATE_HTML is set to YES.
1076
1077 HTML_HEADER =
1078
1079 # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
1080 # generated HTML page. If the tag is left blank doxygen will generate a standard
1081 # footer. See HTML_HEADER for more information on how to generate a default
1082 # footer and what special commands can be used inside the footer. See also
1083 # section "Doxygen usage" for information on how to generate the default footer
1084 # that doxygen normally uses.
1085 # This tag requires that the tag GENERATE_HTML is set to YES.
1086
1087 HTML_FOOTER =
1088
1089 # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
1090 # sheet that is used by each HTML page. It can be used to fine-tune the look of
1091 # the HTML output. If left blank doxygen will generate a default style sheet.
1092 # See also section "Doxygen usage" for information on how to generate the style
1093 # sheet that doxygen normally uses.
1094 # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
1095 # it is more robust and this tag (HTML_STYLESHEET) will in the future become
1096 # obsolete.
1097 # This tag requires that the tag GENERATE_HTML is set to YES.
1098
1099 HTML_STYLESHEET =
1100
1101 # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
1102 # cascading style sheets that are included after the standard style sheets
1103 # created by doxygen. Using this option one can overrule certain style aspects.
1104 # This is preferred over using HTML_STYLESHEET since it does not replace the
1105 # standard style sheet and is therefor more robust against future updates.
1106 # Doxygen will copy the style sheet files to the output directory.
1107 # Note: The order of the extra stylesheet files is of importance (e.g. the last
1108 # stylesheet in the list overrules the setting of the previous ones in the
1109 # list). For an example see the documentation.
1110 # This tag requires that the tag GENERATE_HTML is set to YES.
1111
1112 HTML_EXTRA_STYLESHEET =
1113
1114 # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
1115 # other source files which should be copied to the HTML output directory. Note
1116 # that these files will be copied to the base HTML output directory. Use the
1117 # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
1118 # files. In the HTML_STYLESHEET file, use the file name only. Also note that the
1119 # files will be copied as-is; there are no commands or markers available.
1120 # This tag requires that the tag GENERATE_HTML is set to YES.
1121
1122 HTML_EXTRA_FILES =
1123
1124 # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
1125 # will adjust the colors in the stylesheet and background images according to
1126 # this color. Hue is specified as an angle on a colorwheel, see
1127 # http://en.wikipedia.org/wiki/Hue for more information. For instance the value
1128 # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
1129 # purple, and 360 is red again.
1130 # Minimum value: 0, maximum value: 359, default value: 220.
1131 # This tag requires that the tag GENERATE_HTML is set to YES.
1132
1133 HTML_COLORSTYLE_HUE = 220
1134
1135 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
1136 # in the HTML output. For a value of 0 the output will use grayscales only. A
1137 # value of 255 will produce the most vivid colors.
1138 # Minimum value: 0, maximum value: 255, default value: 100.
1139 # This tag requires that the tag GENERATE_HTML is set to YES.
1140
1141 HTML_COLORSTYLE_SAT = 100
1142
1143 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
1144 # luminance component of the colors in the HTML output. Values below 100
1145 # gradually make the output lighter, whereas values above 100 make the output
1146 # darker. The value divided by 100 is the actual gamma applied, so 80 represents
1147 # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
1148 # change the gamma.
1149 # Minimum value: 40, maximum value: 240, default value: 80.
1150 # This tag requires that the tag GENERATE_HTML is set to YES.
1151
1152 HTML_COLORSTYLE_GAMMA = 80
1153
1154 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
1155 # page will contain the date and time when the page was generated. Setting this
1156 # to NO can help when comparing the output of multiple runs.
1157 # The default value is: YES.
1158 # This tag requires that the tag GENERATE_HTML is set to YES.
1159
1160 HTML_TIMESTAMP = YES
1161
1162 # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
1163 # documentation will contain sections that can be hidden and shown after the
1164 # page has loaded.
1165 # The default value is: NO.
1166 # This tag requires that the tag GENERATE_HTML is set to YES.
1167
1168 HTML_DYNAMIC_SECTIONS = NO
1169
1170 # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
1171 # shown in the various tree structured indices initially; the user can expand
1172 # and collapse entries dynamically later on. Doxygen will expand the tree to
1173 # such a level that at most the specified number of entries are visible (unless
1174 # a fully collapsed tree already exceeds this amount). So setting the number of
1175 # entries 1 will produce a full collapsed tree by default. 0 is a special value
1176 # representing an infinite number of entries and will result in a full expanded
1177 # tree by default.
1178 # Minimum value: 0, maximum value: 9999, default value: 100.
1179 # This tag requires that the tag GENERATE_HTML is set to YES.
1180
1181 HTML_INDEX_NUM_ENTRIES = 100
1182
1183 # If the GENERATE_DOCSET tag is set to YES, additional index files will be
1184 # generated that can be used as input for Apple's Xcode 3 integrated development
1185 # environment (see: http://developer.apple.com/tools/xcode/), introduced with
1186 # OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
1187 # Makefile in the HTML output directory. Running make will produce the docset in
1188 # that directory and running make install will install the docset in
1189 # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
1190 # startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
1191 # for more information.
1192 # The default value is: NO.
1193 # This tag requires that the tag GENERATE_HTML is set to YES.
1194
1195 GENERATE_DOCSET = NO
1196
1197 # This tag determines the name of the docset feed. A documentation feed provides
1198 # an umbrella under which multiple documentation sets from a single provider
1199 # (such as a company or product suite) can be grouped.
1200 # The default value is: Doxygen generated docs.
1201 # This tag requires that the tag GENERATE_DOCSET is set to YES.
1202
1203 DOCSET_FEEDNAME = "Doxygen generated docs"
1204
1205 # This tag specifies a string that should uniquely identify the documentation
1206 # set bundle. This should be a reverse domain-name style string, e.g.
1207 # com.mycompany.MyDocSet. Doxygen will append .docset to the name.
1208 # The default value is: org.doxygen.Project.
1209 # This tag requires that the tag GENERATE_DOCSET is set to YES.
1210
1211 DOCSET_BUNDLE_ID = org.doxygen.Project
1212
1213 # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
1214 # the documentation publisher. This should be a reverse domain-name style
1215 # string, e.g. com.mycompany.MyDocSet.documentation.
1216 # The default value is: org.doxygen.Publisher.
1217 # This tag requires that the tag GENERATE_DOCSET is set to YES.
1218
1219 DOCSET_PUBLISHER_ID = org.doxygen.Publisher
1220
1221 # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
1222 # The default value is: Publisher.
1223 # This tag requires that the tag GENERATE_DOCSET is set to YES.
1224
1225 DOCSET_PUBLISHER_NAME = Publisher
1226
1227 # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
1228 # additional HTML index files: index.hhp, index.hhc, and index.hhk. The
1229 # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
1230 # (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
1231 # Windows.
1232 #
1233 # The HTML Help Workshop contains a compiler that can convert all HTML output
1234 # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
1235 # files are now used as the Windows 98 help format, and will replace the old
1236 # Windows help format (.hlp) on all Windows platforms in the future. Compressed
1237 # HTML files also contain an index, a table of contents, and you can search for
1238 # words in the documentation. The HTML workshop also contains a viewer for
1239 # compressed HTML files.
1240 # The default value is: NO.
1241 # This tag requires that the tag GENERATE_HTML is set to YES.
1242
1243 GENERATE_HTMLHELP = NO
1244
1245 # The CHM_FILE tag can be used to specify the file name of the resulting .chm
1246 # file. You can add a path in front of the file if the result should not be
1247 # written to the html output directory.
1248 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
1249
1250 CHM_FILE =
1251
1252 # The HHC_LOCATION tag can be used to specify the location (absolute path
1253 # including file name) of the HTML help compiler ( hhc.exe). If non-empty
1254 # doxygen will try to run the HTML help compiler on the generated index.hhp.
1255 # The file has to be specified with full path.
1256 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
1257
1258 HHC_LOCATION =
1259
1260 # The GENERATE_CHI flag controls if a separate .chi index file is generated (
1261 # YES) or that it should be included in the master .chm file ( NO).
1262 # The default value is: NO.
1263 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
1264
1265 GENERATE_CHI = NO
1266
1267 # The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc)
1268 # and project file content.
1269 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
1270
1271 CHM_INDEX_ENCODING =
1272
1273 # The BINARY_TOC flag controls whether a binary table of contents is generated (
1274 # YES) or a normal table of contents ( NO) in the .chm file. Furthermore it
1275 # enables the Previous and Next buttons.
1276 # The default value is: NO.
1277 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
1278
1279 BINARY_TOC = NO
1280
1281 # The TOC_EXPAND flag can be set to YES to add extra items for group members to
1282 # the table of contents of the HTML help documentation and to the tree view.
1283 # The default value is: NO.
1284 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
1285
1286 TOC_EXPAND = NO
1287
1288 # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
1289 # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
1290 # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
1291 # (.qch) of the generated HTML documentation.
1292 # The default value is: NO.
1293 # This tag requires that the tag GENERATE_HTML is set to YES.
1294
1295 GENERATE_QHP = NO
1296
1297 # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
1298 # the file name of the resulting .qch file. The path specified is relative to
1299 # the HTML output folder.
1300 # This tag requires that the tag GENERATE_QHP is set to YES.
1301
1302 QCH_FILE =
1303
1304 # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
1305 # Project output. For more information please see Qt Help Project / Namespace
1306 # (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
1307 # The default value is: org.doxygen.Project.
1308 # This tag requires that the tag GENERATE_QHP is set to YES.
1309
1310 QHP_NAMESPACE = org.doxygen.Project
1311
1312 # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
1313 # Help Project output. For more information please see Qt Help Project / Virtual
1314 # Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
1315 # folders).
1316 # The default value is: doc.
1317 # This tag requires that the tag GENERATE_QHP is set to YES.
1318
1319 QHP_VIRTUAL_FOLDER = doc
1320
1321 # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
1322 # filter to add. For more information please see Qt Help Project / Custom
1323 # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
1324 # filters).
1325 # This tag requires that the tag GENERATE_QHP is set to YES.
1326
1327 QHP_CUST_FILTER_NAME =
1328
1329 # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
1330 # custom filter to add. For more information please see Qt Help Project / Custom
1331 # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
1332 # filters).
1333 # This tag requires that the tag GENERATE_QHP is set to YES.
1334
1335 QHP_CUST_FILTER_ATTRS =
1336
1337 # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
1338 # project's filter section matches. Qt Help Project / Filter Attributes (see:
1339 # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
1340 # This tag requires that the tag GENERATE_QHP is set to YES.
1341
1342 QHP_SECT_FILTER_ATTRS =
1343
1344 # The QHG_LOCATION tag can be used to specify the location of Qt's
1345 # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
1346 # generated .qhp file.
1347 # This tag requires that the tag GENERATE_QHP is set to YES.
1348
1349 QHG_LOCATION =
1350
1351 # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
1352 # generated, together with the HTML files, they form an Eclipse help plugin. To
1353 # install this plugin and make it available under the help contents menu in
1354 # Eclipse, the contents of the directory containing the HTML and XML files needs
1355 # to be copied into the plugins directory of eclipse. The name of the directory
1356 # within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
1357 # After copying Eclipse needs to be restarted before the help appears.
1358 # The default value is: NO.
1359 # This tag requires that the tag GENERATE_HTML is set to YES.
1360
1361 GENERATE_ECLIPSEHELP = NO
1362
1363 # A unique identifier for the Eclipse help plugin. When installing the plugin
1364 # the directory name containing the HTML and XML files should also have this
1365 # name. Each documentation set should have its own identifier.
1366 # The default value is: org.doxygen.Project.
1367 # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
1368
1369 ECLIPSE_DOC_ID = org.doxygen.Project
1370
1371 # If you want full control over the layout of the generated HTML pages it might
1372 # be necessary to disable the index and replace it with your own. The
1373 # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
1374 # of each HTML page. A value of NO enables the index and the value YES disables
1375 # it. Since the tabs in the index contain the same information as the navigation
1376 # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
1377 # The default value is: NO.
1378 # This tag requires that the tag GENERATE_HTML is set to YES.
1379
1380 DISABLE_INDEX = NO
1381
1382 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
1383 # structure should be generated to display hierarchical information. If the tag
1384 # value is set to YES, a side panel will be generated containing a tree-like
1385 # index structure (just like the one that is generated for HTML Help). For this
1386 # to work a browser that supports JavaScript, DHTML, CSS and frames is required
1387 # (i.e. any modern browser). Windows users are probably better off using the
1388 # HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can
1389 # further fine-tune the look of the index. As an example, the default style
1390 # sheet generated by doxygen has an example that shows how to put an image at
1391 # the root of the tree instead of the PROJECT_NAME. Since the tree basically has
1392 # the same information as the tab index, you could consider setting
1393 # DISABLE_INDEX to YES when enabling this option.
1394 # The default value is: NO.
1395 # This tag requires that the tag GENERATE_HTML is set to YES.
1396
1397 GENERATE_TREEVIEW = NO
1398
1399 # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
1400 # doxygen will group on one line in the generated HTML documentation.
1401 #
1402 # Note that a value of 0 will completely suppress the enum values from appearing
1403 # in the overview section.
1404 # Minimum value: 0, maximum value: 20, default value: 4.
1405 # This tag requires that the tag GENERATE_HTML is set to YES.
1406
1407 ENUM_VALUES_PER_LINE = 4
1408
1409 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
1410 # to set the initial width (in pixels) of the frame in which the tree is shown.
1411 # Minimum value: 0, maximum value: 1500, default value: 250.
1412 # This tag requires that the tag GENERATE_HTML is set to YES.
1413
1414 TREEVIEW_WIDTH = 250
1415
1416 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to
1417 # external symbols imported via tag files in a separate window.
1418 # The default value is: NO.
1419 # This tag requires that the tag GENERATE_HTML is set to YES.
1420
1421 EXT_LINKS_IN_WINDOW = NO
1422
1423 # Use this tag to change the font size of LaTeX formulas included as images in
1424 # the HTML documentation. When you change the font size after a successful
1425 # doxygen run you need to manually remove any form_*.png images from the HTML
1426 # output directory to force them to be regenerated.
1427 # Minimum value: 8, maximum value: 50, default value: 10.
1428 # This tag requires that the tag GENERATE_HTML is set to YES.
1429
1430 FORMULA_FONTSIZE = 10
1431
1432 # Use the FORMULA_TRANPARENT tag to determine whether or not the images
1433 # generated for formulas are transparent PNGs. Transparent PNGs are not
1434 # supported properly for IE 6.0, but are supported on all modern browsers.
1435 #
1436 # Note that when changing this option you need to delete any form_*.png files in
1437 # the HTML output directory before the changes have effect.
1438 # The default value is: YES.
1439 # This tag requires that the tag GENERATE_HTML is set to YES.
1440
1441 FORMULA_TRANSPARENT = YES
1442
1443 # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
1444 # http://www.mathjax.org) which uses client side Javascript for the rendering
1445 # instead of using prerendered bitmaps. Use this if you do not have LaTeX
1446 # installed or if you want to formulas look prettier in the HTML output. When
1447 # enabled you may also need to install MathJax separately and configure the path
1448 # to it using the MATHJAX_RELPATH option.
1449 # The default value is: NO.
1450 # This tag requires that the tag GENERATE_HTML is set to YES.
1451
1452 USE_MATHJAX = NO
1453
1454 # When MathJax is enabled you can set the default output format to be used for
1455 # the MathJax output. See the MathJax site (see:
1456 # http://docs.mathjax.org/en/latest/output.html) for more details.
1457 # Possible values are: HTML-CSS (which is slower, but has the best
1458 # compatibility), NativeMML (i.e. MathML) and SVG.
1459 # The default value is: HTML-CSS.
1460 # This tag requires that the tag USE_MATHJAX is set to YES.
1461
1462 MATHJAX_FORMAT = HTML-CSS
1463
1464 # When MathJax is enabled you need to specify the location relative to the HTML
1465 # output directory using the MATHJAX_RELPATH option. The destination directory
1466 # should contain the MathJax.js script. For instance, if the mathjax directory
1467 # is located at the same level as the HTML output directory, then
1468 # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
1469 # Content Delivery Network so you can quickly see the result without installing
1470 # MathJax. However, it is strongly recommended to install a local copy of
1471 # MathJax from http://www.mathjax.org before deployment.
1472 # The default value is: http://cdn.mathjax.org/mathjax/latest.
1473 # This tag requires that the tag USE_MATHJAX is set to YES.
1474
1475 MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
1476
1477 # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
1478 # extension names that should be enabled during MathJax rendering. For example
1479 # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
1480 # This tag requires that the tag USE_MATHJAX is set to YES.
1481
1482 MATHJAX_EXTENSIONS =
1483
1484 # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
1485 # of code that will be used on startup of the MathJax code. See the MathJax site
1486 # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
1487 # example see the documentation.
1488 # This tag requires that the tag USE_MATHJAX is set to YES.
1489
1490 MATHJAX_CODEFILE =
1491
1492 # When the SEARCHENGINE tag is enabled doxygen will generate a search box for
1493 # the HTML output. The underlying search engine uses javascript and DHTML and
1494 # should work on any modern browser. Note that when using HTML help
1495 # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
1496 # there is already a search function so this one should typically be disabled.
1497 # For large projects the javascript based search engine can be slow, then
1498 # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
1499 # search using the keyboard; to jump to the search box use <access key> + S
1500 # (what the <access key> is depends on the OS and browser, but it is typically
1501 # <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
1502 # key> to jump into the search results window, the results can be navigated
1503 # using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
1504 # the search. The filter options can be selected when the cursor is inside the
1505 # search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
1506 # to select a filter and <Enter> or <escape> to activate or cancel the filter
1507 # option.
1508 # The default value is: YES.
1509 # This tag requires that the tag GENERATE_HTML is set to YES.
1510
1511 SEARCHENGINE = NO
1512
1513 # When the SERVER_BASED_SEARCH tag is enabled the search engine will be
1514 # implemented using a web server instead of a web client using Javascript. There
1515 # are two flavors of web server based searching depending on the EXTERNAL_SEARCH
1516 # setting. When disabled, doxygen will generate a PHP script for searching and
1517 # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
1518 # and searching needs to be provided by external tools. See the section
1519 # "External Indexing and Searching" for details.
1520 # The default value is: NO.
1521 # This tag requires that the tag SEARCHENGINE is set to YES.
1522
1523 SERVER_BASED_SEARCH = NO
1524
1525 # When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
1526 # script for searching. Instead the search results are written to an XML file
1527 # which needs to be processed by an external indexer. Doxygen will invoke an
1528 # external search engine pointed to by the SEARCHENGINE_URL option to obtain the
1529 # search results.
1530 #
1531 # Doxygen ships with an example indexer ( doxyindexer) and search engine
1532 # (doxysearch.cgi) which are based on the open source search engine library
1533 # Xapian (see: http://xapian.org/).
1534 #
1535 # See the section "External Indexing and Searching" for details.
1536 # The default value is: NO.
1537 # This tag requires that the tag SEARCHENGINE is set to YES.
1538
1539 EXTERNAL_SEARCH = NO
1540
1541 # The SEARCHENGINE_URL should point to a search engine hosted by a web server
1542 # which will return the search results when EXTERNAL_SEARCH is enabled.
1543 #
1544 # Doxygen ships with an example indexer ( doxyindexer) and search engine
1545 # (doxysearch.cgi) which are based on the open source search engine library
1546 # Xapian (see: http://xapian.org/). See the section "External Indexing and
1547 # Searching" for details.
1548 # This tag requires that the tag SEARCHENGINE is set to YES.
1549
1550 SEARCHENGINE_URL =
1551
1552 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
1553 # search data is written to a file for indexing by an external tool. With the
1554 # SEARCHDATA_FILE tag the name of this file can be specified.
1555 # The default file is: searchdata.xml.
1556 # This tag requires that the tag SEARCHENGINE is set to YES.
1557
1558 SEARCHDATA_FILE = searchdata.xml
1559
1560 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
1561 # EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
1562 # useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
1563 # projects and redirect the results back to the right project.
1564 # This tag requires that the tag SEARCHENGINE is set to YES.
1565
1566 EXTERNAL_SEARCH_ID =
1567
1568 # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
1569 # projects other than the one defined by this configuration file, but that are
1570 # all added to the same external search index. Each project needs to have a
1571 # unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
1572 # to a relative location where the documentation can be found. The format is:
1573 # EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
1574 # This tag requires that the tag SEARCHENGINE is set to YES.
1575
1576 EXTRA_SEARCH_MAPPINGS =
1577
1578 #---------------------------------------------------------------------------
1579 # Configuration options related to the LaTeX output
1580 #---------------------------------------------------------------------------
1581
1582 # If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output.
1583 # The default value is: YES.
1584
1585 GENERATE_LATEX = NO
1586
1587 # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
1588 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
1589 # it.
1590 # The default directory is: latex.
1591 # This tag requires that the tag GENERATE_LATEX is set to YES.
1592
1593 LATEX_OUTPUT = latex
1594
1595 # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
1596 # invoked.
1597 #
1598 # Note that when enabling USE_PDFLATEX this option is only used for generating
1599 # bitmaps for formulas in the HTML output, but not in the Makefile that is
1600 # written to the output directory.
1601 # The default file is: latex.
1602 # This tag requires that the tag GENERATE_LATEX is set to YES.
1603
1604 LATEX_CMD_NAME = latex
1605
1606 # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
1607 # index for LaTeX.
1608 # The default file is: makeindex.
1609 # This tag requires that the tag GENERATE_LATEX is set to YES.
1610
1611 MAKEINDEX_CMD_NAME = makeindex
1612
1613 # If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX
1614 # documents. This may be useful for small projects and may help to save some
1615 # trees in general.
1616 # The default value is: NO.
1617 # This tag requires that the tag GENERATE_LATEX is set to YES.
1618
1619 COMPACT_LATEX = NO
1620
1621 # The PAPER_TYPE tag can be used to set the paper type that is used by the
1622 # printer.
1623 # Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
1624 # 14 inches) and executive (7.25 x 10.5 inches).
1625 # The default value is: a4.
1626 # This tag requires that the tag GENERATE_LATEX is set to YES.
1627
1628 PAPER_TYPE = a4wide
1629
1630 # The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
1631 # that should be included in the LaTeX output. To get the times font for
1632 # instance you can specify
1633 # EXTRA_PACKAGES=times
1634 # If left blank no extra packages will be included.
1635 # This tag requires that the tag GENERATE_LATEX is set to YES.
1636
1637 EXTRA_PACKAGES =
1638
1639 # The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
1640 # generated LaTeX document. The header should contain everything until the first
1641 # chapter. If it is left blank doxygen will generate a standard header. See
1642 # section "Doxygen usage" for information on how to let doxygen write the
1643 # default header to a separate file.
1644 #
1645 # Note: Only use a user-defined header if you know what you are doing! The
1646 # following commands have a special meaning inside the header: $title,
1647 # $datetime, $date, $doxygenversion, $projectname, $projectnumber,
1648 # $projectbrief, $projectlogo. Doxygen will replace $title with the empy string,
1649 # for the replacement values of the other commands the user is refered to
1650 # HTML_HEADER.
1651 # This tag requires that the tag GENERATE_LATEX is set to YES.
1652
1653 LATEX_HEADER =
1654
1655 # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
1656 # generated LaTeX document. The footer should contain everything after the last
1657 # chapter. If it is left blank doxygen will generate a standard footer. See
1658 # LATEX_HEADER for more information on how to generate a default footer and what
1659 # special commands can be used inside the footer.
1660 #
1661 # Note: Only use a user-defined footer if you know what you are doing!
1662 # This tag requires that the tag GENERATE_LATEX is set to YES.
1663
1664 LATEX_FOOTER =
1665
1666 # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
1667 # other source files which should be copied to the LATEX_OUTPUT output
1668 # directory. Note that the files will be copied as-is; there are no commands or
1669 # markers available.
1670 # This tag requires that the tag GENERATE_LATEX is set to YES.
1671
1672 LATEX_EXTRA_FILES =
1673
1674 # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
1675 # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
1676 # contain links (just like the HTML output) instead of page references. This
1677 # makes the output suitable for online browsing using a PDF viewer.
1678 # The default value is: YES.
1679 # This tag requires that the tag GENERATE_LATEX is set to YES.
1680
1681 PDF_HYPERLINKS = NO
1682
1683 # If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
1684 # the PDF file directly from the LaTeX files. Set this option to YES to get a
1685 # higher quality PDF documentation.
1686 # The default value is: YES.
1687 # This tag requires that the tag GENERATE_LATEX is set to YES.
1688
1689 USE_PDFLATEX = NO
1690
1691 # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
1692 # command to the generated LaTeX files. This will instruct LaTeX to keep running
1693 # if errors occur, instead of asking the user for help. This option is also used
1694 # when generating formulas in HTML.
1695 # The default value is: NO.
1696 # This tag requires that the tag GENERATE_LATEX is set to YES.
1697
1698 LATEX_BATCHMODE = NO
1699
1700 # If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
1701 # index chapters (such as File Index, Compound Index, etc.) in the output.
1702 # The default value is: NO.
1703 # This tag requires that the tag GENERATE_LATEX is set to YES.
1704
1705 LATEX_HIDE_INDICES = NO
1706
1707 # If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
1708 # code with syntax highlighting in the LaTeX output.
1709 #
1710 # Note that which sources are shown also depends on other settings such as
1711 # SOURCE_BROWSER.
1712 # The default value is: NO.
1713 # This tag requires that the tag GENERATE_LATEX is set to YES.
1714
1715 LATEX_SOURCE_CODE = NO
1716
1717 # The LATEX_BIB_STYLE tag can be used to specify the style to use for the
1718 # bibliography, e.g. plainnat, or ieeetr. See
1719 # http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
1720 # The default value is: plain.
1721 # This tag requires that the tag GENERATE_LATEX is set to YES.
1722
1723 LATEX_BIB_STYLE = plain
1724
1725 #---------------------------------------------------------------------------
1726 # Configuration options related to the RTF output
1727 #---------------------------------------------------------------------------
1728
1729 # If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The
1730 # RTF output is optimized for Word 97 and may not look too pretty with other RTF
1731 # readers/editors.
1732 # The default value is: NO.
1733
1734 GENERATE_RTF = NO
1735
1736 # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
1737 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
1738 # it.
1739 # The default directory is: rtf.
1740 # This tag requires that the tag GENERATE_RTF is set to YES.
1741
1742 RTF_OUTPUT = rtf
1743
1744 # If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF
1745 # documents. This may be useful for small projects and may help to save some
1746 # trees in general.
1747 # The default value is: NO.
1748 # This tag requires that the tag GENERATE_RTF is set to YES.
1749
1750 COMPACT_RTF = NO
1751
1752 # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
1753 # contain hyperlink fields. The RTF file will contain links (just like the HTML
1754 # output) instead of page references. This makes the output suitable for online
1755 # browsing using Word or some other Word compatible readers that support those
1756 # fields.
1757 #
1758 # Note: WordPad (write) and others do not support links.
1759 # The default value is: NO.
1760 # This tag requires that the tag GENERATE_RTF is set to YES.
1761
1762 RTF_HYPERLINKS = NO
1763
1764 # Load stylesheet definitions from file. Syntax is similar to doxygen's config
1765 # file, i.e. a series of assignments. You only have to provide replacements,
1766 # missing definitions are set to their default value.
1767 #
1768 # See also section "Doxygen usage" for information on how to generate the
1769 # default style sheet that doxygen normally uses.
1770 # This tag requires that the tag GENERATE_RTF is set to YES.
1771
1772 RTF_STYLESHEET_FILE =
1773
1774 # Set optional variables used in the generation of an RTF document. Syntax is
1775 # similar to doxygen's config file. A template extensions file can be generated
1776 # using doxygen -e rtf extensionFile.
1777 # This tag requires that the tag GENERATE_RTF is set to YES.
1778
1779 RTF_EXTENSIONS_FILE =
1780
1781 #---------------------------------------------------------------------------
1782 # Configuration options related to the man page output
1783 #---------------------------------------------------------------------------
1784
1785 # If the GENERATE_MAN tag is set to YES doxygen will generate man pages for
1786 # classes and files.
1787 # The default value is: NO.
1788
1789 GENERATE_MAN = NO
1790
1791 # The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
1792 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
1793 # it. A directory man3 will be created inside the directory specified by
1794 # MAN_OUTPUT.
1795 # The default directory is: man.
1796 # This tag requires that the tag GENERATE_MAN is set to YES.
1797
1798 MAN_OUTPUT = man
1799
1800 # The MAN_EXTENSION tag determines the extension that is added to the generated
1801 # man pages. In case the manual section does not start with a number, the number
1802 # 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
1803 # optional.
1804 # The default value is: .3.
1805 # This tag requires that the tag GENERATE_MAN is set to YES.
1806
1807 MAN_EXTENSION = .3
1808
1809 # The MAN_SUBDIR tag determines the name of the directory created within
1810 # MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
1811 # MAN_EXTENSION with the initial . removed.
1812 # This tag requires that the tag GENERATE_MAN is set to YES.
1813
1814 MAN_SUBDIR =
1815
1816 # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
1817 # will generate one additional man file for each entity documented in the real
1818 # man page(s). These additional files only source the real man page, but without
1819 # them the man command would be unable to find the correct page.
1820 # The default value is: NO.
1821 # This tag requires that the tag GENERATE_MAN is set to YES.
1822
1823 MAN_LINKS = NO
1824
1825 #---------------------------------------------------------------------------
1826 # Configuration options related to the XML output
1827 #---------------------------------------------------------------------------
1828
1829 # If the GENERATE_XML tag is set to YES doxygen will generate an XML file that
1830 # captures the structure of the code including all documentation.
1831 # The default value is: NO.
1832
1833 GENERATE_XML = NO
1834
1835 # The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
1836 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
1837 # it.
1838 # The default directory is: xml.
1839 # This tag requires that the tag GENERATE_XML is set to YES.
1840
1841 XML_OUTPUT = xml
1842
1843 # If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program
1844 # listings (including syntax highlighting and cross-referencing information) to
1845 # the XML output. Note that enabling this will significantly increase the size
1846 # of the XML output.
1847 # The default value is: YES.
1848 # This tag requires that the tag GENERATE_XML is set to YES.
1849
1850 XML_PROGRAMLISTING = YES
1851
1852 #---------------------------------------------------------------------------
1853 # Configuration options related to the DOCBOOK output
1854 #---------------------------------------------------------------------------
1855
1856 # If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files
1857 # that can be used to generate PDF.
1858 # The default value is: NO.
1859
1860 GENERATE_DOCBOOK = NO
1861
1862 # The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
1863 # If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
1864 # front of it.
1865 # The default directory is: docbook.
1866 # This tag requires that the tag GENERATE_DOCBOOK is set to YES.
1867
1868 DOCBOOK_OUTPUT = docbook
1869
1870 # If the DOCBOOK_PROGRAMLISTING tag is set to YES doxygen will include the
1871 # program listings (including syntax highlighting and cross-referencing
1872 # information) to the DOCBOOK output. Note that enabling this will significantly
1873 # increase the size of the DOCBOOK output.
1874 # The default value is: NO.
1875 # This tag requires that the tag GENERATE_DOCBOOK is set to YES.
1876
1877 DOCBOOK_PROGRAMLISTING = NO
1878
1879 #---------------------------------------------------------------------------
1880 # Configuration options for the AutoGen Definitions output
1881 #---------------------------------------------------------------------------
1882
1883 # If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen
1884 # Definitions (see http://autogen.sf.net) file that captures the structure of
1885 # the code including all documentation. Note that this feature is still
1886 # experimental and incomplete at the moment.
1887 # The default value is: NO.
1888
1889 GENERATE_AUTOGEN_DEF = NO
1890
1891 #---------------------------------------------------------------------------
1892 # Configuration options related to the Perl module output
1893 #---------------------------------------------------------------------------
1894
1895 # If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module
1896 # file that captures the structure of the code including all documentation.
1897 #
1898 # Note that this feature is still experimental and incomplete at the moment.
1899 # The default value is: NO.
1900
1901 GENERATE_PERLMOD = NO
1902
1903 # If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary
1904 # Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
1905 # output from the Perl module output.
1906 # The default value is: NO.
1907 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
1908
1909 PERLMOD_LATEX = NO
1910
1911 # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely
1912 # formatted so it can be parsed by a human reader. This is useful if you want to
1913 # understand what is going on. On the other hand, if this tag is set to NO the
1914 # size of the Perl module output will be much smaller and Perl will parse it
1915 # just the same.
1916 # The default value is: YES.
1917 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
1918
1919 PERLMOD_PRETTY = YES
1920
1921 # The names of the make variables in the generated doxyrules.make file are
1922 # prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
1923 # so different doxyrules.make files included by the same Makefile don't
1924 # overwrite each other's variables.
1925 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
1926
1927 PERLMOD_MAKEVAR_PREFIX =
1928
1929 #---------------------------------------------------------------------------
1930 # Configuration options related to the preprocessor
1931 #---------------------------------------------------------------------------
1932
1933 # If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all
1934 # C-preprocessor directives found in the sources and include files.
1935 # The default value is: YES.
1936
1937 ENABLE_PREPROCESSING = YES
1938
1939 # If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names
1940 # in the source code. If set to NO only conditional compilation will be
1941 # performed. Macro expansion can be done in a controlled way by setting
1942 # EXPAND_ONLY_PREDEF to YES.
1943 # The default value is: NO.
1944 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
1945
1946 MACRO_EXPANSION = YES
1947
1948 # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
1949 # the macro expansion is limited to the macros specified with the PREDEFINED and
1950 # EXPAND_AS_DEFINED tags.
1951 # The default value is: NO.
1952 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
1953
1954 EXPAND_ONLY_PREDEF = YES
1955
1956 # If the SEARCH_INCLUDES tag is set to YES the includes files in the
1957 # INCLUDE_PATH will be searched if a #include is found.
1958 # The default value is: YES.
1959 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
1960
1961 SEARCH_INCLUDES = YES
1962
1963 # The INCLUDE_PATH tag can be used to specify one or more directories that
1964 # contain include files that are not input files but should be processed by the
1965 # preprocessor.
1966 # This tag requires that the tag SEARCH_INCLUDES is set to YES.
1967
1968 INCLUDE_PATH =
1969
1970 # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
1971 # patterns (like *.h and *.hpp) to filter out the header-files in the
1972 # directories. If left blank, the patterns specified with FILE_PATTERNS will be
1973 # used.
1974 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
1975
1976 INCLUDE_FILE_PATTERNS =
1977
1978 # The PREDEFINED tag can be used to specify one or more macro names that are
1979 # defined before the preprocessor is started (similar to the -D option of e.g.
1980 # gcc). The argument of the tag is a list of macros of the form: name or
1981 # name=definition (no spaces). If the definition and the "=" are omitted, "=1"
1982 # is assumed. To prevent a macro definition from being undefined via #undef or
1983 # recursively expanded use the := operator instead of the = operator.
1984 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
1985
1986 PREDEFINED = THIS_FUNCTION_IS_DEPRECATED(f)=f
1987
1988 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
1989 # tag can be used to specify a list of macro names that should be expanded. The
1990 # macro definition that is found in the sources will be used. Use the PREDEFINED
1991 # tag if you want to use a different macro definition that overrules the
1992 # definition found in the source code.
1993 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
1994
1995 EXPAND_AS_DEFINED =
1996
1997 # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
1998 # remove all references to function-like macros that are alone on a line, have
1999 # an all uppercase name, and do not end with a semicolon. Such function macros
2000 # are typically used for boiler-plate code, and will confuse the parser if not
2001 # removed.
2002 # The default value is: YES.
2003 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
2004
2005 SKIP_FUNCTION_MACROS = YES
2006
2007 #---------------------------------------------------------------------------
2008 # Configuration options related to external references
2009 #---------------------------------------------------------------------------
2010
2011 # The TAGFILES tag can be used to specify one or more tag files. For each tag
2012 # file the location of the external documentation should be added. The format of
2013 # a tag file without this location is as follows:
2014 # TAGFILES = file1 file2 ...
2015 # Adding location for the tag files is done as follows:
2016 # TAGFILES = file1=loc1 "file2 = loc2" ...
2017 # where loc1 and loc2 can be relative or absolute paths or URLs. See the
2018 # section "Linking to external documentation" for more information about the use
2019 # of tag files.
2020 # Note: Each tag file must have a unique name (where the name does NOT include
2021 # the path). If a tag file is not located in the directory in which doxygen is
2022 # run, you must also specify the path to the tagfile here.
2023
2024 TAGFILES =
2025
2026 # When a file name is specified after GENERATE_TAGFILE, doxygen will create a
2027 # tag file that is based on the input files it reads. See section "Linking to
2028 # external documentation" for more information about the usage of tag files.
2029
2030 GENERATE_TAGFILE =
2031
2032 # If the ALLEXTERNALS tag is set to YES all external class will be listed in the
2033 # class index. If set to NO only the inherited external classes will be listed.
2034 # The default value is: NO.
2035
2036 ALLEXTERNALS = NO
2037
2038 # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in
2039 # the modules index. If set to NO, only the current project's groups will be
2040 # listed.
2041 # The default value is: YES.
2042
2043 EXTERNAL_GROUPS = YES
2044
2045 # If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in
2046 # the related pages index. If set to NO, only the current project's pages will
2047 # be listed.
2048 # The default value is: YES.
2049
2050 EXTERNAL_PAGES = YES
2051
2052 # The PERL_PATH should be the absolute path and name of the perl script
2053 # interpreter (i.e. the result of 'which perl').
2054 # The default file (with absolute path) is: /usr/bin/perl.
2055
2056 PERL_PATH = /usr/bin/perl
2057
2058 #---------------------------------------------------------------------------
2059 # Configuration options related to the dot tool
2060 #---------------------------------------------------------------------------
2061
2062 # If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram
2063 # (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
2064 # NO turns the diagrams off. Note that this option also works with HAVE_DOT
2065 # disabled, but it is recommended to install and use dot, since it yields more
2066 # powerful graphs.
2067 # The default value is: YES.
2068
2069 CLASS_DIAGRAMS = YES
2070
2071 # You can define message sequence charts within doxygen comments using the \msc
2072 # command. Doxygen will then run the mscgen tool (see:
2073 # http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
2074 # documentation. The MSCGEN_PATH tag allows you to specify the directory where
2075 # the mscgen tool resides. If left empty the tool is assumed to be found in the
2076 # default search path.
2077
2078 MSCGEN_PATH =
2079
2080 # You can include diagrams made with dia in doxygen documentation. Doxygen will
2081 # then run dia to produce the diagram and insert it in the documentation. The
2082 # DIA_PATH tag allows you to specify the directory where the dia binary resides.
2083 # If left empty dia is assumed to be found in the default search path.
2084
2085 DIA_PATH =
2086
2087 # If set to YES, the inheritance and collaboration graphs will hide inheritance
2088 # and usage relations if the target is undocumented or is not a class.
2089 # The default value is: YES.
2090
2091 HIDE_UNDOC_RELATIONS = YES
2092
2093 # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
2094 # available from the path. This tool is part of Graphviz (see:
2095 # http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
2096 # Bell Labs. The other options in this section have no effect if this option is
2097 # set to NO
2098 # The default value is: YES.
2099
2100 HAVE_DOT = NO
2101
2102 # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
2103 # to run in parallel. When set to 0 doxygen will base this on the number of
2104 # processors available in the system. You can set it explicitly to a value
2105 # larger than 0 to get control over the balance between CPU load and processing
2106 # speed.
2107 # Minimum value: 0, maximum value: 32, default value: 0.
2108 # This tag requires that the tag HAVE_DOT is set to YES.
2109
2110 DOT_NUM_THREADS = 0
2111
2112 # When you want a differently looking font in the dot files that doxygen
2113 # generates you can specify the font name using DOT_FONTNAME. You need to make
2114 # sure dot is able to find the font, which can be done by putting it in a
2115 # standard location or by setting the DOTFONTPATH environment variable or by
2116 # setting DOT_FONTPATH to the directory containing the font.
2117 # The default value is: Helvetica.
2118 # This tag requires that the tag HAVE_DOT is set to YES.
2119
2120 DOT_FONTNAME = Helvetica
2121
2122 # The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
2123 # dot graphs.
2124 # Minimum value: 4, maximum value: 24, default value: 10.
2125 # This tag requires that the tag HAVE_DOT is set to YES.
2126
2127 DOT_FONTSIZE = 10
2128
2129 # By default doxygen will tell dot to use the default font as specified with
2130 # DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
2131 # the path where dot can find it using this tag.
2132 # This tag requires that the tag HAVE_DOT is set to YES.
2133
2134 DOT_FONTPATH =
2135
2136 # If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
2137 # each documented class showing the direct and indirect inheritance relations.
2138 # Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
2139 # The default value is: YES.
2140 # This tag requires that the tag HAVE_DOT is set to YES.
2141
2142 CLASS_GRAPH = YES
2143
2144 # If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
2145 # graph for each documented class showing the direct and indirect implementation
2146 # dependencies (inheritance, containment, and class references variables) of the
2147 # class with other documented classes.
2148 # The default value is: YES.
2149 # This tag requires that the tag HAVE_DOT is set to YES.
2150
2151 COLLABORATION_GRAPH = YES
2152
2153 # If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
2154 # groups, showing the direct groups dependencies.
2155 # The default value is: YES.
2156 # This tag requires that the tag HAVE_DOT is set to YES.
2157
2158 GROUP_GRAPHS = YES
2159
2160 # If the UML_LOOK tag is set to YES doxygen will generate inheritance and
2161 # collaboration diagrams in a style similar to the OMG's Unified Modeling
2162 # Language.
2163 # The default value is: NO.
2164 # This tag requires that the tag HAVE_DOT is set to YES.
2165
2166 UML_LOOK = NO
2167
2168 # If the UML_LOOK tag is enabled, the fields and methods are shown inside the
2169 # class node. If there are many fields or methods and many nodes the graph may
2170 # become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
2171 # number of items for each type to make the size more manageable. Set this to 0
2172 # for no limit. Note that the threshold may be exceeded by 50% before the limit
2173 # is enforced. So when you set the threshold to 10, up to 15 fields may appear,
2174 # but if the number exceeds 15, the total amount of fields shown is limited to
2175 # 10.
2176 # Minimum value: 0, maximum value: 100, default value: 10.
2177 # This tag requires that the tag HAVE_DOT is set to YES.
2178
2179 UML_LIMIT_NUM_FIELDS = 10
2180
2181 # If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
2182 # collaboration graphs will show the relations between templates and their
2183 # instances.
2184 # The default value is: NO.
2185 # This tag requires that the tag HAVE_DOT is set to YES.
2186
2187 TEMPLATE_RELATIONS = NO
2188
2189 # If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
2190 # YES then doxygen will generate a graph for each documented file showing the
2191 # direct and indirect include dependencies of the file with other documented
2192 # files.
2193 # The default value is: YES.
2194 # This tag requires that the tag HAVE_DOT is set to YES.
2195
2196 INCLUDE_GRAPH = YES
2197
2198 # If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
2199 # set to YES then doxygen will generate a graph for each documented file showing
2200 # the direct and indirect include dependencies of the file with other documented
2201 # files.
2202 # The default value is: YES.
2203 # This tag requires that the tag HAVE_DOT is set to YES.
2204
2205 INCLUDED_BY_GRAPH = YES
2206
2207 # If the CALL_GRAPH tag is set to YES then doxygen will generate a call
2208 # dependency graph for every global function or class method.
2209 #
2210 # Note that enabling this option will significantly increase the time of a run.
2211 # So in most cases it will be better to enable call graphs for selected
2212 # functions only using the \callgraph command.
2213 # The default value is: NO.
2214 # This tag requires that the tag HAVE_DOT is set to YES.
2215
2216 CALL_GRAPH = NO
2217
2218 # If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
2219 # dependency graph for every global function or class method.
2220 #
2221 # Note that enabling this option will significantly increase the time of a run.
2222 # So in most cases it will be better to enable caller graphs for selected
2223 # functions only using the \callergraph command.
2224 # The default value is: NO.
2225 # This tag requires that the tag HAVE_DOT is set to YES.
2226
2227 CALLER_GRAPH = NO
2228
2229 # If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
2230 # hierarchy of all classes instead of a textual one.
2231 # The default value is: YES.
2232 # This tag requires that the tag HAVE_DOT is set to YES.
2233
2234 GRAPHICAL_HIERARCHY = YES
2235
2236 # If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
2237 # dependencies a directory has on other directories in a graphical way. The
2238 # dependency relations are determined by the #include relations between the
2239 # files in the directories.
2240 # The default value is: YES.
2241 # This tag requires that the tag HAVE_DOT is set to YES.
2242
2243 DIRECTORY_GRAPH = YES
2244
2245 # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
2246 # generated by dot.
2247 # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
2248 # to make the SVG files visible in IE 9+ (other browsers do not have this
2249 # requirement).
2250 # Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd,
2251 # png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo,
2252 # gif:cairo:gd, gif:gd, gif:gd:gd and svg.
2253 # The default value is: png.
2254 # This tag requires that the tag HAVE_DOT is set to YES.
2255
2256 DOT_IMAGE_FORMAT = png
2257
2258 # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
2259 # enable generation of interactive SVG images that allow zooming and panning.
2260 #
2261 # Note that this requires a modern browser other than Internet Explorer. Tested
2262 # and working are Firefox, Chrome, Safari, and Opera.
2263 # Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
2264 # the SVG files visible. Older versions of IE do not have SVG support.
2265 # The default value is: NO.
2266 # This tag requires that the tag HAVE_DOT is set to YES.
2267
2268 INTERACTIVE_SVG = NO
2269
2270 # The DOT_PATH tag can be used to specify the path where the dot tool can be
2271 # found. If left blank, it is assumed the dot tool can be found in the path.
2272 # This tag requires that the tag HAVE_DOT is set to YES.
2273
2274 DOT_PATH =
2275
2276 # The DOTFILE_DIRS tag can be used to specify one or more directories that
2277 # contain dot files that are included in the documentation (see the \dotfile
2278 # command).
2279 # This tag requires that the tag HAVE_DOT is set to YES.
2280
2281 DOTFILE_DIRS =
2282
2283 # The MSCFILE_DIRS tag can be used to specify one or more directories that
2284 # contain msc files that are included in the documentation (see the \mscfile
2285 # command).
2286
2287 MSCFILE_DIRS =
2288
2289 # The DIAFILE_DIRS tag can be used to specify one or more directories that
2290 # contain dia files that are included in the documentation (see the \diafile
2291 # command).
2292
2293 DIAFILE_DIRS =
2294
2295 # When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
2296 # path where java can find the plantuml.jar file. If left blank, it is assumed
2297 # PlantUML is not used or called during a preprocessing step. Doxygen will
2298 # generate a warning when it encounters a \startuml command in this case and
2299 # will not generate output for the diagram.
2300 # This tag requires that the tag HAVE_DOT is set to YES.
2301
2302 PLANTUML_JAR_PATH =
2303
2304 # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
2305 # that will be shown in the graph. If the number of nodes in a graph becomes
2306 # larger than this value, doxygen will truncate the graph, which is visualized
2307 # by representing a node as a red box. Note that doxygen if the number of direct
2308 # children of the root node in a graph is already larger than
2309 # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
2310 # the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
2311 # Minimum value: 0, maximum value: 10000, default value: 50.
2312 # This tag requires that the tag HAVE_DOT is set to YES.
2313
2314 DOT_GRAPH_MAX_NODES = 50
2315
2316 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
2317 # generated by dot. A depth value of 3 means that only nodes reachable from the
2318 # root by following a path via at most 3 edges will be shown. Nodes that lay
2319 # further from the root node will be omitted. Note that setting this option to 1
2320 # or 2 may greatly reduce the computation time needed for large code bases. Also
2321 # note that the size of a graph can be further restricted by
2322 # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
2323 # Minimum value: 0, maximum value: 1000, default value: 0.
2324 # This tag requires that the tag HAVE_DOT is set to YES.
2325
2326 MAX_DOT_GRAPH_DEPTH = 0
2327
2328 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
2329 # background. This is disabled by default, because dot on Windows does not seem
2330 # to support this out of the box.
2331 #
2332 # Warning: Depending on the platform used, enabling this option may lead to
2333 # badly anti-aliased labels on the edges of a graph (i.e. they become hard to
2334 # read).
2335 # The default value is: NO.
2336 # This tag requires that the tag HAVE_DOT is set to YES.
2337
2338 DOT_TRANSPARENT = NO
2339
2340 # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
2341 # files in one run (i.e. multiple -o and -T options on the command line). This
2342 # makes dot run faster, but since only newer versions of dot (>1.8.10) support
2343 # this, this feature is disabled by default.
2344 # The default value is: NO.
2345 # This tag requires that the tag HAVE_DOT is set to YES.
2346
2347 DOT_MULTI_TARGETS = NO
2348
2349 # If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
2350 # explaining the meaning of the various boxes and arrows in the dot generated
2351 # graphs.
2352 # The default value is: YES.
2353 # This tag requires that the tag HAVE_DOT is set to YES.
2354
2355 GENERATE_LEGEND = YES
2356
2357 # If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot
2358 # files that are used to generate the various graphs.
2359 # The default value is: YES.
2360 # This tag requires that the tag HAVE_DOT is set to YES.
2361
2362 DOT_CLEANUP = YES
0 #!/bin/sh
1 #
2 # Doxygen markdown doesn't support triple-backticks like github does.
3 # Convert all of those to space-prefixed blocks instead.
4 #
5 awk '/```/ { prefix=!prefix; print ""; next; } { if (prefix) { printf " "; } print $0; } ' "$@"
+0
-57
doc/html/README_8md.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: README.md File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="headertitle">
45 <div class="title">README.md File Reference</div> </div>
46 </div><!--header-->
47 <div class="contents">
48 </div><!-- contents -->
49 <!-- start footer part -->
50 <hr class="footer"/><address class="footer"><small>
51 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
52 <img class="footer" src="doxygen.png" alt="doxygen"/>
53 </a> 1.8.2
54 </small></address>
55 </body>
56 </html>
+0
-71
doc/html/annotated.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Data Structures</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
39 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="headertitle">
45 <div class="title">Data Structures</div> </div>
46 </div><!--header-->
47 <div class="contents">
48 <div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
49 <div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
50 <tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structarray__list.html" target="_self">array_list</a></td><td class="desc"></td></tr>
51 <tr id="row_1_"><td class="entry"><img id="arr_1_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('1_')"/><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structjson__object.html" target="_self">json_object</a></td><td class="desc"></td></tr>
52 <tr id="row_1_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="unionjson__object_1_1data.html" target="_self">data</a></td><td class="desc"></td></tr>
53 <tr id="row_2_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structjson__object__iter.html" target="_self">json_object_iter</a></td><td class="desc"></td></tr>
54 <tr id="row_3_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structjson__object__iterator.html" target="_self">json_object_iterator</a></td><td class="desc"></td></tr>
55 <tr id="row_4_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structjson__tokener.html" target="_self">json_tokener</a></td><td class="desc"></td></tr>
56 <tr id="row_5_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structjson__tokener__srec.html" target="_self">json_tokener_srec</a></td><td class="desc"></td></tr>
57 <tr id="row_6_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structlh__entry.html" target="_self">lh_entry</a></td><td class="desc"></td></tr>
58 <tr id="row_7_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structlh__table.html" target="_self">lh_table</a></td><td class="desc"></td></tr>
59 <tr id="row_8_"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="structprintbuf.html" target="_self">printbuf</a></td><td class="desc"></td></tr>
60 </table>
61 </div><!-- directory -->
62 </div><!-- contents -->
63 <!-- start footer part -->
64 <hr class="footer"/><address class="footer"><small>
65 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
66 <img class="footer" src="doxygen.png" alt="doxygen"/>
67 </a> 1.8.2
68 </small></address>
69 </body>
70 </html>
+0
-375
doc/html/arraylist_8h.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: arraylist.h File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#nested-classes">Data Structures</a> &#124;
46 <a href="#define-members">Macros</a> &#124;
47 <a href="#typedef-members">Typedefs</a> &#124;
48 <a href="#func-members">Functions</a> </div>
49 <div class="headertitle">
50 <div class="title">arraylist.h File Reference</div> </div>
51 </div><!--header-->
52 <div class="contents">
53
54 <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.
55 <a href="#details">More...</a></p>
56 <table class="memberdecls">
57 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
58 Data Structures</h2></td></tr>
59 <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>
60 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
61 </table><table class="memberdecls">
62 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
63 Macros</h2></td></tr>
64 <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>
65 <tr class="separator:acd30d910b398421574eb1f59e78617f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
66 </table><table class="memberdecls">
67 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
68 Typedefs</h2></td></tr>
69 <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>
70 <tr class="separator:aad83e4ed3c8ea274e6f18459276d774b"><td class="memSeparator" colspan="2">&#160;</td></tr>
71 <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>
72 <tr class="separator:a6d6d32d8b026ea2025df519b9e90f44a"><td class="memSeparator" colspan="2">&#160;</td></tr>
73 </table><table class="memberdecls">
74 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
75 Functions</h2></td></tr>
76 <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>
77 <tr class="separator:a0d4bfac055dfd98e17296142abf4d894"><td class="memSeparator" colspan="2">&#160;</td></tr>
78 <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>
79 <tr class="separator:acd00fb70f7ca82f23b48b812c3498f67"><td class="memSeparator" colspan="2">&#160;</td></tr>
80 <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>
81 <tr class="separator:a114f1af5b20b76a3dbb2d1d055006df8"><td class="memSeparator" colspan="2">&#160;</td></tr>
82 <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>
83 <tr class="separator:a9f92076e9d8229f8a07e536dc286f811"><td class="memSeparator" colspan="2">&#160;</td></tr>
84 <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>
85 <tr class="separator:a6e995608aa464244ff3184fb43574dc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
86 <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>
87 <tr class="separator:aa3bf90f47aa210032304b14e7ad09ef7"><td class="memSeparator" colspan="2">&#160;</td></tr>
88 <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>
89 <tr class="separator:afb67cc8e2e5c9be41c3e644536079169"><td class="memSeparator" colspan="2">&#160;</td></tr>
90 <tr class="memitem:ac5d066b971fee72ce80084c1694109e3"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="arraylist_8h.html#ac5d066b971fee72ce80084c1694109e3">array_list_bsearch</a> (const void **key, struct <a class="el" href="structarray__list.html">array_list</a> *arr, int(*compar)(const void *, const void *))</td></tr>
91 <tr class="separator:ac5d066b971fee72ce80084c1694109e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
92 <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>
93 <tr class="separator:aecedd8601ee96e2fd8eff5d83fda89ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
94 </table>
95 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
96 <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>
97 </div><h2 class="groupheader">Macro Definition Documentation</h2>
98 <a class="anchor" id="acd30d910b398421574eb1f59e78617f5"></a>
99 <div class="memitem">
100 <div class="memproto">
101 <table class="memname">
102 <tr>
103 <td class="memname">#define ARRAY_LIST_DEFAULT_SIZE&#160;&#160;&#160;32</td>
104 </tr>
105 </table>
106 </div><div class="memdoc">
107
108 </div>
109 </div>
110 <h2 class="groupheader">Typedef Documentation</h2>
111 <a class="anchor" id="a6d6d32d8b026ea2025df519b9e90f44a"></a>
112 <div class="memitem">
113 <div class="memproto">
114 <table class="memname">
115 <tr>
116 <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>
117 </tr>
118 </table>
119 </div><div class="memdoc">
120
121 </div>
122 </div>
123 <a class="anchor" id="aad83e4ed3c8ea274e6f18459276d774b"></a>
124 <div class="memitem">
125 <div class="memproto">
126 <table class="memname">
127 <tr>
128 <td class="memname">typedef void( array_list_free_fn)(void *data)</td>
129 </tr>
130 </table>
131 </div><div class="memdoc">
132
133 </div>
134 </div>
135 <h2 class="groupheader">Function Documentation</h2>
136 <a class="anchor" id="a6e995608aa464244ff3184fb43574dc8"></a>
137 <div class="memitem">
138 <div class="memproto">
139 <table class="memname">
140 <tr>
141 <td class="memname">int array_list_add </td>
142 <td>(</td>
143 <td class="paramtype">struct <a class="el" href="structarray__list.html">array_list</a> *&#160;</td>
144 <td class="paramname"><em>al</em>, </td>
145 </tr>
146 <tr>
147 <td class="paramkey"></td>
148 <td></td>
149 <td class="paramtype">void *&#160;</td>
150 <td class="paramname"><em>data</em>&#160;</td>
151 </tr>
152 <tr>
153 <td></td>
154 <td>)</td>
155 <td></td><td></td>
156 </tr>
157 </table>
158 </div><div class="memdoc">
159
160 </div>
161 </div>
162 <a class="anchor" id="ac5d066b971fee72ce80084c1694109e3"></a>
163 <div class="memitem">
164 <div class="memproto">
165 <table class="memname">
166 <tr>
167 <td class="memname">void* array_list_bsearch </td>
168 <td>(</td>
169 <td class="paramtype">const void **&#160;</td>
170 <td class="paramname"><em>key</em>, </td>
171 </tr>
172 <tr>
173 <td class="paramkey"></td>
174 <td></td>
175 <td class="paramtype">struct <a class="el" href="structarray__list.html">array_list</a> *&#160;</td>
176 <td class="paramname"><em>arr</em>, </td>
177 </tr>
178 <tr>
179 <td class="paramkey"></td>
180 <td></td>
181 <td class="paramtype">int(*)(const void *, const void *)&#160;</td>
182 <td class="paramname"><em>compar</em>&#160;</td>
183 </tr>
184 <tr>
185 <td></td>
186 <td>)</td>
187 <td></td><td></td>
188 </tr>
189 </table>
190 </div><div class="memdoc">
191
192 </div>
193 </div>
194 <a class="anchor" id="aecedd8601ee96e2fd8eff5d83fda89ab"></a>
195 <div class="memitem">
196 <div class="memproto">
197 <table class="memname">
198 <tr>
199 <td class="memname">int array_list_del_idx </td>
200 <td>(</td>
201 <td class="paramtype">struct <a class="el" href="structarray__list.html">array_list</a> *&#160;</td>
202 <td class="paramname"><em>arr</em>, </td>
203 </tr>
204 <tr>
205 <td class="paramkey"></td>
206 <td></td>
207 <td class="paramtype">size_t&#160;</td>
208 <td class="paramname"><em>idx</em>, </td>
209 </tr>
210 <tr>
211 <td class="paramkey"></td>
212 <td></td>
213 <td class="paramtype">size_t&#160;</td>
214 <td class="paramname"><em>count</em>&#160;</td>
215 </tr>
216 <tr>
217 <td></td>
218 <td>)</td>
219 <td></td><td></td>
220 </tr>
221 </table>
222 </div><div class="memdoc">
223
224 </div>
225 </div>
226 <a class="anchor" id="acd00fb70f7ca82f23b48b812c3498f67"></a>
227 <div class="memitem">
228 <div class="memproto">
229 <table class="memname">
230 <tr>
231 <td class="memname">void array_list_free </td>
232 <td>(</td>
233 <td class="paramtype">struct <a class="el" href="structarray__list.html">array_list</a> *&#160;</td>
234 <td class="paramname"><em>al</em></td><td>)</td>
235 <td></td>
236 </tr>
237 </table>
238 </div><div class="memdoc">
239
240 </div>
241 </div>
242 <a class="anchor" id="a114f1af5b20b76a3dbb2d1d055006df8"></a>
243 <div class="memitem">
244 <div class="memproto">
245 <table class="memname">
246 <tr>
247 <td class="memname">void* array_list_get_idx </td>
248 <td>(</td>
249 <td class="paramtype">struct <a class="el" href="structarray__list.html">array_list</a> *&#160;</td>
250 <td class="paramname"><em>al</em>, </td>
251 </tr>
252 <tr>
253 <td class="paramkey"></td>
254 <td></td>
255 <td class="paramtype">size_t&#160;</td>
256 <td class="paramname"><em>i</em>&#160;</td>
257 </tr>
258 <tr>
259 <td></td>
260 <td>)</td>
261 <td></td><td></td>
262 </tr>
263 </table>
264 </div><div class="memdoc">
265
266 </div>
267 </div>
268 <a class="anchor" id="aa3bf90f47aa210032304b14e7ad09ef7"></a>
269 <div class="memitem">
270 <div class="memproto">
271 <table class="memname">
272 <tr>
273 <td class="memname">size_t array_list_length </td>
274 <td>(</td>
275 <td class="paramtype">struct <a class="el" href="structarray__list.html">array_list</a> *&#160;</td>
276 <td class="paramname"><em>al</em></td><td>)</td>
277 <td></td>
278 </tr>
279 </table>
280 </div><div class="memdoc">
281
282 </div>
283 </div>
284 <a class="anchor" id="a0d4bfac055dfd98e17296142abf4d894"></a>
285 <div class="memitem">
286 <div class="memproto">
287 <table class="mlabels">
288 <tr>
289 <td class="mlabels-left">
290 <table class="memname">
291 <tr>
292 <td class="memname">struct <a class="el" href="structarray__list.html">array_list</a>* array_list_new </td>
293 <td>(</td>
294 <td class="paramtype"><a class="el" href="arraylist_8h.html#aad83e4ed3c8ea274e6f18459276d774b">array_list_free_fn</a> *&#160;</td>
295 <td class="paramname"><em>free_fn</em></td><td>)</td>
296 <td></td>
297 </tr>
298 </table>
299 </td>
300 <td class="mlabels-right">
301 <span class="mlabels"><span class="mlabel">read</span></span> </td>
302 </tr>
303 </table>
304 </div><div class="memdoc">
305
306 </div>
307 </div>
308 <a class="anchor" id="a9f92076e9d8229f8a07e536dc286f811"></a>
309 <div class="memitem">
310 <div class="memproto">
311 <table class="memname">
312 <tr>
313 <td class="memname">int array_list_put_idx </td>
314 <td>(</td>
315 <td class="paramtype">struct <a class="el" href="structarray__list.html">array_list</a> *&#160;</td>
316 <td class="paramname"><em>al</em>, </td>
317 </tr>
318 <tr>
319 <td class="paramkey"></td>
320 <td></td>
321 <td class="paramtype">size_t&#160;</td>
322 <td class="paramname"><em>i</em>, </td>
323 </tr>
324 <tr>
325 <td class="paramkey"></td>
326 <td></td>
327 <td class="paramtype">void *&#160;</td>
328 <td class="paramname"><em>data</em>&#160;</td>
329 </tr>
330 <tr>
331 <td></td>
332 <td>)</td>
333 <td></td><td></td>
334 </tr>
335 </table>
336 </div><div class="memdoc">
337
338 </div>
339 </div>
340 <a class="anchor" id="afb67cc8e2e5c9be41c3e644536079169"></a>
341 <div class="memitem">
342 <div class="memproto">
343 <table class="memname">
344 <tr>
345 <td class="memname">void array_list_sort </td>
346 <td>(</td>
347 <td class="paramtype">struct <a class="el" href="structarray__list.html">array_list</a> *&#160;</td>
348 <td class="paramname"><em>arr</em>, </td>
349 </tr>
350 <tr>
351 <td class="paramkey"></td>
352 <td></td>
353 <td class="paramtype">int(*)(const void *, const void *)&#160;</td>
354 <td class="paramname"><em>compar</em>&#160;</td>
355 </tr>
356 <tr>
357 <td></td>
358 <td>)</td>
359 <td></td><td></td>
360 </tr>
361 </table>
362 </div><div class="memdoc">
363
364 </div>
365 </div>
366 </div><!-- contents -->
367 <!-- start footer part -->
368 <hr class="footer"/><address class="footer"><small>
369 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
370 <img class="footer" src="doxygen.png" alt="doxygen"/>
371 </a> 1.8.2
372 </small></address>
373 </body>
374 </html>
doc/html/bc_s.png less more
Binary diff not shown
doc/html/bdwn.png less more
Binary diff not shown
+0
-73
doc/html/classes.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Data Structure Index</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
39 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="headertitle">
45 <div class="title">Data Structure Index</div> </div>
46 </div><!--header-->
47 <div class="contents">
48 <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>
49 <table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
50 <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>
51 </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>
52 </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>
53 <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>
54 </td><td></td></tr>
55 <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>
56 <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>
57 </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>
58 </td><td valign="top"><a class="el" href="structprintbuf.html">printbuf</a>&#160;&#160;&#160;</td><td></td></tr>
59 <tr><td></td><td></td><td></td></tr>
60 <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>
61 <tr><td></td><td></td><td></td><td></td><td></td></tr>
62 </table>
63 <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>
64 </div><!-- contents -->
65 <!-- start footer part -->
66 <hr class="footer"/><address class="footer"><small>
67 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
68 <img class="footer" src="doxygen.png" alt="doxygen"/>
69 </a> 1.8.2
70 </small></address>
71 </body>
72 </html>
doc/html/closed.png less more
Binary diff not shown
+0
-410
doc/html/debug_8h.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: debug.h File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#define-members">Macros</a> &#124;
46 <a href="#func-members">Functions</a> </div>
47 <div class="headertitle">
48 <div class="title">debug.h File Reference</div> </div>
49 </div><!--header-->
50 <div class="contents">
51
52 <p>Do not use, json-c internal, may be changed or removed at any time.
53 <a href="#details">More...</a></p>
54 <table class="memberdecls">
55 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
56 Macros</h2></td></tr>
57 <tr class="memitem:a2a31d5c00f3a4712f2d5d62aee66344e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a>&#160;&#160;&#160;extern</td></tr>
58 <tr class="separator:a2a31d5c00f3a4712f2d5d62aee66344e"><td class="memSeparator" colspan="2">&#160;</td></tr>
59 <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>
60 <tr class="separator:a375c4dc9f0fb338999de81aab826f9d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
61 <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)</td></tr>
62 <tr class="separator:a8ca29550d5b1b73948f4a7bce53f2385"><td class="memSeparator" colspan="2">&#160;</td></tr>
63 <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#ad351453d774306c8d0da414194bb88f4">mc_error</a>(x, ##__VA_ARGS__)</td></tr>
64 <tr class="separator:a11ba39cecbe449af5b86fa2f78e9da9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
65 <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)</td></tr>
66 <tr class="separator:a50f21a239fa040a10ad4cfdb4278b02b"><td class="memSeparator" colspan="2">&#160;</td></tr>
67 <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>
68 <tr class="separator:acb272a4b4444b69cd995236f167f90ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
69 <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)</td></tr>
70 <tr class="separator:acf1e895cb5eb7f334cbe51901e6bb918"><td class="memSeparator" colspan="2">&#160;</td></tr>
71 <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,...)</td></tr>
72 <tr class="separator:afda355b35d18bf2e6a2a22d5c8eef42c"><td class="memSeparator" colspan="2">&#160;</td></tr>
73 <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,...)</td></tr>
74 <tr class="separator:a5ef640ce1e9e61c5f6632aefbbfa0041"><td class="memSeparator" colspan="2">&#160;</td></tr>
75 </table><table class="memberdecls">
76 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
77 Functions</h2></td></tr>
78 <tr class="memitem:a95843c7dcfea8f2a6e6950c291ba0e3e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a95843c7dcfea8f2a6e6950c291ba0e3e">mc_set_debug</a> (int debug)</td></tr>
79 <tr class="separator:a95843c7dcfea8f2a6e6950c291ba0e3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
80 <tr class="memitem:a0c522f19a5015c076de53379182c7ad6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a0c522f19a5015c076de53379182c7ad6">mc_get_debug</a> (void)</td></tr>
81 <tr class="separator:a0c522f19a5015c076de53379182c7ad6"><td class="memSeparator" colspan="2">&#160;</td></tr>
82 <tr class="memitem:a6ba846fed9ec9ad42a306921a44af216"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a6ba846fed9ec9ad42a306921a44af216">mc_set_syslog</a> (int syslog)</td></tr>
83 <tr class="separator:a6ba846fed9ec9ad42a306921a44af216"><td class="memSeparator" colspan="2">&#160;</td></tr>
84 <tr class="memitem:ae85a547b1f743597f5e2954e37c34e65"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#ae85a547b1f743597f5e2954e37c34e65">mc_debug</a> (const char *msg,...)</td></tr>
85 <tr class="separator:ae85a547b1f743597f5e2954e37c34e65"><td class="memSeparator" colspan="2">&#160;</td></tr>
86 <tr class="memitem:ad351453d774306c8d0da414194bb88f4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#ad351453d774306c8d0da414194bb88f4">mc_error</a> (const char *msg,...)</td></tr>
87 <tr class="separator:ad351453d774306c8d0da414194bb88f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
88 <tr class="memitem:a1027afd06f45d53b19c9eb440eb09274"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a1027afd06f45d53b19c9eb440eb09274">mc_info</a> (const char *msg,...)</td></tr>
89 <tr class="separator:a1027afd06f45d53b19c9eb440eb09274"><td class="memSeparator" colspan="2">&#160;</td></tr>
90 </table>
91 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
92 <div class="textblock"><p>Do not use, json-c internal, may be changed or removed at any time. </p>
93 </div><h2 class="groupheader">Macro Definition Documentation</h2>
94 <a class="anchor" id="a375c4dc9f0fb338999de81aab826f9d6"></a>
95 <div class="memitem">
96 <div class="memproto">
97 <table class="memname">
98 <tr>
99 <td class="memname">#define __STRING</td>
100 <td>(</td>
101 <td class="paramtype">&#160;</td>
102 <td class="paramname">x</td><td>)</td>
103 <td>&#160;&#160;&#160;#x</td>
104 </tr>
105 </table>
106 </div><div class="memdoc">
107
108 </div>
109 </div>
110 <a class="anchor" id="a8ca29550d5b1b73948f4a7bce53f2385"></a>
111 <div class="memitem">
112 <div class="memproto">
113 <table class="memname">
114 <tr>
115 <td class="memname">#define JASSERT</td>
116 <td>(</td>
117 <td class="paramtype">&#160;</td>
118 <td class="paramname">cond</td><td>)</td>
119 <td></td>
120 </tr>
121 </table>
122 </div><div class="memdoc">
123 <b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> \</div>
124 <div class="line"> { \</div>
125 <div class="line"> } <span class="keywordflow">while</span> (0)</div>
126 </div><!-- fragment -->
127 </div>
128 </div>
129 <a class="anchor" id="a2a31d5c00f3a4712f2d5d62aee66344e"></a>
130 <div class="memitem">
131 <div class="memproto">
132 <table class="memname">
133 <tr>
134 <td class="memname">#define JSON_EXPORT&#160;&#160;&#160;extern</td>
135 </tr>
136 </table>
137 </div><div class="memdoc">
138
139 </div>
140 </div>
141 <a class="anchor" id="afda355b35d18bf2e6a2a22d5c8eef42c"></a>
142 <div class="memitem">
143 <div class="memproto">
144 <table class="memname">
145 <tr>
146 <td class="memname">#define MC_DEBUG</td>
147 <td>(</td>
148 <td class="paramtype">&#160;</td>
149 <td class="paramname">x, </td>
150 </tr>
151 <tr>
152 <td class="paramkey"></td>
153 <td></td>
154 <td class="paramtype">&#160;</td>
155 <td class="paramname"><em>...</em>&#160;</td>
156 </tr>
157 <tr>
158 <td></td>
159 <td>)</td>
160 <td></td><td></td>
161 </tr>
162 </table>
163 </div><div class="memdoc">
164 <b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (0) \</div>
165 <div class="line"> mc_debug(x, ##__VA_ARGS__)</div>
166 </div><!-- fragment -->
167 </div>
168 </div>
169 <a class="anchor" id="a11ba39cecbe449af5b86fa2f78e9da9d"></a>
170 <div class="memitem">
171 <div class="memproto">
172 <table class="memname">
173 <tr>
174 <td class="memname">#define MC_ERROR</td>
175 <td>(</td>
176 <td class="paramtype">&#160;</td>
177 <td class="paramname">x, </td>
178 </tr>
179 <tr>
180 <td class="paramkey"></td>
181 <td></td>
182 <td class="paramtype">&#160;</td>
183 <td class="paramname"><em>...</em>&#160;</td>
184 </tr>
185 <tr>
186 <td></td>
187 <td>)</td>
188 <td></td><td>&#160;&#160;&#160;<a class="el" href="debug_8h.html#ad351453d774306c8d0da414194bb88f4">mc_error</a>(x, ##__VA_ARGS__)</td>
189 </tr>
190 </table>
191 </div><div class="memdoc">
192
193 </div>
194 </div>
195 <a class="anchor" id="acb272a4b4444b69cd995236f167f90ba"></a>
196 <div class="memitem">
197 <div class="memproto">
198 <table class="memname">
199 <tr>
200 <td class="memname">#define MC_GET_DEBUG</td>
201 <td>(</td>
202 <td class="paramname"></td><td>)</td>
203 <td>&#160;&#160;&#160;(0)</td>
204 </tr>
205 </table>
206 </div><div class="memdoc">
207
208 </div>
209 </div>
210 <a class="anchor" id="a5ef640ce1e9e61c5f6632aefbbfa0041"></a>
211 <div class="memitem">
212 <div class="memproto">
213 <table class="memname">
214 <tr>
215 <td class="memname">#define MC_INFO</td>
216 <td>(</td>
217 <td class="paramtype">&#160;</td>
218 <td class="paramname">x, </td>
219 </tr>
220 <tr>
221 <td class="paramkey"></td>
222 <td></td>
223 <td class="paramtype">&#160;</td>
224 <td class="paramname"><em>...</em>&#160;</td>
225 </tr>
226 <tr>
227 <td></td>
228 <td>)</td>
229 <td></td><td></td>
230 </tr>
231 </table>
232 </div><div class="memdoc">
233 <b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (0) \</div>
234 <div class="line"> mc_info(x, ##__VA_ARGS__)</div>
235 </div><!-- fragment -->
236 </div>
237 </div>
238 <a class="anchor" id="a50f21a239fa040a10ad4cfdb4278b02b"></a>
239 <div class="memitem">
240 <div class="memproto">
241 <table class="memname">
242 <tr>
243 <td class="memname">#define MC_SET_DEBUG</td>
244 <td>(</td>
245 <td class="paramtype">&#160;</td>
246 <td class="paramname">x</td><td>)</td>
247 <td></td>
248 </tr>
249 </table>
250 </div><div class="memdoc">
251 <b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (0) \</div>
252 <div class="line"> mc_set_debug(x)</div>
253 </div><!-- fragment -->
254 </div>
255 </div>
256 <a class="anchor" id="acf1e895cb5eb7f334cbe51901e6bb918"></a>
257 <div class="memitem">
258 <div class="memproto">
259 <table class="memname">
260 <tr>
261 <td class="memname">#define MC_SET_SYSLOG</td>
262 <td>(</td>
263 <td class="paramtype">&#160;</td>
264 <td class="paramname">x</td><td>)</td>
265 <td></td>
266 </tr>
267 </table>
268 </div><div class="memdoc">
269 <b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">if</span> (0) \</div>
270 <div class="line"> mc_set_syslog(x)</div>
271 </div><!-- fragment -->
272 </div>
273 </div>
274 <h2 class="groupheader">Function Documentation</h2>
275 <a class="anchor" id="ae85a547b1f743597f5e2954e37c34e65"></a>
276 <div class="memitem">
277 <div class="memproto">
278 <table class="memname">
279 <tr>
280 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void mc_debug </td>
281 <td>(</td>
282 <td class="paramtype">const char *&#160;</td>
283 <td class="paramname"><em>msg</em>, </td>
284 </tr>
285 <tr>
286 <td class="paramkey"></td>
287 <td></td>
288 <td class="paramtype">&#160;</td>
289 <td class="paramname"><em>...</em>&#160;</td>
290 </tr>
291 <tr>
292 <td></td>
293 <td>)</td>
294 <td></td><td></td>
295 </tr>
296 </table>
297 </div><div class="memdoc">
298
299 </div>
300 </div>
301 <a class="anchor" id="ad351453d774306c8d0da414194bb88f4"></a>
302 <div class="memitem">
303 <div class="memproto">
304 <table class="memname">
305 <tr>
306 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void mc_error </td>
307 <td>(</td>
308 <td class="paramtype">const char *&#160;</td>
309 <td class="paramname"><em>msg</em>, </td>
310 </tr>
311 <tr>
312 <td class="paramkey"></td>
313 <td></td>
314 <td class="paramtype">&#160;</td>
315 <td class="paramname"><em>...</em>&#160;</td>
316 </tr>
317 <tr>
318 <td></td>
319 <td>)</td>
320 <td></td><td></td>
321 </tr>
322 </table>
323 </div><div class="memdoc">
324
325 </div>
326 </div>
327 <a class="anchor" id="a0c522f19a5015c076de53379182c7ad6"></a>
328 <div class="memitem">
329 <div class="memproto">
330 <table class="memname">
331 <tr>
332 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int mc_get_debug </td>
333 <td>(</td>
334 <td class="paramtype">void&#160;</td>
335 <td class="paramname"></td><td>)</td>
336 <td></td>
337 </tr>
338 </table>
339 </div><div class="memdoc">
340
341 </div>
342 </div>
343 <a class="anchor" id="a1027afd06f45d53b19c9eb440eb09274"></a>
344 <div class="memitem">
345 <div class="memproto">
346 <table class="memname">
347 <tr>
348 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void mc_info </td>
349 <td>(</td>
350 <td class="paramtype">const char *&#160;</td>
351 <td class="paramname"><em>msg</em>, </td>
352 </tr>
353 <tr>
354 <td class="paramkey"></td>
355 <td></td>
356 <td class="paramtype">&#160;</td>
357 <td class="paramname"><em>...</em>&#160;</td>
358 </tr>
359 <tr>
360 <td></td>
361 <td>)</td>
362 <td></td><td></td>
363 </tr>
364 </table>
365 </div><div class="memdoc">
366
367 </div>
368 </div>
369 <a class="anchor" id="a95843c7dcfea8f2a6e6950c291ba0e3e"></a>
370 <div class="memitem">
371 <div class="memproto">
372 <table class="memname">
373 <tr>
374 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void mc_set_debug </td>
375 <td>(</td>
376 <td class="paramtype">int&#160;</td>
377 <td class="paramname"><em>debug</em></td><td>)</td>
378 <td></td>
379 </tr>
380 </table>
381 </div><div class="memdoc">
382
383 </div>
384 </div>
385 <a class="anchor" id="a6ba846fed9ec9ad42a306921a44af216"></a>
386 <div class="memitem">
387 <div class="memproto">
388 <table class="memname">
389 <tr>
390 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void mc_set_syslog </td>
391 <td>(</td>
392 <td class="paramtype">int&#160;</td>
393 <td class="paramname"><em>syslog</em></td><td>)</td>
394 <td></td>
395 </tr>
396 </table>
397 </div><div class="memdoc">
398
399 </div>
400 </div>
401 </div><!-- contents -->
402 <!-- start footer part -->
403 <hr class="footer"/><address class="footer"><small>
404 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
405 <img class="footer" src="doxygen.png" alt="doxygen"/>
406 </a> 1.8.2
407 </small></address>
408 </body>
409 </html>
+0
-69
doc/html/deprecated.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Deprecated List</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 </div><!-- top -->
37 <div class="header">
38 <div class="headertitle">
39 <div class="title">Deprecated List </div> </div>
40 </div><!--header-->
41 <div class="contents">
42 <div class="textblock"><dl class="reflist">
43 <dt><a class="anchor" id="_deprecated000007"></a>Global <a class="el" href="linkhash_8h.html#a77c5cddef96e6f1ab036ccf911783456">_LH_INLINE</a> </dt>
44 <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>
45 <dt><a class="anchor" id="_deprecated000008"></a>Global <a class="el" href="linkhash_8h.html#afb856ed4a9bcfd090dde5151fa3ad9ae">_LH_UNCONST</a> (a)</dt>
46 <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>
47 <dt><a class="anchor" id="_deprecated000003"></a>Global <a class="el" href="json__tokener_8h.html#a4dd5e5b65aee7f376f529f86b210ff49">json_tokener</a> </dt>
48 <dd>Unused in json-c code </dd>
49 <dt><a class="anchor" id="_deprecated000005"></a>Global <a class="el" href="structjson__tokener.html#a9daae2516fd6df23555d33ef01020a76">json_tokener::char_offset</a> </dt>
50 <dd>See <a class="el" href="json__tokener_8h.html#a4a2fa28d815f8b370cbb00b80ebc0f1d">json_tokener_get_parse_end()</a> instead. </dd>
51 <dt><a class="anchor" id="_deprecated000006"></a>Global <a class="el" href="structjson__tokener.html#adef37cdc2578d8f8920db14315728cbd">json_tokener::err</a> </dt>
52 <dd>See <a class="el" href="json__tokener_8h.html#af5d7ffd95a0f6e5d5bb5994d233b4197">json_tokener_get_error()</a> instead. </dd>
53 <dt><a class="anchor" id="_deprecated000004"></a>Global <a class="el" href="structjson__tokener.html#a9772e2170322a19d8da6ce5d7dc46895">json_tokener::str</a> </dt>
54 <dd>Do not access any of these fields outside of json_tokener.c </dd>
55 <dt><a class="anchor" id="_deprecated000002"></a>Class <a class="el" href="structjson__tokener__srec.html">json_tokener_srec</a> </dt>
56 <dd>Don't use this outside of json_tokener.c, it will be made private in a future release. </dd>
57 <dt><a class="anchor" id="_deprecated000001"></a>Global <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2">json_tokener_state</a> </dt>
58 <dd>Don't use this outside of json_tokener.c, it will be made private in a future release. </dd>
59 </dl>
60 </div></div><!-- contents -->
61 <!-- start footer part -->
62 <hr class="footer"/><address class="footer"><small>
63 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
64 <img class="footer" src="doxygen.png" alt="doxygen"/>
65 </a> 1.8.2
66 </small></address>
67 </body>
68 </html>
+0
-1172
doc/html/doxygen.css less more
0 /* The standard CSS for doxygen */
1
2 body, table, div, p, dl {
3 font: 400 14px/19px Roboto,sans-serif;
4 }
5
6 /* @group Heading Levels */
7
8 h1.groupheader {
9 font-size: 150%;
10 }
11
12 .title {
13 font-size: 150%;
14 font-weight: bold;
15 margin: 10px 2px;
16 }
17
18 h2.groupheader {
19 border-bottom: 1px solid #879ECB;
20 color: #354C7B;
21 font-size: 150%;
22 font-weight: normal;
23 margin-top: 1.75em;
24 padding-top: 8px;
25 padding-bottom: 4px;
26 width: 100%;
27 }
28
29 h3.groupheader {
30 font-size: 100%;
31 }
32
33 h1, h2, h3, h4, h5, h6 {
34 -webkit-transition: text-shadow 0.5s linear;
35 -moz-transition: text-shadow 0.5s linear;
36 -ms-transition: text-shadow 0.5s linear;
37 -o-transition: text-shadow 0.5s linear;
38 transition: text-shadow 0.5s linear;
39 margin-right: 15px;
40 }
41
42 h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
43 text-shadow: 0 0 15px cyan;
44 }
45
46 dt {
47 font-weight: bold;
48 }
49
50 div.multicol {
51 -moz-column-gap: 1em;
52 -webkit-column-gap: 1em;
53 -moz-column-count: 3;
54 -webkit-column-count: 3;
55 }
56
57 p.startli, p.startdd, p.starttd {
58 margin-top: 2px;
59 }
60
61 p.endli {
62 margin-bottom: 0px;
63 }
64
65 p.enddd {
66 margin-bottom: 4px;
67 }
68
69 p.endtd {
70 margin-bottom: 2px;
71 }
72
73 /* @end */
74
75 caption {
76 font-weight: bold;
77 }
78
79 span.legend {
80 font-size: 70%;
81 text-align: center;
82 }
83
84 h3.version {
85 font-size: 90%;
86 text-align: center;
87 }
88
89 div.qindex, div.navtab{
90 background-color: #EBEFF6;
91 border: 1px solid #A3B4D7;
92 text-align: center;
93 }
94
95 div.qindex, div.navpath {
96 width: 100%;
97 line-height: 140%;
98 }
99
100 div.navtab {
101 margin-right: 15px;
102 }
103
104 /* @group Link Styling */
105
106 a {
107 color: #3D578C;
108 font-weight: normal;
109 text-decoration: none;
110 }
111
112 .contents a:visited {
113 color: #4665A2;
114 }
115
116 a:hover {
117 text-decoration: underline;
118 }
119
120 a.qindex {
121 font-weight: bold;
122 }
123
124 a.qindexHL {
125 font-weight: bold;
126 background-color: #9CAFD4;
127 color: #ffffff;
128 border: 1px double #869DCA;
129 }
130
131 .contents a.qindexHL:visited {
132 color: #ffffff;
133 }
134
135 a.el {
136 font-weight: bold;
137 }
138
139 a.elRef {
140 }
141
142 a.code, a.code:visited {
143 color: #4665A2;
144 }
145
146 a.codeRef, a.codeRef:visited {
147 color: #4665A2;
148 }
149
150 /* @end */
151
152 dl.el {
153 margin-left: -1cm;
154 }
155
156 pre.fragment {
157 border: 1px solid #C4CFE5;
158 background-color: #FBFCFD;
159 padding: 4px 6px;
160 margin: 4px 8px 4px 2px;
161 overflow: auto;
162 word-wrap: break-word;
163 font-size: 9pt;
164 line-height: 125%;
165 font-family: monospace, fixed;
166 font-size: 105%;
167 }
168
169 div.fragment {
170 padding: 4px;
171 margin: 4px;
172 background-color: #FBFCFD;
173 border: 1px solid #C4CFE5;
174 }
175
176 div.line {
177 font-family: monospace, fixed;
178 font-size: 13px;
179 min-height: 13px;
180 line-height: 1.0;
181 text-wrap: unrestricted;
182 white-space: -moz-pre-wrap; /* Moz */
183 white-space: -pre-wrap; /* Opera 4-6 */
184 white-space: -o-pre-wrap; /* Opera 7 */
185 white-space: pre-wrap; /* CSS3 */
186 word-wrap: break-word; /* IE 5.5+ */
187 text-indent: -53px;
188 padding-left: 53px;
189 padding-bottom: 0px;
190 margin: 0px;
191 -webkit-transition-property: background-color, box-shadow;
192 -webkit-transition-duration: 0.5s;
193 -moz-transition-property: background-color, box-shadow;
194 -moz-transition-duration: 0.5s;
195 -ms-transition-property: background-color, box-shadow;
196 -ms-transition-duration: 0.5s;
197 -o-transition-property: background-color, box-shadow;
198 -o-transition-duration: 0.5s;
199 transition-property: background-color, box-shadow;
200 transition-duration: 0.5s;
201 }
202
203 div.line.glow {
204 background-color: cyan;
205 box-shadow: 0 0 10px cyan;
206 }
207
208
209 span.lineno {
210 padding-right: 4px;
211 text-align: right;
212 border-right: 2px solid #0F0;
213 background-color: #E8E8E8;
214 white-space: pre;
215 }
216 span.lineno a {
217 background-color: #D8D8D8;
218 }
219
220 span.lineno a:hover {
221 background-color: #C8C8C8;
222 }
223
224 div.ah {
225 background-color: black;
226 font-weight: bold;
227 color: #ffffff;
228 margin-bottom: 3px;
229 margin-top: 3px;
230 padding: 0.2em;
231 border: solid thin #333;
232 border-radius: 0.5em;
233 -webkit-border-radius: .5em;
234 -moz-border-radius: .5em;
235 box-shadow: 2px 2px 3px #999;
236 -webkit-box-shadow: 2px 2px 3px #999;
237 -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
238 background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
239 background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
240 }
241
242 div.groupHeader {
243 margin-left: 16px;
244 margin-top: 12px;
245 font-weight: bold;
246 }
247
248 div.groupText {
249 margin-left: 16px;
250 font-style: italic;
251 }
252
253 body {
254 background-color: white;
255 color: black;
256 margin: 0;
257 }
258
259 div.contents {
260 margin-top: 10px;
261 margin-left: 12px;
262 margin-right: 8px;
263 }
264
265 td.indexkey {
266 background-color: #EBEFF6;
267 font-weight: bold;
268 border: 1px solid #C4CFE5;
269 margin: 2px 0px 2px 0;
270 padding: 2px 10px;
271 white-space: nowrap;
272 vertical-align: top;
273 }
274
275 td.indexvalue {
276 background-color: #EBEFF6;
277 border: 1px solid #C4CFE5;
278 padding: 2px 10px;
279 margin: 2px 0px;
280 }
281
282 tr.memlist {
283 background-color: #EEF1F7;
284 }
285
286 p.formulaDsp {
287 text-align: center;
288 }
289
290 img.formulaDsp {
291
292 }
293
294 img.formulaInl {
295 vertical-align: middle;
296 }
297
298 div.center {
299 text-align: center;
300 margin-top: 0px;
301 margin-bottom: 0px;
302 padding: 0px;
303 }
304
305 div.center img {
306 border: 0px;
307 }
308
309 address.footer {
310 text-align: right;
311 padding-right: 12px;
312 }
313
314 img.footer {
315 border: 0px;
316 vertical-align: middle;
317 }
318
319 /* @group Code Colorization */
320
321 span.keyword {
322 color: #008000
323 }
324
325 span.keywordtype {
326 color: #604020
327 }
328
329 span.keywordflow {
330 color: #e08000
331 }
332
333 span.comment {
334 color: #800000
335 }
336
337 span.preprocessor {
338 color: #806020
339 }
340
341 span.stringliteral {
342 color: #002080
343 }
344
345 span.charliteral {
346 color: #008080
347 }
348
349 span.vhdldigit {
350 color: #ff00ff
351 }
352
353 span.vhdlchar {
354 color: #000000
355 }
356
357 span.vhdlkeyword {
358 color: #700070
359 }
360
361 span.vhdllogic {
362 color: #ff0000
363 }
364
365 blockquote {
366 background-color: #F7F8FB;
367 border-left: 2px solid #9CAFD4;
368 margin: 0 24px 0 4px;
369 padding: 0 12px 0 16px;
370 }
371
372 /* @end */
373
374 /*
375 .search {
376 color: #003399;
377 font-weight: bold;
378 }
379
380 form.search {
381 margin-bottom: 0px;
382 margin-top: 0px;
383 }
384
385 input.search {
386 font-size: 75%;
387 color: #000080;
388 font-weight: normal;
389 background-color: #e8eef2;
390 }
391 */
392
393 td.tiny {
394 font-size: 75%;
395 }
396
397 .dirtab {
398 padding: 4px;
399 border-collapse: collapse;
400 border: 1px solid #A3B4D7;
401 }
402
403 th.dirtab {
404 background: #EBEFF6;
405 font-weight: bold;
406 }
407
408 hr {
409 height: 0px;
410 border: none;
411 border-top: 1px solid #4A6AAA;
412 }
413
414 hr.footer {
415 height: 1px;
416 }
417
418 /* @group Member Descriptions */
419
420 table.memberdecls {
421 border-spacing: 0px;
422 padding: 0px;
423 }
424
425 .memberdecls td, .fieldtable tr {
426 -webkit-transition-property: background-color, box-shadow;
427 -webkit-transition-duration: 0.5s;
428 -moz-transition-property: background-color, box-shadow;
429 -moz-transition-duration: 0.5s;
430 -ms-transition-property: background-color, box-shadow;
431 -ms-transition-duration: 0.5s;
432 -o-transition-property: background-color, box-shadow;
433 -o-transition-duration: 0.5s;
434 transition-property: background-color, box-shadow;
435 transition-duration: 0.5s;
436 }
437
438 .memberdecls td.glow, .fieldtable tr.glow {
439 background-color: cyan;
440 box-shadow: 0 0 15px cyan;
441 }
442
443 .mdescLeft, .mdescRight,
444 .memItemLeft, .memItemRight,
445 .memTemplItemLeft, .memTemplItemRight, .memTemplParams {
446 background-color: #F9FAFC;
447 border: none;
448 margin: 4px;
449 padding: 1px 0 0 8px;
450 }
451
452 .mdescLeft, .mdescRight {
453 padding: 0px 8px 4px 8px;
454 color: #555;
455 }
456
457 .memSeparator {
458 border-bottom: 1px solid #DEE4F0;
459 line-height: 1px;
460 margin: 0px;
461 padding: 0px;
462 }
463
464 .memItemLeft, .memTemplItemLeft {
465 white-space: nowrap;
466 }
467
468 .memItemRight {
469 width: 100%;
470 }
471
472 .memTemplParams {
473 color: #4665A2;
474 white-space: nowrap;
475 font-size: 80%;
476 }
477
478 /* @end */
479
480 /* @group Member Details */
481
482 /* Styles for detailed member documentation */
483
484 .memtemplate {
485 font-size: 80%;
486 color: #4665A2;
487 font-weight: normal;
488 margin-left: 9px;
489 }
490
491 .memnav {
492 background-color: #EBEFF6;
493 border: 1px solid #A3B4D7;
494 text-align: center;
495 margin: 2px;
496 margin-right: 15px;
497 padding: 2px;
498 }
499
500 .mempage {
501 width: 100%;
502 }
503
504 .memitem {
505 padding: 0;
506 margin-bottom: 10px;
507 margin-right: 5px;
508 -webkit-transition: box-shadow 0.5s linear;
509 -moz-transition: box-shadow 0.5s linear;
510 -ms-transition: box-shadow 0.5s linear;
511 -o-transition: box-shadow 0.5s linear;
512 transition: box-shadow 0.5s linear;
513 display: table !important;
514 width: 100%;
515 }
516
517 .memitem.glow {
518 box-shadow: 0 0 15px cyan;
519 }
520
521 .memname {
522 font-weight: bold;
523 margin-left: 6px;
524 }
525
526 .memname td {
527 vertical-align: bottom;
528 }
529
530 .memproto, dl.reflist dt {
531 border-top: 1px solid #A8B8D9;
532 border-left: 1px solid #A8B8D9;
533 border-right: 1px solid #A8B8D9;
534 padding: 6px 0px 6px 0px;
535 color: #253555;
536 font-weight: bold;
537 text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
538 background-image:url('nav_f.png');
539 background-repeat:repeat-x;
540 background-color: #E2E8F2;
541 /* opera specific markup */
542 box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
543 border-top-right-radius: 4px;
544 border-top-left-radius: 4px;
545 /* firefox specific markup */
546 -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
547 -moz-border-radius-topright: 4px;
548 -moz-border-radius-topleft: 4px;
549 /* webkit specific markup */
550 -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
551 -webkit-border-top-right-radius: 4px;
552 -webkit-border-top-left-radius: 4px;
553
554 }
555
556 .memdoc, dl.reflist dd {
557 border-bottom: 1px solid #A8B8D9;
558 border-left: 1px solid #A8B8D9;
559 border-right: 1px solid #A8B8D9;
560 padding: 6px 10px 2px 10px;
561 background-color: #FBFCFD;
562 border-top-width: 0;
563 background-image:url('nav_g.png');
564 background-repeat:repeat-x;
565 background-color: #FFFFFF;
566 /* opera specific markup */
567 border-bottom-left-radius: 4px;
568 border-bottom-right-radius: 4px;
569 box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
570 /* firefox specific markup */
571 -moz-border-radius-bottomleft: 4px;
572 -moz-border-radius-bottomright: 4px;
573 -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
574 /* webkit specific markup */
575 -webkit-border-bottom-left-radius: 4px;
576 -webkit-border-bottom-right-radius: 4px;
577 -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
578 }
579
580 dl.reflist dt {
581 padding: 5px;
582 }
583
584 dl.reflist dd {
585 margin: 0px 0px 10px 0px;
586 padding: 5px;
587 }
588
589 .paramkey {
590 text-align: right;
591 }
592
593 .paramtype {
594 white-space: nowrap;
595 }
596
597 .paramname {
598 color: #602020;
599 white-space: nowrap;
600 }
601 .paramname em {
602 font-style: normal;
603 }
604 .paramname code {
605 line-height: 14px;
606 }
607
608 .params, .retval, .exception, .tparams {
609 margin-left: 0px;
610 padding-left: 0px;
611 }
612
613 .params .paramname, .retval .paramname {
614 font-weight: bold;
615 vertical-align: top;
616 }
617
618 .params .paramtype {
619 font-style: italic;
620 vertical-align: top;
621 }
622
623 .params .paramdir {
624 font-family: "courier new",courier,monospace;
625 vertical-align: top;
626 }
627
628 table.mlabels {
629 border-spacing: 0px;
630 }
631
632 td.mlabels-left {
633 width: 100%;
634 padding: 0px;
635 }
636
637 td.mlabels-right {
638 vertical-align: bottom;
639 padding: 0px;
640 white-space: nowrap;
641 }
642
643 span.mlabels {
644 margin-left: 8px;
645 }
646
647 span.mlabel {
648 background-color: #728DC1;
649 border-top:1px solid #5373B4;
650 border-left:1px solid #5373B4;
651 border-right:1px solid #C4CFE5;
652 border-bottom:1px solid #C4CFE5;
653 text-shadow: none;
654 color: white;
655 margin-right: 4px;
656 padding: 2px 3px;
657 border-radius: 3px;
658 font-size: 7pt;
659 white-space: nowrap;
660 vertical-align: middle;
661 }
662
663
664
665 /* @end */
666
667 /* these are for tree view when not used as main index */
668
669 div.directory {
670 margin: 10px 0px;
671 border-top: 1px solid #A8B8D9;
672 border-bottom: 1px solid #A8B8D9;
673 width: 100%;
674 }
675
676 .directory table {
677 border-collapse:collapse;
678 }
679
680 .directory td {
681 margin: 0px;
682 padding: 0px;
683 vertical-align: top;
684 }
685
686 .directory td.entry {
687 white-space: nowrap;
688 padding-right: 6px;
689 }
690
691 .directory td.entry a {
692 outline:none;
693 }
694
695 .directory td.entry a img {
696 border: none;
697 }
698
699 .directory td.desc {
700 width: 100%;
701 padding-left: 6px;
702 padding-right: 6px;
703 padding-top: 3px;
704 border-left: 1px solid rgba(0,0,0,0.05);
705 }
706
707 .directory tr.even {
708 padding-left: 6px;
709 background-color: #F7F8FB;
710 }
711
712 .directory img {
713 vertical-align: -30%;
714 }
715
716 .directory .levels {
717 white-space: nowrap;
718 width: 100%;
719 text-align: right;
720 font-size: 9pt;
721 }
722
723 .directory .levels span {
724 cursor: pointer;
725 padding-left: 2px;
726 padding-right: 2px;
727 color: #3D578C;
728 }
729
730 div.dynheader {
731 margin-top: 8px;
732 -webkit-touch-callout: none;
733 -webkit-user-select: none;
734 -khtml-user-select: none;
735 -moz-user-select: none;
736 -ms-user-select: none;
737 user-select: none;
738 }
739
740 address {
741 font-style: normal;
742 color: #2A3D61;
743 }
744
745 table.doxtable {
746 border-collapse:collapse;
747 margin-top: 4px;
748 margin-bottom: 4px;
749 }
750
751 table.doxtable td, table.doxtable th {
752 border: 1px solid #2D4068;
753 padding: 3px 7px 2px;
754 }
755
756 table.doxtable th {
757 background-color: #374F7F;
758 color: #FFFFFF;
759 font-size: 110%;
760 padding-bottom: 4px;
761 padding-top: 5px;
762 }
763
764 table.fieldtable {
765 width: 100%;
766 margin-bottom: 10px;
767 border: 1px solid #A8B8D9;
768 border-spacing: 0px;
769 -moz-border-radius: 4px;
770 -webkit-border-radius: 4px;
771 border-radius: 4px;
772 -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
773 -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
774 box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
775 }
776
777 .fieldtable td, .fieldtable th {
778 padding: 3px 7px 2px;
779 }
780
781 .fieldtable td.fieldtype, .fieldtable td.fieldname {
782 white-space: nowrap;
783 border-right: 1px solid #A8B8D9;
784 border-bottom: 1px solid #A8B8D9;
785 vertical-align: top;
786 }
787
788 .fieldtable td.fielddoc {
789 border-bottom: 1px solid #A8B8D9;
790 width: 100%;
791 }
792
793 .fieldtable tr:last-child td {
794 border-bottom: none;
795 }
796
797 .fieldtable th {
798 background-image:url('nav_f.png');
799 background-repeat:repeat-x;
800 background-color: #E2E8F2;
801 font-size: 90%;
802 color: #253555;
803 padding-bottom: 4px;
804 padding-top: 5px;
805 text-align:left;
806 -moz-border-radius-topleft: 4px;
807 -moz-border-radius-topright: 4px;
808 -webkit-border-top-left-radius: 4px;
809 -webkit-border-top-right-radius: 4px;
810 border-top-left-radius: 4px;
811 border-top-right-radius: 4px;
812 border-bottom: 1px solid #A8B8D9;
813 }
814
815
816 .tabsearch {
817 top: 0px;
818 left: 10px;
819 height: 36px;
820 background-image: url('tab_b.png');
821 z-index: 101;
822 overflow: hidden;
823 font-size: 13px;
824 }
825
826 .navpath ul
827 {
828 font-size: 11px;
829 background-image:url('tab_b.png');
830 background-repeat:repeat-x;
831 background-position: 0 -5px;
832 height:30px;
833 line-height:30px;
834 color:#8AA0CC;
835 border:solid 1px #C2CDE4;
836 overflow:hidden;
837 margin:0px;
838 padding:0px;
839 }
840
841 .navpath li
842 {
843 list-style-type:none;
844 float:left;
845 padding-left:10px;
846 padding-right:15px;
847 background-image:url('bc_s.png');
848 background-repeat:no-repeat;
849 background-position:right;
850 color:#364D7C;
851 }
852
853 .navpath li.navelem a
854 {
855 height:32px;
856 display:block;
857 text-decoration: none;
858 outline: none;
859 color: #283A5D;
860 font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
861 text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
862 text-decoration: none;
863 }
864
865 .navpath li.navelem a:hover
866 {
867 color:#6884BD;
868 }
869
870 .navpath li.footer
871 {
872 list-style-type:none;
873 float:right;
874 padding-left:10px;
875 padding-right:15px;
876 background-image:none;
877 background-repeat:no-repeat;
878 background-position:right;
879 color:#364D7C;
880 font-size: 8pt;
881 }
882
883
884 div.summary
885 {
886 float: right;
887 font-size: 8pt;
888 padding-right: 5px;
889 width: 50%;
890 text-align: right;
891 }
892
893 div.summary a
894 {
895 white-space: nowrap;
896 }
897
898 div.ingroups
899 {
900 font-size: 8pt;
901 width: 50%;
902 text-align: left;
903 }
904
905 div.ingroups a
906 {
907 white-space: nowrap;
908 }
909
910 div.header
911 {
912 background-image:url('nav_h.png');
913 background-repeat:repeat-x;
914 background-color: #F9FAFC;
915 margin: 0px;
916 border-bottom: 1px solid #C4CFE5;
917 }
918
919 div.headertitle
920 {
921 padding: 5px 5px 5px 10px;
922 }
923
924 dl
925 {
926 padding: 0 0 0 10px;
927 }
928
929 /* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
930 dl.section
931 {
932 margin-left: 0px;
933 padding-left: 0px;
934 }
935
936 dl.note
937 {
938 margin-left:-7px;
939 padding-left: 3px;
940 border-left:4px solid;
941 border-color: #D0C000;
942 }
943
944 dl.warning, dl.attention
945 {
946 margin-left:-7px;
947 padding-left: 3px;
948 border-left:4px solid;
949 border-color: #FF0000;
950 }
951
952 dl.pre, dl.post, dl.invariant
953 {
954 margin-left:-7px;
955 padding-left: 3px;
956 border-left:4px solid;
957 border-color: #00D000;
958 }
959
960 dl.deprecated
961 {
962 margin-left:-7px;
963 padding-left: 3px;
964 border-left:4px solid;
965 border-color: #505050;
966 }
967
968 dl.todo
969 {
970 margin-left:-7px;
971 padding-left: 3px;
972 border-left:4px solid;
973 border-color: #00C0E0;
974 }
975
976 dl.test
977 {
978 margin-left:-7px;
979 padding-left: 3px;
980 border-left:4px solid;
981 border-color: #3030E0;
982 }
983
984 dl.bug
985 {
986 margin-left:-7px;
987 padding-left: 3px;
988 border-left:4px solid;
989 border-color: #C08050;
990 }
991
992 dl.section dd {
993 margin-bottom: 6px;
994 }
995
996
997 #projectlogo
998 {
999 text-align: center;
1000 vertical-align: bottom;
1001 border-collapse: separate;
1002 }
1003
1004 #projectlogo img
1005 {
1006 border: 0px none;
1007 }
1008
1009 #projectname
1010 {
1011 font: 300% Tahoma, Arial,sans-serif;
1012 margin: 0px;
1013 padding: 2px 0px;
1014 }
1015
1016 #projectbrief
1017 {
1018 font: 120% Tahoma, Arial,sans-serif;
1019 margin: 0px;
1020 padding: 0px;
1021 }
1022
1023 #projectnumber
1024 {
1025 font: 50% Tahoma, Arial,sans-serif;
1026 margin: 0px;
1027 padding: 0px;
1028 }
1029
1030 #titlearea
1031 {
1032 padding: 0px;
1033 margin: 0px;
1034 width: 100%;
1035 border-bottom: 1px solid #5373B4;
1036 }
1037
1038 .image
1039 {
1040 text-align: center;
1041 }
1042
1043 .dotgraph
1044 {
1045 text-align: center;
1046 }
1047
1048 .mscgraph
1049 {
1050 text-align: center;
1051 }
1052
1053 .caption
1054 {
1055 font-weight: bold;
1056 }
1057
1058 div.zoom
1059 {
1060 border: 1px solid #90A5CE;
1061 }
1062
1063 dl.citelist {
1064 margin-bottom:50px;
1065 }
1066
1067 dl.citelist dt {
1068 color:#334975;
1069 float:left;
1070 font-weight:bold;
1071 margin-right:10px;
1072 padding:5px;
1073 }
1074
1075 dl.citelist dd {
1076 margin:2px 0;
1077 padding:5px 0;
1078 }
1079
1080 div.toc {
1081 padding: 14px 25px;
1082 background-color: #F4F6FA;
1083 border: 1px solid #D8DFEE;
1084 border-radius: 7px 7px 7px 7px;
1085 float: right;
1086 height: auto;
1087 margin: 0 20px 10px 10px;
1088 width: 200px;
1089 }
1090
1091 div.toc li {
1092 background: url("bdwn.png") no-repeat scroll 0 5px transparent;
1093 font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
1094 margin-top: 5px;
1095 padding-left: 10px;
1096 padding-top: 2px;
1097 }
1098
1099 div.toc h3 {
1100 font: bold 12px/1.2 Arial,FreeSans,sans-serif;
1101 color: #4665A2;
1102 border-bottom: 0 none;
1103 margin: 0;
1104 }
1105
1106 div.toc ul {
1107 list-style: none outside none;
1108 border: medium none;
1109 padding: 0px;
1110 }
1111
1112 div.toc li.level1 {
1113 margin-left: 0px;
1114 }
1115
1116 div.toc li.level2 {
1117 margin-left: 15px;
1118 }
1119
1120 div.toc li.level3 {
1121 margin-left: 30px;
1122 }
1123
1124 div.toc li.level4 {
1125 margin-left: 45px;
1126 }
1127
1128 .inherit_header {
1129 font-weight: bold;
1130 color: gray;
1131 cursor: pointer;
1132 -webkit-touch-callout: none;
1133 -webkit-user-select: none;
1134 -khtml-user-select: none;
1135 -moz-user-select: none;
1136 -ms-user-select: none;
1137 user-select: none;
1138 }
1139
1140 .inherit_header td {
1141 padding: 6px 0px 2px 5px;
1142 }
1143
1144 .inherit {
1145 display: none;
1146 }
1147
1148 tr.heading h2 {
1149 margin-top: 12px;
1150 margin-bottom: 4px;
1151 }
1152
1153 @media print
1154 {
1155 #top { display: none; }
1156 #side-nav { display: none; }
1157 #nav-path { display: none; }
1158 body { overflow:visible; }
1159 h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
1160 .summary { display: none; }
1161 .memitem { page-break-inside: avoid; }
1162 #doc-content
1163 {
1164 margin-left:0 !important;
1165 height:auto !important;
1166 width:auto !important;
1167 overflow:inherit;
1168 display:inline;
1169 }
1170 }
1171
doc/html/doxygen.png less more
Binary diff not shown
+0
-78
doc/html/dynsections.js less more
0 function toggleVisibility(linkObj)
1 {
2 var base = $(linkObj).attr('id');
3 var summary = $('#'+base+'-summary');
4 var content = $('#'+base+'-content');
5 var trigger = $('#'+base+'-trigger');
6 var src=$(trigger).attr('src');
7 if (content.is(':visible')===true) {
8 content.hide();
9 summary.show();
10 $(linkObj).addClass('closed').removeClass('opened');
11 $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
12 } else {
13 content.show();
14 summary.hide();
15 $(linkObj).removeClass('closed').addClass('opened');
16 $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
17 }
18 return false;
19 }
20
21 function updateStripes()
22 {
23 $('table.directory tr').
24 removeClass('even').filter(':visible:even').addClass('even');
25 }
26 function toggleLevel(level)
27 {
28 $('table.directory tr').each(function(){
29 var l = this.id.split('_').length-1;
30 var i = $('#img'+this.id.substring(3));
31 var a = $('#arr'+this.id.substring(3));
32 if (l<level+1) {
33 i.attr('src','ftv2folderopen.png');
34 a.attr('src','ftv2mnode.png');
35 $(this).show();
36 } else if (l==level+1) {
37 i.attr('src','ftv2folderclosed.png');
38 a.attr('src','ftv2pnode.png');
39 $(this).show();
40 } else {
41 $(this).hide();
42 }
43 });
44 updateStripes();
45 }
46 function toggleFolder(id)
47 {
48 var n = $('[id^=row_'+id+']');
49 var i = $('[id^=img_'+id+']');
50 var a = $('[id^=arr_'+id+']');
51 var c = n.slice(1);
52 if (c.filter(':first').is(':visible')===true) {
53 i.attr('src','ftv2folderclosed.png');
54 a.attr('src','ftv2pnode.png');
55 c.hide();
56 } else {
57 i.attr('src','ftv2folderopen.png');
58 a.attr('src','ftv2mnode.png');
59 c.show();
60 }
61 updateStripes();
62 }
63
64 function toggleInherit(id)
65 {
66 var rows = $('tr.inherit.'+id);
67 var img = $('tr.inherit_header.'+id+' img');
68 var src = $(img).attr('src');
69 if (rows.filter(':first').is(':visible')===true) {
70 rows.css('display','none');
71 $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
72 } else {
73 rows.css('display','table-row'); // using show() causes jump in firefox
74 $(img).attr('src',src.substring(0,src.length-10)+'open.png');
75 }
76 }
77
+0
-83
doc/html/files.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: File List</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li class="current"><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="headertitle">
45 <div class="title">File List</div> </div>
46 </div><!--header-->
47 <div class="contents">
48 <div class="textblock">Here is a list of all files with brief descriptions:</div><div class="directory">
49 <table class="directory">
50 <tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><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>
51 <tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><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>
52 <tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><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>
53 <tr id="row_3_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><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>
54 <tr id="row_4_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><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>
55 <tr id="row_5_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><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>
56 <tr id="row_6_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><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>
57 <tr id="row_7_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><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>
58 <tr id="row_8_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><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>
59 <tr id="row_9_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><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>
60 <tr id="row_10_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="json__types_8h.html" target="_self">json_types.h</a></td><td class="desc">Basic types used in a few places in json-c, but you should include "json_object.h" instead</td></tr>
61 <tr id="row_11_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><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>
62 <tr id="row_12_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><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>
63 <tr id="row_13_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><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>
64 <tr id="row_14_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><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>
65 <tr id="row_15_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><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>
66 <tr id="row_16_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><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>
67 <tr id="row_17_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><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>
68 <tr id="row_18_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><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>
69 <tr id="row_19_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><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>
70 <tr id="row_20_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><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>
71 <tr id="row_21_"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><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>
72 </table>
73 </div><!-- directory -->
74 </div><!-- contents -->
75 <!-- start footer part -->
76 <hr class="footer"/><address class="footer"><small>
77 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
78 <img class="footer" src="doxygen.png" alt="doxygen"/>
79 </a> 1.8.2
80 </small></address>
81 </body>
82 </html>
doc/html/ftv2blank.png less more
Binary diff not shown
doc/html/ftv2cl.png less more
Binary diff not shown
doc/html/ftv2doc.png less more
Binary diff not shown
doc/html/ftv2folderclosed.png less more
Binary diff not shown
doc/html/ftv2folderopen.png less more
Binary diff not shown
doc/html/ftv2lastnode.png less more
Binary diff not shown
doc/html/ftv2link.png less more
Binary diff not shown
doc/html/ftv2mlastnode.png less more
Binary diff not shown
doc/html/ftv2mnode.png less more
Binary diff not shown
doc/html/ftv2mo.png less more
Binary diff not shown
doc/html/ftv2node.png less more
Binary diff not shown
doc/html/ftv2ns.png less more
Binary diff not shown
doc/html/ftv2plastnode.png less more
Binary diff not shown
doc/html/ftv2pnode.png less more
Binary diff not shown
doc/html/ftv2splitbar.png less more
Binary diff not shown
doc/html/ftv2vertline.png less more
Binary diff not shown
+0
-341
doc/html/functions.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Data Fields</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
39 <li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
40 </ul>
41 </div>
42 <div id="navrow3" class="tabs2">
43 <ul class="tablist">
44 <li class="current"><a href="functions.html"><span>All</span></a></li>
45 <li><a href="functions_vars.html"><span>Variables</span></a></li>
46 </ul>
47 </div>
48 <div id="navrow4" class="tabs3">
49 <ul class="tablist">
50 <li><a href="#index__"><span>_</span></a></li>
51 <li><a href="#index_a"><span>a</span></a></li>
52 <li><a href="#index_b"><span>b</span></a></li>
53 <li><a href="#index_c"><span>c</span></a></li>
54 <li><a href="#index_d"><span>d</span></a></li>
55 <li><a href="#index_e"><span>e</span></a></li>
56 <li><a href="#index_f"><span>f</span></a></li>
57 <li><a href="#index_h"><span>h</span></a></li>
58 <li><a href="#index_i"><span>i</span></a></li>
59 <li><a href="#index_k"><span>k</span></a></li>
60 <li><a href="#index_l"><span>l</span></a></li>
61 <li><a href="#index_m"><span>m</span></a></li>
62 <li><a href="#index_n"><span>n</span></a></li>
63 <li><a href="#index_o"><span>o</span></a></li>
64 <li><a href="#index_p"><span>p</span></a></li>
65 <li><a href="#index_q"><span>q</span></a></li>
66 <li><a href="#index_s"><span>s</span></a></li>
67 <li><a href="#index_t"><span>t</span></a></li>
68 <li><a href="#index_u"><span>u</span></a></li>
69 <li><a href="#index_v"><span>v</span></a></li>
70 </ul>
71 </div>
72 </div><!-- top -->
73 <div class="contents">
74 <div class="textblock">Here is a list of all struct and union fields with links to the structures/unions they belong to:</div>
75
76 <h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
77 <li>_delete
78 : <a class="el" href="structjson__object.html#a63666be714a8ce8907d56142c1d9dfb7">json_object</a>
79 </li>
80 <li>_pb
81 : <a class="el" href="structjson__object.html#afdcaa9e24bce7c86c33cb6f6ae65cb56">json_object</a>
82 </li>
83 <li>_ref_count
84 : <a class="el" href="structjson__object.html#ac3a795ba10ac33897bfda80cf4b8254e">json_object</a>
85 </li>
86 <li>_to_json_string
87 : <a class="el" href="structjson__object.html#a077a02daac4653f91584dd7f47c3d632">json_object</a>
88 </li>
89 <li>_user_delete
90 : <a class="el" href="structjson__object.html#ad9e57edb1cbd63578490081b2a9636ad">json_object</a>
91 </li>
92 <li>_userdata
93 : <a class="el" href="structjson__object.html#a592a5391c3717ff7e8930476027226fe">json_object</a>
94 </li>
95 </ul>
96
97
98 <h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
99 <li>array
100 : <a class="el" href="structarray__list.html#a7ba65feda2b156148c08667cf155b657">array_list</a>
101 </li>
102 </ul>
103
104
105 <h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
106 <li>bpos
107 : <a class="el" href="structprintbuf.html#aba980ad7406329e32f557dfa0eb7b1b2">printbuf</a>
108 </li>
109 <li>buf
110 : <a class="el" href="structprintbuf.html#a5d7cf8ac260f1f7c50fecaf9bd7bc651">printbuf</a>
111 </li>
112 </ul>
113
114
115 <h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
116 <li>c_array
117 : <a class="el" href="unionjson__object_1_1data.html#a4ad6bf2fd6d8718f55850509edfe2e45">json_object::data</a>
118 </li>
119 <li>c_boolean
120 : <a class="el" href="unionjson__object_1_1data.html#a98a3964e5fb0b3a0e9d8786b8facde5c">json_object::data</a>
121 </li>
122 <li>c_double
123 : <a class="el" href="unionjson__object_1_1data.html#a9cc4abdb21302913701ac0c8dc75e55a">json_object::data</a>
124 </li>
125 <li>c_int
126 : <a class="el" href="unionjson__object_1_1data.html#a8464f75e1afbf640def14dde10fe88c7">json_object::data</a>
127 </li>
128 <li>c_int64
129 : <a class="el" href="unionjson__object_1_1data.html#a7733181cdb631570913e3a2abfd6937c">json_object::data</a>
130 </li>
131 <li>c_object
132 : <a class="el" href="unionjson__object_1_1data.html#a68089c942f154d4df590d8ecb476a69b">json_object::data</a>
133 </li>
134 <li>c_string
135 : <a class="el" href="unionjson__object_1_1data.html#a13ffed7c115784eac4dbc95696bd25cf">json_object::data</a>
136 </li>
137 <li>c_uint64
138 : <a class="el" href="unionjson__object_1_1data.html#a578e0b55e16f2963e0ba5362929ae9f3">json_object::data</a>
139 </li>
140 <li>char_offset
141 : <a class="el" href="structjson__tokener.html#a9daae2516fd6df23555d33ef01020a76">json_tokener</a>
142 </li>
143 <li>cint
144 : <a class="el" href="unionjson__object_1_1data.html#a10f396f4e5a54d7add5d7afe43270292">json_object::data</a>
145 </li>
146 <li>cint_type
147 : <a class="el" href="unionjson__object_1_1data.html#ab4ebc744a20ba74ea55b7fd97ce11bfa">json_object::data</a>
148 </li>
149 <li>count
150 : <a class="el" href="structlh__table.html#aa172ed8fe205367b54e0e2cdf9ea8c6c">lh_table</a>
151 </li>
152 <li>current
153 : <a class="el" href="structjson__tokener__srec.html#a466f192f920368a5a6375aeba1e2757f">json_tokener_srec</a>
154 </li>
155 </ul>
156
157
158 <h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
159 <li>data
160 : <a class="el" href="unionjson__object_1_1data.html#aaa742eb1b88b4b25ec4c27431d1576d7">json_object::data</a>
161 </li>
162 <li>depth
163 : <a class="el" href="structjson__tokener.html#ae0e5102b44cc1fc680be3e0fb5fff028">json_tokener</a>
164 </li>
165 </ul>
166
167
168 <h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
169 <li>entry
170 : <a class="el" href="structjson__object__iter.html#a64e326f050826c644c02ed5bcd214faa">json_object_iter</a>
171 </li>
172 <li>equal_fn
173 : <a class="el" href="structlh__table.html#aa646c287a6a46e09da6c7457c981a359">lh_table</a>
174 </li>
175 <li>err
176 : <a class="el" href="structjson__tokener.html#adef37cdc2578d8f8920db14315728cbd">json_tokener</a>
177 </li>
178 </ul>
179
180
181 <h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
182 <li>flags
183 : <a class="el" href="structjson__tokener.html#aabfdcf2825154108669ffa3f4ab9c4ea">json_tokener</a>
184 </li>
185 <li>free_fn
186 : <a class="el" href="structlh__table.html#a30ea5903f4f8126abd6aa489ffe14737">lh_table</a>
187 , <a class="el" href="structarray__list.html#ab7989cdde357e5c7819c562c7680ab74">array_list</a>
188 </li>
189 </ul>
190
191
192 <h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
193 <li>hash_fn
194 : <a class="el" href="structlh__table.html#a1488d1a4a320b1a9bb2f441859544be1">lh_table</a>
195 </li>
196 <li>head
197 : <a class="el" href="structlh__table.html#aa7d986a3b12a9fa47e349713794c30fb">lh_table</a>
198 </li>
199 </ul>
200
201
202 <h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
203 <li>is_double
204 : <a class="el" href="structjson__tokener.html#ad3bf0aa728ea14549d5aa6ca8dcba070">json_tokener</a>
205 </li>
206 </ul>
207
208
209 <h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
210 <li>k
211 : <a class="el" href="structlh__entry.html#a79d9f1ef0dc444e17105aaeaf167e22c">lh_entry</a>
212 </li>
213 <li>k_is_constant
214 : <a class="el" href="structlh__entry.html#a14f40cc124c32b03f81151ae7934d2e7">lh_entry</a>
215 </li>
216 <li>key
217 : <a class="el" href="structjson__object__iter.html#a0b76228b3a039075e9d84f88fa72ff53">json_object_iter</a>
218 </li>
219 </ul>
220
221
222 <h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
223 <li>len
224 : <a class="el" href="unionjson__object_1_1data.html#ac2386853b8a4e7d0b28a27ed599ccef7">json_object::data</a>
225 </li>
226 <li>length
227 : <a class="el" href="structarray__list.html#a5638022574f4ddb0f80d62535085bf4f">array_list</a>
228 </li>
229 </ul>
230
231
232 <h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
233 <li>max_depth
234 : <a class="el" href="structjson__tokener.html#a9d9b33c3982925349627dc6a3edca940">json_tokener</a>
235 </li>
236 </ul>
237
238
239 <h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
240 <li>next
241 : <a class="el" href="structlh__entry.html#a7c40c46e72d9a0ba071a8d49d535bc67">lh_entry</a>
242 </li>
243 </ul>
244
245
246 <h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
247 <li>o
248 : <a class="el" href="structjson__object.html#a33aff83ffea02b934235c4821cca8cf0">json_object</a>
249 </li>
250 <li>o_type
251 : <a class="el" href="structjson__object.html#a28307a4a3fe6cefe27e28fec56b76b3e">json_object</a>
252 </li>
253 <li>obj
254 : <a class="el" href="structjson__tokener__srec.html#ad2bb71affec1da5ba1d9952c3bf2c12a">json_tokener_srec</a>
255 </li>
256 <li>obj_field_name
257 : <a class="el" href="structjson__tokener__srec.html#a99551c172e97ac2e7a3849a50b4f51ca">json_tokener_srec</a>
258 </li>
259 <li>opaque_
260 : <a class="el" href="structjson__object__iterator.html#a69c61c14f5a36b1dc2217e49cd987f47">json_object_iterator</a>
261 </li>
262 </ul>
263
264
265 <h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
266 <li>pb
267 : <a class="el" href="structjson__tokener.html#a1cdc7f85d7bde95f81bb08b7e61d6684">json_tokener</a>
268 </li>
269 <li>prev
270 : <a class="el" href="structlh__entry.html#a6fb9c3de01fb5af67d8d429921cc6a3b">lh_entry</a>
271 </li>
272 <li>ptr
273 : <a class="el" href="unionjson__object_1_1data.html#ad3f2798f4679c5a3cc7f67a42365b71f">json_object::data</a>
274 </li>
275 </ul>
276
277
278 <h3><a class="anchor" id="index_q"></a>- q -</h3><ul>
279 <li>quote_char
280 : <a class="el" href="structjson__tokener.html#aea488b73085ac7c5969ae7fc29e25fa0">json_tokener</a>
281 </li>
282 </ul>
283
284
285 <h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
286 <li>saved_state
287 : <a class="el" href="structjson__tokener__srec.html#a868b9912dbb1e4813a630c944f522d48">json_tokener_srec</a>
288 </li>
289 <li>size
290 : <a class="el" href="structarray__list.html#a11b92f48ed715b187f8609351405342f">array_list</a>
291 , <a class="el" href="structprintbuf.html#a12ce6440eaa06a55b96ebdc5a9778dd5">printbuf</a>
292 , <a class="el" href="structlh__table.html#ae251575ec2935bcb0e0589ca8e243839">lh_table</a>
293 </li>
294 <li>st_pos
295 : <a class="el" href="structjson__tokener.html#a8eed213c0a37d09c1df66c8567e44471">json_tokener</a>
296 </li>
297 <li>stack
298 : <a class="el" href="structjson__tokener.html#a3521d62906eb0e15d07d7b4f64a5fac3">json_tokener</a>
299 </li>
300 <li>str
301 : <a class="el" href="structjson__tokener.html#a9772e2170322a19d8da6ce5d7dc46895">json_tokener</a>
302 , <a class="el" href="unionjson__object_1_1data.html#a2a16be02b4be645069ed4ee34f2b8d3e">json_object::data</a>
303 </li>
304 </ul>
305
306
307 <h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
308 <li>table
309 : <a class="el" href="structlh__table.html#a4fd9c5aba38791b26ab0ec614a5caf8f">lh_table</a>
310 </li>
311 <li>tail
312 : <a class="el" href="structlh__table.html#a479895e45db2bdf9bf5d173fa4b7e277">lh_table</a>
313 </li>
314 </ul>
315
316
317 <h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
318 <li>ucs_char
319 : <a class="el" href="structjson__tokener.html#a32fa73e43fb760e6845231a8482eb064">json_tokener</a>
320 </li>
321 </ul>
322
323
324 <h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
325 <li>v
326 : <a class="el" href="structlh__entry.html#a1b676732ab2ad3eeaedf6ec60a6a0835">lh_entry</a>
327 </li>
328 <li>val
329 : <a class="el" href="structjson__object__iter.html#aaae14a8d17aacddacb0a57234e0a4491">json_object_iter</a>
330 </li>
331 </ul>
332 </div><!-- contents -->
333 <!-- start footer part -->
334 <hr class="footer"/><address class="footer"><small>
335 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
336 <img class="footer" src="doxygen.png" alt="doxygen"/>
337 </a> 1.8.2
338 </small></address>
339 </body>
340 </html>
+0
-341
doc/html/functions_vars.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Data Fields - Variables</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
39 <li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
40 </ul>
41 </div>
42 <div id="navrow3" class="tabs2">
43 <ul class="tablist">
44 <li><a href="functions.html"><span>All</span></a></li>
45 <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
46 </ul>
47 </div>
48 <div id="navrow4" class="tabs3">
49 <ul class="tablist">
50 <li><a href="#index__"><span>_</span></a></li>
51 <li><a href="#index_a"><span>a</span></a></li>
52 <li><a href="#index_b"><span>b</span></a></li>
53 <li><a href="#index_c"><span>c</span></a></li>
54 <li><a href="#index_d"><span>d</span></a></li>
55 <li><a href="#index_e"><span>e</span></a></li>
56 <li><a href="#index_f"><span>f</span></a></li>
57 <li><a href="#index_h"><span>h</span></a></li>
58 <li><a href="#index_i"><span>i</span></a></li>
59 <li><a href="#index_k"><span>k</span></a></li>
60 <li><a href="#index_l"><span>l</span></a></li>
61 <li><a href="#index_m"><span>m</span></a></li>
62 <li><a href="#index_n"><span>n</span></a></li>
63 <li><a href="#index_o"><span>o</span></a></li>
64 <li><a href="#index_p"><span>p</span></a></li>
65 <li><a href="#index_q"><span>q</span></a></li>
66 <li><a href="#index_s"><span>s</span></a></li>
67 <li><a href="#index_t"><span>t</span></a></li>
68 <li><a href="#index_u"><span>u</span></a></li>
69 <li><a href="#index_v"><span>v</span></a></li>
70 </ul>
71 </div>
72 </div><!-- top -->
73 <div class="contents">
74 &#160;
75
76 <h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
77 <li>_delete
78 : <a class="el" href="structjson__object.html#a63666be714a8ce8907d56142c1d9dfb7">json_object</a>
79 </li>
80 <li>_pb
81 : <a class="el" href="structjson__object.html#afdcaa9e24bce7c86c33cb6f6ae65cb56">json_object</a>
82 </li>
83 <li>_ref_count
84 : <a class="el" href="structjson__object.html#ac3a795ba10ac33897bfda80cf4b8254e">json_object</a>
85 </li>
86 <li>_to_json_string
87 : <a class="el" href="structjson__object.html#a077a02daac4653f91584dd7f47c3d632">json_object</a>
88 </li>
89 <li>_user_delete
90 : <a class="el" href="structjson__object.html#ad9e57edb1cbd63578490081b2a9636ad">json_object</a>
91 </li>
92 <li>_userdata
93 : <a class="el" href="structjson__object.html#a592a5391c3717ff7e8930476027226fe">json_object</a>
94 </li>
95 </ul>
96
97
98 <h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
99 <li>array
100 : <a class="el" href="structarray__list.html#a7ba65feda2b156148c08667cf155b657">array_list</a>
101 </li>
102 </ul>
103
104
105 <h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
106 <li>bpos
107 : <a class="el" href="structprintbuf.html#aba980ad7406329e32f557dfa0eb7b1b2">printbuf</a>
108 </li>
109 <li>buf
110 : <a class="el" href="structprintbuf.html#a5d7cf8ac260f1f7c50fecaf9bd7bc651">printbuf</a>
111 </li>
112 </ul>
113
114
115 <h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
116 <li>c_array
117 : <a class="el" href="unionjson__object_1_1data.html#a4ad6bf2fd6d8718f55850509edfe2e45">json_object::data</a>
118 </li>
119 <li>c_boolean
120 : <a class="el" href="unionjson__object_1_1data.html#a98a3964e5fb0b3a0e9d8786b8facde5c">json_object::data</a>
121 </li>
122 <li>c_double
123 : <a class="el" href="unionjson__object_1_1data.html#a9cc4abdb21302913701ac0c8dc75e55a">json_object::data</a>
124 </li>
125 <li>c_int
126 : <a class="el" href="unionjson__object_1_1data.html#a8464f75e1afbf640def14dde10fe88c7">json_object::data</a>
127 </li>
128 <li>c_int64
129 : <a class="el" href="unionjson__object_1_1data.html#a7733181cdb631570913e3a2abfd6937c">json_object::data</a>
130 </li>
131 <li>c_object
132 : <a class="el" href="unionjson__object_1_1data.html#a68089c942f154d4df590d8ecb476a69b">json_object::data</a>
133 </li>
134 <li>c_string
135 : <a class="el" href="unionjson__object_1_1data.html#a13ffed7c115784eac4dbc95696bd25cf">json_object::data</a>
136 </li>
137 <li>c_uint64
138 : <a class="el" href="unionjson__object_1_1data.html#a578e0b55e16f2963e0ba5362929ae9f3">json_object::data</a>
139 </li>
140 <li>char_offset
141 : <a class="el" href="structjson__tokener.html#a9daae2516fd6df23555d33ef01020a76">json_tokener</a>
142 </li>
143 <li>cint
144 : <a class="el" href="unionjson__object_1_1data.html#a10f396f4e5a54d7add5d7afe43270292">json_object::data</a>
145 </li>
146 <li>cint_type
147 : <a class="el" href="unionjson__object_1_1data.html#ab4ebc744a20ba74ea55b7fd97ce11bfa">json_object::data</a>
148 </li>
149 <li>count
150 : <a class="el" href="structlh__table.html#aa172ed8fe205367b54e0e2cdf9ea8c6c">lh_table</a>
151 </li>
152 <li>current
153 : <a class="el" href="structjson__tokener__srec.html#a466f192f920368a5a6375aeba1e2757f">json_tokener_srec</a>
154 </li>
155 </ul>
156
157
158 <h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
159 <li>data
160 : <a class="el" href="unionjson__object_1_1data.html#aaa742eb1b88b4b25ec4c27431d1576d7">json_object::data</a>
161 </li>
162 <li>depth
163 : <a class="el" href="structjson__tokener.html#ae0e5102b44cc1fc680be3e0fb5fff028">json_tokener</a>
164 </li>
165 </ul>
166
167
168 <h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
169 <li>entry
170 : <a class="el" href="structjson__object__iter.html#a64e326f050826c644c02ed5bcd214faa">json_object_iter</a>
171 </li>
172 <li>equal_fn
173 : <a class="el" href="structlh__table.html#aa646c287a6a46e09da6c7457c981a359">lh_table</a>
174 </li>
175 <li>err
176 : <a class="el" href="structjson__tokener.html#adef37cdc2578d8f8920db14315728cbd">json_tokener</a>
177 </li>
178 </ul>
179
180
181 <h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
182 <li>flags
183 : <a class="el" href="structjson__tokener.html#aabfdcf2825154108669ffa3f4ab9c4ea">json_tokener</a>
184 </li>
185 <li>free_fn
186 : <a class="el" href="structlh__table.html#a30ea5903f4f8126abd6aa489ffe14737">lh_table</a>
187 , <a class="el" href="structarray__list.html#ab7989cdde357e5c7819c562c7680ab74">array_list</a>
188 </li>
189 </ul>
190
191
192 <h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
193 <li>hash_fn
194 : <a class="el" href="structlh__table.html#a1488d1a4a320b1a9bb2f441859544be1">lh_table</a>
195 </li>
196 <li>head
197 : <a class="el" href="structlh__table.html#aa7d986a3b12a9fa47e349713794c30fb">lh_table</a>
198 </li>
199 </ul>
200
201
202 <h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
203 <li>is_double
204 : <a class="el" href="structjson__tokener.html#ad3bf0aa728ea14549d5aa6ca8dcba070">json_tokener</a>
205 </li>
206 </ul>
207
208
209 <h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
210 <li>k
211 : <a class="el" href="structlh__entry.html#a79d9f1ef0dc444e17105aaeaf167e22c">lh_entry</a>
212 </li>
213 <li>k_is_constant
214 : <a class="el" href="structlh__entry.html#a14f40cc124c32b03f81151ae7934d2e7">lh_entry</a>
215 </li>
216 <li>key
217 : <a class="el" href="structjson__object__iter.html#a0b76228b3a039075e9d84f88fa72ff53">json_object_iter</a>
218 </li>
219 </ul>
220
221
222 <h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
223 <li>len
224 : <a class="el" href="unionjson__object_1_1data.html#ac2386853b8a4e7d0b28a27ed599ccef7">json_object::data</a>
225 </li>
226 <li>length
227 : <a class="el" href="structarray__list.html#a5638022574f4ddb0f80d62535085bf4f">array_list</a>
228 </li>
229 </ul>
230
231
232 <h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
233 <li>max_depth
234 : <a class="el" href="structjson__tokener.html#a9d9b33c3982925349627dc6a3edca940">json_tokener</a>
235 </li>
236 </ul>
237
238
239 <h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
240 <li>next
241 : <a class="el" href="structlh__entry.html#a7c40c46e72d9a0ba071a8d49d535bc67">lh_entry</a>
242 </li>
243 </ul>
244
245
246 <h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
247 <li>o
248 : <a class="el" href="structjson__object.html#a33aff83ffea02b934235c4821cca8cf0">json_object</a>
249 </li>
250 <li>o_type
251 : <a class="el" href="structjson__object.html#a28307a4a3fe6cefe27e28fec56b76b3e">json_object</a>
252 </li>
253 <li>obj
254 : <a class="el" href="structjson__tokener__srec.html#ad2bb71affec1da5ba1d9952c3bf2c12a">json_tokener_srec</a>
255 </li>
256 <li>obj_field_name
257 : <a class="el" href="structjson__tokener__srec.html#a99551c172e97ac2e7a3849a50b4f51ca">json_tokener_srec</a>
258 </li>
259 <li>opaque_
260 : <a class="el" href="structjson__object__iterator.html#a69c61c14f5a36b1dc2217e49cd987f47">json_object_iterator</a>
261 </li>
262 </ul>
263
264
265 <h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
266 <li>pb
267 : <a class="el" href="structjson__tokener.html#a1cdc7f85d7bde95f81bb08b7e61d6684">json_tokener</a>
268 </li>
269 <li>prev
270 : <a class="el" href="structlh__entry.html#a6fb9c3de01fb5af67d8d429921cc6a3b">lh_entry</a>
271 </li>
272 <li>ptr
273 : <a class="el" href="unionjson__object_1_1data.html#ad3f2798f4679c5a3cc7f67a42365b71f">json_object::data</a>
274 </li>
275 </ul>
276
277
278 <h3><a class="anchor" id="index_q"></a>- q -</h3><ul>
279 <li>quote_char
280 : <a class="el" href="structjson__tokener.html#aea488b73085ac7c5969ae7fc29e25fa0">json_tokener</a>
281 </li>
282 </ul>
283
284
285 <h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
286 <li>saved_state
287 : <a class="el" href="structjson__tokener__srec.html#a868b9912dbb1e4813a630c944f522d48">json_tokener_srec</a>
288 </li>
289 <li>size
290 : <a class="el" href="structarray__list.html#a11b92f48ed715b187f8609351405342f">array_list</a>
291 , <a class="el" href="structprintbuf.html#a12ce6440eaa06a55b96ebdc5a9778dd5">printbuf</a>
292 , <a class="el" href="structlh__table.html#ae251575ec2935bcb0e0589ca8e243839">lh_table</a>
293 </li>
294 <li>st_pos
295 : <a class="el" href="structjson__tokener.html#a8eed213c0a37d09c1df66c8567e44471">json_tokener</a>
296 </li>
297 <li>stack
298 : <a class="el" href="structjson__tokener.html#a3521d62906eb0e15d07d7b4f64a5fac3">json_tokener</a>
299 </li>
300 <li>str
301 : <a class="el" href="structjson__tokener.html#a9772e2170322a19d8da6ce5d7dc46895">json_tokener</a>
302 , <a class="el" href="unionjson__object_1_1data.html#a2a16be02b4be645069ed4ee34f2b8d3e">json_object::data</a>
303 </li>
304 </ul>
305
306
307 <h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
308 <li>table
309 : <a class="el" href="structlh__table.html#a4fd9c5aba38791b26ab0ec614a5caf8f">lh_table</a>
310 </li>
311 <li>tail
312 : <a class="el" href="structlh__table.html#a479895e45db2bdf9bf5d173fa4b7e277">lh_table</a>
313 </li>
314 </ul>
315
316
317 <h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
318 <li>ucs_char
319 : <a class="el" href="structjson__tokener.html#a32fa73e43fb760e6845231a8482eb064">json_tokener</a>
320 </li>
321 </ul>
322
323
324 <h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
325 <li>v
326 : <a class="el" href="structlh__entry.html#a1b676732ab2ad3eeaedf6ec60a6a0835">lh_entry</a>
327 </li>
328 <li>val
329 : <a class="el" href="structjson__object__iter.html#aaae14a8d17aacddacb0a57234e0a4491">json_object_iter</a>
330 </li>
331 </ul>
332 </div><!-- contents -->
333 <!-- start footer part -->
334 <hr class="footer"/><address class="footer"><small>
335 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
336 <img class="footer" src="doxygen.png" alt="doxygen"/>
337 </a> 1.8.2
338 </small></address>
339 </body>
340 </html>
+0
-104
doc/html/globals.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Globals</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li class="current"><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 <div id="navrow3" class="tabs2">
43 <ul class="tablist">
44 <li class="current"><a href="globals.html"><span>All</span></a></li>
45 <li><a href="globals_func.html"><span>Functions</span></a></li>
46 <li><a href="globals_vars.html"><span>Variables</span></a></li>
47 <li><a href="globals_type.html"><span>Typedefs</span></a></li>
48 <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
49 <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
50 <li><a href="globals_defs.html"><span>Macros</span></a></li>
51 </ul>
52 </div>
53 <div id="navrow4" class="tabs3">
54 <ul class="tablist">
55 <li class="current"><a href="globals.html#index__"><span>_</span></a></li>
56 <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
57 <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
58 <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
59 <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
60 <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
61 <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
62 <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
63 <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
64 <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
65 <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
66 </ul>
67 </div>
68 </div><!-- top -->
69 <div class="contents">
70 <div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
71
72 <h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
73 <li>__STRING
74 : <a class="el" href="debug_8h.html#a375c4dc9f0fb338999de81aab826f9d6">debug.h</a>
75 </li>
76 <li>_json_c_set_last_err()
77 : <a class="el" href="json__object__private_8h.html#a2b38dd2d14fbfa6585de5664b6d61c0c">json_object_private.h</a>
78 </li>
79 <li>_json_c_strerror()
80 : <a class="el" href="strerror__override_8h.html#a2affa276d0d7b0a446105e324560576f">strerror_override.h</a>
81 </li>
82 <li>_json_c_strerror_enable
83 : <a class="el" href="strerror__override__private_8h.html#af98a3cb4b7adc1b28d93906406f4f2f6">strerror_override_private.h</a>
84 </li>
85 <li>_LH_INLINE
86 : <a class="el" href="linkhash_8h.html#a77c5cddef96e6f1ab036ccf911783456">linkhash.h</a>
87 </li>
88 <li>_LH_UNCONST
89 : <a class="el" href="linkhash_8h.html#afb856ed4a9bcfd090dde5151fa3ad9ae">linkhash.h</a>
90 </li>
91 <li>_printbuf_check_literal
92 : <a class="el" href="printbuf_8h.html#ab009973c5e15aae191e610cd70752603">printbuf.h</a>
93 </li>
94 </ul>
95 </div><!-- contents -->
96 <!-- start footer part -->
97 <hr class="footer"/><address class="footer"><small>
98 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
99 <img class="footer" src="doxygen.png" alt="doxygen"/>
100 </a> 1.8.2
101 </small></address>
102 </body>
103 </html>
+0
-119
doc/html/globals_0x61.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Globals</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li class="current"><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 <div id="navrow3" class="tabs2">
43 <ul class="tablist">
44 <li class="current"><a href="globals.html"><span>All</span></a></li>
45 <li><a href="globals_func.html"><span>Functions</span></a></li>
46 <li><a href="globals_vars.html"><span>Variables</span></a></li>
47 <li><a href="globals_type.html"><span>Typedefs</span></a></li>
48 <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
49 <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
50 <li><a href="globals_defs.html"><span>Macros</span></a></li>
51 </ul>
52 </div>
53 <div id="navrow4" class="tabs3">
54 <ul class="tablist">
55 <li><a href="globals.html#index__"><span>_</span></a></li>
56 <li class="current"><a href="globals_0x61.html#index_a"><span>a</span></a></li>
57 <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
58 <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
59 <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
60 <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
61 <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
62 <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
63 <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
64 <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
65 <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
66 </ul>
67 </div>
68 </div><!-- top -->
69 <div class="contents">
70 <div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
71
72 <h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
73 <li>array_list
74 : <a class="el" href="arraylist_8h.html#a6d6d32d8b026ea2025df519b9e90f44a">arraylist.h</a>
75 </li>
76 <li>array_list_add()
77 : <a class="el" href="arraylist_8h.html#a6e995608aa464244ff3184fb43574dc8">arraylist.h</a>
78 </li>
79 <li>array_list_bsearch()
80 : <a class="el" href="arraylist_8h.html#ac5d066b971fee72ce80084c1694109e3">arraylist.h</a>
81 </li>
82 <li>ARRAY_LIST_DEFAULT_SIZE
83 : <a class="el" href="arraylist_8h.html#acd30d910b398421574eb1f59e78617f5">arraylist.h</a>
84 </li>
85 <li>array_list_del_idx()
86 : <a class="el" href="arraylist_8h.html#aecedd8601ee96e2fd8eff5d83fda89ab">arraylist.h</a>
87 </li>
88 <li>array_list_free()
89 : <a class="el" href="arraylist_8h.html#acd00fb70f7ca82f23b48b812c3498f67">arraylist.h</a>
90 </li>
91 <li>array_list_free_fn
92 : <a class="el" href="arraylist_8h.html#aad83e4ed3c8ea274e6f18459276d774b">arraylist.h</a>
93 </li>
94 <li>array_list_get_idx()
95 : <a class="el" href="arraylist_8h.html#a114f1af5b20b76a3dbb2d1d055006df8">arraylist.h</a>
96 </li>
97 <li>array_list_length()
98 : <a class="el" href="arraylist_8h.html#aa3bf90f47aa210032304b14e7ad09ef7">arraylist.h</a>
99 </li>
100 <li>array_list_new()
101 : <a class="el" href="arraylist_8h.html#a0d4bfac055dfd98e17296142abf4d894">arraylist.h</a>
102 </li>
103 <li>array_list_put_idx()
104 : <a class="el" href="arraylist_8h.html#a9f92076e9d8229f8a07e536dc286f811">arraylist.h</a>
105 </li>
106 <li>array_list_sort()
107 : <a class="el" href="arraylist_8h.html#afb67cc8e2e5c9be41c3e644536079169">arraylist.h</a>
108 </li>
109 </ul>
110 </div><!-- contents -->
111 <!-- start footer part -->
112 <hr class="footer"/><address class="footer"><small>
113 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
114 <img class="footer" src="doxygen.png" alt="doxygen"/>
115 </a> 1.8.2
116 </small></address>
117 </body>
118 </html>
+0
-89
doc/html/globals_0x68.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Globals</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li class="current"><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 <div id="navrow3" class="tabs2">
43 <ul class="tablist">
44 <li class="current"><a href="globals.html"><span>All</span></a></li>
45 <li><a href="globals_func.html"><span>Functions</span></a></li>
46 <li><a href="globals_vars.html"><span>Variables</span></a></li>
47 <li><a href="globals_type.html"><span>Typedefs</span></a></li>
48 <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
49 <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
50 <li><a href="globals_defs.html"><span>Macros</span></a></li>
51 </ul>
52 </div>
53 <div id="navrow4" class="tabs3">
54 <ul class="tablist">
55 <li><a href="globals.html#index__"><span>_</span></a></li>
56 <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
57 <li class="current"><a href="globals_0x68.html#index_h"><span>h</span></a></li>
58 <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
59 <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
60 <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
61 <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
62 <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
63 <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
64 <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
65 <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
66 </ul>
67 </div>
68 </div><!-- top -->
69 <div class="contents">
70 <div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
71
72 <h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
73 <li>HAVE_DECL_INFINITY
74 : <a class="el" href="math__compat_8h.html#a77914bc4c960d1bfda49328bd0646985">math_compat.h</a>
75 </li>
76 <li>HAVE_DECL_NAN
77 : <a class="el" href="math__compat_8h.html#a9025492cba029d3e372532a1d012f119">math_compat.h</a>
78 </li>
79 </ul>
80 </div><!-- contents -->
81 <!-- start footer part -->
82 <hr class="footer"/><address class="footer"><small>
83 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
84 <img class="footer" src="doxygen.png" alt="doxygen"/>
85 </a> 1.8.2
86 </small></address>
87 </body>
88 </html>
+0
-86
doc/html/globals_0x69.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Globals</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li class="current"><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 <div id="navrow3" class="tabs2">
43 <ul class="tablist">
44 <li class="current"><a href="globals.html"><span>All</span></a></li>
45 <li><a href="globals_func.html"><span>Functions</span></a></li>
46 <li><a href="globals_vars.html"><span>Variables</span></a></li>
47 <li><a href="globals_type.html"><span>Typedefs</span></a></li>
48 <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
49 <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
50 <li><a href="globals_defs.html"><span>Macros</span></a></li>
51 </ul>
52 </div>
53 <div id="navrow4" class="tabs3">
54 <ul class="tablist">
55 <li><a href="globals.html#index__"><span>_</span></a></li>
56 <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
57 <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
58 <li class="current"><a href="globals_0x69.html#index_i"><span>i</span></a></li>
59 <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
60 <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
61 <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
62 <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
63 <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
64 <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
65 <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
66 </ul>
67 </div>
68 </div><!-- top -->
69 <div class="contents">
70 <div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
71
72 <h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
73 <li>INFINITY
74 : <a class="el" href="math__compat_8h.html#a956e2723d559858d08644ac99146e910">math_compat.h</a>
75 </li>
76 </ul>
77 </div><!-- contents -->
78 <!-- start footer part -->
79 <hr class="footer"/><address class="footer"><small>
80 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
81 <img class="footer" src="doxygen.png" alt="doxygen"/>
82 </a> 1.8.2
83 </small></address>
84 </body>
85 </html>
+0
-674
doc/html/globals_0x6a.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Globals</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li class="current"><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 <div id="navrow3" class="tabs2">
43 <ul class="tablist">
44 <li class="current"><a href="globals.html"><span>All</span></a></li>
45 <li><a href="globals_func.html"><span>Functions</span></a></li>
46 <li><a href="globals_vars.html"><span>Variables</span></a></li>
47 <li><a href="globals_type.html"><span>Typedefs</span></a></li>
48 <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
49 <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
50 <li><a href="globals_defs.html"><span>Macros</span></a></li>
51 </ul>
52 </div>
53 <div id="navrow4" class="tabs3">
54 <ul class="tablist">
55 <li><a href="globals.html#index__"><span>_</span></a></li>
56 <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
57 <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
58 <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
59 <li class="current"><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
60 <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
61 <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
62 <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
63 <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
64 <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
65 <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
66 </ul>
67 </div>
68 </div><!-- top -->
69 <div class="contents">
70 <div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
71
72 <h3><a class="anchor" id="index_j"></a>- j -</h3><ul>
73 <li>JASSERT
74 : <a class="el" href="debug_8h.html#a8ca29550d5b1b73948f4a7bce53f2385">debug.h</a>
75 </li>
76 <li>json_bool
77 : <a class="el" href="json__types_8h.html#a81f02022906fafc71eb9197049f07f73">json_types.h</a>
78 </li>
79 <li>JSON_C_CONST_FUNCTION()
80 : <a class="el" href="json__object_8h.html#a922b2d76c73da57174beec82d471743b">json_object.h</a>
81 </li>
82 <li>json_c_get_random_seed()
83 : <a class="el" href="random__seed_8h.html#a4775cb23fbc2f32fe7880180259a140a">random_seed.h</a>
84 </li>
85 <li>JSON_C_MAJOR_VERSION
86 : <a class="el" href="json__c__version_8h.html#a251c3e1f59a379a4a905382b4e855125">json_c_version.h</a>
87 </li>
88 <li>JSON_C_MICRO_VERSION
89 : <a class="el" href="json__c__version_8h.html#a64457730097067ab096906d82e4a51a6">json_c_version.h</a>
90 </li>
91 <li>JSON_C_MINOR_VERSION
92 : <a class="el" href="json__c__version_8h.html#adc87477fbc1c75848fe6b6feec21c2d6">json_c_version.h</a>
93 </li>
94 <li>JSON_C_OBJECT_ADD_KEY_IS_NEW
95 : <a class="el" href="json__object_8h.html#a8cd01c484155ac99043a35b7c85ae411">json_object.h</a>
96 </li>
97 <li>JSON_C_OBJECT_KEY_IS_CONSTANT
98 : <a class="el" href="json__object_8h.html#a134ffafc6116799a20134dc7646b5a37">json_object.h</a>
99 </li>
100 <li>JSON_C_OPTION_GLOBAL
101 : <a class="el" href="json__object_8h.html#a45837b8c6564f9e605f8a2bc76243750">json_object.h</a>
102 </li>
103 <li>JSON_C_OPTION_THREAD
104 : <a class="el" href="json__object_8h.html#a50d1490598fe476d7a53e204e02cdc9d">json_object.h</a>
105 </li>
106 <li>json_c_set_serialization_double_format()
107 : <a class="el" href="json__object_8h.html#ac099272b46fde595831118720b155656">json_object.h</a>
108 </li>
109 <li>json_c_shallow_copy_default
110 : <a class="el" href="json__object_8h.html#a86ea08e75ddf054742bf806a3bc3f983">json_object.h</a>
111 </li>
112 <li>json_c_shallow_copy_fn
113 : <a class="el" href="json__object_8h.html#af4562514916f62ea56adf752ada10b52">json_object.h</a>
114 </li>
115 <li>JSON_C_STR_HASH_DFLT
116 : <a class="el" href="linkhash_8h.html#ac32e80138c5be6dd9b0483a9cbcc8799">linkhash.h</a>
117 </li>
118 <li>JSON_C_STR_HASH_PERLLIKE
119 : <a class="el" href="linkhash_8h.html#a62316f34fd42941b97a8e9a6b6e68faa">linkhash.h</a>
120 </li>
121 <li>JSON_C_TO_STRING_NOSLASHESCAPE
122 : <a class="el" href="json__object_8h.html#a5c11d72c55f3ab7c088f19e7bf118163">json_object.h</a>
123 </li>
124 <li>JSON_C_TO_STRING_NOZERO
125 : <a class="el" href="json__object_8h.html#a34f027c147babf69fc530d088f2b49b0">json_object.h</a>
126 </li>
127 <li>JSON_C_TO_STRING_PLAIN
128 : <a class="el" href="json__object_8h.html#a3294cb92765cdeb497cfd346644d1059">json_object.h</a>
129 </li>
130 <li>JSON_C_TO_STRING_PRETTY
131 : <a class="el" href="json__object_8h.html#a2025bc677c35f130e117dfda5bf1ef73">json_object.h</a>
132 </li>
133 <li>JSON_C_TO_STRING_PRETTY_TAB
134 : <a class="el" href="json__object_8h.html#afc1486af21f6b1653c6f523025bdfd3b">json_object.h</a>
135 </li>
136 <li>JSON_C_TO_STRING_SPACED
137 : <a class="el" href="json__object_8h.html#aa821746c8668e6ad62bed90ec9e00103">json_object.h</a>
138 </li>
139 <li>json_c_version()
140 : <a class="el" href="json__c__version_8h.html#a1c42f6f71943775e2696c47951989711">json_c_version.h</a>
141 </li>
142 <li>JSON_C_VERSION
143 : <a class="el" href="json__c__version_8h.html#a894adda66a072bc3fd34ebe91a5aa7f4">json_c_version.h</a>
144 </li>
145 <li>json_c_version_num()
146 : <a class="el" href="json__c__version_8h.html#a860ee32b09f4faf38d73771a6ed193ed">json_c_version.h</a>
147 </li>
148 <li>JSON_C_VERSION_NUM
149 : <a class="el" href="json__c__version_8h.html#a78e176eee75ee6aed43c4d65ca4c5b44">json_c_version.h</a>
150 </li>
151 <li>json_c_visit()
152 : <a class="el" href="json__visit_8h.html#a0f585e56a5d417381cdf6c28538dbb20">json_visit.h</a>
153 </li>
154 <li>JSON_C_VISIT_RETURN_CONTINUE
155 : <a class="el" href="json__visit_8h.html#a98b35e1ba1d52d41799dccbfd2c170a1">json_visit.h</a>
156 </li>
157 <li>JSON_C_VISIT_RETURN_ERROR
158 : <a class="el" href="json__visit_8h.html#abfacb0713b81c897a8ce5f37ff6ffb9c">json_visit.h</a>
159 </li>
160 <li>JSON_C_VISIT_RETURN_POP
161 : <a class="el" href="json__visit_8h.html#a327a21f1f1c6f84e7a13fbaaf4a51b13">json_visit.h</a>
162 </li>
163 <li>JSON_C_VISIT_RETURN_SKIP
164 : <a class="el" href="json__visit_8h.html#adc7ca60a79c4ae870d9463e41527c2a1">json_visit.h</a>
165 </li>
166 <li>JSON_C_VISIT_RETURN_STOP
167 : <a class="el" href="json__visit_8h.html#a5956f41bed48f90a127f9b37fad7ea97">json_visit.h</a>
168 </li>
169 <li>JSON_C_VISIT_SECOND
170 : <a class="el" href="json__visit_8h.html#ac5be4a96b99b724833943003715dfc1c">json_visit.h</a>
171 </li>
172 <li>json_c_visit_userfunc
173 : <a class="el" href="json__visit_8h.html#a0fadec4abb2befcacfaff7df822f3f8d">json_visit.h</a>
174 </li>
175 <li>JSON_EXPORT
176 : <a class="el" href="debug_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">debug.h</a>
177 , <a class="el" href="json__c__version_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">json_c_version.h</a>
178 , <a class="el" href="json__types_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">json_types.h</a>
179 , <a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">printbuf.h</a>
180 </li>
181 <li>JSON_FILE_BUF_SIZE
182 : <a class="el" href="json__util_8h.html#a084b6afc8f7fbef88976aabe4aca7efd">json_util.h</a>
183 </li>
184 <li>json_global_set_string_hash()
185 : <a class="el" href="linkhash_8h.html#ac8e1d61af44d9c0824d8c7980385bcd3">linkhash.h</a>
186 </li>
187 <li>json_hex_chars
188 : <a class="el" href="json__object__private_8h.html#a20dbe4913551cefa6b4b0a77fd4397c4">json_object_private.h</a>
189 </li>
190 <li>json_max
191 : <a class="el" href="json__util_8h.html#a57d63d199d4b9ea40359253618951300">json_util.h</a>
192 </li>
193 <li>json_min
194 : <a class="el" href="json__util_8h.html#a3dde282dc23d0eaa3c4840df8dc262d4">json_util.h</a>
195 </li>
196 <li>json_number_chars
197 : <a class="el" href="json__object__private_8h.html#a27427f89f2fc995639e366635fbe58ac">json_object_private.h</a>
198 </li>
199 <li>json_object
200 : <a class="el" href="json__types_8h.html#af27907ced0f5a43409ad96430fe0f914">json_types.h</a>
201 </li>
202 <li>json_object_array_add()
203 : <a class="el" href="json__object_8h.html#a18cdd9a7455e09f36cdf6e5756b7f586">json_object.h</a>
204 </li>
205 <li>json_object_array_bsearch()
206 : <a class="el" href="json__object_8h.html#aed353084ed3ad84e7b7575afbe7e719d">json_object.h</a>
207 </li>
208 <li>json_object_array_del_idx()
209 : <a class="el" href="json__object_8h.html#a722eca9f578704d3af38b97549242c1f">json_object.h</a>
210 </li>
211 <li>json_object_array_get_idx()
212 : <a class="el" href="json__object_8h.html#a676711a76545d4ec65cc75f100f5fd19">json_object.h</a>
213 </li>
214 <li>json_object_array_length()
215 : <a class="el" href="json__object_8h.html#ab9ea8f9c72d5adf83fdcbfe69f97fa44">json_object.h</a>
216 </li>
217 <li>json_object_array_put_idx()
218 : <a class="el" href="json__object_8h.html#a1ac0ccdbc13a25da7d8b2dc9e421dfad">json_object.h</a>
219 </li>
220 <li>json_object_array_sort()
221 : <a class="el" href="json__object_8h.html#a5584e2f2051cd1faa7fafd07ba888fd1">json_object.h</a>
222 </li>
223 <li>json_object_deep_copy()
224 : <a class="el" href="json__object_8h.html#aaac16505f13bc56accfad82604d8bcdc">json_object.h</a>
225 </li>
226 <li>JSON_OBJECT_DEF_HASH_ENTRIES
227 : <a class="el" href="json__object_8h.html#a268a63dd1b2e6d81559e268a4529e9bf">json_object.h</a>
228 </li>
229 <li>json_object_delete_fn
230 : <a class="el" href="json__types_8h.html#aa647d7c567a06abe1a1a511f6d6860e4">json_types.h</a>
231 </li>
232 <li>json_object_double_to_json_string()
233 : <a class="el" href="json__object_8h.html#ada262c62364e3819b6a64b1e3a632336">json_object.h</a>
234 </li>
235 <li>json_object_equal()
236 : <a class="el" href="json__object_8h.html#a5a1d4640525e0217059868e312f20579">json_object.h</a>
237 </li>
238 <li>json_object_free_userdata
239 : <a class="el" href="json__object_8h.html#aff3190c34884bea3b4e65e286b973d89">json_object.h</a>
240 </li>
241 <li>json_object_from_fd()
242 : <a class="el" href="json__util_8h.html#a5b72bf6f3ac8fb03da38d2e2d1e18d1b">json_util.h</a>
243 </li>
244 <li>json_object_from_fd_ex()
245 : <a class="el" href="json__util_8h.html#a88c5c7ce735d95f6c3c81c73475e14aa">json_util.h</a>
246 </li>
247 <li>json_object_from_file()
248 : <a class="el" href="json__util_8h.html#a03119ec0a71af4eee95318e9b2aaf05b">json_util.h</a>
249 </li>
250 <li>json_object_get()
251 : <a class="el" href="json__object_8h.html#a675aa3a9cced685dbfd1c1a770a0c3e4">json_object.h</a>
252 </li>
253 <li>json_object_get_array()
254 : <a class="el" href="json__object_8h.html#a23d20e3f886c1638a7116be66b7b5ec2">json_object.h</a>
255 </li>
256 <li>json_object_get_boolean()
257 : <a class="el" href="json__object_8h.html#ac003fb99db7ecd674bb16d983d2f92ee">json_object.h</a>
258 </li>
259 <li>json_object_get_double()
260 : <a class="el" href="json__object_8h.html#a94a70cff6a14398b581b7b10b0792c5b">json_object.h</a>
261 </li>
262 <li>json_object_get_int()
263 : <a class="el" href="json__object_8h.html#a8c56dc58a02f92cd6789ba5dcb9fe7b1">json_object.h</a>
264 </li>
265 <li>json_object_get_int64()
266 : <a class="el" href="json__object_8h.html#a1a14750b3af4df18ec8dc93b090a8e8a">json_object.h</a>
267 </li>
268 <li>json_object_get_object()
269 : <a class="el" href="json__object_8h.html#a2caa52ae1863bd073444f3737138a4db">json_object.h</a>
270 </li>
271 <li>json_object_get_string()
272 : <a class="el" href="json__object_8h.html#a9ee29ca8d79896e15007131527f6002e">json_object.h</a>
273 </li>
274 <li>json_object_get_string_len()
275 : <a class="el" href="json__object_8h.html#ac1d1f95a27a5e5d93bb66a8adfc1a2f4">json_object.h</a>
276 </li>
277 <li>json_object_get_type()
278 : <a class="el" href="json__object_8h.html#af256a3a7910e271a2b9735e5044c3827">json_object.h</a>
279 </li>
280 <li>json_object_get_uint64()
281 : <a class="el" href="json__object_8h.html#a82c27579b6d25d9d0eb3b72758d8b71d">json_object.h</a>
282 </li>
283 <li>json_object_get_userdata()
284 : <a class="el" href="json__object_8h.html#ae925f3ec0f61cba5ea3dd50e0315f194">json_object.h</a>
285 </li>
286 <li>json_object_int_inc()
287 : <a class="el" href="json__object_8h.html#a25691322b2d1ab24a3797e5752eb659f">json_object.h</a>
288 </li>
289 <li>json_object_int_type
290 : <a class="el" href="json__object__private_8h.html#a2c399964853692c47023a88167f551ff">json_object_private.h</a>
291 </li>
292 <li>json_object_int_type_int64
293 : <a class="el" href="json__object__private_8h.html#a2c399964853692c47023a88167f551ffa9a8133eec6f4ce579d4b2b44b4d26610">json_object_private.h</a>
294 </li>
295 <li>json_object_int_type_uint64
296 : <a class="el" href="json__object__private_8h.html#a2c399964853692c47023a88167f551ffa2f4bad5c522ad0830b9145a2755c1992">json_object_private.h</a>
297 </li>
298 <li>json_object_is_type()
299 : <a class="el" href="json__object_8h.html#a8ab506a3d8f4ba5eb6a12ce0a6bbd37b">json_object.h</a>
300 </li>
301 <li>json_object_iter
302 : <a class="el" href="json__types_8h.html#af88126730e765f2068968f4b16fd074f">json_types.h</a>
303 </li>
304 <li>json_object_iter_begin()
305 : <a class="el" href="json__object__iterator_8h.html#afdcd32f83dd8f20e25669f197fb7bde9">json_object_iterator.h</a>
306 </li>
307 <li>json_object_iter_end()
308 : <a class="el" href="json__object__iterator_8h.html#a381fbae848a3268013110002d553c32e">json_object_iterator.h</a>
309 </li>
310 <li>json_object_iter_equal()
311 : <a class="el" href="json__object__iterator_8h.html#a9cbb250d185348e8b193a886c35ae39e">json_object_iterator.h</a>
312 </li>
313 <li>json_object_iter_init_default()
314 : <a class="el" href="json__object__iterator_8h.html#ae93958fa755852192553f1686d248cd1">json_object_iterator.h</a>
315 </li>
316 <li>json_object_iter_next()
317 : <a class="el" href="json__object__iterator_8h.html#a8a152d153844f1ec1698419abae8c2e4">json_object_iterator.h</a>
318 </li>
319 <li>json_object_iter_peek_name()
320 : <a class="el" href="json__object__iterator_8h.html#adbbc3583aef14d9416a0fc8dbf750727">json_object_iterator.h</a>
321 </li>
322 <li>json_object_iter_peek_value()
323 : <a class="el" href="json__object__iterator_8h.html#ad8fe9251ca04af4d8e6840a44de7984b">json_object_iterator.h</a>
324 </li>
325 <li>json_object_new_array()
326 : <a class="el" href="json__object_8h.html#a84f7f8c0774c4600d958561d7548d649">json_object.h</a>
327 </li>
328 <li>json_object_new_boolean()
329 : <a class="el" href="json__object_8h.html#a2e290acd80e72cca745f89fb4600fb78">json_object.h</a>
330 </li>
331 <li>json_object_new_double()
332 : <a class="el" href="json__object_8h.html#a594a093bafb9091f843da3197e0638aa">json_object.h</a>
333 </li>
334 <li>json_object_new_double_s()
335 : <a class="el" href="json__object_8h.html#ae49671c026fe1ada370a75321e4e65f6">json_object.h</a>
336 </li>
337 <li>json_object_new_int()
338 : <a class="el" href="json__object_8h.html#ae92f0770fb4b3c884ce35de52d3d7de8">json_object.h</a>
339 </li>
340 <li>json_object_new_int64()
341 : <a class="el" href="json__object_8h.html#a7847f74494645c2b076505c37cc4cb93">json_object.h</a>
342 </li>
343 <li>json_object_new_null()
344 : <a class="el" href="json__object_8h.html#a29e23b5be729c679960242b3b81bcde0">json_object.h</a>
345 </li>
346 <li>json_object_new_object()
347 : <a class="el" href="json__object_8h.html#a68c383f54544fca19b5f2425be397600">json_object.h</a>
348 </li>
349 <li>json_object_new_string()
350 : <a class="el" href="json__object_8h.html#a7b7b5302b3903c9347eeb1f4a64d657b">json_object.h</a>
351 </li>
352 <li>json_object_new_string_len()
353 : <a class="el" href="json__object_8h.html#a778a1aa34a508d08daac3bdb83e24b52">json_object.h</a>
354 </li>
355 <li>json_object_new_uint64()
356 : <a class="el" href="json__object_8h.html#aa602ee5f6182b35f3f75a927320b4efd">json_object.h</a>
357 </li>
358 <li>json_object_object_add()
359 : <a class="el" href="json__object_8h.html#a27bd808a022251059a43f1f6370441cd">json_object.h</a>
360 </li>
361 <li>json_object_object_add_ex()
362 : <a class="el" href="json__object_8h.html#a57d3e444dd7db6b4510d21bf3716a002">json_object.h</a>
363 </li>
364 <li>json_object_object_del()
365 : <a class="el" href="json__object_8h.html#ac6605fdafca20bd5d33c84f4f80a3bda">json_object.h</a>
366 </li>
367 <li>json_object_object_foreach
368 : <a class="el" href="json__object_8h.html#acf5f514a9e0061c10fc08055762639ee">json_object.h</a>
369 </li>
370 <li>json_object_object_foreachC
371 : <a class="el" href="json__object_8h.html#a71f07006c12d78f7bbf4cb716a5af3a6">json_object.h</a>
372 </li>
373 <li>json_object_object_get()
374 : <a class="el" href="json__object_8h.html#a1a097805abb53b4c8a60d573730a8939">json_object.h</a>
375 </li>
376 <li>json_object_object_get_ex()
377 : <a class="el" href="json__object_8h.html#a90d5f16d58636f01d2ed1a6030c7366a">json_object.h</a>
378 </li>
379 <li>json_object_object_length()
380 : <a class="el" href="json__object_8h.html#ad59a0ad2ec914a5eef90af53acae06d9">json_object.h</a>
381 </li>
382 <li>json_object_private_delete_fn
383 : <a class="el" href="json__object__private_8h.html#aa125a0d39945a73a7d52b9823a2ef741">json_object_private.h</a>
384 </li>
385 <li>json_object_put()
386 : <a class="el" href="json__object_8h.html#afabf61f932cd64a4122ca8092452eed5">json_object.h</a>
387 </li>
388 <li>json_object_set_boolean()
389 : <a class="el" href="json__object_8h.html#a23863c1503f3a8dd8a460a6405da0a65">json_object.h</a>
390 </li>
391 <li>json_object_set_double()
392 : <a class="el" href="json__object_8h.html#a3a7b7ce585565558cb69dad8d45d7757">json_object.h</a>
393 </li>
394 <li>json_object_set_int()
395 : <a class="el" href="json__object_8h.html#a4ab3568f12e01fd2967e765a72456caa">json_object.h</a>
396 </li>
397 <li>json_object_set_int64()
398 : <a class="el" href="json__object_8h.html#a7d3948600dde732abed0e261264ef53a">json_object.h</a>
399 </li>
400 <li>json_object_set_serializer()
401 : <a class="el" href="json__object_8h.html#a889345512a214b8f78f6a73561523c7c">json_object.h</a>
402 </li>
403 <li>json_object_set_string()
404 : <a class="el" href="json__object_8h.html#ac35013e51cdc0651512801c947df431c">json_object.h</a>
405 </li>
406 <li>json_object_set_string_len()
407 : <a class="el" href="json__object_8h.html#ae48707a0c8689e14aaa3a9b831db27fc">json_object.h</a>
408 </li>
409 <li>json_object_set_uint64()
410 : <a class="el" href="json__object_8h.html#a9900aa9a425e6f14e295b298460b65d4">json_object.h</a>
411 </li>
412 <li>json_object_set_userdata()
413 : <a class="el" href="json__object_8h.html#a4ee4281ccd123c62878e931a0a3bc43b">json_object.h</a>
414 </li>
415 <li>json_object_to_fd()
416 : <a class="el" href="json__util_8h.html#afd492c120e359d2d75b67da96b580661">json_util.h</a>
417 </li>
418 <li>json_object_to_file()
419 : <a class="el" href="json__util_8h.html#a486fc95fafe7cb91c58c7f6487036bc5">json_util.h</a>
420 </li>
421 <li>json_object_to_file_ext()
422 : <a class="el" href="json__util_8h.html#a68a7385c555cf21797e361d1d4de3441">json_util.h</a>
423 </li>
424 <li>json_object_to_json_string()
425 : <a class="el" href="json__object_8h.html#ab7390c22baa1700d977c2af6b22d43a4">json_object.h</a>
426 </li>
427 <li>json_object_to_json_string_ext()
428 : <a class="el" href="json__object_8h.html#a9db613127bd4ef7db42307e43a85fc1b">json_object.h</a>
429 </li>
430 <li>json_object_to_json_string_fn
431 : <a class="el" href="json__types_8h.html#af84078100a9025df418f31626ea866fa">json_types.h</a>
432 </li>
433 <li>json_object_to_json_string_length()
434 : <a class="el" href="json__object_8h.html#add3770a3ba3d01a8f9adedfcd6bd8dbb">json_object.h</a>
435 </li>
436 <li>json_object_userdata_to_json_string
437 : <a class="el" href="json__object_8h.html#a56091ddbd2ec6d6200558cbeff1b86b8">json_object.h</a>
438 </li>
439 <li>json_parse_double()
440 : <a class="el" href="json__util_8h.html#a3f0f0b8f29a41b47d62e6c867707be50">json_util.h</a>
441 </li>
442 <li>json_parse_int64()
443 : <a class="el" href="json__util_8h.html#a9d9a63936cdae6639b9cdd87fdd13506">json_util.h</a>
444 </li>
445 <li>json_parse_uint64()
446 : <a class="el" href="json__util_8h.html#a94c2340c1344d57f7aa067f2dd0407f9">json_util.h</a>
447 </li>
448 <li>json_pointer_get()
449 : <a class="el" href="json__pointer_8h.html#aff88937e32b0ba6ffbd07cb4b1919053">json_pointer.h</a>
450 </li>
451 <li>json_pointer_getf()
452 : <a class="el" href="json__pointer_8h.html#af0ac03df64b215d05041e8007ed0233d">json_pointer.h</a>
453 </li>
454 <li>json_pointer_set()
455 : <a class="el" href="json__pointer_8h.html#aef0e651f63ce5ce35648503705e2586b">json_pointer.h</a>
456 </li>
457 <li>json_pointer_setf()
458 : <a class="el" href="json__pointer_8h.html#a66f1f98a2ce085c19f6750193b4c726d">json_pointer.h</a>
459 </li>
460 <li>json_tokener
461 : <a class="el" href="json__tokener_8h.html#a4dd5e5b65aee7f376f529f86b210ff49">json_tokener.h</a>
462 </li>
463 <li>json_tokener_continue
464 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a9b26e920ca765df91c84e999561d8fb0">json_tokener.h</a>
465 </li>
466 <li>JSON_TOKENER_DEFAULT_DEPTH
467 : <a class="el" href="json__tokener_8h.html#a5ccd346459feb66e4e0af32005360279">json_tokener.h</a>
468 </li>
469 <li>json_tokener_error
470 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener.h</a>
471 </li>
472 <li>json_tokener_error_depth
473 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a59b2c36d9cc30c3038e09b9ddee6c86c">json_tokener.h</a>
474 </li>
475 <li>json_tokener_error_desc()
476 : <a class="el" href="json__tokener_8h.html#af060dd6b593b3b710044bcb97dcec07f">json_tokener.h</a>
477 </li>
478 <li>json_tokener_error_parse_array
479 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a574846740b785146f164a209dc89574e">json_tokener.h</a>
480 </li>
481 <li>json_tokener_error_parse_boolean
482 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59addbdfe084e20709da3d20c8ae8ca278c">json_tokener.h</a>
483 </li>
484 <li>json_tokener_error_parse_comment
485 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a3588c05b1da8b909a8cbdef66b0a1a28">json_tokener.h</a>
486 </li>
487 <li>json_tokener_error_parse_eof
488 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a8f774f4c7869afdd9b92295fca3a9ded">json_tokener.h</a>
489 </li>
490 <li>json_tokener_error_parse_null
491 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a641bbb8d881fdd1e463f20a1a203b77c">json_tokener.h</a>
492 </li>
493 <li>json_tokener_error_parse_number
494 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59ab1b3ad685eb97235d269cc5b9eb7ab81">json_tokener.h</a>
495 </li>
496 <li>json_tokener_error_parse_object_key_name
497 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a2003bd8e96c6680cd22419c5ceafd4c0">json_tokener.h</a>
498 </li>
499 <li>json_tokener_error_parse_object_key_sep
500 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59af91a2a819b0d6344d6d4e1d2579f28fd">json_tokener.h</a>
501 </li>
502 <li>json_tokener_error_parse_object_value_sep
503 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a9ddb98741aebf7ac44735b4a43717013">json_tokener.h</a>
504 </li>
505 <li>json_tokener_error_parse_string
506 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a033ce89ce7b8f9e591e4bea92121c4c7">json_tokener.h</a>
507 </li>
508 <li>json_tokener_error_parse_unexpected
509 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a3309fa8ea4ab3ee0a81c55b69d223710">json_tokener.h</a>
510 </li>
511 <li>json_tokener_error_parse_utf8_string
512 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59ab405d4a1282f3b037048d3456869a4c1">json_tokener.h</a>
513 </li>
514 <li>json_tokener_error_size
515 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a1eeed74de65c0c12c9f9c28cf4f3ff1d">json_tokener.h</a>
516 </li>
517 <li>json_tokener_free()
518 : <a class="el" href="json__tokener_8h.html#a887c4661906fc6b36cc366304e522534">json_tokener.h</a>
519 </li>
520 <li>json_tokener_get_error()
521 : <a class="el" href="json__tokener_8h.html#af5d7ffd95a0f6e5d5bb5994d233b4197">json_tokener.h</a>
522 </li>
523 <li>json_tokener_get_parse_end()
524 : <a class="el" href="json__tokener_8h.html#a4a2fa28d815f8b370cbb00b80ebc0f1d">json_tokener.h</a>
525 </li>
526 <li>json_tokener_new()
527 : <a class="el" href="json__tokener_8h.html#a5ac7e2c350bc592cf2fa7b9935b00ef5">json_tokener.h</a>
528 </li>
529 <li>json_tokener_new_ex()
530 : <a class="el" href="json__tokener_8h.html#a6a1583ddd434e13515d6232de813462e">json_tokener.h</a>
531 </li>
532 <li>json_tokener_parse()
533 : <a class="el" href="json__tokener_8h.html#a236ef64d079822a4411d13eae7190c4d">json_tokener.h</a>
534 </li>
535 <li>json_tokener_parse_ex()
536 : <a class="el" href="json__tokener_8h.html#a61679f178111963a9ffa3c8179553f7a">json_tokener.h</a>
537 </li>
538 <li>json_tokener_parse_verbose()
539 : <a class="el" href="json__tokener_8h.html#a735f2dc755d57ed5c5b807aaaaef3b14">json_tokener.h</a>
540 </li>
541 <li>json_tokener_reset()
542 : <a class="el" href="json__tokener_8h.html#a238649a59737be5152d525aeaf4153ab">json_tokener.h</a>
543 </li>
544 <li>json_tokener_set_flags()
545 : <a class="el" href="json__tokener_8h.html#a7e7a0c0c9dc79e5e47b2608bb8aad7b7">json_tokener.h</a>
546 </li>
547 <li>json_tokener_state
548 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2">json_tokener.h</a>
549 </li>
550 <li>json_tokener_state_array
551 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ab3d763300f1914865be09d603ddc11f4">json_tokener.h</a>
552 </li>
553 <li>json_tokener_state_array_add
554 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2aa2a01798ebe318ea91c38a886418f771">json_tokener.h</a>
555 </li>
556 <li>json_tokener_state_array_after_sep
557 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ab1a0ad626ec662c1ba4fb5bfee1cd0a9">json_tokener.h</a>
558 </li>
559 <li>json_tokener_state_array_sep
560 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a4ec7762aeab3424cbb14354c94025865">json_tokener.h</a>
561 </li>
562 <li>json_tokener_state_boolean
563 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a3525b15ecd0a698281b3914115b6bd3e">json_tokener.h</a>
564 </li>
565 <li>json_tokener_state_comment
566 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a8c2680b8873a8dce85f0b1ac25882dc9">json_tokener.h</a>
567 </li>
568 <li>json_tokener_state_comment_end
569 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a62cef297a37a98b1239ea4bbd39723e1">json_tokener.h</a>
570 </li>
571 <li>json_tokener_state_comment_eol
572 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ad8151350b1ef50298bafbab244ac1162">json_tokener.h</a>
573 </li>
574 <li>json_tokener_state_comment_start
575 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a0ff1d1935d49188aa1e6b998d43e655c">json_tokener.h</a>
576 </li>
577 <li>json_tokener_state_eatws
578 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a9db152607ec1872a000f1fcd8757297d">json_tokener.h</a>
579 </li>
580 <li>json_tokener_state_escape_unicode
581 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a6c852da2e694be56799c58c201d6dca0">json_tokener.h</a>
582 </li>
583 <li>json_tokener_state_finish
584 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ad80b689cb709967b67a348de3d8601d2">json_tokener.h</a>
585 </li>
586 <li>json_tokener_state_inf
587 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ab9f6244bfca4924db61ed3050c780b53">json_tokener.h</a>
588 </li>
589 <li>json_tokener_state_null
590 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a668fb2654c59608945370003403a5792">json_tokener.h</a>
591 </li>
592 <li>json_tokener_state_number
593 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a7ce18d281d322af690b45f3b8b599e81">json_tokener.h</a>
594 </li>
595 <li>json_tokener_state_object_field
596 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a77375940a10806e81d99876d13be67fc">json_tokener.h</a>
597 </li>
598 <li>json_tokener_state_object_field_end
599 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a0220aea1d9204aadfffde92c7f73f5f7">json_tokener.h</a>
600 </li>
601 <li>json_tokener_state_object_field_start
602 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a8c7dbda177a5d83a36a64f7cb99b9a29">json_tokener.h</a>
603 </li>
604 <li>json_tokener_state_object_field_start_after_sep
605 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a3a2c9cf26d076936a10a6ae3ca4eb523">json_tokener.h</a>
606 </li>
607 <li>json_tokener_state_object_sep
608 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2adaf3e06c5fc04fd4f04040cd67698215">json_tokener.h</a>
609 </li>
610 <li>json_tokener_state_object_value
611 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a4c7b7deac37355491572f6da84f208aa">json_tokener.h</a>
612 </li>
613 <li>json_tokener_state_object_value_add
614 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ade6bee72f2147e634b19eb84e58eb162">json_tokener.h</a>
615 </li>
616 <li>json_tokener_state_start
617 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a7c4c0bed1ebde45f5a99de4278792d72">json_tokener.h</a>
618 </li>
619 <li>json_tokener_state_string
620 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2aa90ea4c327a285bfbbce49d42d491d65">json_tokener.h</a>
621 </li>
622 <li>json_tokener_state_string_escape
623 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a1cf793d73587f68c4f2b3b4f65ff728e">json_tokener.h</a>
624 </li>
625 <li>JSON_TOKENER_STRICT
626 : <a class="el" href="json__tokener_8h.html#a72be595cb7e090c70b1d29feb1cbfb16">json_tokener.h</a>
627 </li>
628 <li>json_tokener_success
629 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59afe2fa9bde03155019b2df30f66a5fcd0">json_tokener.h</a>
630 </li>
631 <li>JSON_TOKENER_VALIDATE_UTF8
632 : <a class="el" href="json__tokener_8h.html#a633ab043f2b07fd22420af2b369a260a">json_tokener.h</a>
633 </li>
634 <li>json_type
635 : <a class="el" href="json__types_8h.html#aba5eff84f8638d22f50403175f270c96">json_types.h</a>
636 </li>
637 <li>json_type_array
638 : <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06cae536c8c9da4648e6b9348abddde6113c">json_types.h</a>
639 </li>
640 <li>json_type_boolean
641 : <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06ca5d15299e90dbb9935ff6d3e2c22a285c">json_types.h</a>
642 </li>
643 <li>json_type_double
644 : <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06cac6ac2d9a16577d00210fea64d16b47cd">json_types.h</a>
645 </li>
646 <li>json_type_int
647 : <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06ca7bf325c213b43c5f970ae2d4443ab956">json_types.h</a>
648 </li>
649 <li>json_type_null
650 : <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06ca127e62d156e13517471fcde3378979c1">json_types.h</a>
651 </li>
652 <li>json_type_object
653 : <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06cac966c8008f0b2c07da59ee8a60ad440f">json_types.h</a>
654 </li>
655 <li>json_type_string
656 : <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06cac9f56e57c09245522d764015a054faa6">json_types.h</a>
657 </li>
658 <li>json_type_to_name()
659 : <a class="el" href="json__util_8h.html#a762aaf3df0a9c7b6919cdc1035348012">json_util.h</a>
660 </li>
661 <li>json_util_get_last_err()
662 : <a class="el" href="json__util_8h.html#a9fe4dbb5fe32850cdc22a97454e4500b">json_util.h</a>
663 </li>
664 </ul>
665 </div><!-- contents -->
666 <!-- start footer part -->
667 <hr class="footer"/><address class="footer"><small>
668 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
669 <img class="footer" src="doxygen.png" alt="doxygen"/>
670 </a> 1.8.2
671 </small></address>
672 </body>
673 </html>
+0
-161
doc/html/globals_0x6c.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Globals</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li class="current"><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 <div id="navrow3" class="tabs2">
43 <ul class="tablist">
44 <li class="current"><a href="globals.html"><span>All</span></a></li>
45 <li><a href="globals_func.html"><span>Functions</span></a></li>
46 <li><a href="globals_vars.html"><span>Variables</span></a></li>
47 <li><a href="globals_type.html"><span>Typedefs</span></a></li>
48 <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
49 <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
50 <li><a href="globals_defs.html"><span>Macros</span></a></li>
51 </ul>
52 </div>
53 <div id="navrow4" class="tabs3">
54 <ul class="tablist">
55 <li><a href="globals.html#index__"><span>_</span></a></li>
56 <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
57 <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
58 <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
59 <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
60 <li class="current"><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
61 <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
62 <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
63 <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
64 <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
65 <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
66 </ul>
67 </div>
68 </div><!-- top -->
69 <div class="contents">
70 <div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
71
72 <h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
73 <li>LEN_DIRECT_STRING_DATA
74 : <a class="el" href="json__object__private_8h.html#a227adaf0073e17006f614190d414fa1a">json_object_private.h</a>
75 </li>
76 <li>LH_EMPTY
77 : <a class="el" href="linkhash_8h.html#a93fad7f8ae44575dc89c9567859972d2">linkhash.h</a>
78 </li>
79 <li>lh_entry_free_fn
80 : <a class="el" href="linkhash_8h.html#a671553d0ee3c2a123190ba0f8ed2b635">linkhash.h</a>
81 </li>
82 <li>lh_entry_k
83 : <a class="el" href="linkhash_8h.html#a7579ce28b8366fc9b8656f14270aa3aa">linkhash.h</a>
84 </li>
85 <li>lh_entry_v
86 : <a class="el" href="linkhash_8h.html#a0d4052ccfd8c5d351a9c1d3ba07671b3">linkhash.h</a>
87 </li>
88 <li>lh_equal_fn
89 : <a class="el" href="linkhash_8h.html#a91fd85fc81b0c7c83c62f00e84729091">linkhash.h</a>
90 </li>
91 <li>lh_foreach
92 : <a class="el" href="linkhash_8h.html#ad7dd67da915065dce2c6f44cb03e2d82">linkhash.h</a>
93 </li>
94 <li>lh_foreach_safe
95 : <a class="el" href="linkhash_8h.html#abcbb0df08b4976d0649b826b6bacfca1">linkhash.h</a>
96 </li>
97 <li>LH_FREED
98 : <a class="el" href="linkhash_8h.html#ac69428f2de0a6fb080b6fb373d506aa7">linkhash.h</a>
99 </li>
100 <li>lh_hash_fn
101 : <a class="el" href="linkhash_8h.html#a38bae27995dcfb6ee3fb109a9be229b2">linkhash.h</a>
102 </li>
103 <li>lh_kchar_table_new()
104 : <a class="el" href="linkhash_8h.html#a6bf630754affe92612639542a6c49c3f">linkhash.h</a>
105 </li>
106 <li>lh_kptr_table_new()
107 : <a class="el" href="linkhash_8h.html#af8108563b961dbf5471fe2c0e51f40a5">linkhash.h</a>
108 </li>
109 <li>LH_LOAD_FACTOR
110 : <a class="el" href="linkhash_8h.html#a66b61772c29d85eb52b697e0b0dc0aaf">linkhash.h</a>
111 </li>
112 <li>LH_PRIME
113 : <a class="el" href="linkhash_8h.html#a032f1bd115df254dda325437203ce5fb">linkhash.h</a>
114 </li>
115 <li>lh_table
116 : <a class="el" href="linkhash_8h.html#a766e90057496fc6712d6be0da180a21f">linkhash.h</a>
117 </li>
118 <li>lh_table_delete()
119 : <a class="el" href="linkhash_8h.html#a2fed2c78f70d229edb2d00775ffe593c">linkhash.h</a>
120 </li>
121 <li>lh_table_delete_entry()
122 : <a class="el" href="linkhash_8h.html#ae5885a71c3457190fb1dc2d6e20dde3b">linkhash.h</a>
123 </li>
124 <li>lh_table_free()
125 : <a class="el" href="linkhash_8h.html#a81653acf740cf8c9fe672e6cd16df0cf">linkhash.h</a>
126 </li>
127 <li>lh_table_insert()
128 : <a class="el" href="linkhash_8h.html#a86c0cd547be1e2c2486a73bd58e1352c">linkhash.h</a>
129 </li>
130 <li>lh_table_insert_w_hash()
131 : <a class="el" href="linkhash_8h.html#a4558a9347a422e03a15b0b7a29b82dc3">linkhash.h</a>
132 </li>
133 <li>lh_table_length()
134 : <a class="el" href="linkhash_8h.html#ac9ba631c91fe80fb905f04c7cd526f2b">linkhash.h</a>
135 </li>
136 <li>lh_table_lookup_entry()
137 : <a class="el" href="linkhash_8h.html#ad3b6ca2d967a6c3021ee6c39e014a918">linkhash.h</a>
138 </li>
139 <li>lh_table_lookup_entry_w_hash()
140 : <a class="el" href="linkhash_8h.html#a59ecaf34ef59280952f4459b2de63677">linkhash.h</a>
141 </li>
142 <li>lh_table_lookup_ex()
143 : <a class="el" href="linkhash_8h.html#a81c270bb0dd9d5c8a3e7ae20bc4d67f3">linkhash.h</a>
144 </li>
145 <li>lh_table_new()
146 : <a class="el" href="linkhash_8h.html#a9c4f8a71dbe4d3390d9f7adb331beb0e">linkhash.h</a>
147 </li>
148 <li>lh_table_resize()
149 : <a class="el" href="linkhash_8h.html#a30c8414e31aeee7669acc938116d933f">linkhash.h</a>
150 </li>
151 </ul>
152 </div><!-- contents -->
153 <!-- start footer part -->
154 <hr class="footer"/><address class="footer"><small>
155 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
156 <img class="footer" src="doxygen.png" alt="doxygen"/>
157 </a> 1.8.2
158 </small></address>
159 </body>
160 </html>
+0
-119
doc/html/globals_0x6d.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Globals</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li class="current"><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 <div id="navrow3" class="tabs2">
43 <ul class="tablist">
44 <li class="current"><a href="globals.html"><span>All</span></a></li>
45 <li><a href="globals_func.html"><span>Functions</span></a></li>
46 <li><a href="globals_vars.html"><span>Variables</span></a></li>
47 <li><a href="globals_type.html"><span>Typedefs</span></a></li>
48 <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
49 <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
50 <li><a href="globals_defs.html"><span>Macros</span></a></li>
51 </ul>
52 </div>
53 <div id="navrow4" class="tabs3">
54 <ul class="tablist">
55 <li><a href="globals.html#index__"><span>_</span></a></li>
56 <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
57 <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
58 <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
59 <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
60 <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
61 <li class="current"><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
62 <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
63 <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
64 <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
65 <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
66 </ul>
67 </div>
68 </div><!-- top -->
69 <div class="contents">
70 <div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
71
72 <h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
73 <li>MC_DEBUG
74 : <a class="el" href="debug_8h.html#afda355b35d18bf2e6a2a22d5c8eef42c">debug.h</a>
75 </li>
76 <li>mc_debug()
77 : <a class="el" href="debug_8h.html#ae85a547b1f743597f5e2954e37c34e65">debug.h</a>
78 </li>
79 <li>mc_error()
80 : <a class="el" href="debug_8h.html#ad351453d774306c8d0da414194bb88f4">debug.h</a>
81 </li>
82 <li>MC_ERROR
83 : <a class="el" href="debug_8h.html#a11ba39cecbe449af5b86fa2f78e9da9d">debug.h</a>
84 </li>
85 <li>mc_get_debug()
86 : <a class="el" href="debug_8h.html#a0c522f19a5015c076de53379182c7ad6">debug.h</a>
87 </li>
88 <li>MC_GET_DEBUG
89 : <a class="el" href="debug_8h.html#acb272a4b4444b69cd995236f167f90ba">debug.h</a>
90 </li>
91 <li>mc_info()
92 : <a class="el" href="debug_8h.html#a1027afd06f45d53b19c9eb440eb09274">debug.h</a>
93 </li>
94 <li>MC_INFO
95 : <a class="el" href="debug_8h.html#a5ef640ce1e9e61c5f6632aefbbfa0041">debug.h</a>
96 </li>
97 <li>MC_SET_DEBUG
98 : <a class="el" href="debug_8h.html#a50f21a239fa040a10ad4cfdb4278b02b">debug.h</a>
99 </li>
100 <li>mc_set_debug()
101 : <a class="el" href="debug_8h.html#a95843c7dcfea8f2a6e6950c291ba0e3e">debug.h</a>
102 </li>
103 <li>MC_SET_SYSLOG
104 : <a class="el" href="debug_8h.html#acf1e895cb5eb7f334cbe51901e6bb918">debug.h</a>
105 </li>
106 <li>mc_set_syslog()
107 : <a class="el" href="debug_8h.html#a6ba846fed9ec9ad42a306921a44af216">debug.h</a>
108 </li>
109 </ul>
110 </div><!-- contents -->
111 <!-- start footer part -->
112 <hr class="footer"/><address class="footer"><small>
113 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
114 <img class="footer" src="doxygen.png" alt="doxygen"/>
115 </a> 1.8.2
116 </small></address>
117 </body>
118 </html>
+0
-86
doc/html/globals_0x6e.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Globals</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li class="current"><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 <div id="navrow3" class="tabs2">
43 <ul class="tablist">
44 <li class="current"><a href="globals.html"><span>All</span></a></li>
45 <li><a href="globals_func.html"><span>Functions</span></a></li>
46 <li><a href="globals_vars.html"><span>Variables</span></a></li>
47 <li><a href="globals_type.html"><span>Typedefs</span></a></li>
48 <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
49 <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
50 <li><a href="globals_defs.html"><span>Macros</span></a></li>
51 </ul>
52 </div>
53 <div id="navrow4" class="tabs3">
54 <ul class="tablist">
55 <li><a href="globals.html#index__"><span>_</span></a></li>
56 <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
57 <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
58 <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
59 <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
60 <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
61 <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
62 <li class="current"><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
63 <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
64 <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
65 <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
66 </ul>
67 </div>
68 </div><!-- top -->
69 <div class="contents">
70 <div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
71
72 <h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
73 <li>NAN
74 : <a class="el" href="math__compat_8h.html#a8abfcc76130f3f991d124dd22d7e69bc">math_compat.h</a>
75 </li>
76 </ul>
77 </div><!-- contents -->
78 <!-- start footer part -->
79 <hr class="footer"/><address class="footer"><small>
80 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
81 <img class="footer" src="doxygen.png" alt="doxygen"/>
82 </a> 1.8.2
83 </small></address>
84 </body>
85 </html>
+0
-116
doc/html/globals_0x70.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Globals</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li class="current"><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 <div id="navrow3" class="tabs2">
43 <ul class="tablist">
44 <li class="current"><a href="globals.html"><span>All</span></a></li>
45 <li><a href="globals_func.html"><span>Functions</span></a></li>
46 <li><a href="globals_vars.html"><span>Variables</span></a></li>
47 <li><a href="globals_type.html"><span>Typedefs</span></a></li>
48 <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
49 <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
50 <li><a href="globals_defs.html"><span>Macros</span></a></li>
51 </ul>
52 </div>
53 <div id="navrow4" class="tabs3">
54 <ul class="tablist">
55 <li><a href="globals.html#index__"><span>_</span></a></li>
56 <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
57 <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
58 <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
59 <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
60 <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
61 <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
62 <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
63 <li class="current"><a href="globals_0x70.html#index_p"><span>p</span></a></li>
64 <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
65 <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
66 </ul>
67 </div>
68 </div><!-- top -->
69 <div class="contents">
70 <div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
71
72 <h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
73 <li>PRId64
74 : <a class="el" href="json__inttypes_8h.html#ae372e90b62c1e8b51dc5d95bf7f5ba48">json_inttypes.h</a>
75 </li>
76 <li>printbuf
77 : <a class="el" href="printbuf_8h.html#ace274df280df67463ff417b1b3392395">printbuf.h</a>
78 </li>
79 <li>printbuf_free()
80 : <a class="el" href="printbuf_8h.html#a2b744266191ef5e3102fbf910e790a98">printbuf.h</a>
81 </li>
82 <li>printbuf_length
83 : <a class="el" href="printbuf_8h.html#acdd84ad88987c0166b7ba0e3f1f8f1bb">printbuf.h</a>
84 </li>
85 <li>printbuf_memappend()
86 : <a class="el" href="printbuf_8h.html#a9c193d30e9ca4936ea28a6c9e8e4f6f0">printbuf.h</a>
87 </li>
88 <li>printbuf_memappend_fast
89 : <a class="el" href="printbuf_8h.html#a6f3a4dc87fab41c37e3eff42f40dc346">printbuf.h</a>
90 </li>
91 <li>printbuf_memset()
92 : <a class="el" href="printbuf_8h.html#a93a27f4f8a092c58666724de23ae804d">printbuf.h</a>
93 </li>
94 <li>printbuf_new()
95 : <a class="el" href="printbuf_8h.html#a645670fa132f0ae9a75f43c0b464bdaf">printbuf.h</a>
96 </li>
97 <li>printbuf_reset()
98 : <a class="el" href="printbuf_8h.html#a705c62167df13e65e04de9ae60f6e136">printbuf.h</a>
99 </li>
100 <li>printbuf_strappend
101 : <a class="el" href="printbuf_8h.html#a2f30492682f5fbc59a8749b428e0e4ba">printbuf.h</a>
102 </li>
103 <li>PRIu64
104 : <a class="el" href="json__inttypes_8h.html#ac582131d7a7c8ee57e73180d1714f9d5">json_inttypes.h</a>
105 </li>
106 </ul>
107 </div><!-- contents -->
108 <!-- start footer part -->
109 <hr class="footer"/><address class="footer"><small>
110 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
111 <img class="footer" src="doxygen.png" alt="doxygen"/>
112 </a> 1.8.2
113 </small></address>
114 </body>
115 </html>
+0
-92
doc/html/globals_0x73.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Globals</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li class="current"><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 <div id="navrow3" class="tabs2">
43 <ul class="tablist">
44 <li class="current"><a href="globals.html"><span>All</span></a></li>
45 <li><a href="globals_func.html"><span>Functions</span></a></li>
46 <li><a href="globals_vars.html"><span>Variables</span></a></li>
47 <li><a href="globals_type.html"><span>Typedefs</span></a></li>
48 <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
49 <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
50 <li><a href="globals_defs.html"><span>Macros</span></a></li>
51 </ul>
52 </div>
53 <div id="navrow4" class="tabs3">
54 <ul class="tablist">
55 <li><a href="globals.html#index__"><span>_</span></a></li>
56 <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
57 <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
58 <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
59 <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
60 <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
61 <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
62 <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
63 <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
64 <li class="current"><a href="globals_0x73.html#index_s"><span>s</span></a></li>
65 <li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
66 </ul>
67 </div>
68 </div><!-- top -->
69 <div class="contents">
70 <div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
71
72 <h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
73 <li>SCNd64
74 : <a class="el" href="json__inttypes_8h.html#ae7044b3fb4cc5cde22155d59437c348f">json_inttypes.h</a>
75 </li>
76 <li>sprintbuf()
77 : <a class="el" href="printbuf_8h.html#a61f6bc0b1ca5787f0faca6799d61a0bb">printbuf.h</a>
78 </li>
79 <li>strerror
80 : <a class="el" href="strerror__override_8h.html#a9dae36435b1668856ec610d6d5238754">strerror_override.h</a>
81 </li>
82 </ul>
83 </div><!-- contents -->
84 <!-- start footer part -->
85 <hr class="footer"/><address class="footer"><small>
86 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
87 <img class="footer" src="doxygen.png" alt="doxygen"/>
88 </a> 1.8.2
89 </small></address>
90 </body>
91 </html>
+0
-86
doc/html/globals_0x74.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Globals</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li class="current"><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 <div id="navrow3" class="tabs2">
43 <ul class="tablist">
44 <li class="current"><a href="globals.html"><span>All</span></a></li>
45 <li><a href="globals_func.html"><span>Functions</span></a></li>
46 <li><a href="globals_vars.html"><span>Variables</span></a></li>
47 <li><a href="globals_type.html"><span>Typedefs</span></a></li>
48 <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
49 <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
50 <li><a href="globals_defs.html"><span>Macros</span></a></li>
51 </ul>
52 </div>
53 <div id="navrow4" class="tabs3">
54 <ul class="tablist">
55 <li><a href="globals.html#index__"><span>_</span></a></li>
56 <li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
57 <li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
58 <li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
59 <li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
60 <li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
61 <li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
62 <li><a href="globals_0x6e.html#index_n"><span>n</span></a></li>
63 <li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
64 <li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
65 <li class="current"><a href="globals_0x74.html#index_t"><span>t</span></a></li>
66 </ul>
67 </div>
68 </div><!-- top -->
69 <div class="contents">
70 <div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
71
72 <h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
73 <li>THIS_FUNCTION_IS_DEPRECATED
74 : <a class="el" href="json__object_8h.html#a84fa70b86686ce202058f63905c90078">json_object.h</a>
75 </li>
76 </ul>
77 </div><!-- contents -->
78 <!-- start footer part -->
79 <hr class="footer"/><address class="footer"><small>
80 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
81 <img class="footer" src="doxygen.png" alt="doxygen"/>
82 </a> 1.8.2
83 </small></address>
84 </body>
85 </html>
+0
-327
doc/html/globals_defs.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Globals</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li class="current"><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 <div id="navrow3" class="tabs2">
43 <ul class="tablist">
44 <li><a href="globals.html"><span>All</span></a></li>
45 <li><a href="globals_func.html"><span>Functions</span></a></li>
46 <li><a href="globals_vars.html"><span>Variables</span></a></li>
47 <li><a href="globals_type.html"><span>Typedefs</span></a></li>
48 <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
49 <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
50 <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
51 </ul>
52 </div>
53 <div id="navrow4" class="tabs3">
54 <ul class="tablist">
55 <li><a href="#index__"><span>_</span></a></li>
56 <li><a href="#index_a"><span>a</span></a></li>
57 <li><a href="#index_h"><span>h</span></a></li>
58 <li><a href="#index_i"><span>i</span></a></li>
59 <li><a href="#index_j"><span>j</span></a></li>
60 <li><a href="#index_l"><span>l</span></a></li>
61 <li><a href="#index_m"><span>m</span></a></li>
62 <li><a href="#index_n"><span>n</span></a></li>
63 <li><a href="#index_p"><span>p</span></a></li>
64 <li><a href="#index_s"><span>s</span></a></li>
65 <li><a href="#index_t"><span>t</span></a></li>
66 </ul>
67 </div>
68 </div><!-- top -->
69 <div class="contents">
70 &#160;
71
72 <h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
73 <li>__STRING
74 : <a class="el" href="debug_8h.html#a375c4dc9f0fb338999de81aab826f9d6">debug.h</a>
75 </li>
76 <li>_LH_INLINE
77 : <a class="el" href="linkhash_8h.html#a77c5cddef96e6f1ab036ccf911783456">linkhash.h</a>
78 </li>
79 <li>_LH_UNCONST
80 : <a class="el" href="linkhash_8h.html#afb856ed4a9bcfd090dde5151fa3ad9ae">linkhash.h</a>
81 </li>
82 <li>_printbuf_check_literal
83 : <a class="el" href="printbuf_8h.html#ab009973c5e15aae191e610cd70752603">printbuf.h</a>
84 </li>
85 </ul>
86
87
88 <h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
89 <li>ARRAY_LIST_DEFAULT_SIZE
90 : <a class="el" href="arraylist_8h.html#acd30d910b398421574eb1f59e78617f5">arraylist.h</a>
91 </li>
92 </ul>
93
94
95 <h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
96 <li>HAVE_DECL_INFINITY
97 : <a class="el" href="math__compat_8h.html#a77914bc4c960d1bfda49328bd0646985">math_compat.h</a>
98 </li>
99 <li>HAVE_DECL_NAN
100 : <a class="el" href="math__compat_8h.html#a9025492cba029d3e372532a1d012f119">math_compat.h</a>
101 </li>
102 </ul>
103
104
105 <h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
106 <li>INFINITY
107 : <a class="el" href="math__compat_8h.html#a956e2723d559858d08644ac99146e910">math_compat.h</a>
108 </li>
109 </ul>
110
111
112 <h3><a class="anchor" id="index_j"></a>- j -</h3><ul>
113 <li>JASSERT
114 : <a class="el" href="debug_8h.html#a8ca29550d5b1b73948f4a7bce53f2385">debug.h</a>
115 </li>
116 <li>JSON_C_CONST_FUNCTION
117 : <a class="el" href="json__object_8h.html#a878f59e029f19db79ff9eb41fdcf4c6d">json_object.h</a>
118 </li>
119 <li>JSON_C_MAJOR_VERSION
120 : <a class="el" href="json__c__version_8h.html#a251c3e1f59a379a4a905382b4e855125">json_c_version.h</a>
121 </li>
122 <li>JSON_C_MICRO_VERSION
123 : <a class="el" href="json__c__version_8h.html#a64457730097067ab096906d82e4a51a6">json_c_version.h</a>
124 </li>
125 <li>JSON_C_MINOR_VERSION
126 : <a class="el" href="json__c__version_8h.html#adc87477fbc1c75848fe6b6feec21c2d6">json_c_version.h</a>
127 </li>
128 <li>JSON_C_OBJECT_ADD_KEY_IS_NEW
129 : <a class="el" href="json__object_8h.html#a8cd01c484155ac99043a35b7c85ae411">json_object.h</a>
130 </li>
131 <li>JSON_C_OBJECT_KEY_IS_CONSTANT
132 : <a class="el" href="json__object_8h.html#a134ffafc6116799a20134dc7646b5a37">json_object.h</a>
133 </li>
134 <li>JSON_C_OPTION_GLOBAL
135 : <a class="el" href="json__object_8h.html#a45837b8c6564f9e605f8a2bc76243750">json_object.h</a>
136 </li>
137 <li>JSON_C_OPTION_THREAD
138 : <a class="el" href="json__object_8h.html#a50d1490598fe476d7a53e204e02cdc9d">json_object.h</a>
139 </li>
140 <li>JSON_C_STR_HASH_DFLT
141 : <a class="el" href="linkhash_8h.html#ac32e80138c5be6dd9b0483a9cbcc8799">linkhash.h</a>
142 </li>
143 <li>JSON_C_STR_HASH_PERLLIKE
144 : <a class="el" href="linkhash_8h.html#a62316f34fd42941b97a8e9a6b6e68faa">linkhash.h</a>
145 </li>
146 <li>JSON_C_TO_STRING_NOSLASHESCAPE
147 : <a class="el" href="json__object_8h.html#a5c11d72c55f3ab7c088f19e7bf118163">json_object.h</a>
148 </li>
149 <li>JSON_C_TO_STRING_NOZERO
150 : <a class="el" href="json__object_8h.html#a34f027c147babf69fc530d088f2b49b0">json_object.h</a>
151 </li>
152 <li>JSON_C_TO_STRING_PLAIN
153 : <a class="el" href="json__object_8h.html#a3294cb92765cdeb497cfd346644d1059">json_object.h</a>
154 </li>
155 <li>JSON_C_TO_STRING_PRETTY
156 : <a class="el" href="json__object_8h.html#a2025bc677c35f130e117dfda5bf1ef73">json_object.h</a>
157 </li>
158 <li>JSON_C_TO_STRING_PRETTY_TAB
159 : <a class="el" href="json__object_8h.html#afc1486af21f6b1653c6f523025bdfd3b">json_object.h</a>
160 </li>
161 <li>JSON_C_TO_STRING_SPACED
162 : <a class="el" href="json__object_8h.html#aa821746c8668e6ad62bed90ec9e00103">json_object.h</a>
163 </li>
164 <li>JSON_C_VERSION
165 : <a class="el" href="json__c__version_8h.html#a894adda66a072bc3fd34ebe91a5aa7f4">json_c_version.h</a>
166 </li>
167 <li>JSON_C_VERSION_NUM
168 : <a class="el" href="json__c__version_8h.html#a78e176eee75ee6aed43c4d65ca4c5b44">json_c_version.h</a>
169 </li>
170 <li>JSON_C_VISIT_RETURN_CONTINUE
171 : <a class="el" href="json__visit_8h.html#a98b35e1ba1d52d41799dccbfd2c170a1">json_visit.h</a>
172 </li>
173 <li>JSON_C_VISIT_RETURN_ERROR
174 : <a class="el" href="json__visit_8h.html#abfacb0713b81c897a8ce5f37ff6ffb9c">json_visit.h</a>
175 </li>
176 <li>JSON_C_VISIT_RETURN_POP
177 : <a class="el" href="json__visit_8h.html#a327a21f1f1c6f84e7a13fbaaf4a51b13">json_visit.h</a>
178 </li>
179 <li>JSON_C_VISIT_RETURN_SKIP
180 : <a class="el" href="json__visit_8h.html#adc7ca60a79c4ae870d9463e41527c2a1">json_visit.h</a>
181 </li>
182 <li>JSON_C_VISIT_RETURN_STOP
183 : <a class="el" href="json__visit_8h.html#a5956f41bed48f90a127f9b37fad7ea97">json_visit.h</a>
184 </li>
185 <li>JSON_C_VISIT_SECOND
186 : <a class="el" href="json__visit_8h.html#ac5be4a96b99b724833943003715dfc1c">json_visit.h</a>
187 </li>
188 <li>JSON_EXPORT
189 : <a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">printbuf.h</a>
190 , <a class="el" href="json__c__version_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">json_c_version.h</a>
191 , <a class="el" href="debug_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">debug.h</a>
192 , <a class="el" href="json__types_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">json_types.h</a>
193 </li>
194 <li>JSON_FILE_BUF_SIZE
195 : <a class="el" href="json__util_8h.html#a084b6afc8f7fbef88976aabe4aca7efd">json_util.h</a>
196 </li>
197 <li>json_max
198 : <a class="el" href="json__util_8h.html#a57d63d199d4b9ea40359253618951300">json_util.h</a>
199 </li>
200 <li>json_min
201 : <a class="el" href="json__util_8h.html#a3dde282dc23d0eaa3c4840df8dc262d4">json_util.h</a>
202 </li>
203 <li>JSON_OBJECT_DEF_HASH_ENTRIES
204 : <a class="el" href="json__object_8h.html#a268a63dd1b2e6d81559e268a4529e9bf">json_object.h</a>
205 </li>
206 <li>json_object_object_foreach
207 : <a class="el" href="json__object_8h.html#acf5f514a9e0061c10fc08055762639ee">json_object.h</a>
208 </li>
209 <li>json_object_object_foreachC
210 : <a class="el" href="json__object_8h.html#a71f07006c12d78f7bbf4cb716a5af3a6">json_object.h</a>
211 </li>
212 <li>JSON_TOKENER_DEFAULT_DEPTH
213 : <a class="el" href="json__tokener_8h.html#a5ccd346459feb66e4e0af32005360279">json_tokener.h</a>
214 </li>
215 <li>JSON_TOKENER_STRICT
216 : <a class="el" href="json__tokener_8h.html#a72be595cb7e090c70b1d29feb1cbfb16">json_tokener.h</a>
217 </li>
218 <li>JSON_TOKENER_VALIDATE_UTF8
219 : <a class="el" href="json__tokener_8h.html#a633ab043f2b07fd22420af2b369a260a">json_tokener.h</a>
220 </li>
221 </ul>
222
223
224 <h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
225 <li>LEN_DIRECT_STRING_DATA
226 : <a class="el" href="json__object__private_8h.html#a227adaf0073e17006f614190d414fa1a">json_object_private.h</a>
227 </li>
228 <li>LH_EMPTY
229 : <a class="el" href="linkhash_8h.html#a93fad7f8ae44575dc89c9567859972d2">linkhash.h</a>
230 </li>
231 <li>lh_entry_k
232 : <a class="el" href="linkhash_8h.html#a7579ce28b8366fc9b8656f14270aa3aa">linkhash.h</a>
233 </li>
234 <li>lh_entry_v
235 : <a class="el" href="linkhash_8h.html#a0d4052ccfd8c5d351a9c1d3ba07671b3">linkhash.h</a>
236 </li>
237 <li>lh_foreach
238 : <a class="el" href="linkhash_8h.html#ad7dd67da915065dce2c6f44cb03e2d82">linkhash.h</a>
239 </li>
240 <li>lh_foreach_safe
241 : <a class="el" href="linkhash_8h.html#abcbb0df08b4976d0649b826b6bacfca1">linkhash.h</a>
242 </li>
243 <li>LH_FREED
244 : <a class="el" href="linkhash_8h.html#ac69428f2de0a6fb080b6fb373d506aa7">linkhash.h</a>
245 </li>
246 <li>LH_LOAD_FACTOR
247 : <a class="el" href="linkhash_8h.html#a66b61772c29d85eb52b697e0b0dc0aaf">linkhash.h</a>
248 </li>
249 <li>LH_PRIME
250 : <a class="el" href="linkhash_8h.html#a032f1bd115df254dda325437203ce5fb">linkhash.h</a>
251 </li>
252 </ul>
253
254
255 <h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
256 <li>MC_DEBUG
257 : <a class="el" href="debug_8h.html#afda355b35d18bf2e6a2a22d5c8eef42c">debug.h</a>
258 </li>
259 <li>MC_ERROR
260 : <a class="el" href="debug_8h.html#a11ba39cecbe449af5b86fa2f78e9da9d">debug.h</a>
261 </li>
262 <li>MC_GET_DEBUG
263 : <a class="el" href="debug_8h.html#acb272a4b4444b69cd995236f167f90ba">debug.h</a>
264 </li>
265 <li>MC_INFO
266 : <a class="el" href="debug_8h.html#a5ef640ce1e9e61c5f6632aefbbfa0041">debug.h</a>
267 </li>
268 <li>MC_SET_DEBUG
269 : <a class="el" href="debug_8h.html#a50f21a239fa040a10ad4cfdb4278b02b">debug.h</a>
270 </li>
271 <li>MC_SET_SYSLOG
272 : <a class="el" href="debug_8h.html#acf1e895cb5eb7f334cbe51901e6bb918">debug.h</a>
273 </li>
274 </ul>
275
276
277 <h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
278 <li>NAN
279 : <a class="el" href="math__compat_8h.html#a8abfcc76130f3f991d124dd22d7e69bc">math_compat.h</a>
280 </li>
281 </ul>
282
283
284 <h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
285 <li>PRId64
286 : <a class="el" href="json__inttypes_8h.html#ae372e90b62c1e8b51dc5d95bf7f5ba48">json_inttypes.h</a>
287 </li>
288 <li>printbuf_length
289 : <a class="el" href="printbuf_8h.html#acdd84ad88987c0166b7ba0e3f1f8f1bb">printbuf.h</a>
290 </li>
291 <li>printbuf_memappend_fast
292 : <a class="el" href="printbuf_8h.html#a6f3a4dc87fab41c37e3eff42f40dc346">printbuf.h</a>
293 </li>
294 <li>printbuf_strappend
295 : <a class="el" href="printbuf_8h.html#a2f30492682f5fbc59a8749b428e0e4ba">printbuf.h</a>
296 </li>
297 <li>PRIu64
298 : <a class="el" href="json__inttypes_8h.html#ac582131d7a7c8ee57e73180d1714f9d5">json_inttypes.h</a>
299 </li>
300 </ul>
301
302
303 <h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
304 <li>SCNd64
305 : <a class="el" href="json__inttypes_8h.html#ae7044b3fb4cc5cde22155d59437c348f">json_inttypes.h</a>
306 </li>
307 <li>strerror
308 : <a class="el" href="strerror__override_8h.html#a9dae36435b1668856ec610d6d5238754">strerror_override.h</a>
309 </li>
310 </ul>
311
312
313 <h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
314 <li>THIS_FUNCTION_IS_DEPRECATED
315 : <a class="el" href="json__object_8h.html#a84fa70b86686ce202058f63905c90078">json_object.h</a>
316 </li>
317 </ul>
318 </div><!-- contents -->
319 <!-- start footer part -->
320 <hr class="footer"/><address class="footer"><small>
321 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
322 <img class="footer" src="doxygen.png" alt="doxygen"/>
323 </a> 1.8.2
324 </small></address>
325 </body>
326 </html>
+0
-78
doc/html/globals_enum.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Globals</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li class="current"><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 <div id="navrow3" class="tabs2">
43 <ul class="tablist">
44 <li><a href="globals.html"><span>All</span></a></li>
45 <li><a href="globals_func.html"><span>Functions</span></a></li>
46 <li><a href="globals_vars.html"><span>Variables</span></a></li>
47 <li><a href="globals_type.html"><span>Typedefs</span></a></li>
48 <li class="current"><a href="globals_enum.html"><span>Enumerations</span></a></li>
49 <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
50 <li><a href="globals_defs.html"><span>Macros</span></a></li>
51 </ul>
52 </div>
53 </div><!-- top -->
54 <div class="contents">
55 &#160;<ul>
56 <li>json_object_int_type
57 : <a class="el" href="json__object__private_8h.html#a2c399964853692c47023a88167f551ff">json_object_private.h</a>
58 </li>
59 <li>json_tokener_error
60 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener.h</a>
61 </li>
62 <li>json_tokener_state
63 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2">json_tokener.h</a>
64 </li>
65 <li>json_type
66 : <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06c">json_types.h</a>
67 </li>
68 </ul>
69 </div><!-- contents -->
70 <!-- start footer part -->
71 <hr class="footer"/><address class="footer"><small>
72 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
73 <img class="footer" src="doxygen.png" alt="doxygen"/>
74 </a> 1.8.2
75 </small></address>
76 </body>
77 </html>
+0
-223
doc/html/globals_eval.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Globals</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li class="current"><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 <div id="navrow3" class="tabs2">
43 <ul class="tablist">
44 <li><a href="globals.html"><span>All</span></a></li>
45 <li><a href="globals_func.html"><span>Functions</span></a></li>
46 <li><a href="globals_vars.html"><span>Variables</span></a></li>
47 <li><a href="globals_type.html"><span>Typedefs</span></a></li>
48 <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
49 <li class="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
50 <li><a href="globals_defs.html"><span>Macros</span></a></li>
51 </ul>
52 </div>
53 <div id="navrow4" class="tabs3">
54 <ul class="tablist">
55 <li><a href="#index_j"><span>j</span></a></li>
56 </ul>
57 </div>
58 </div><!-- top -->
59 <div class="contents">
60 &#160;
61
62 <h3><a class="anchor" id="index_j"></a>- j -</h3><ul>
63 <li>json_object_int_type_int64
64 : <a class="el" href="json__object__private_8h.html#a2c399964853692c47023a88167f551ffa9a8133eec6f4ce579d4b2b44b4d26610">json_object_private.h</a>
65 </li>
66 <li>json_object_int_type_uint64
67 : <a class="el" href="json__object__private_8h.html#a2c399964853692c47023a88167f551ffa2f4bad5c522ad0830b9145a2755c1992">json_object_private.h</a>
68 </li>
69 <li>json_tokener_continue
70 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a9b26e920ca765df91c84e999561d8fb0">json_tokener.h</a>
71 </li>
72 <li>json_tokener_error_depth
73 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a59b2c36d9cc30c3038e09b9ddee6c86c">json_tokener.h</a>
74 </li>
75 <li>json_tokener_error_parse_array
76 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a574846740b785146f164a209dc89574e">json_tokener.h</a>
77 </li>
78 <li>json_tokener_error_parse_boolean
79 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59addbdfe084e20709da3d20c8ae8ca278c">json_tokener.h</a>
80 </li>
81 <li>json_tokener_error_parse_comment
82 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a3588c05b1da8b909a8cbdef66b0a1a28">json_tokener.h</a>
83 </li>
84 <li>json_tokener_error_parse_eof
85 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a8f774f4c7869afdd9b92295fca3a9ded">json_tokener.h</a>
86 </li>
87 <li>json_tokener_error_parse_null
88 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a641bbb8d881fdd1e463f20a1a203b77c">json_tokener.h</a>
89 </li>
90 <li>json_tokener_error_parse_number
91 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59ab1b3ad685eb97235d269cc5b9eb7ab81">json_tokener.h</a>
92 </li>
93 <li>json_tokener_error_parse_object_key_name
94 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a2003bd8e96c6680cd22419c5ceafd4c0">json_tokener.h</a>
95 </li>
96 <li>json_tokener_error_parse_object_key_sep
97 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59af91a2a819b0d6344d6d4e1d2579f28fd">json_tokener.h</a>
98 </li>
99 <li>json_tokener_error_parse_object_value_sep
100 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a9ddb98741aebf7ac44735b4a43717013">json_tokener.h</a>
101 </li>
102 <li>json_tokener_error_parse_string
103 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a033ce89ce7b8f9e591e4bea92121c4c7">json_tokener.h</a>
104 </li>
105 <li>json_tokener_error_parse_unexpected
106 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a3309fa8ea4ab3ee0a81c55b69d223710">json_tokener.h</a>
107 </li>
108 <li>json_tokener_error_parse_utf8_string
109 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59ab405d4a1282f3b037048d3456869a4c1">json_tokener.h</a>
110 </li>
111 <li>json_tokener_error_size
112 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a1eeed74de65c0c12c9f9c28cf4f3ff1d">json_tokener.h</a>
113 </li>
114 <li>json_tokener_state_array
115 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ab3d763300f1914865be09d603ddc11f4">json_tokener.h</a>
116 </li>
117 <li>json_tokener_state_array_add
118 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2aa2a01798ebe318ea91c38a886418f771">json_tokener.h</a>
119 </li>
120 <li>json_tokener_state_array_after_sep
121 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ab1a0ad626ec662c1ba4fb5bfee1cd0a9">json_tokener.h</a>
122 </li>
123 <li>json_tokener_state_array_sep
124 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a4ec7762aeab3424cbb14354c94025865">json_tokener.h</a>
125 </li>
126 <li>json_tokener_state_boolean
127 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a3525b15ecd0a698281b3914115b6bd3e">json_tokener.h</a>
128 </li>
129 <li>json_tokener_state_comment
130 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a8c2680b8873a8dce85f0b1ac25882dc9">json_tokener.h</a>
131 </li>
132 <li>json_tokener_state_comment_end
133 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a62cef297a37a98b1239ea4bbd39723e1">json_tokener.h</a>
134 </li>
135 <li>json_tokener_state_comment_eol
136 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ad8151350b1ef50298bafbab244ac1162">json_tokener.h</a>
137 </li>
138 <li>json_tokener_state_comment_start
139 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a0ff1d1935d49188aa1e6b998d43e655c">json_tokener.h</a>
140 </li>
141 <li>json_tokener_state_eatws
142 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a9db152607ec1872a000f1fcd8757297d">json_tokener.h</a>
143 </li>
144 <li>json_tokener_state_escape_unicode
145 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a6c852da2e694be56799c58c201d6dca0">json_tokener.h</a>
146 </li>
147 <li>json_tokener_state_finish
148 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ad80b689cb709967b67a348de3d8601d2">json_tokener.h</a>
149 </li>
150 <li>json_tokener_state_inf
151 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ab9f6244bfca4924db61ed3050c780b53">json_tokener.h</a>
152 </li>
153 <li>json_tokener_state_null
154 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a668fb2654c59608945370003403a5792">json_tokener.h</a>
155 </li>
156 <li>json_tokener_state_number
157 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a7ce18d281d322af690b45f3b8b599e81">json_tokener.h</a>
158 </li>
159 <li>json_tokener_state_object_field
160 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a77375940a10806e81d99876d13be67fc">json_tokener.h</a>
161 </li>
162 <li>json_tokener_state_object_field_end
163 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a0220aea1d9204aadfffde92c7f73f5f7">json_tokener.h</a>
164 </li>
165 <li>json_tokener_state_object_field_start
166 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a8c7dbda177a5d83a36a64f7cb99b9a29">json_tokener.h</a>
167 </li>
168 <li>json_tokener_state_object_field_start_after_sep
169 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a3a2c9cf26d076936a10a6ae3ca4eb523">json_tokener.h</a>
170 </li>
171 <li>json_tokener_state_object_sep
172 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2adaf3e06c5fc04fd4f04040cd67698215">json_tokener.h</a>
173 </li>
174 <li>json_tokener_state_object_value
175 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a4c7b7deac37355491572f6da84f208aa">json_tokener.h</a>
176 </li>
177 <li>json_tokener_state_object_value_add
178 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ade6bee72f2147e634b19eb84e58eb162">json_tokener.h</a>
179 </li>
180 <li>json_tokener_state_start
181 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a7c4c0bed1ebde45f5a99de4278792d72">json_tokener.h</a>
182 </li>
183 <li>json_tokener_state_string
184 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2aa90ea4c327a285bfbbce49d42d491d65">json_tokener.h</a>
185 </li>
186 <li>json_tokener_state_string_escape
187 : <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a1cf793d73587f68c4f2b3b4f65ff728e">json_tokener.h</a>
188 </li>
189 <li>json_tokener_success
190 : <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59afe2fa9bde03155019b2df30f66a5fcd0">json_tokener.h</a>
191 </li>
192 <li>json_type_array
193 : <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06cae536c8c9da4648e6b9348abddde6113c">json_types.h</a>
194 </li>
195 <li>json_type_boolean
196 : <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06ca5d15299e90dbb9935ff6d3e2c22a285c">json_types.h</a>
197 </li>
198 <li>json_type_double
199 : <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06cac6ac2d9a16577d00210fea64d16b47cd">json_types.h</a>
200 </li>
201 <li>json_type_int
202 : <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06ca7bf325c213b43c5f970ae2d4443ab956">json_types.h</a>
203 </li>
204 <li>json_type_null
205 : <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06ca127e62d156e13517471fcde3378979c1">json_types.h</a>
206 </li>
207 <li>json_type_object
208 : <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06cac966c8008f0b2c07da59ee8a60ad440f">json_types.h</a>
209 </li>
210 <li>json_type_string
211 : <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06cac9f56e57c09245522d764015a054faa6">json_types.h</a>
212 </li>
213 </ul>
214 </div><!-- contents -->
215 <!-- start footer part -->
216 <hr class="footer"/><address class="footer"><small>
217 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
218 <img class="footer" src="doxygen.png" alt="doxygen"/>
219 </a> 1.8.2
220 </small></address>
221 </body>
222 </html>
+0
-493
doc/html/globals_func.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Globals</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li class="current"><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 <div id="navrow3" class="tabs2">
43 <ul class="tablist">
44 <li><a href="globals.html"><span>All</span></a></li>
45 <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
46 <li><a href="globals_vars.html"><span>Variables</span></a></li>
47 <li><a href="globals_type.html"><span>Typedefs</span></a></li>
48 <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
49 <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
50 <li><a href="globals_defs.html"><span>Macros</span></a></li>
51 </ul>
52 </div>
53 <div id="navrow4" class="tabs3">
54 <ul class="tablist">
55 <li><a href="#index__"><span>_</span></a></li>
56 <li><a href="#index_a"><span>a</span></a></li>
57 <li><a href="#index_j"><span>j</span></a></li>
58 <li><a href="#index_l"><span>l</span></a></li>
59 <li><a href="#index_m"><span>m</span></a></li>
60 <li><a href="#index_p"><span>p</span></a></li>
61 <li><a href="#index_s"><span>s</span></a></li>
62 </ul>
63 </div>
64 </div><!-- top -->
65 <div class="contents">
66 &#160;
67
68 <h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
69 <li>_json_c_set_last_err()
70 : <a class="el" href="json__object__private_8h.html#a2b38dd2d14fbfa6585de5664b6d61c0c">json_object_private.h</a>
71 </li>
72 <li>_json_c_strerror()
73 : <a class="el" href="strerror__override_8h.html#a2affa276d0d7b0a446105e324560576f">strerror_override.h</a>
74 </li>
75 </ul>
76
77
78 <h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
79 <li>array_list_add()
80 : <a class="el" href="arraylist_8h.html#a6e995608aa464244ff3184fb43574dc8">arraylist.h</a>
81 </li>
82 <li>array_list_bsearch()
83 : <a class="el" href="arraylist_8h.html#ac5d066b971fee72ce80084c1694109e3">arraylist.h</a>
84 </li>
85 <li>array_list_del_idx()
86 : <a class="el" href="arraylist_8h.html#aecedd8601ee96e2fd8eff5d83fda89ab">arraylist.h</a>
87 </li>
88 <li>array_list_free()
89 : <a class="el" href="arraylist_8h.html#acd00fb70f7ca82f23b48b812c3498f67">arraylist.h</a>
90 </li>
91 <li>array_list_get_idx()
92 : <a class="el" href="arraylist_8h.html#a114f1af5b20b76a3dbb2d1d055006df8">arraylist.h</a>
93 </li>
94 <li>array_list_length()
95 : <a class="el" href="arraylist_8h.html#aa3bf90f47aa210032304b14e7ad09ef7">arraylist.h</a>
96 </li>
97 <li>array_list_new()
98 : <a class="el" href="arraylist_8h.html#a0d4bfac055dfd98e17296142abf4d894">arraylist.h</a>
99 </li>
100 <li>array_list_put_idx()
101 : <a class="el" href="arraylist_8h.html#a9f92076e9d8229f8a07e536dc286f811">arraylist.h</a>
102 </li>
103 <li>array_list_sort()
104 : <a class="el" href="arraylist_8h.html#afb67cc8e2e5c9be41c3e644536079169">arraylist.h</a>
105 </li>
106 </ul>
107
108
109 <h3><a class="anchor" id="index_j"></a>- j -</h3><ul>
110 <li>JSON_C_CONST_FUNCTION()
111 : <a class="el" href="json__object_8h.html#a922b2d76c73da57174beec82d471743b">json_object.h</a>
112 </li>
113 <li>json_c_get_random_seed()
114 : <a class="el" href="random__seed_8h.html#a4775cb23fbc2f32fe7880180259a140a">random_seed.h</a>
115 </li>
116 <li>json_c_set_serialization_double_format()
117 : <a class="el" href="json__object_8h.html#ac099272b46fde595831118720b155656">json_object.h</a>
118 </li>
119 <li>json_c_version()
120 : <a class="el" href="json__c__version_8h.html#a1c42f6f71943775e2696c47951989711">json_c_version.h</a>
121 </li>
122 <li>json_c_version_num()
123 : <a class="el" href="json__c__version_8h.html#a860ee32b09f4faf38d73771a6ed193ed">json_c_version.h</a>
124 </li>
125 <li>json_c_visit()
126 : <a class="el" href="json__visit_8h.html#a0f585e56a5d417381cdf6c28538dbb20">json_visit.h</a>
127 </li>
128 <li>json_global_set_string_hash()
129 : <a class="el" href="linkhash_8h.html#ac8e1d61af44d9c0824d8c7980385bcd3">linkhash.h</a>
130 </li>
131 <li>json_object_array_add()
132 : <a class="el" href="json__object_8h.html#a18cdd9a7455e09f36cdf6e5756b7f586">json_object.h</a>
133 </li>
134 <li>json_object_array_bsearch()
135 : <a class="el" href="json__object_8h.html#aed353084ed3ad84e7b7575afbe7e719d">json_object.h</a>
136 </li>
137 <li>json_object_array_del_idx()
138 : <a class="el" href="json__object_8h.html#a722eca9f578704d3af38b97549242c1f">json_object.h</a>
139 </li>
140 <li>json_object_array_get_idx()
141 : <a class="el" href="json__object_8h.html#a676711a76545d4ec65cc75f100f5fd19">json_object.h</a>
142 </li>
143 <li>json_object_array_length()
144 : <a class="el" href="json__object_8h.html#ab9ea8f9c72d5adf83fdcbfe69f97fa44">json_object.h</a>
145 </li>
146 <li>json_object_array_put_idx()
147 : <a class="el" href="json__object_8h.html#a1ac0ccdbc13a25da7d8b2dc9e421dfad">json_object.h</a>
148 </li>
149 <li>json_object_array_sort()
150 : <a class="el" href="json__object_8h.html#a5584e2f2051cd1faa7fafd07ba888fd1">json_object.h</a>
151 </li>
152 <li>json_object_deep_copy()
153 : <a class="el" href="json__object_8h.html#aaac16505f13bc56accfad82604d8bcdc">json_object.h</a>
154 </li>
155 <li>json_object_double_to_json_string()
156 : <a class="el" href="json__object_8h.html#ada262c62364e3819b6a64b1e3a632336">json_object.h</a>
157 </li>
158 <li>json_object_equal()
159 : <a class="el" href="json__object_8h.html#a5a1d4640525e0217059868e312f20579">json_object.h</a>
160 </li>
161 <li>json_object_from_fd()
162 : <a class="el" href="json__util_8h.html#a5b72bf6f3ac8fb03da38d2e2d1e18d1b">json_util.h</a>
163 </li>
164 <li>json_object_from_fd_ex()
165 : <a class="el" href="json__util_8h.html#a88c5c7ce735d95f6c3c81c73475e14aa">json_util.h</a>
166 </li>
167 <li>json_object_from_file()
168 : <a class="el" href="json__util_8h.html#a03119ec0a71af4eee95318e9b2aaf05b">json_util.h</a>
169 </li>
170 <li>json_object_get()
171 : <a class="el" href="json__object_8h.html#a675aa3a9cced685dbfd1c1a770a0c3e4">json_object.h</a>
172 </li>
173 <li>json_object_get_array()
174 : <a class="el" href="json__object_8h.html#a23d20e3f886c1638a7116be66b7b5ec2">json_object.h</a>
175 </li>
176 <li>json_object_get_boolean()
177 : <a class="el" href="json__object_8h.html#ac003fb99db7ecd674bb16d983d2f92ee">json_object.h</a>
178 </li>
179 <li>json_object_get_double()
180 : <a class="el" href="json__object_8h.html#a94a70cff6a14398b581b7b10b0792c5b">json_object.h</a>
181 </li>
182 <li>json_object_get_int()
183 : <a class="el" href="json__object_8h.html#a8c56dc58a02f92cd6789ba5dcb9fe7b1">json_object.h</a>
184 </li>
185 <li>json_object_get_int64()
186 : <a class="el" href="json__object_8h.html#a1a14750b3af4df18ec8dc93b090a8e8a">json_object.h</a>
187 </li>
188 <li>json_object_get_object()
189 : <a class="el" href="json__object_8h.html#a2caa52ae1863bd073444f3737138a4db">json_object.h</a>
190 </li>
191 <li>json_object_get_string()
192 : <a class="el" href="json__object_8h.html#a9ee29ca8d79896e15007131527f6002e">json_object.h</a>
193 </li>
194 <li>json_object_get_string_len()
195 : <a class="el" href="json__object_8h.html#ac1d1f95a27a5e5d93bb66a8adfc1a2f4">json_object.h</a>
196 </li>
197 <li>json_object_get_type()
198 : <a class="el" href="json__object_8h.html#af256a3a7910e271a2b9735e5044c3827">json_object.h</a>
199 </li>
200 <li>json_object_get_uint64()
201 : <a class="el" href="json__object_8h.html#a82c27579b6d25d9d0eb3b72758d8b71d">json_object.h</a>
202 </li>
203 <li>json_object_get_userdata()
204 : <a class="el" href="json__object_8h.html#ae925f3ec0f61cba5ea3dd50e0315f194">json_object.h</a>
205 </li>
206 <li>json_object_int_inc()
207 : <a class="el" href="json__object_8h.html#a25691322b2d1ab24a3797e5752eb659f">json_object.h</a>
208 </li>
209 <li>json_object_is_type()
210 : <a class="el" href="json__object_8h.html#a8ab506a3d8f4ba5eb6a12ce0a6bbd37b">json_object.h</a>
211 </li>
212 <li>json_object_iter_begin()
213 : <a class="el" href="json__object__iterator_8h.html#afdcd32f83dd8f20e25669f197fb7bde9">json_object_iterator.h</a>
214 </li>
215 <li>json_object_iter_end()
216 : <a class="el" href="json__object__iterator_8h.html#a381fbae848a3268013110002d553c32e">json_object_iterator.h</a>
217 </li>
218 <li>json_object_iter_equal()
219 : <a class="el" href="json__object__iterator_8h.html#a9cbb250d185348e8b193a886c35ae39e">json_object_iterator.h</a>
220 </li>
221 <li>json_object_iter_init_default()
222 : <a class="el" href="json__object__iterator_8h.html#ae93958fa755852192553f1686d248cd1">json_object_iterator.h</a>
223 </li>
224 <li>json_object_iter_next()
225 : <a class="el" href="json__object__iterator_8h.html#a8a152d153844f1ec1698419abae8c2e4">json_object_iterator.h</a>
226 </li>
227 <li>json_object_iter_peek_name()
228 : <a class="el" href="json__object__iterator_8h.html#adbbc3583aef14d9416a0fc8dbf750727">json_object_iterator.h</a>
229 </li>
230 <li>json_object_iter_peek_value()
231 : <a class="el" href="json__object__iterator_8h.html#ad8fe9251ca04af4d8e6840a44de7984b">json_object_iterator.h</a>
232 </li>
233 <li>json_object_new_array()
234 : <a class="el" href="json__object_8h.html#a84f7f8c0774c4600d958561d7548d649">json_object.h</a>
235 </li>
236 <li>json_object_new_boolean()
237 : <a class="el" href="json__object_8h.html#a2e290acd80e72cca745f89fb4600fb78">json_object.h</a>
238 </li>
239 <li>json_object_new_double()
240 : <a class="el" href="json__object_8h.html#a594a093bafb9091f843da3197e0638aa">json_object.h</a>
241 </li>
242 <li>json_object_new_double_s()
243 : <a class="el" href="json__object_8h.html#ae49671c026fe1ada370a75321e4e65f6">json_object.h</a>
244 </li>
245 <li>json_object_new_int()
246 : <a class="el" href="json__object_8h.html#ae92f0770fb4b3c884ce35de52d3d7de8">json_object.h</a>
247 </li>
248 <li>json_object_new_int64()
249 : <a class="el" href="json__object_8h.html#a7847f74494645c2b076505c37cc4cb93">json_object.h</a>
250 </li>
251 <li>json_object_new_null()
252 : <a class="el" href="json__object_8h.html#a29e23b5be729c679960242b3b81bcde0">json_object.h</a>
253 </li>
254 <li>json_object_new_object()
255 : <a class="el" href="json__object_8h.html#a68c383f54544fca19b5f2425be397600">json_object.h</a>
256 </li>
257 <li>json_object_new_string()
258 : <a class="el" href="json__object_8h.html#a7b7b5302b3903c9347eeb1f4a64d657b">json_object.h</a>
259 </li>
260 <li>json_object_new_string_len()
261 : <a class="el" href="json__object_8h.html#a778a1aa34a508d08daac3bdb83e24b52">json_object.h</a>
262 </li>
263 <li>json_object_new_uint64()
264 : <a class="el" href="json__object_8h.html#aa602ee5f6182b35f3f75a927320b4efd">json_object.h</a>
265 </li>
266 <li>json_object_object_add()
267 : <a class="el" href="json__object_8h.html#a27bd808a022251059a43f1f6370441cd">json_object.h</a>
268 </li>
269 <li>json_object_object_add_ex()
270 : <a class="el" href="json__object_8h.html#a57d3e444dd7db6b4510d21bf3716a002">json_object.h</a>
271 </li>
272 <li>json_object_object_del()
273 : <a class="el" href="json__object_8h.html#ac6605fdafca20bd5d33c84f4f80a3bda">json_object.h</a>
274 </li>
275 <li>json_object_object_get()
276 : <a class="el" href="json__object_8h.html#a1a097805abb53b4c8a60d573730a8939">json_object.h</a>
277 </li>
278 <li>json_object_object_get_ex()
279 : <a class="el" href="json__object_8h.html#a90d5f16d58636f01d2ed1a6030c7366a">json_object.h</a>
280 </li>
281 <li>json_object_object_length()
282 : <a class="el" href="json__object_8h.html#ad59a0ad2ec914a5eef90af53acae06d9">json_object.h</a>
283 </li>
284 <li>json_object_put()
285 : <a class="el" href="json__object_8h.html#afabf61f932cd64a4122ca8092452eed5">json_object.h</a>
286 </li>
287 <li>json_object_set_boolean()
288 : <a class="el" href="json__object_8h.html#a23863c1503f3a8dd8a460a6405da0a65">json_object.h</a>
289 </li>
290 <li>json_object_set_double()
291 : <a class="el" href="json__object_8h.html#a3a7b7ce585565558cb69dad8d45d7757">json_object.h</a>
292 </li>
293 <li>json_object_set_int()
294 : <a class="el" href="json__object_8h.html#a4ab3568f12e01fd2967e765a72456caa">json_object.h</a>
295 </li>
296 <li>json_object_set_int64()
297 : <a class="el" href="json__object_8h.html#a7d3948600dde732abed0e261264ef53a">json_object.h</a>
298 </li>
299 <li>json_object_set_serializer()
300 : <a class="el" href="json__object_8h.html#a889345512a214b8f78f6a73561523c7c">json_object.h</a>
301 </li>
302 <li>json_object_set_string()
303 : <a class="el" href="json__object_8h.html#ac35013e51cdc0651512801c947df431c">json_object.h</a>
304 </li>
305 <li>json_object_set_string_len()
306 : <a class="el" href="json__object_8h.html#ae48707a0c8689e14aaa3a9b831db27fc">json_object.h</a>
307 </li>
308 <li>json_object_set_uint64()
309 : <a class="el" href="json__object_8h.html#a9900aa9a425e6f14e295b298460b65d4">json_object.h</a>
310 </li>
311 <li>json_object_set_userdata()
312 : <a class="el" href="json__object_8h.html#a4ee4281ccd123c62878e931a0a3bc43b">json_object.h</a>
313 </li>
314 <li>json_object_to_fd()
315 : <a class="el" href="json__util_8h.html#afd492c120e359d2d75b67da96b580661">json_util.h</a>
316 </li>
317 <li>json_object_to_file()
318 : <a class="el" href="json__util_8h.html#a486fc95fafe7cb91c58c7f6487036bc5">json_util.h</a>
319 </li>
320 <li>json_object_to_file_ext()
321 : <a class="el" href="json__util_8h.html#a68a7385c555cf21797e361d1d4de3441">json_util.h</a>
322 </li>
323 <li>json_object_to_json_string()
324 : <a class="el" href="json__object_8h.html#ab7390c22baa1700d977c2af6b22d43a4">json_object.h</a>
325 </li>
326 <li>json_object_to_json_string_ext()
327 : <a class="el" href="json__object_8h.html#a9db613127bd4ef7db42307e43a85fc1b">json_object.h</a>
328 </li>
329 <li>json_object_to_json_string_length()
330 : <a class="el" href="json__object_8h.html#add3770a3ba3d01a8f9adedfcd6bd8dbb">json_object.h</a>
331 </li>
332 <li>json_parse_double()
333 : <a class="el" href="json__util_8h.html#a3f0f0b8f29a41b47d62e6c867707be50">json_util.h</a>
334 </li>
335 <li>json_parse_int64()
336 : <a class="el" href="json__util_8h.html#a9d9a63936cdae6639b9cdd87fdd13506">json_util.h</a>
337 </li>
338 <li>json_parse_uint64()
339 : <a class="el" href="json__util_8h.html#a94c2340c1344d57f7aa067f2dd0407f9">json_util.h</a>
340 </li>
341 <li>json_pointer_get()
342 : <a class="el" href="json__pointer_8h.html#aff88937e32b0ba6ffbd07cb4b1919053">json_pointer.h</a>
343 </li>
344 <li>json_pointer_getf()
345 : <a class="el" href="json__pointer_8h.html#af0ac03df64b215d05041e8007ed0233d">json_pointer.h</a>
346 </li>
347 <li>json_pointer_set()
348 : <a class="el" href="json__pointer_8h.html#aef0e651f63ce5ce35648503705e2586b">json_pointer.h</a>
349 </li>
350 <li>json_pointer_setf()
351 : <a class="el" href="json__pointer_8h.html#a66f1f98a2ce085c19f6750193b4c726d">json_pointer.h</a>
352 </li>
353 <li>json_tokener_error_desc()
354 : <a class="el" href="json__tokener_8h.html#af060dd6b593b3b710044bcb97dcec07f">json_tokener.h</a>
355 </li>
356 <li>json_tokener_free()
357 : <a class="el" href="json__tokener_8h.html#a887c4661906fc6b36cc366304e522534">json_tokener.h</a>
358 </li>
359 <li>json_tokener_get_error()
360 : <a class="el" href="json__tokener_8h.html#af5d7ffd95a0f6e5d5bb5994d233b4197">json_tokener.h</a>
361 </li>
362 <li>json_tokener_get_parse_end()
363 : <a class="el" href="json__tokener_8h.html#a4a2fa28d815f8b370cbb00b80ebc0f1d">json_tokener.h</a>
364 </li>
365 <li>json_tokener_new()
366 : <a class="el" href="json__tokener_8h.html#a5ac7e2c350bc592cf2fa7b9935b00ef5">json_tokener.h</a>
367 </li>
368 <li>json_tokener_new_ex()
369 : <a class="el" href="json__tokener_8h.html#a6a1583ddd434e13515d6232de813462e">json_tokener.h</a>
370 </li>
371 <li>json_tokener_parse()
372 : <a class="el" href="json__tokener_8h.html#a236ef64d079822a4411d13eae7190c4d">json_tokener.h</a>
373 </li>
374 <li>json_tokener_parse_ex()
375 : <a class="el" href="json__tokener_8h.html#a61679f178111963a9ffa3c8179553f7a">json_tokener.h</a>
376 </li>
377 <li>json_tokener_parse_verbose()
378 : <a class="el" href="json__tokener_8h.html#a735f2dc755d57ed5c5b807aaaaef3b14">json_tokener.h</a>
379 </li>
380 <li>json_tokener_reset()
381 : <a class="el" href="json__tokener_8h.html#a238649a59737be5152d525aeaf4153ab">json_tokener.h</a>
382 </li>
383 <li>json_tokener_set_flags()
384 : <a class="el" href="json__tokener_8h.html#a7e7a0c0c9dc79e5e47b2608bb8aad7b7">json_tokener.h</a>
385 </li>
386 <li>json_type_to_name()
387 : <a class="el" href="json__util_8h.html#a762aaf3df0a9c7b6919cdc1035348012">json_util.h</a>
388 </li>
389 <li>json_util_get_last_err()
390 : <a class="el" href="json__util_8h.html#a9fe4dbb5fe32850cdc22a97454e4500b">json_util.h</a>
391 </li>
392 </ul>
393
394
395 <h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
396 <li>lh_kchar_table_new()
397 : <a class="el" href="linkhash_8h.html#a6bf630754affe92612639542a6c49c3f">linkhash.h</a>
398 </li>
399 <li>lh_kptr_table_new()
400 : <a class="el" href="linkhash_8h.html#af8108563b961dbf5471fe2c0e51f40a5">linkhash.h</a>
401 </li>
402 <li>lh_table_delete()
403 : <a class="el" href="linkhash_8h.html#a2fed2c78f70d229edb2d00775ffe593c">linkhash.h</a>
404 </li>
405 <li>lh_table_delete_entry()
406 : <a class="el" href="linkhash_8h.html#ae5885a71c3457190fb1dc2d6e20dde3b">linkhash.h</a>
407 </li>
408 <li>lh_table_free()
409 : <a class="el" href="linkhash_8h.html#a81653acf740cf8c9fe672e6cd16df0cf">linkhash.h</a>
410 </li>
411 <li>lh_table_insert()
412 : <a class="el" href="linkhash_8h.html#a86c0cd547be1e2c2486a73bd58e1352c">linkhash.h</a>
413 </li>
414 <li>lh_table_insert_w_hash()
415 : <a class="el" href="linkhash_8h.html#a4558a9347a422e03a15b0b7a29b82dc3">linkhash.h</a>
416 </li>
417 <li>lh_table_length()
418 : <a class="el" href="linkhash_8h.html#ac9ba631c91fe80fb905f04c7cd526f2b">linkhash.h</a>
419 </li>
420 <li>lh_table_lookup_entry()
421 : <a class="el" href="linkhash_8h.html#ad3b6ca2d967a6c3021ee6c39e014a918">linkhash.h</a>
422 </li>
423 <li>lh_table_lookup_entry_w_hash()
424 : <a class="el" href="linkhash_8h.html#a59ecaf34ef59280952f4459b2de63677">linkhash.h</a>
425 </li>
426 <li>lh_table_lookup_ex()
427 : <a class="el" href="linkhash_8h.html#a81c270bb0dd9d5c8a3e7ae20bc4d67f3">linkhash.h</a>
428 </li>
429 <li>lh_table_new()
430 : <a class="el" href="linkhash_8h.html#a9c4f8a71dbe4d3390d9f7adb331beb0e">linkhash.h</a>
431 </li>
432 <li>lh_table_resize()
433 : <a class="el" href="linkhash_8h.html#a30c8414e31aeee7669acc938116d933f">linkhash.h</a>
434 </li>
435 </ul>
436
437
438 <h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
439 <li>mc_debug()
440 : <a class="el" href="debug_8h.html#ae85a547b1f743597f5e2954e37c34e65">debug.h</a>
441 </li>
442 <li>mc_error()
443 : <a class="el" href="debug_8h.html#ad351453d774306c8d0da414194bb88f4">debug.h</a>
444 </li>
445 <li>mc_get_debug()
446 : <a class="el" href="debug_8h.html#a0c522f19a5015c076de53379182c7ad6">debug.h</a>
447 </li>
448 <li>mc_info()
449 : <a class="el" href="debug_8h.html#a1027afd06f45d53b19c9eb440eb09274">debug.h</a>
450 </li>
451 <li>mc_set_debug()
452 : <a class="el" href="debug_8h.html#a95843c7dcfea8f2a6e6950c291ba0e3e">debug.h</a>
453 </li>
454 <li>mc_set_syslog()
455 : <a class="el" href="debug_8h.html#a6ba846fed9ec9ad42a306921a44af216">debug.h</a>
456 </li>
457 </ul>
458
459
460 <h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
461 <li>printbuf_free()
462 : <a class="el" href="printbuf_8h.html#a2b744266191ef5e3102fbf910e790a98">printbuf.h</a>
463 </li>
464 <li>printbuf_memappend()
465 : <a class="el" href="printbuf_8h.html#a9c193d30e9ca4936ea28a6c9e8e4f6f0">printbuf.h</a>
466 </li>
467 <li>printbuf_memset()
468 : <a class="el" href="printbuf_8h.html#a93a27f4f8a092c58666724de23ae804d">printbuf.h</a>
469 </li>
470 <li>printbuf_new()
471 : <a class="el" href="printbuf_8h.html#a645670fa132f0ae9a75f43c0b464bdaf">printbuf.h</a>
472 </li>
473 <li>printbuf_reset()
474 : <a class="el" href="printbuf_8h.html#a705c62167df13e65e04de9ae60f6e136">printbuf.h</a>
475 </li>
476 </ul>
477
478
479 <h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
480 <li>sprintbuf()
481 : <a class="el" href="printbuf_8h.html#a61f6bc0b1ca5787f0faca6799d61a0bb">printbuf.h</a>
482 </li>
483 </ul>
484 </div><!-- contents -->
485 <!-- start footer part -->
486 <hr class="footer"/><address class="footer"><small>
487 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
488 <img class="footer" src="doxygen.png" alt="doxygen"/>
489 </a> 1.8.2
490 </small></address>
491 </body>
492 </html>
+0
-120
doc/html/globals_type.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Globals</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li class="current"><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 <div id="navrow3" class="tabs2">
43 <ul class="tablist">
44 <li><a href="globals.html"><span>All</span></a></li>
45 <li><a href="globals_func.html"><span>Functions</span></a></li>
46 <li><a href="globals_vars.html"><span>Variables</span></a></li>
47 <li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
48 <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
49 <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
50 <li><a href="globals_defs.html"><span>Macros</span></a></li>
51 </ul>
52 </div>
53 </div><!-- top -->
54 <div class="contents">
55 &#160;<ul>
56 <li>array_list
57 : <a class="el" href="arraylist_8h.html#a6d6d32d8b026ea2025df519b9e90f44a">arraylist.h</a>
58 </li>
59 <li>array_list_free_fn
60 : <a class="el" href="arraylist_8h.html#aad83e4ed3c8ea274e6f18459276d774b">arraylist.h</a>
61 </li>
62 <li>json_bool
63 : <a class="el" href="json__types_8h.html#a81f02022906fafc71eb9197049f07f73">json_types.h</a>
64 </li>
65 <li>json_c_shallow_copy_fn
66 : <a class="el" href="json__object_8h.html#af4562514916f62ea56adf752ada10b52">json_object.h</a>
67 </li>
68 <li>json_c_visit_userfunc
69 : <a class="el" href="json__visit_8h.html#a0fadec4abb2befcacfaff7df822f3f8d">json_visit.h</a>
70 </li>
71 <li>json_object
72 : <a class="el" href="json__types_8h.html#af27907ced0f5a43409ad96430fe0f914">json_types.h</a>
73 </li>
74 <li>json_object_delete_fn
75 : <a class="el" href="json__types_8h.html#aa647d7c567a06abe1a1a511f6d6860e4">json_types.h</a>
76 </li>
77 <li>json_object_int_type
78 : <a class="el" href="json__object__private_8h.html#aee51efb4329e981ca92b991a26d26e5d">json_object_private.h</a>
79 </li>
80 <li>json_object_iter
81 : <a class="el" href="json__types_8h.html#af88126730e765f2068968f4b16fd074f">json_types.h</a>
82 </li>
83 <li>json_object_private_delete_fn
84 : <a class="el" href="json__object__private_8h.html#aa125a0d39945a73a7d52b9823a2ef741">json_object_private.h</a>
85 </li>
86 <li>json_object_to_json_string_fn
87 : <a class="el" href="json__types_8h.html#af84078100a9025df418f31626ea866fa">json_types.h</a>
88 </li>
89 <li>json_tokener
90 : <a class="el" href="json__tokener_8h.html#a4dd5e5b65aee7f376f529f86b210ff49">json_tokener.h</a>
91 </li>
92 <li>json_type
93 : <a class="el" href="json__types_8h.html#aba5eff84f8638d22f50403175f270c96">json_types.h</a>
94 </li>
95 <li>lh_entry_free_fn
96 : <a class="el" href="linkhash_8h.html#a671553d0ee3c2a123190ba0f8ed2b635">linkhash.h</a>
97 </li>
98 <li>lh_equal_fn
99 : <a class="el" href="linkhash_8h.html#a91fd85fc81b0c7c83c62f00e84729091">linkhash.h</a>
100 </li>
101 <li>lh_hash_fn
102 : <a class="el" href="linkhash_8h.html#a38bae27995dcfb6ee3fb109a9be229b2">linkhash.h</a>
103 </li>
104 <li>lh_table
105 : <a class="el" href="linkhash_8h.html#a766e90057496fc6712d6be0da180a21f">linkhash.h</a>
106 </li>
107 <li>printbuf
108 : <a class="el" href="printbuf_8h.html#ace274df280df67463ff417b1b3392395">printbuf.h</a>
109 </li>
110 </ul>
111 </div><!-- contents -->
112 <!-- start footer part -->
113 <hr class="footer"/><address class="footer"><small>
114 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
115 <img class="footer" src="doxygen.png" alt="doxygen"/>
116 </a> 1.8.2
117 </small></address>
118 </body>
119 </html>
+0
-84
doc/html/globals_vars.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Globals</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li class="current"><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 <div id="navrow3" class="tabs2">
43 <ul class="tablist">
44 <li><a href="globals.html"><span>All</span></a></li>
45 <li><a href="globals_func.html"><span>Functions</span></a></li>
46 <li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
47 <li><a href="globals_type.html"><span>Typedefs</span></a></li>
48 <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
49 <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
50 <li><a href="globals_defs.html"><span>Macros</span></a></li>
51 </ul>
52 </div>
53 </div><!-- top -->
54 <div class="contents">
55 &#160;<ul>
56 <li>_json_c_strerror_enable
57 : <a class="el" href="strerror__override__private_8h.html#af98a3cb4b7adc1b28d93906406f4f2f6">strerror_override_private.h</a>
58 </li>
59 <li>json_c_shallow_copy_default
60 : <a class="el" href="json__object_8h.html#a86ea08e75ddf054742bf806a3bc3f983">json_object.h</a>
61 </li>
62 <li>json_hex_chars
63 : <a class="el" href="json__object__private_8h.html#a20dbe4913551cefa6b4b0a77fd4397c4">json_object_private.h</a>
64 </li>
65 <li>json_number_chars
66 : <a class="el" href="json__object__private_8h.html#a27427f89f2fc995639e366635fbe58ac">json_object_private.h</a>
67 </li>
68 <li>json_object_free_userdata
69 : <a class="el" href="json__object_8h.html#aff3190c34884bea3b4e65e286b973d89">json_object.h</a>
70 </li>
71 <li>json_object_userdata_to_json_string
72 : <a class="el" href="json__object_8h.html#a56091ddbd2ec6d6200558cbeff1b86b8">json_object.h</a>
73 </li>
74 </ul>
75 </div><!-- contents -->
76 <!-- start footer part -->
77 <hr class="footer"/><address class="footer"><small>
78 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
79 <img class="footer" src="doxygen.png" alt="doxygen"/>
80 </a> 1.8.2
81 </small></address>
82 </body>
83 </html>
+0
-51
doc/html/index.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Main Page</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 </div><!-- top -->
37 <div class="header">
38 <div class="headertitle">
39 <div class="title">json-c Documentation</div> </div>
40 </div><!--header-->
41 <div class="contents">
42 </div><!-- contents -->
43 <!-- start footer part -->
44 <hr class="footer"/><address class="footer"><small>
45 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
46 <img class="footer" src="doxygen.png" alt="doxygen"/>
47 </a> 1.8.2
48 </small></address>
49 </body>
50 </html>
+0
-57
doc/html/issues__closed__for__0_813_8md.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: issues_closed_for_0.13.md File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="headertitle">
45 <div class="title">issues_closed_for_0.13.md File Reference</div> </div>
46 </div><!--header-->
47 <div class="contents">
48 </div><!-- contents -->
49 <!-- start footer part -->
50 <hr class="footer"/><address class="footer"><small>
51 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
52 <img class="footer" src="doxygen.png" alt="doxygen"/>
53 </a> 1.8.2
54 </small></address>
55 </body>
56 </html>
+0
-57
doc/html/issues__closed__for__0_814_8md.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: issues_closed_for_0.14.md File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="headertitle">
45 <div class="title">issues_closed_for_0.14.md File Reference</div> </div>
46 </div><!--header-->
47 <div class="contents">
48 </div><!-- contents -->
49 <!-- start footer part -->
50 <hr class="footer"/><address class="footer"><small>
51 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
52 <img class="footer" src="doxygen.png" alt="doxygen"/>
53 </a> 1.8.2
54 </small></address>
55 </body>
56 </html>
+0
-62
doc/html/json_8h.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: json.h File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="headertitle">
45 <div class="title">json.h File Reference</div> </div>
46 </div><!--header-->
47 <div class="contents">
48
49 <p>A convenience header that may be included instead of other individual ones.
50 <a href="#details">More...</a></p>
51 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
52 <div class="textblock"><p>A convenience header that may be included instead of other individual ones. </p>
53 </div></div><!-- contents -->
54 <!-- start footer part -->
55 <hr class="footer"/><address class="footer"><small>
56 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
57 <img class="footer" src="doxygen.png" alt="doxygen"/>
58 </a> 1.8.2
59 </small></address>
60 </body>
61 </html>
+0
-199
doc/html/json__c__version_8h.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: json_c_version.h File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#define-members">Macros</a> &#124;
46 <a href="#func-members">Functions</a> </div>
47 <div class="headertitle">
48 <div class="title">json_c_version.h File Reference</div> </div>
49 </div><!--header-->
50 <div class="contents">
51
52 <p>Methods for retrieving the json-c version.
53 <a href="#details">More...</a></p>
54 <table class="memberdecls">
55 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
56 Macros</h2></td></tr>
57 <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>
58 <tr class="separator:a251c3e1f59a379a4a905382b4e855125"><td class="memSeparator" colspan="2">&#160;</td></tr>
59 <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;14</td></tr>
60 <tr class="separator:adc87477fbc1c75848fe6b6feec21c2d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
61 <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;0</td></tr>
62 <tr class="separator:a64457730097067ab096906d82e4a51a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
63 <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>&#160;&#160;&#160;((<a class="el" href="json__c__version_8h.html#a251c3e1f59a379a4a905382b4e855125">JSON_C_MAJOR_VERSION</a> &lt;&lt; 16) | (<a class="el" href="json__c__version_8h.html#adc87477fbc1c75848fe6b6feec21c2d6">JSON_C_MINOR_VERSION</a> &lt;&lt; 8) | <a class="el" href="json__c__version_8h.html#a64457730097067ab096906d82e4a51a6">JSON_C_MICRO_VERSION</a>)</td></tr>
64 <tr class="separator:a78e176eee75ee6aed43c4d65ca4c5b44"><td class="memSeparator" colspan="2">&#160;</td></tr>
65 <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.14&quot;</td></tr>
66 <tr class="separator:a894adda66a072bc3fd34ebe91a5aa7f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
67 <tr class="memitem:a2a31d5c00f3a4712f2d5d62aee66344e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__c__version_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a>&#160;&#160;&#160;extern</td></tr>
68 <tr class="separator:a2a31d5c00f3a4712f2d5d62aee66344e"><td class="memSeparator" colspan="2">&#160;</td></tr>
69 </table><table class="memberdecls">
70 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
71 Functions</h2></td></tr>
72 <tr class="memitem:a1c42f6f71943775e2696c47951989711"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__c__version_8h.html#a1c42f6f71943775e2696c47951989711">json_c_version</a> (void)</td></tr>
73 <tr class="separator:a1c42f6f71943775e2696c47951989711"><td class="memSeparator" colspan="2">&#160;</td></tr>
74 <tr class="memitem:a860ee32b09f4faf38d73771a6ed193ed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__c__version_8h.html#a860ee32b09f4faf38d73771a6ed193ed">json_c_version_num</a> (void)</td></tr>
75 <tr class="separator:a860ee32b09f4faf38d73771a6ed193ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
76 </table>
77 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
78 <div class="textblock"><p>Methods for retrieving the json-c version. </p>
79 </div><h2 class="groupheader">Macro Definition Documentation</h2>
80 <a class="anchor" id="a251c3e1f59a379a4a905382b4e855125"></a>
81 <div class="memitem">
82 <div class="memproto">
83 <table class="memname">
84 <tr>
85 <td class="memname">#define JSON_C_MAJOR_VERSION&#160;&#160;&#160;0</td>
86 </tr>
87 </table>
88 </div><div class="memdoc">
89
90 </div>
91 </div>
92 <a class="anchor" id="a64457730097067ab096906d82e4a51a6"></a>
93 <div class="memitem">
94 <div class="memproto">
95 <table class="memname">
96 <tr>
97 <td class="memname">#define JSON_C_MICRO_VERSION&#160;&#160;&#160;0</td>
98 </tr>
99 </table>
100 </div><div class="memdoc">
101
102 </div>
103 </div>
104 <a class="anchor" id="adc87477fbc1c75848fe6b6feec21c2d6"></a>
105 <div class="memitem">
106 <div class="memproto">
107 <table class="memname">
108 <tr>
109 <td class="memname">#define JSON_C_MINOR_VERSION&#160;&#160;&#160;14</td>
110 </tr>
111 </table>
112 </div><div class="memdoc">
113
114 </div>
115 </div>
116 <a class="anchor" id="a894adda66a072bc3fd34ebe91a5aa7f4"></a>
117 <div class="memitem">
118 <div class="memproto">
119 <table class="memname">
120 <tr>
121 <td class="memname">#define JSON_C_VERSION&#160;&#160;&#160;&quot;0.14&quot;</td>
122 </tr>
123 </table>
124 </div><div class="memdoc">
125
126 </div>
127 </div>
128 <a class="anchor" id="a78e176eee75ee6aed43c4d65ca4c5b44"></a>
129 <div class="memitem">
130 <div class="memproto">
131 <table class="memname">
132 <tr>
133 <td class="memname">#define JSON_C_VERSION_NUM&#160;&#160;&#160;((<a class="el" href="json__c__version_8h.html#a251c3e1f59a379a4a905382b4e855125">JSON_C_MAJOR_VERSION</a> &lt;&lt; 16) | (<a class="el" href="json__c__version_8h.html#adc87477fbc1c75848fe6b6feec21c2d6">JSON_C_MINOR_VERSION</a> &lt;&lt; 8) | <a class="el" href="json__c__version_8h.html#a64457730097067ab096906d82e4a51a6">JSON_C_MICRO_VERSION</a>)</td>
134 </tr>
135 </table>
136 </div><div class="memdoc">
137
138 </div>
139 </div>
140 <a class="anchor" id="a2a31d5c00f3a4712f2d5d62aee66344e"></a>
141 <div class="memitem">
142 <div class="memproto">
143 <table class="memname">
144 <tr>
145 <td class="memname">#define JSON_EXPORT&#160;&#160;&#160;extern</td>
146 </tr>
147 </table>
148 </div><div class="memdoc">
149
150 </div>
151 </div>
152 <h2 class="groupheader">Function Documentation</h2>
153 <a class="anchor" id="a1c42f6f71943775e2696c47951989711"></a>
154 <div class="memitem">
155 <div class="memproto">
156 <table class="memname">
157 <tr>
158 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> const char* json_c_version </td>
159 <td>(</td>
160 <td class="paramtype">void&#160;</td>
161 <td class="paramname"></td><td>)</td>
162 <td></td>
163 </tr>
164 </table>
165 </div><div class="memdoc">
166 <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>
167 <dl class="section return"><dt>Returns</dt><dd>the version of the json-c library as a string </dd></dl>
168
169 </div>
170 </div>
171 <a class="anchor" id="a860ee32b09f4faf38d73771a6ed193ed"></a>
172 <div class="memitem">
173 <div class="memproto">
174 <table class="memname">
175 <tr>
176 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_c_version_num </td>
177 <td>(</td>
178 <td class="paramtype">void&#160;</td>
179 <td class="paramname"></td><td>)</td>
180 <td></td>
181 </tr>
182 </table>
183 </div><div class="memdoc">
184 <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>
185 <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>
186 <dl class="section return"><dt>Returns</dt><dd>the version of the json-c library as an int </dd></dl>
187
188 </div>
189 </div>
190 </div><!-- contents -->
191 <!-- start footer part -->
192 <hr class="footer"/><address class="footer"><small>
193 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
194 <img class="footer" src="doxygen.png" alt="doxygen"/>
195 </a> 1.8.2
196 </small></address>
197 </body>
198 </html>
+0
-111
doc/html/json__inttypes_8h.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: json_inttypes.h File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#define-members">Macros</a> </div>
46 <div class="headertitle">
47 <div class="title">json_inttypes.h File Reference</div> </div>
48 </div><!--header-->
49 <div class="contents">
50
51 <p>Do not use, json-c internal, may be changed or removed at any time.
52 <a href="#details">More...</a></p>
53 <table class="memberdecls">
54 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
55 Macros</h2></td></tr>
56 <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>
57 <tr class="separator:ae372e90b62c1e8b51dc5d95bf7f5ba48"><td class="memSeparator" colspan="2">&#160;</td></tr>
58 <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>
59 <tr class="separator:ae7044b3fb4cc5cde22155d59437c348f"><td class="memSeparator" colspan="2">&#160;</td></tr>
60 <tr class="memitem:ac582131d7a7c8ee57e73180d1714f9d5"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__inttypes_8h.html#ac582131d7a7c8ee57e73180d1714f9d5">PRIu64</a>&#160;&#160;&#160;&quot;I64u&quot;</td></tr>
61 <tr class="separator:ac582131d7a7c8ee57e73180d1714f9d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
62 </table>
63 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
64 <div class="textblock"><p>Do not use, json-c internal, may be changed or removed at any time. </p>
65 </div><h2 class="groupheader">Macro Definition Documentation</h2>
66 <a class="anchor" id="ae372e90b62c1e8b51dc5d95bf7f5ba48"></a>
67 <div class="memitem">
68 <div class="memproto">
69 <table class="memname">
70 <tr>
71 <td class="memname">#define PRId64&#160;&#160;&#160;&quot;I64d&quot;</td>
72 </tr>
73 </table>
74 </div><div class="memdoc">
75
76 </div>
77 </div>
78 <a class="anchor" id="ac582131d7a7c8ee57e73180d1714f9d5"></a>
79 <div class="memitem">
80 <div class="memproto">
81 <table class="memname">
82 <tr>
83 <td class="memname">#define PRIu64&#160;&#160;&#160;&quot;I64u&quot;</td>
84 </tr>
85 </table>
86 </div><div class="memdoc">
87
88 </div>
89 </div>
90 <a class="anchor" id="ae7044b3fb4cc5cde22155d59437c348f"></a>
91 <div class="memitem">
92 <div class="memproto">
93 <table class="memname">
94 <tr>
95 <td class="memname">#define SCNd64&#160;&#160;&#160;&quot;I64d&quot;</td>
96 </tr>
97 </table>
98 </div><div class="memdoc">
99
100 </div>
101 </div>
102 </div><!-- contents -->
103 <!-- start footer part -->
104 <hr class="footer"/><address class="footer"><small>
105 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
106 <img class="footer" src="doxygen.png" alt="doxygen"/>
107 </a> 1.8.2
108 </small></address>
109 </body>
110 </html>
+0
-2520
doc/html/json__object_8h.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: json_object.h File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#define-members">Macros</a> &#124;
46 <a href="#typedef-members">Typedefs</a> &#124;
47 <a href="#func-members">Functions</a> &#124;
48 <a href="#var-members">Variables</a> </div>
49 <div class="headertitle">
50 <div class="title">json_object.h File Reference</div> </div>
51 </div><!--header-->
52 <div class="contents">
53
54 <p>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>.
55 <a href="#details">More...</a></p>
56 <table class="memberdecls">
57 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
58 Macros</h2></td></tr>
59 <tr class="memitem:a84fa70b86686ce202058f63905c90078"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a84fa70b86686ce202058f63905c90078">THIS_FUNCTION_IS_DEPRECATED</a>(func)&#160;&#160;&#160;func</td></tr>
60 <tr class="separator:a84fa70b86686ce202058f63905c90078"><td class="memSeparator" colspan="2">&#160;</td></tr>
61 <tr class="memitem:a878f59e029f19db79ff9eb41fdcf4c6d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a878f59e029f19db79ff9eb41fdcf4c6d">JSON_C_CONST_FUNCTION</a>(func)&#160;&#160;&#160;func</td></tr>
62 <tr class="separator:a878f59e029f19db79ff9eb41fdcf4c6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
63 <tr class="memitem:a268a63dd1b2e6d81559e268a4529e9bf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a268a63dd1b2e6d81559e268a4529e9bf">JSON_OBJECT_DEF_HASH_ENTRIES</a>&#160;&#160;&#160;16</td></tr>
64 <tr class="separator:a268a63dd1b2e6d81559e268a4529e9bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
65 <tr class="memitem:a3294cb92765cdeb497cfd346644d1059"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a3294cb92765cdeb497cfd346644d1059">JSON_C_TO_STRING_PLAIN</a>&#160;&#160;&#160;0</td></tr>
66 <tr class="separator:a3294cb92765cdeb497cfd346644d1059"><td class="memSeparator" colspan="2">&#160;</td></tr>
67 <tr class="memitem:aa821746c8668e6ad62bed90ec9e00103"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#aa821746c8668e6ad62bed90ec9e00103">JSON_C_TO_STRING_SPACED</a>&#160;&#160;&#160;(1 &lt;&lt; 0)</td></tr>
68 <tr class="separator:aa821746c8668e6ad62bed90ec9e00103"><td class="memSeparator" colspan="2">&#160;</td></tr>
69 <tr class="memitem:a2025bc677c35f130e117dfda5bf1ef73"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a2025bc677c35f130e117dfda5bf1ef73">JSON_C_TO_STRING_PRETTY</a>&#160;&#160;&#160;(1 &lt;&lt; 1)</td></tr>
70 <tr class="separator:a2025bc677c35f130e117dfda5bf1ef73"><td class="memSeparator" colspan="2">&#160;</td></tr>
71 <tr class="memitem:afc1486af21f6b1653c6f523025bdfd3b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#afc1486af21f6b1653c6f523025bdfd3b">JSON_C_TO_STRING_PRETTY_TAB</a>&#160;&#160;&#160;(1 &lt;&lt; 3)</td></tr>
72 <tr class="separator:afc1486af21f6b1653c6f523025bdfd3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
73 <tr class="memitem:a34f027c147babf69fc530d088f2b49b0"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a34f027c147babf69fc530d088f2b49b0">JSON_C_TO_STRING_NOZERO</a>&#160;&#160;&#160;(1 &lt;&lt; 2)</td></tr>
74 <tr class="separator:a34f027c147babf69fc530d088f2b49b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
75 <tr class="memitem:a5c11d72c55f3ab7c088f19e7bf118163"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a5c11d72c55f3ab7c088f19e7bf118163">JSON_C_TO_STRING_NOSLASHESCAPE</a>&#160;&#160;&#160;(1 &lt;&lt; 4)</td></tr>
76 <tr class="separator:a5c11d72c55f3ab7c088f19e7bf118163"><td class="memSeparator" colspan="2">&#160;</td></tr>
77 <tr class="memitem:a8cd01c484155ac99043a35b7c85ae411"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a8cd01c484155ac99043a35b7c85ae411">JSON_C_OBJECT_ADD_KEY_IS_NEW</a>&#160;&#160;&#160;(1 &lt;&lt; 1)</td></tr>
78 <tr class="separator:a8cd01c484155ac99043a35b7c85ae411"><td class="memSeparator" colspan="2">&#160;</td></tr>
79 <tr class="memitem:a134ffafc6116799a20134dc7646b5a37"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a134ffafc6116799a20134dc7646b5a37">JSON_C_OBJECT_KEY_IS_CONSTANT</a>&#160;&#160;&#160;(1 &lt;&lt; 2)</td></tr>
80 <tr class="separator:a134ffafc6116799a20134dc7646b5a37"><td class="memSeparator" colspan="2">&#160;</td></tr>
81 <tr class="memitem:a45837b8c6564f9e605f8a2bc76243750"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a45837b8c6564f9e605f8a2bc76243750">JSON_C_OPTION_GLOBAL</a>&#160;&#160;&#160;(0)</td></tr>
82 <tr class="separator:a45837b8c6564f9e605f8a2bc76243750"><td class="memSeparator" colspan="2">&#160;</td></tr>
83 <tr class="memitem:a50d1490598fe476d7a53e204e02cdc9d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a50d1490598fe476d7a53e204e02cdc9d">JSON_C_OPTION_THREAD</a>&#160;&#160;&#160;(1)</td></tr>
84 <tr class="separator:a50d1490598fe476d7a53e204e02cdc9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
85 <tr class="memitem:acf5f514a9e0061c10fc08055762639ee"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#acf5f514a9e0061c10fc08055762639ee">json_object_object_foreach</a>(obj, key, val)</td></tr>
86 <tr class="separator:acf5f514a9e0061c10fc08055762639ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
87 <tr class="memitem:a71f07006c12d78f7bbf4cb716a5af3a6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a71f07006c12d78f7bbf4cb716a5af3a6">json_object_object_foreachC</a>(obj, iter)</td></tr>
88 <tr class="separator:a71f07006c12d78f7bbf4cb716a5af3a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
89 </table><table class="memberdecls">
90 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
91 Typedefs</h2></td></tr>
92 <tr class="memitem:af4562514916f62ea56adf752ada10b52"><td class="memItemLeft" align="right" valign="top">typedef int(&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#af4562514916f62ea56adf752ada10b52">json_c_shallow_copy_fn</a> )(<a class="el" href="structjson__object.html">json_object</a> *src, <a class="el" href="structjson__object.html">json_object</a> *parent, const char *key, size_t index, <a class="el" href="structjson__object.html">json_object</a> **dst)</td></tr>
93 <tr class="separator:af4562514916f62ea56adf752ada10b52"><td class="memSeparator" colspan="2">&#160;</td></tr>
94 </table><table class="memberdecls">
95 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
96 Functions</h2></td></tr>
97 <tr class="memitem:a675aa3a9cced685dbfd1c1a770a0c3e4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a675aa3a9cced685dbfd1c1a770a0c3e4">json_object_get</a> (struct <a class="el" href="structjson__object.html">json_object</a> *obj)</td></tr>
98 <tr class="separator:a675aa3a9cced685dbfd1c1a770a0c3e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
99 <tr class="memitem:afabf61f932cd64a4122ca8092452eed5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#afabf61f932cd64a4122ca8092452eed5">json_object_put</a> (struct <a class="el" href="structjson__object.html">json_object</a> *obj)</td></tr>
100 <tr class="separator:afabf61f932cd64a4122ca8092452eed5"><td class="memSeparator" colspan="2">&#160;</td></tr>
101 <tr class="memitem:a8ab506a3d8f4ba5eb6a12ce0a6bbd37b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a8ab506a3d8f4ba5eb6a12ce0a6bbd37b">json_object_is_type</a> (const struct <a class="el" href="structjson__object.html">json_object</a> *obj, enum <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06c">json_type</a> type)</td></tr>
102 <tr class="separator:a8ab506a3d8f4ba5eb6a12ce0a6bbd37b"><td class="memSeparator" colspan="2">&#160;</td></tr>
103 <tr class="memitem:af256a3a7910e271a2b9735e5044c3827"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> enum <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06c">json_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#af256a3a7910e271a2b9735e5044c3827">json_object_get_type</a> (const struct <a class="el" href="structjson__object.html">json_object</a> *obj)</td></tr>
104 <tr class="separator:af256a3a7910e271a2b9735e5044c3827"><td class="memSeparator" colspan="2">&#160;</td></tr>
105 <tr class="memitem:ab7390c22baa1700d977c2af6b22d43a4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#ab7390c22baa1700d977c2af6b22d43a4">json_object_to_json_string</a> (struct <a class="el" href="structjson__object.html">json_object</a> *obj)</td></tr>
106 <tr class="separator:ab7390c22baa1700d977c2af6b22d43a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
107 <tr class="memitem:a9db613127bd4ef7db42307e43a85fc1b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a9db613127bd4ef7db42307e43a85fc1b">json_object_to_json_string_ext</a> (struct <a class="el" href="structjson__object.html">json_object</a> *obj, int flags)</td></tr>
108 <tr class="separator:a9db613127bd4ef7db42307e43a85fc1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
109 <tr class="memitem:add3770a3ba3d01a8f9adedfcd6bd8dbb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#add3770a3ba3d01a8f9adedfcd6bd8dbb">json_object_to_json_string_length</a> (struct <a class="el" href="structjson__object.html">json_object</a> *obj, int flags, size_t *length)</td></tr>
110 <tr class="separator:add3770a3ba3d01a8f9adedfcd6bd8dbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
111 <tr class="memitem:ae925f3ec0f61cba5ea3dd50e0315f194"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#ae925f3ec0f61cba5ea3dd50e0315f194">json_object_get_userdata</a> (<a class="el" href="structjson__object.html">json_object</a> *jso)</td></tr>
112 <tr class="separator:ae925f3ec0f61cba5ea3dd50e0315f194"><td class="memSeparator" colspan="2">&#160;</td></tr>
113 <tr class="memitem:a4ee4281ccd123c62878e931a0a3bc43b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a4ee4281ccd123c62878e931a0a3bc43b">json_object_set_userdata</a> (<a class="el" href="structjson__object.html">json_object</a> *jso, void *userdata, <a class="el" href="json__types_8h.html#aa647d7c567a06abe1a1a511f6d6860e4">json_object_delete_fn</a> *user_delete)</td></tr>
114 <tr class="separator:a4ee4281ccd123c62878e931a0a3bc43b"><td class="memSeparator" colspan="2">&#160;</td></tr>
115 <tr class="memitem:a889345512a214b8f78f6a73561523c7c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a889345512a214b8f78f6a73561523c7c">json_object_set_serializer</a> (<a class="el" href="structjson__object.html">json_object</a> *jso, <a class="el" href="json__types_8h.html#af84078100a9025df418f31626ea866fa">json_object_to_json_string_fn</a> *to_string_func, void *userdata, <a class="el" href="json__types_8h.html#aa647d7c567a06abe1a1a511f6d6860e4">json_object_delete_fn</a> *user_delete)</td></tr>
116 <tr class="separator:a889345512a214b8f78f6a73561523c7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
117 <tr class="memitem:a68c383f54544fca19b5f2425be397600"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a68c383f54544fca19b5f2425be397600">json_object_new_object</a> (void)</td></tr>
118 <tr class="separator:a68c383f54544fca19b5f2425be397600"><td class="memSeparator" colspan="2">&#160;</td></tr>
119 <tr class="memitem:a2caa52ae1863bd073444f3737138a4db"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structlh__table.html">lh_table</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a2caa52ae1863bd073444f3737138a4db">json_object_get_object</a> (const struct <a class="el" href="structjson__object.html">json_object</a> *obj)</td></tr>
120 <tr class="separator:a2caa52ae1863bd073444f3737138a4db"><td class="memSeparator" colspan="2">&#160;</td></tr>
121 <tr class="memitem:ad59a0ad2ec914a5eef90af53acae06d9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#ad59a0ad2ec914a5eef90af53acae06d9">json_object_object_length</a> (const struct <a class="el" href="structjson__object.html">json_object</a> *obj)</td></tr>
122 <tr class="separator:ad59a0ad2ec914a5eef90af53acae06d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
123 <tr class="memitem:a922b2d76c73da57174beec82d471743b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a922b2d76c73da57174beec82d471743b">JSON_C_CONST_FUNCTION</a> (<a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> size_t json_c_object_sizeof(void))</td></tr>
124 <tr class="separator:a922b2d76c73da57174beec82d471743b"><td class="memSeparator" colspan="2">&#160;</td></tr>
125 <tr class="memitem:a27bd808a022251059a43f1f6370441cd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a27bd808a022251059a43f1f6370441cd">json_object_object_add</a> (struct <a class="el" href="structjson__object.html">json_object</a> *obj, const char *key, struct <a class="el" href="structjson__object.html">json_object</a> *val)</td></tr>
126 <tr class="separator:a27bd808a022251059a43f1f6370441cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
127 <tr class="memitem:a57d3e444dd7db6b4510d21bf3716a002"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a57d3e444dd7db6b4510d21bf3716a002">json_object_object_add_ex</a> (struct <a class="el" href="structjson__object.html">json_object</a> *obj, const char *const key, struct <a class="el" href="structjson__object.html">json_object</a> *const val, const unsigned opts)</td></tr>
128 <tr class="separator:a57d3e444dd7db6b4510d21bf3716a002"><td class="memSeparator" colspan="2">&#160;</td></tr>
129 <tr class="memitem:a1a097805abb53b4c8a60d573730a8939"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a1a097805abb53b4c8a60d573730a8939">json_object_object_get</a> (const struct <a class="el" href="structjson__object.html">json_object</a> *obj, const char *key)</td></tr>
130 <tr class="separator:a1a097805abb53b4c8a60d573730a8939"><td class="memSeparator" colspan="2">&#160;</td></tr>
131 <tr class="memitem:a90d5f16d58636f01d2ed1a6030c7366a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> <a class="el" href="json__types_8h.html#a81f02022906fafc71eb9197049f07f73">json_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a90d5f16d58636f01d2ed1a6030c7366a">json_object_object_get_ex</a> (const struct <a class="el" href="structjson__object.html">json_object</a> *obj, const char *key, struct <a class="el" href="structjson__object.html">json_object</a> **value)</td></tr>
132 <tr class="separator:a90d5f16d58636f01d2ed1a6030c7366a"><td class="memSeparator" colspan="2">&#160;</td></tr>
133 <tr class="memitem:ac6605fdafca20bd5d33c84f4f80a3bda"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#ac6605fdafca20bd5d33c84f4f80a3bda">json_object_object_del</a> (struct <a class="el" href="structjson__object.html">json_object</a> *obj, const char *key)</td></tr>
134 <tr class="separator:ac6605fdafca20bd5d33c84f4f80a3bda"><td class="memSeparator" colspan="2">&#160;</td></tr>
135 <tr class="memitem:a84f7f8c0774c4600d958561d7548d649"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a84f7f8c0774c4600d958561d7548d649">json_object_new_array</a> (void)</td></tr>
136 <tr class="separator:a84f7f8c0774c4600d958561d7548d649"><td class="memSeparator" colspan="2">&#160;</td></tr>
137 <tr class="memitem:a23d20e3f886c1638a7116be66b7b5ec2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structarray__list.html">array_list</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a23d20e3f886c1638a7116be66b7b5ec2">json_object_get_array</a> (const struct <a class="el" href="structjson__object.html">json_object</a> *obj)</td></tr>
138 <tr class="separator:a23d20e3f886c1638a7116be66b7b5ec2"><td class="memSeparator" colspan="2">&#160;</td></tr>
139 <tr class="memitem:ab9ea8f9c72d5adf83fdcbfe69f97fa44"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#ab9ea8f9c72d5adf83fdcbfe69f97fa44">json_object_array_length</a> (const struct <a class="el" href="structjson__object.html">json_object</a> *obj)</td></tr>
140 <tr class="separator:ab9ea8f9c72d5adf83fdcbfe69f97fa44"><td class="memSeparator" colspan="2">&#160;</td></tr>
141 <tr class="memitem:a5584e2f2051cd1faa7fafd07ba888fd1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a5584e2f2051cd1faa7fafd07ba888fd1">json_object_array_sort</a> (struct <a class="el" href="structjson__object.html">json_object</a> *jso, int(*sort_fn)(const void *, const void *))</td></tr>
142 <tr class="separator:a5584e2f2051cd1faa7fafd07ba888fd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
143 <tr class="memitem:aed353084ed3ad84e7b7575afbe7e719d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#aed353084ed3ad84e7b7575afbe7e719d">json_object_array_bsearch</a> (const struct <a class="el" href="structjson__object.html">json_object</a> *key, const struct <a class="el" href="structjson__object.html">json_object</a> *jso, int(*sort_fn)(const void *, const void *))</td></tr>
144 <tr class="separator:aed353084ed3ad84e7b7575afbe7e719d"><td class="memSeparator" colspan="2">&#160;</td></tr>
145 <tr class="memitem:a18cdd9a7455e09f36cdf6e5756b7f586"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a18cdd9a7455e09f36cdf6e5756b7f586">json_object_array_add</a> (struct <a class="el" href="structjson__object.html">json_object</a> *obj, struct <a class="el" href="structjson__object.html">json_object</a> *val)</td></tr>
146 <tr class="separator:a18cdd9a7455e09f36cdf6e5756b7f586"><td class="memSeparator" colspan="2">&#160;</td></tr>
147 <tr class="memitem:a1ac0ccdbc13a25da7d8b2dc9e421dfad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a1ac0ccdbc13a25da7d8b2dc9e421dfad">json_object_array_put_idx</a> (struct <a class="el" href="structjson__object.html">json_object</a> *obj, size_t idx, struct <a class="el" href="structjson__object.html">json_object</a> *val)</td></tr>
148 <tr class="separator:a1ac0ccdbc13a25da7d8b2dc9e421dfad"><td class="memSeparator" colspan="2">&#160;</td></tr>
149 <tr class="memitem:a676711a76545d4ec65cc75f100f5fd19"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a676711a76545d4ec65cc75f100f5fd19">json_object_array_get_idx</a> (const struct <a class="el" href="structjson__object.html">json_object</a> *obj, size_t idx)</td></tr>
150 <tr class="separator:a676711a76545d4ec65cc75f100f5fd19"><td class="memSeparator" colspan="2">&#160;</td></tr>
151 <tr class="memitem:a722eca9f578704d3af38b97549242c1f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a722eca9f578704d3af38b97549242c1f">json_object_array_del_idx</a> (struct <a class="el" href="structjson__object.html">json_object</a> *obj, size_t idx, size_t count)</td></tr>
152 <tr class="separator:a722eca9f578704d3af38b97549242c1f"><td class="memSeparator" colspan="2">&#160;</td></tr>
153 <tr class="memitem:a2e290acd80e72cca745f89fb4600fb78"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a2e290acd80e72cca745f89fb4600fb78">json_object_new_boolean</a> (<a class="el" href="json__types_8h.html#a81f02022906fafc71eb9197049f07f73">json_bool</a> b)</td></tr>
154 <tr class="separator:a2e290acd80e72cca745f89fb4600fb78"><td class="memSeparator" colspan="2">&#160;</td></tr>
155 <tr class="memitem:ac003fb99db7ecd674bb16d983d2f92ee"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> <a class="el" href="json__types_8h.html#a81f02022906fafc71eb9197049f07f73">json_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#ac003fb99db7ecd674bb16d983d2f92ee">json_object_get_boolean</a> (const struct <a class="el" href="structjson__object.html">json_object</a> *obj)</td></tr>
156 <tr class="separator:ac003fb99db7ecd674bb16d983d2f92ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
157 <tr class="memitem:a23863c1503f3a8dd8a460a6405da0a65"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a23863c1503f3a8dd8a460a6405da0a65">json_object_set_boolean</a> (struct <a class="el" href="structjson__object.html">json_object</a> *obj, <a class="el" href="json__types_8h.html#a81f02022906fafc71eb9197049f07f73">json_bool</a> new_value)</td></tr>
158 <tr class="separator:a23863c1503f3a8dd8a460a6405da0a65"><td class="memSeparator" colspan="2">&#160;</td></tr>
159 <tr class="memitem:ae92f0770fb4b3c884ce35de52d3d7de8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#ae92f0770fb4b3c884ce35de52d3d7de8">json_object_new_int</a> (int32_t i)</td></tr>
160 <tr class="separator:ae92f0770fb4b3c884ce35de52d3d7de8"><td class="memSeparator" colspan="2">&#160;</td></tr>
161 <tr class="memitem:a7847f74494645c2b076505c37cc4cb93"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a7847f74494645c2b076505c37cc4cb93">json_object_new_int64</a> (int64_t i)</td></tr>
162 <tr class="separator:a7847f74494645c2b076505c37cc4cb93"><td class="memSeparator" colspan="2">&#160;</td></tr>
163 <tr class="memitem:aa602ee5f6182b35f3f75a927320b4efd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#aa602ee5f6182b35f3f75a927320b4efd">json_object_new_uint64</a> (uint64_t i)</td></tr>
164 <tr class="separator:aa602ee5f6182b35f3f75a927320b4efd"><td class="memSeparator" colspan="2">&#160;</td></tr>
165 <tr class="memitem:a8c56dc58a02f92cd6789ba5dcb9fe7b1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a8c56dc58a02f92cd6789ba5dcb9fe7b1">json_object_get_int</a> (const struct <a class="el" href="structjson__object.html">json_object</a> *obj)</td></tr>
166 <tr class="separator:a8c56dc58a02f92cd6789ba5dcb9fe7b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
167 <tr class="memitem:a4ab3568f12e01fd2967e765a72456caa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a4ab3568f12e01fd2967e765a72456caa">json_object_set_int</a> (struct <a class="el" href="structjson__object.html">json_object</a> *obj, int new_value)</td></tr>
168 <tr class="separator:a4ab3568f12e01fd2967e765a72456caa"><td class="memSeparator" colspan="2">&#160;</td></tr>
169 <tr class="memitem:a25691322b2d1ab24a3797e5752eb659f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a25691322b2d1ab24a3797e5752eb659f">json_object_int_inc</a> (struct <a class="el" href="structjson__object.html">json_object</a> *obj, int64_t val)</td></tr>
170 <tr class="separator:a25691322b2d1ab24a3797e5752eb659f"><td class="memSeparator" colspan="2">&#160;</td></tr>
171 <tr class="memitem:a1a14750b3af4df18ec8dc93b090a8e8a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a1a14750b3af4df18ec8dc93b090a8e8a">json_object_get_int64</a> (const struct <a class="el" href="structjson__object.html">json_object</a> *obj)</td></tr>
172 <tr class="separator:a1a14750b3af4df18ec8dc93b090a8e8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
173 <tr class="memitem:a82c27579b6d25d9d0eb3b72758d8b71d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a82c27579b6d25d9d0eb3b72758d8b71d">json_object_get_uint64</a> (const struct <a class="el" href="structjson__object.html">json_object</a> *obj)</td></tr>
174 <tr class="separator:a82c27579b6d25d9d0eb3b72758d8b71d"><td class="memSeparator" colspan="2">&#160;</td></tr>
175 <tr class="memitem:a7d3948600dde732abed0e261264ef53a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a7d3948600dde732abed0e261264ef53a">json_object_set_int64</a> (struct <a class="el" href="structjson__object.html">json_object</a> *obj, int64_t new_value)</td></tr>
176 <tr class="separator:a7d3948600dde732abed0e261264ef53a"><td class="memSeparator" colspan="2">&#160;</td></tr>
177 <tr class="memitem:a9900aa9a425e6f14e295b298460b65d4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a9900aa9a425e6f14e295b298460b65d4">json_object_set_uint64</a> (struct <a class="el" href="structjson__object.html">json_object</a> *obj, uint64_t new_value)</td></tr>
178 <tr class="separator:a9900aa9a425e6f14e295b298460b65d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
179 <tr class="memitem:a594a093bafb9091f843da3197e0638aa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a594a093bafb9091f843da3197e0638aa">json_object_new_double</a> (double d)</td></tr>
180 <tr class="separator:a594a093bafb9091f843da3197e0638aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
181 <tr class="memitem:ae49671c026fe1ada370a75321e4e65f6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#ae49671c026fe1ada370a75321e4e65f6">json_object_new_double_s</a> (double d, const char *ds)</td></tr>
182 <tr class="separator:ae49671c026fe1ada370a75321e4e65f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
183 <tr class="memitem:ac099272b46fde595831118720b155656"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#ac099272b46fde595831118720b155656">json_c_set_serialization_double_format</a> (const char *double_format, int global_or_thread)</td></tr>
184 <tr class="separator:ac099272b46fde595831118720b155656"><td class="memSeparator" colspan="2">&#160;</td></tr>
185 <tr class="memitem:ada262c62364e3819b6a64b1e3a632336"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#ada262c62364e3819b6a64b1e3a632336">json_object_double_to_json_string</a> (struct <a class="el" href="structjson__object.html">json_object</a> *jso, struct <a class="el" href="structprintbuf.html">printbuf</a> *pb, int level, int flags)</td></tr>
186 <tr class="separator:ada262c62364e3819b6a64b1e3a632336"><td class="memSeparator" colspan="2">&#160;</td></tr>
187 <tr class="memitem:a94a70cff6a14398b581b7b10b0792c5b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a94a70cff6a14398b581b7b10b0792c5b">json_object_get_double</a> (const struct <a class="el" href="structjson__object.html">json_object</a> *obj)</td></tr>
188 <tr class="separator:a94a70cff6a14398b581b7b10b0792c5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
189 <tr class="memitem:a3a7b7ce585565558cb69dad8d45d7757"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a3a7b7ce585565558cb69dad8d45d7757">json_object_set_double</a> (struct <a class="el" href="structjson__object.html">json_object</a> *obj, double new_value)</td></tr>
190 <tr class="separator:a3a7b7ce585565558cb69dad8d45d7757"><td class="memSeparator" colspan="2">&#160;</td></tr>
191 <tr class="memitem:a7b7b5302b3903c9347eeb1f4a64d657b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a7b7b5302b3903c9347eeb1f4a64d657b">json_object_new_string</a> (const char *s)</td></tr>
192 <tr class="separator:a7b7b5302b3903c9347eeb1f4a64d657b"><td class="memSeparator" colspan="2">&#160;</td></tr>
193 <tr class="memitem:a778a1aa34a508d08daac3bdb83e24b52"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a778a1aa34a508d08daac3bdb83e24b52">json_object_new_string_len</a> (const char *s, const int len)</td></tr>
194 <tr class="separator:a778a1aa34a508d08daac3bdb83e24b52"><td class="memSeparator" colspan="2">&#160;</td></tr>
195 <tr class="memitem:a9ee29ca8d79896e15007131527f6002e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a9ee29ca8d79896e15007131527f6002e">json_object_get_string</a> (struct <a class="el" href="structjson__object.html">json_object</a> *obj)</td></tr>
196 <tr class="separator:a9ee29ca8d79896e15007131527f6002e"><td class="memSeparator" colspan="2">&#160;</td></tr>
197 <tr class="memitem:ac1d1f95a27a5e5d93bb66a8adfc1a2f4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#ac1d1f95a27a5e5d93bb66a8adfc1a2f4">json_object_get_string_len</a> (const struct <a class="el" href="structjson__object.html">json_object</a> *obj)</td></tr>
198 <tr class="separator:ac1d1f95a27a5e5d93bb66a8adfc1a2f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
199 <tr class="memitem:ac35013e51cdc0651512801c947df431c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#ac35013e51cdc0651512801c947df431c">json_object_set_string</a> (<a class="el" href="structjson__object.html">json_object</a> *obj, const char *new_value)</td></tr>
200 <tr class="separator:ac35013e51cdc0651512801c947df431c"><td class="memSeparator" colspan="2">&#160;</td></tr>
201 <tr class="memitem:ae48707a0c8689e14aaa3a9b831db27fc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#ae48707a0c8689e14aaa3a9b831db27fc">json_object_set_string_len</a> (<a class="el" href="structjson__object.html">json_object</a> *obj, const char *new_value, int len)</td></tr>
202 <tr class="separator:ae48707a0c8689e14aaa3a9b831db27fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
203 <tr class="memitem:a29e23b5be729c679960242b3b81bcde0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a29e23b5be729c679960242b3b81bcde0">json_object_new_null</a> (void)</td></tr>
204 <tr class="separator:a29e23b5be729c679960242b3b81bcde0"><td class="memSeparator" colspan="2">&#160;</td></tr>
205 <tr class="memitem:a5a1d4640525e0217059868e312f20579"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a5a1d4640525e0217059868e312f20579">json_object_equal</a> (struct <a class="el" href="structjson__object.html">json_object</a> *obj1, struct <a class="el" href="structjson__object.html">json_object</a> *obj2)</td></tr>
206 <tr class="separator:a5a1d4640525e0217059868e312f20579"><td class="memSeparator" colspan="2">&#160;</td></tr>
207 <tr class="memitem:aaac16505f13bc56accfad82604d8bcdc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#aaac16505f13bc56accfad82604d8bcdc">json_object_deep_copy</a> (struct <a class="el" href="structjson__object.html">json_object</a> *src, struct <a class="el" href="structjson__object.html">json_object</a> **dst, <a class="el" href="json__object_8h.html#af4562514916f62ea56adf752ada10b52">json_c_shallow_copy_fn</a> *shallow_copy)</td></tr>
208 <tr class="separator:aaac16505f13bc56accfad82604d8bcdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
209 </table><table class="memberdecls">
210 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
211 Variables</h2></td></tr>
212 <tr class="memitem:aff3190c34884bea3b4e65e286b973d89"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> <a class="el" href="json__types_8h.html#aa647d7c567a06abe1a1a511f6d6860e4">json_object_delete_fn</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#aff3190c34884bea3b4e65e286b973d89">json_object_free_userdata</a></td></tr>
213 <tr class="separator:aff3190c34884bea3b4e65e286b973d89"><td class="memSeparator" colspan="2">&#160;</td></tr>
214 <tr class="memitem:a56091ddbd2ec6d6200558cbeff1b86b8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> <br class="typebreak"/>
215 <a class="el" href="json__types_8h.html#af84078100a9025df418f31626ea866fa">json_object_to_json_string_fn</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a56091ddbd2ec6d6200558cbeff1b86b8">json_object_userdata_to_json_string</a></td></tr>
216 <tr class="separator:a56091ddbd2ec6d6200558cbeff1b86b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
217 <tr class="memitem:a86ea08e75ddf054742bf806a3bc3f983"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> <a class="el" href="json__object_8h.html#af4562514916f62ea56adf752ada10b52">json_c_shallow_copy_fn</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object_8h.html#a86ea08e75ddf054742bf806a3bc3f983">json_c_shallow_copy_default</a></td></tr>
218 <tr class="separator:a86ea08e75ddf054742bf806a3bc3f983"><td class="memSeparator" colspan="2">&#160;</td></tr>
219 </table>
220 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
221 <div class="textblock"><p>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>. </p>
222 </div><h2 class="groupheader">Macro Definition Documentation</h2>
223 <a class="anchor" id="a878f59e029f19db79ff9eb41fdcf4c6d"></a>
224 <div class="memitem">
225 <div class="memproto">
226 <table class="memname">
227 <tr>
228 <td class="memname">#define JSON_C_CONST_FUNCTION</td>
229 <td>(</td>
230 <td class="paramtype">&#160;</td>
231 <td class="paramname">func </td><td>)</td>
232 <td>&#160;&#160;&#160;func</td>
233 </tr>
234 </table>
235 </div><div class="memdoc">
236
237 </div>
238 </div>
239 <a class="anchor" id="a8cd01c484155ac99043a35b7c85ae411"></a>
240 <div class="memitem">
241 <div class="memproto">
242 <table class="memname">
243 <tr>
244 <td class="memname">#define JSON_C_OBJECT_ADD_KEY_IS_NEW&#160;&#160;&#160;(1 &lt;&lt; 1)</td>
245 </tr>
246 </table>
247 </div><div class="memdoc">
248 <p>A flag for the json_object_object_add_ex function which causes the value to be added without a check if it already exists. Note: it is the responsibility of the caller to ensure that no key is added multiple times. If this is done, results are unpredictable. While this option is somewhat dangerous, it permits potentially large performance savings in code that knows for sure the key values are unique (e.g. because the code adds a well-known set of constant key values). </p>
249
250 </div>
251 </div>
252 <a class="anchor" id="a134ffafc6116799a20134dc7646b5a37"></a>
253 <div class="memitem">
254 <div class="memproto">
255 <table class="memname">
256 <tr>
257 <td class="memname">#define JSON_C_OBJECT_KEY_IS_CONSTANT&#160;&#160;&#160;(1 &lt;&lt; 2)</td>
258 </tr>
259 </table>
260 </div><div class="memdoc">
261 <p>A flag for the json_object_object_add_ex function which flags the key as being constant memory. This means that the key will NOT be copied via strdup(), resulting in a potentially huge performance win (malloc, strdup and free are usually performance hogs). It is acceptable to use this flag for keys in non-constant memory blocks if the caller ensure that the memory holding the key lives longer than the corresponding json object. However, this is somewhat dangerous and should only be done if really justified. The general use-case for this flag is cases where the key is given as a real constant value in the function call, e.g. as in json_object_object_add_ex(obj, "ip", json, JSON_C_OBJECT_KEY_IS_CONSTANT); </p>
262
263 </div>
264 </div>
265 <a class="anchor" id="a45837b8c6564f9e605f8a2bc76243750"></a>
266 <div class="memitem">
267 <div class="memproto">
268 <table class="memname">
269 <tr>
270 <td class="memname">#define JSON_C_OPTION_GLOBAL&#160;&#160;&#160;(0)</td>
271 </tr>
272 </table>
273 </div><div class="memdoc">
274 <p>Set the global value of an option, which will apply to all current and future threads that have not set a thread-local value.</p>
275 <dl class="section see"><dt>See Also</dt><dd><a class="el" href="json__object_8h.html#ac099272b46fde595831118720b155656">json_c_set_serialization_double_format</a> </dd></dl>
276
277 </div>
278 </div>
279 <a class="anchor" id="a50d1490598fe476d7a53e204e02cdc9d"></a>
280 <div class="memitem">
281 <div class="memproto">
282 <table class="memname">
283 <tr>
284 <td class="memname">#define JSON_C_OPTION_THREAD&#160;&#160;&#160;(1)</td>
285 </tr>
286 </table>
287 </div><div class="memdoc">
288 <p>Set a thread-local value of an option, overriding the global value. This will fail if json-c is not compiled with threading enabled, and with the __thread specifier (or equivalent) available.</p>
289 <dl class="section see"><dt>See Also</dt><dd><a class="el" href="json__object_8h.html#ac099272b46fde595831118720b155656">json_c_set_serialization_double_format</a> </dd></dl>
290
291 </div>
292 </div>
293 <a class="anchor" id="a5c11d72c55f3ab7c088f19e7bf118163"></a>
294 <div class="memitem">
295 <div class="memproto">
296 <table class="memname">
297 <tr>
298 <td class="memname">#define JSON_C_TO_STRING_NOSLASHESCAPE&#160;&#160;&#160;(1 &lt;&lt; 4)</td>
299 </tr>
300 </table>
301 </div><div class="memdoc">
302 <p>Don't escape forward slashes. </p>
303
304 </div>
305 </div>
306 <a class="anchor" id="a34f027c147babf69fc530d088f2b49b0"></a>
307 <div class="memitem">
308 <div class="memproto">
309 <table class="memname">
310 <tr>
311 <td class="memname">#define JSON_C_TO_STRING_NOZERO&#160;&#160;&#160;(1 &lt;&lt; 2)</td>
312 </tr>
313 </table>
314 </div><div class="memdoc">
315 <p>A flag to drop trailing zero for float values </p>
316
317 </div>
318 </div>
319 <a class="anchor" id="a3294cb92765cdeb497cfd346644d1059"></a>
320 <div class="memitem">
321 <div class="memproto">
322 <table class="memname">
323 <tr>
324 <td class="memname">#define JSON_C_TO_STRING_PLAIN&#160;&#160;&#160;0</td>
325 </tr>
326 </table>
327 </div><div class="memdoc">
328 <p>A flag for the <a class="el" href="json__object_8h.html#a9db613127bd4ef7db42307e43a85fc1b">json_object_to_json_string_ext()</a> and <a class="el" href="json__util_8h.html#a68a7385c555cf21797e361d1d4de3441">json_object_to_file_ext()</a> functions which causes the output to have no extra whitespace or formatting applied. </p>
329
330 </div>
331 </div>
332 <a class="anchor" id="a2025bc677c35f130e117dfda5bf1ef73"></a>
333 <div class="memitem">
334 <div class="memproto">
335 <table class="memname">
336 <tr>
337 <td class="memname">#define JSON_C_TO_STRING_PRETTY&#160;&#160;&#160;(1 &lt;&lt; 1)</td>
338 </tr>
339 </table>
340 </div><div class="memdoc">
341 <p>A flag for the <a class="el" href="json__object_8h.html#a9db613127bd4ef7db42307e43a85fc1b">json_object_to_json_string_ext()</a> and <a class="el" href="json__util_8h.html#a68a7385c555cf21797e361d1d4de3441">json_object_to_file_ext()</a> functions which causes the output to be formatted.</p>
342 <p>See the "Two Space Tab" option at <a href="http://jsonformatter.curiousconcept.com/">http://jsonformatter.curiousconcept.com/</a> for an example of the format. </p>
343
344 </div>
345 </div>
346 <a class="anchor" id="afc1486af21f6b1653c6f523025bdfd3b"></a>
347 <div class="memitem">
348 <div class="memproto">
349 <table class="memname">
350 <tr>
351 <td class="memname">#define JSON_C_TO_STRING_PRETTY_TAB&#160;&#160;&#160;(1 &lt;&lt; 3)</td>
352 </tr>
353 </table>
354 </div><div class="memdoc">
355 <p>A flag for the <a class="el" href="json__object_8h.html#a9db613127bd4ef7db42307e43a85fc1b">json_object_to_json_string_ext()</a> and <a class="el" href="json__util_8h.html#a68a7385c555cf21797e361d1d4de3441">json_object_to_file_ext()</a> functions which causes the output to be formatted.</p>
356 <p>Instead of a "Two Space Tab" this gives a single tab character. </p>
357
358 </div>
359 </div>
360 <a class="anchor" id="aa821746c8668e6ad62bed90ec9e00103"></a>
361 <div class="memitem">
362 <div class="memproto">
363 <table class="memname">
364 <tr>
365 <td class="memname">#define JSON_C_TO_STRING_SPACED&#160;&#160;&#160;(1 &lt;&lt; 0)</td>
366 </tr>
367 </table>
368 </div><div class="memdoc">
369 <p>A flag for the <a class="el" href="json__object_8h.html#a9db613127bd4ef7db42307e43a85fc1b">json_object_to_json_string_ext()</a> and <a class="el" href="json__util_8h.html#a68a7385c555cf21797e361d1d4de3441">json_object_to_file_ext()</a> functions which causes the output to have minimal whitespace inserted to make things slightly more readable. </p>
370
371 </div>
372 </div>
373 <a class="anchor" id="a268a63dd1b2e6d81559e268a4529e9bf"></a>
374 <div class="memitem">
375 <div class="memproto">
376 <table class="memname">
377 <tr>
378 <td class="memname">#define JSON_OBJECT_DEF_HASH_ENTRIES&#160;&#160;&#160;16</td>
379 </tr>
380 </table>
381 </div><div class="memdoc">
382
383 </div>
384 </div>
385 <a class="anchor" id="acf5f514a9e0061c10fc08055762639ee"></a>
386 <div class="memitem">
387 <div class="memproto">
388 <table class="memname">
389 <tr>
390 <td class="memname">#define json_object_object_foreach</td>
391 <td>(</td>
392 <td class="paramtype">&#160;</td>
393 <td class="paramname">obj, </td>
394 </tr>
395 <tr>
396 <td class="paramkey"></td>
397 <td></td>
398 <td class="paramtype">&#160;</td>
399 <td class="paramname">key, </td>
400 </tr>
401 <tr>
402 <td class="paramkey"></td>
403 <td></td>
404 <td class="paramtype">&#160;</td>
405 <td class="paramname">val&#160;</td>
406 </tr>
407 <tr>
408 <td></td>
409 <td>)</td>
410 <td></td><td></td>
411 </tr>
412 </table>
413 </div><div class="memdoc">
414 <b>Value:</b><div class="fragment"><div class="line"><span class="keywordtype">char</span> *key = NULL; \</div>
415 <div class="line"> struct <a class="code" href="structjson__object.html">json_object</a> *val = NULL; \</div>
416 <div class="line"> struct <a class="code" href="structlh__entry.html">lh_entry</a> *entry##key; \</div>
417 <div class="line"> struct <a class="code" href="structlh__entry.html">lh_entry</a> *entry_next##key = NULL; \</div>
418 <div class="line"> for (entry##key = <a class="code" href="json__object_8h.html#a2caa52ae1863bd073444f3737138a4db">json_object_get_object</a>(obj)-&gt;head; \</div>
419 <div class="line"> (entry##key ? (key = (<span class="keywordtype">char</span> *)<a class="code" href="linkhash_8h.html#a7579ce28b8366fc9b8656f14270aa3aa">lh_entry_k</a>(entry##key), \</div>
420 <div class="line"> val = (<span class="keyword">struct </span><a class="code" href="structjson__object.html">json_object</a> *)<a class="code" href="linkhash_8h.html#a0d4052ccfd8c5d351a9c1d3ba07671b3">lh_entry_v</a>(entry##key), \</div>
421 <div class="line"> entry_next##key = entry##key-&gt;next, entry##key) \</div>
422 <div class="line"> : 0); \</div>
423 <div class="line"> entry##key = entry_next##key)</div>
424 </div><!-- fragment --><p>Iterate through all keys and values of an object.</p>
425 <p>Adding keys to the object while iterating is NOT allowed.</p>
426 <p>Deleting an existing key, or replacing an existing key with a new value IS allowed.</p>
427 <dl class="params"><dt>Parameters</dt><dd>
428 <table class="params">
429 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
430 <tr><td class="paramname">key</td><td>the local name for the char* key variable defined in the body </td></tr>
431 <tr><td class="paramname">val</td><td>the local name for the json_object* object variable defined in the body </td></tr>
432 </table>
433 </dd>
434 </dl>
435
436 </div>
437 </div>
438 <a class="anchor" id="a71f07006c12d78f7bbf4cb716a5af3a6"></a>
439 <div class="memitem">
440 <div class="memproto">
441 <table class="memname">
442 <tr>
443 <td class="memname">#define json_object_object_foreachC</td>
444 <td>(</td>
445 <td class="paramtype">&#160;</td>
446 <td class="paramname">obj, </td>
447 </tr>
448 <tr>
449 <td class="paramkey"></td>
450 <td></td>
451 <td class="paramtype">&#160;</td>
452 <td class="paramname">iter&#160;</td>
453 </tr>
454 <tr>
455 <td></td>
456 <td>)</td>
457 <td></td><td></td>
458 </tr>
459 </table>
460 </div><div class="memdoc">
461 <b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">for</span> (iter.entry = <a class="code" href="json__object_8h.html#a2caa52ae1863bd073444f3737138a4db">json_object_get_object</a>(obj)-&gt;head; \</div>
462 <div class="line"> (iter.entry ? (iter.key = (<span class="keywordtype">char</span> *)<a class="code" href="linkhash_8h.html#a7579ce28b8366fc9b8656f14270aa3aa">lh_entry_k</a>(iter.entry), \</div>
463 <div class="line"> iter.val = (<span class="keyword">struct </span><a class="code" href="structjson__object.html">json_object</a> *)<a class="code" href="linkhash_8h.html#a0d4052ccfd8c5d351a9c1d3ba07671b3">lh_entry_v</a>(iter.entry), iter.entry) \</div>
464 <div class="line"> : 0); \</div>
465 <div class="line"> iter.entry = iter.entry-&gt;next)</div>
466 </div><!-- fragment --><p>Iterate through all keys and values of an object (ANSI C Safe) </p>
467 <dl class="params"><dt>Parameters</dt><dd>
468 <table class="params">
469 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
470 <tr><td class="paramname">iter</td><td>the object iterator, use type <a class="el" href="structjson__object__iter.html">json_object_iter</a> </td></tr>
471 </table>
472 </dd>
473 </dl>
474
475 </div>
476 </div>
477 <a class="anchor" id="a84fa70b86686ce202058f63905c90078"></a>
478 <div class="memitem">
479 <div class="memproto">
480 <table class="memname">
481 <tr>
482 <td class="memname">#define THIS_FUNCTION_IS_DEPRECATED</td>
483 <td>(</td>
484 <td class="paramtype">&#160;</td>
485 <td class="paramname">func</td><td>)</td>
486 <td>&#160;&#160;&#160;func</td>
487 </tr>
488 </table>
489 </div><div class="memdoc">
490
491 </div>
492 </div>
493 <h2 class="groupheader">Typedef Documentation</h2>
494 <a class="anchor" id="af4562514916f62ea56adf752ada10b52"></a>
495 <div class="memitem">
496 <div class="memproto">
497 <table class="memname">
498 <tr>
499 <td class="memname">typedef int( json_c_shallow_copy_fn)(<a class="el" href="structjson__object.html">json_object</a> *src, <a class="el" href="structjson__object.html">json_object</a> *parent, const char *key, size_t index, <a class="el" href="structjson__object.html">json_object</a> **dst)</td>
500 </tr>
501 </table>
502 </div><div class="memdoc">
503 <p>Perform a shallow copy of src into *dst as part of an overall <a class="el" href="json__object_8h.html#aaac16505f13bc56accfad82604d8bcdc">json_object_deep_copy()</a>.</p>
504 <p>If src is part of a containing object or array, parent will be non-NULL, and key or index will be provided. When shallow_copy is called *dst will be NULL, and must be non-NULL when it returns. src will never be NULL.</p>
505 <p>If shallow_copy sets the serializer on an object, return 2 to indicate to json_object_deep_copy that it should not attempt to use the standard userdata copy function.</p>
506 <dl class="section return"><dt>Returns</dt><dd>On success 1 or 2, -1 on errors </dd></dl>
507
508 </div>
509 </div>
510 <h2 class="groupheader">Function Documentation</h2>
511 <a class="anchor" id="a922b2d76c73da57174beec82d471743b"></a>
512 <div class="memitem">
513 <div class="memproto">
514 <table class="memname">
515 <tr>
516 <td class="memname">JSON_C_CONST_FUNCTION </td>
517 <td>(</td>
518 <td class="paramtype"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> size_t &#160;</td>
519 <td class="paramname"><em>json_c_object_sizeof</em>void</td><td>)</td>
520 <td></td>
521 </tr>
522 </table>
523 </div><div class="memdoc">
524 <p>Get the sizeof (struct <a class="el" href="structjson__object.html">json_object</a>). </p>
525 <dl class="section return"><dt>Returns</dt><dd>a size_t with the sizeof (struct <a class="el" href="structjson__object.html">json_object</a>) </dd></dl>
526
527 </div>
528 </div>
529 <a class="anchor" id="ac099272b46fde595831118720b155656"></a>
530 <div class="memitem">
531 <div class="memproto">
532 <table class="memname">
533 <tr>
534 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_c_set_serialization_double_format </td>
535 <td>(</td>
536 <td class="paramtype">const char *&#160;</td>
537 <td class="paramname"><em>double_format</em>, </td>
538 </tr>
539 <tr>
540 <td class="paramkey"></td>
541 <td></td>
542 <td class="paramtype">int&#160;</td>
543 <td class="paramname"><em>global_or_thread</em>&#160;</td>
544 </tr>
545 <tr>
546 <td></td>
547 <td>)</td>
548 <td></td><td></td>
549 </tr>
550 </table>
551 </div><div class="memdoc">
552 <p>Set a global or thread-local json-c option, depending on whether JSON_C_OPTION_GLOBAL or JSON_C_OPTION_THREAD is passed. Thread-local options default to undefined, and inherit from the global value, even if the global value is changed after the thread is created. Attempting to set thread-local options when threading is not compiled in will result in an error. Be sure to check the return value.</p>
553 <p>double_format is a "%g" printf format, such as "%.20g"</p>
554 <dl class="section return"><dt>Returns</dt><dd>-1 on errors, 0 on success. </dd></dl>
555
556 </div>
557 </div>
558 <a class="anchor" id="a18cdd9a7455e09f36cdf6e5756b7f586"></a>
559 <div class="memitem">
560 <div class="memproto">
561 <table class="memname">
562 <tr>
563 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_object_array_add </td>
564 <td>(</td>
565 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
566 <td class="paramname"><em>obj</em>, </td>
567 </tr>
568 <tr>
569 <td class="paramkey"></td>
570 <td></td>
571 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
572 <td class="paramname"><em>val</em>&#160;</td>
573 </tr>
574 <tr>
575 <td></td>
576 <td>)</td>
577 <td></td><td></td>
578 </tr>
579 </table>
580 </div><div class="memdoc">
581 <p>Add an element to the end of a <a class="el" href="structjson__object.html">json_object</a> of type json_type_array</p>
582 <p>The reference count will <em>not</em> be incremented. This is to make adding fields to objects in code more compact. If you want to retain a reference to an added object you must wrap the passed object with json_object_get</p>
583 <dl class="params"><dt>Parameters</dt><dd>
584 <table class="params">
585 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
586 <tr><td class="paramname">val</td><td>the <a class="el" href="structjson__object.html">json_object</a> to be added </td></tr>
587 </table>
588 </dd>
589 </dl>
590
591 </div>
592 </div>
593 <a class="anchor" id="aed353084ed3ad84e7b7575afbe7e719d"></a>
594 <div class="memitem">
595 <div class="memproto">
596 <table class="mlabels">
597 <tr>
598 <td class="mlabels-left">
599 <table class="memname">
600 <tr>
601 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a>* json_object_array_bsearch </td>
602 <td>(</td>
603 <td class="paramtype">const struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
604 <td class="paramname"><em>key</em>, </td>
605 </tr>
606 <tr>
607 <td class="paramkey"></td>
608 <td></td>
609 <td class="paramtype">const struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
610 <td class="paramname"><em>jso</em>, </td>
611 </tr>
612 <tr>
613 <td class="paramkey"></td>
614 <td></td>
615 <td class="paramtype">int(*)(const void *, const void *)&#160;</td>
616 <td class="paramname"><em>sort_fn</em>&#160;</td>
617 </tr>
618 <tr>
619 <td></td>
620 <td>)</td>
621 <td></td><td></td>
622 </tr>
623 </table>
624 </td>
625 <td class="mlabels-right">
626 <span class="mlabels"><span class="mlabel">read</span></span> </td>
627 </tr>
628 </table>
629 </div><div class="memdoc">
630 <p>Binary search a sorted array for a specified key object.</p>
631 <p>It depends on your compare function what's sufficient as a key. Usually you create some dummy object with the parameter compared in it, to identify the right item you're actually looking for.</p>
632 <dl class="section see"><dt>See Also</dt><dd><a class="el" href="json__object_8h.html#a5584e2f2051cd1faa7fafd07ba888fd1">json_object_array_sort()</a> for hints on the compare function.</dd></dl>
633 <dl class="params"><dt>Parameters</dt><dd>
634 <table class="params">
635 <tr><td class="paramname">key</td><td>a dummy <a class="el" href="structjson__object.html">json_object</a> with the right key </td></tr>
636 <tr><td class="paramname">jso</td><td>the array object we're searching </td></tr>
637 <tr><td class="paramname">sort_fn</td><td>the sort/compare function</td></tr>
638 </table>
639 </dd>
640 </dl>
641 <dl class="section return"><dt>Returns</dt><dd>the wanted <a class="el" href="structjson__object.html">json_object</a> instance </dd></dl>
642
643 </div>
644 </div>
645 <a class="anchor" id="a722eca9f578704d3af38b97549242c1f"></a>
646 <div class="memitem">
647 <div class="memproto">
648 <table class="memname">
649 <tr>
650 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_object_array_del_idx </td>
651 <td>(</td>
652 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
653 <td class="paramname"><em>obj</em>, </td>
654 </tr>
655 <tr>
656 <td class="paramkey"></td>
657 <td></td>
658 <td class="paramtype">size_t&#160;</td>
659 <td class="paramname"><em>idx</em>, </td>
660 </tr>
661 <tr>
662 <td class="paramkey"></td>
663 <td></td>
664 <td class="paramtype">size_t&#160;</td>
665 <td class="paramname"><em>count</em>&#160;</td>
666 </tr>
667 <tr>
668 <td></td>
669 <td>)</td>
670 <td></td><td></td>
671 </tr>
672 </table>
673 </div><div class="memdoc">
674 <p>Delete an elements from a specified index in an array (a <a class="el" href="structjson__object.html">json_object</a> of type json_type_array)</p>
675 <p>The reference count will be decremented for each of the deleted objects. If there are no more owners of an element that is being deleted, then the value is freed. Otherwise, the reference to the value will remain in memory.</p>
676 <dl class="params"><dt>Parameters</dt><dd>
677 <table class="params">
678 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
679 <tr><td class="paramname">idx</td><td>the index to start deleting elements at </td></tr>
680 <tr><td class="paramname">count</td><td>the number of elements to delete </td></tr>
681 </table>
682 </dd>
683 </dl>
684 <dl class="section return"><dt>Returns</dt><dd>0 if the elements were successfully deleted </dd></dl>
685
686 </div>
687 </div>
688 <a class="anchor" id="a676711a76545d4ec65cc75f100f5fd19"></a>
689 <div class="memitem">
690 <div class="memproto">
691 <table class="mlabels">
692 <tr>
693 <td class="mlabels-left">
694 <table class="memname">
695 <tr>
696 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a>* json_object_array_get_idx </td>
697 <td>(</td>
698 <td class="paramtype">const struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
699 <td class="paramname"><em>obj</em>, </td>
700 </tr>
701 <tr>
702 <td class="paramkey"></td>
703 <td></td>
704 <td class="paramtype">size_t&#160;</td>
705 <td class="paramname"><em>idx</em>&#160;</td>
706 </tr>
707 <tr>
708 <td></td>
709 <td>)</td>
710 <td></td><td></td>
711 </tr>
712 </table>
713 </td>
714 <td class="mlabels-right">
715 <span class="mlabels"><span class="mlabel">read</span></span> </td>
716 </tr>
717 </table>
718 </div><div class="memdoc">
719 <p>Get the element at specified index of the array (a <a class="el" href="structjson__object.html">json_object</a> of type json_type_array) </p>
720 <dl class="params"><dt>Parameters</dt><dd>
721 <table class="params">
722 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
723 <tr><td class="paramname">idx</td><td>the index to get the element at </td></tr>
724 </table>
725 </dd>
726 </dl>
727 <dl class="section return"><dt>Returns</dt><dd>the <a class="el" href="structjson__object.html">json_object</a> at the specified index (or NULL) </dd></dl>
728
729 </div>
730 </div>
731 <a class="anchor" id="ab9ea8f9c72d5adf83fdcbfe69f97fa44"></a>
732 <div class="memitem">
733 <div class="memproto">
734 <table class="memname">
735 <tr>
736 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> size_t json_object_array_length </td>
737 <td>(</td>
738 <td class="paramtype">const struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
739 <td class="paramname"><em>obj</em></td><td>)</td>
740 <td></td>
741 </tr>
742 </table>
743 </div><div class="memdoc">
744 <p>Get the length of a <a class="el" href="structjson__object.html">json_object</a> of type json_type_array </p>
745 <dl class="params"><dt>Parameters</dt><dd>
746 <table class="params">
747 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
748 </table>
749 </dd>
750 </dl>
751 <dl class="section return"><dt>Returns</dt><dd>an int </dd></dl>
752
753 </div>
754 </div>
755 <a class="anchor" id="a1ac0ccdbc13a25da7d8b2dc9e421dfad"></a>
756 <div class="memitem">
757 <div class="memproto">
758 <table class="memname">
759 <tr>
760 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_object_array_put_idx </td>
761 <td>(</td>
762 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
763 <td class="paramname"><em>obj</em>, </td>
764 </tr>
765 <tr>
766 <td class="paramkey"></td>
767 <td></td>
768 <td class="paramtype">size_t&#160;</td>
769 <td class="paramname"><em>idx</em>, </td>
770 </tr>
771 <tr>
772 <td class="paramkey"></td>
773 <td></td>
774 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
775 <td class="paramname"><em>val</em>&#160;</td>
776 </tr>
777 <tr>
778 <td></td>
779 <td>)</td>
780 <td></td><td></td>
781 </tr>
782 </table>
783 </div><div class="memdoc">
784 <p>Insert or replace an element at a specified index in an array (a <a class="el" href="structjson__object.html">json_object</a> of type json_type_array)</p>
785 <p>The reference count will <em>not</em> be incremented. This is to make adding fields to objects in code more compact. If you want to retain a reference to an added object you must wrap the passed object with json_object_get</p>
786 <p>The reference count of a replaced object will be decremented.</p>
787 <p>The array size will be automatically be expanded to the size of the index if the index is larger than the current size.</p>
788 <dl class="params"><dt>Parameters</dt><dd>
789 <table class="params">
790 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
791 <tr><td class="paramname">idx</td><td>the index to insert the element at </td></tr>
792 <tr><td class="paramname">val</td><td>the <a class="el" href="structjson__object.html">json_object</a> to be added </td></tr>
793 </table>
794 </dd>
795 </dl>
796
797 </div>
798 </div>
799 <a class="anchor" id="a5584e2f2051cd1faa7fafd07ba888fd1"></a>
800 <div class="memitem">
801 <div class="memproto">
802 <table class="memname">
803 <tr>
804 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void json_object_array_sort </td>
805 <td>(</td>
806 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
807 <td class="paramname"><em>jso</em>, </td>
808 </tr>
809 <tr>
810 <td class="paramkey"></td>
811 <td></td>
812 <td class="paramtype">int(*)(const void *, const void *)&#160;</td>
813 <td class="paramname"><em>sort_fn</em>&#160;</td>
814 </tr>
815 <tr>
816 <td></td>
817 <td>)</td>
818 <td></td><td></td>
819 </tr>
820 </table>
821 </div><div class="memdoc">
822 <p>Sorts the elements of jso of type json_type_array</p>
823 <p>Pointers to the <a class="el" href="structjson__object.html">json_object</a> pointers will be passed as the two arguments to sort_fn</p>
824 <dl class="params"><dt>Parameters</dt><dd>
825 <table class="params">
826 <tr><td class="paramname">jso</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
827 <tr><td class="paramname">sort_fn</td><td>a sorting function </td></tr>
828 </table>
829 </dd>
830 </dl>
831
832 </div>
833 </div>
834 <a class="anchor" id="aaac16505f13bc56accfad82604d8bcdc"></a>
835 <div class="memitem">
836 <div class="memproto">
837 <table class="memname">
838 <tr>
839 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_object_deep_copy </td>
840 <td>(</td>
841 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
842 <td class="paramname"><em>src</em>, </td>
843 </tr>
844 <tr>
845 <td class="paramkey"></td>
846 <td></td>
847 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> **&#160;</td>
848 <td class="paramname"><em>dst</em>, </td>
849 </tr>
850 <tr>
851 <td class="paramkey"></td>
852 <td></td>
853 <td class="paramtype"><a class="el" href="json__object_8h.html#af4562514916f62ea56adf752ada10b52">json_c_shallow_copy_fn</a> *&#160;</td>
854 <td class="paramname"><em>shallow_copy</em>&#160;</td>
855 </tr>
856 <tr>
857 <td></td>
858 <td>)</td>
859 <td></td><td></td>
860 </tr>
861 </table>
862 </div><div class="memdoc">
863 <p>Copy the contents of the JSON object. The destination object must be initialized to NULL, to make sure this function won't overwrite an existing JSON object.</p>
864 <p>This does roughly the same thing as <code>json_tokener_parse(json_object_get_string(src))</code>.</p>
865 <dl class="params"><dt>Parameters</dt><dd>
866 <table class="params">
867 <tr><td class="paramname">src</td><td>source JSON object whose contents will be copied </td></tr>
868 <tr><td class="paramname">dst</td><td>pointer to the destination object where the contents of <code>src</code>; make sure this pointer is initialized to NULL </td></tr>
869 <tr><td class="paramname">shallow_copy</td><td>an optional function to copy individual objects, needed when custom serializers are in use. See also <a class="el" href="structjson__object.html">json_object</a> set_serializer.</td></tr>
870 </table>
871 </dd>
872 </dl>
873 <dl class="section return"><dt>Returns</dt><dd>0 if the copy went well, -1 if an error occured during copy or if the destination pointer is non-NULL </dd></dl>
874
875 </div>
876 </div>
877 <a class="anchor" id="ada262c62364e3819b6a64b1e3a632336"></a>
878 <div class="memitem">
879 <div class="memproto">
880 <table class="memname">
881 <tr>
882 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_object_double_to_json_string </td>
883 <td>(</td>
884 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
885 <td class="paramname"><em>jso</em>, </td>
886 </tr>
887 <tr>
888 <td class="paramkey"></td>
889 <td></td>
890 <td class="paramtype">struct <a class="el" href="structprintbuf.html">printbuf</a> *&#160;</td>
891 <td class="paramname"><em>pb</em>, </td>
892 </tr>
893 <tr>
894 <td class="paramkey"></td>
895 <td></td>
896 <td class="paramtype">int&#160;</td>
897 <td class="paramname"><em>level</em>, </td>
898 </tr>
899 <tr>
900 <td class="paramkey"></td>
901 <td></td>
902 <td class="paramtype">int&#160;</td>
903 <td class="paramname"><em>flags</em>&#160;</td>
904 </tr>
905 <tr>
906 <td></td>
907 <td>)</td>
908 <td></td><td></td>
909 </tr>
910 </table>
911 </div><div class="memdoc">
912 <p>Serialize a <a class="el" href="structjson__object.html">json_object</a> of type json_type_double to a string.</p>
913 <p>This function isn't meant to be called directly. Instead, you can set a custom format string for the serialization of this double using the following call (where "%.17g" actually is the default):</p>
914 <div class="fragment"><div class="line">jso = <a class="code" href="json__object_8h.html#a594a093bafb9091f843da3197e0638aa">json_object_new_double</a>(d);</div>
915 <div class="line"><a class="code" href="json__object_8h.html#a889345512a214b8f78f6a73561523c7c">json_object_set_serializer</a>(jso, <a class="code" href="json__object_8h.html#ada262c62364e3819b6a64b1e3a632336">json_object_double_to_json_string</a>,</div>
916 <div class="line"> <span class="stringliteral">&quot;%.17g&quot;</span>, NULL);</div>
917 </div><!-- fragment --><dl class="section see"><dt>See Also</dt><dd>printf(3) man page for format strings</dd></dl>
918 <dl class="params"><dt>Parameters</dt><dd>
919 <table class="params">
920 <tr><td class="paramname">jso</td><td>The json_type_double object that is serialized. </td></tr>
921 <tr><td class="paramname">pb</td><td>The destination buffer. </td></tr>
922 <tr><td class="paramname">level</td><td>Ignored. </td></tr>
923 <tr><td class="paramname">flags</td><td>Ignored. </td></tr>
924 </table>
925 </dd>
926 </dl>
927
928 </div>
929 </div>
930 <a class="anchor" id="a5a1d4640525e0217059868e312f20579"></a>
931 <div class="memitem">
932 <div class="memproto">
933 <table class="memname">
934 <tr>
935 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_object_equal </td>
936 <td>(</td>
937 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
938 <td class="paramname"><em>obj1</em>, </td>
939 </tr>
940 <tr>
941 <td class="paramkey"></td>
942 <td></td>
943 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
944 <td class="paramname"><em>obj2</em>&#160;</td>
945 </tr>
946 <tr>
947 <td></td>
948 <td>)</td>
949 <td></td><td></td>
950 </tr>
951 </table>
952 </div><div class="memdoc">
953 <p>Check if two <a class="el" href="structjson__object.html">json_object</a>'s are equal</p>
954 <p>If the passed objects are equal 1 will be returned. Equality is defined as follows:</p>
955 <ul>
956 <li>json_objects of different types are never equal</li>
957 <li>json_objects of the same primitive type are equal if the c-representation of their value is equal</li>
958 <li>json-arrays are considered equal if all values at the same indices are equal (same order)</li>
959 <li>Complex json_objects are considered equal if all contained objects referenced by their key are equal, regardless their order.</li>
960 </ul>
961 <dl class="params"><dt>Parameters</dt><dd>
962 <table class="params">
963 <tr><td class="paramname">obj1</td><td>the first <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
964 <tr><td class="paramname">obj2</td><td>the second <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
965 </table>
966 </dd>
967 </dl>
968 <dl class="section return"><dt>Returns</dt><dd>whether both objects are equal or not </dd></dl>
969
970 </div>
971 </div>
972 <a class="anchor" id="a675aa3a9cced685dbfd1c1a770a0c3e4"></a>
973 <div class="memitem">
974 <div class="memproto">
975 <table class="mlabels">
976 <tr>
977 <td class="mlabels-left">
978 <table class="memname">
979 <tr>
980 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a>* json_object_get </td>
981 <td>(</td>
982 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
983 <td class="paramname"><em>obj</em></td><td>)</td>
984 <td></td>
985 </tr>
986 </table>
987 </td>
988 <td class="mlabels-right">
989 <span class="mlabels"><span class="mlabel">read</span></span> </td>
990 </tr>
991 </table>
992 </div><div class="memdoc">
993 <p>Increment the reference count of <a class="el" href="structjson__object.html">json_object</a>, thereby grabbing shared ownership of obj.</p>
994 <dl class="params"><dt>Parameters</dt><dd>
995 <table class="params">
996 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
997 </table>
998 </dd>
999 </dl>
1000
1001 </div>
1002 </div>
1003 <a class="anchor" id="a23d20e3f886c1638a7116be66b7b5ec2"></a>
1004 <div class="memitem">
1005 <div class="memproto">
1006 <table class="mlabels">
1007 <tr>
1008 <td class="mlabels-left">
1009 <table class="memname">
1010 <tr>
1011 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structarray__list.html">array_list</a>* json_object_get_array </td>
1012 <td>(</td>
1013 <td class="paramtype">const struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
1014 <td class="paramname"><em>obj</em></td><td>)</td>
1015 <td></td>
1016 </tr>
1017 </table>
1018 </td>
1019 <td class="mlabels-right">
1020 <span class="mlabels"><span class="mlabel">read</span></span> </td>
1021 </tr>
1022 </table>
1023 </div><div class="memdoc">
1024 <p>Get the arraylist of a <a class="el" href="structjson__object.html">json_object</a> of type json_type_array </p>
1025 <dl class="params"><dt>Parameters</dt><dd>
1026 <table class="params">
1027 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
1028 </table>
1029 </dd>
1030 </dl>
1031 <dl class="section return"><dt>Returns</dt><dd>an arraylist </dd></dl>
1032
1033 </div>
1034 </div>
1035 <a class="anchor" id="ac003fb99db7ecd674bb16d983d2f92ee"></a>
1036 <div class="memitem">
1037 <div class="memproto">
1038 <table class="memname">
1039 <tr>
1040 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> <a class="el" href="json__types_8h.html#a81f02022906fafc71eb9197049f07f73">json_bool</a> json_object_get_boolean </td>
1041 <td>(</td>
1042 <td class="paramtype">const struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
1043 <td class="paramname"><em>obj</em></td><td>)</td>
1044 <td></td>
1045 </tr>
1046 </table>
1047 </div><div class="memdoc">
1048 <p>Get the json_bool value of a <a class="el" href="structjson__object.html">json_object</a></p>
1049 <p>The type is coerced to a json_bool if the passed object is not a json_bool. integer and double objects will return 0 if there value is zero or 1 otherwise. If the passed object is a string it will return 1 if it has a non zero length. If any other object type is passed 1 will be returned if the object is not NULL.</p>
1050 <dl class="params"><dt>Parameters</dt><dd>
1051 <table class="params">
1052 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
1053 </table>
1054 </dd>
1055 </dl>
1056 <dl class="section return"><dt>Returns</dt><dd>a json_bool </dd></dl>
1057
1058 </div>
1059 </div>
1060 <a class="anchor" id="a94a70cff6a14398b581b7b10b0792c5b"></a>
1061 <div class="memitem">
1062 <div class="memproto">
1063 <table class="memname">
1064 <tr>
1065 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> double json_object_get_double </td>
1066 <td>(</td>
1067 <td class="paramtype">const struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
1068 <td class="paramname"><em>obj</em></td><td>)</td>
1069 <td></td>
1070 </tr>
1071 </table>
1072 </div><div class="memdoc">
1073 <p>Get the double floating point value of a <a class="el" href="structjson__object.html">json_object</a></p>
1074 <p>The type is coerced to a double if the passed object is not a double. integer objects will return their double conversion. Strings will be parsed as a double. If no conversion exists then 0.0 is returned and errno is set to EINVAL. null is equivalent to 0 (no error values set)</p>
1075 <p>If the value is too big to fit in a double, then the value is set to the closest infinity with errno set to ERANGE. If strings cannot be converted to their double value, then EINVAL is set &amp; NaN is returned.</p>
1076 <p>Arrays of length 0 are interpreted as 0 (with no error flags set). Arrays of length 1 are effectively cast to the equivalent object and converted using the above rules. All other arrays set the error to EINVAL &amp; return NaN.</p>
1077 <p>NOTE: Set errno to 0 directly before a call to this function to determine whether or not conversion was successful (it does not clear the value for you).</p>
1078 <dl class="params"><dt>Parameters</dt><dd>
1079 <table class="params">
1080 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
1081 </table>
1082 </dd>
1083 </dl>
1084 <dl class="section return"><dt>Returns</dt><dd>a double floating point number </dd></dl>
1085
1086 </div>
1087 </div>
1088 <a class="anchor" id="a8c56dc58a02f92cd6789ba5dcb9fe7b1"></a>
1089 <div class="memitem">
1090 <div class="memproto">
1091 <table class="memname">
1092 <tr>
1093 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int32_t json_object_get_int </td>
1094 <td>(</td>
1095 <td class="paramtype">const struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
1096 <td class="paramname"><em>obj</em></td><td>)</td>
1097 <td></td>
1098 </tr>
1099 </table>
1100 </div><div class="memdoc">
1101 <p>Get the int value of a <a class="el" href="structjson__object.html">json_object</a></p>
1102 <p>The type is coerced to a int if the passed object is not a int. double objects will return their integer conversion. Strings will be parsed as an integer. If no conversion exists then 0 is returned and errno is set to EINVAL. null is equivalent to 0 (no error values set)</p>
1103 <p>Note that integers are stored internally as 64-bit values. If the value of too big or too small to fit into 32-bit, INT32_MAX or INT32_MIN are returned, respectively.</p>
1104 <dl class="params"><dt>Parameters</dt><dd>
1105 <table class="params">
1106 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
1107 </table>
1108 </dd>
1109 </dl>
1110 <dl class="section return"><dt>Returns</dt><dd>an int </dd></dl>
1111
1112 </div>
1113 </div>
1114 <a class="anchor" id="a1a14750b3af4df18ec8dc93b090a8e8a"></a>
1115 <div class="memitem">
1116 <div class="memproto">
1117 <table class="memname">
1118 <tr>
1119 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int64_t json_object_get_int64 </td>
1120 <td>(</td>
1121 <td class="paramtype">const struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
1122 <td class="paramname"><em>obj</em></td><td>)</td>
1123 <td></td>
1124 </tr>
1125 </table>
1126 </div><div class="memdoc">
1127 <p>Get the int value of a <a class="el" href="structjson__object.html">json_object</a></p>
1128 <p>The type is coerced to a int64 if the passed object is not a int64. double objects will return their int64 conversion. Strings will be parsed as an int64. If no conversion exists then 0 is returned.</p>
1129 <p>NOTE: Set errno to 0 directly before a call to this function to determine whether or not conversion was successful (it does not clear the value for you).</p>
1130 <dl class="params"><dt>Parameters</dt><dd>
1131 <table class="params">
1132 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
1133 </table>
1134 </dd>
1135 </dl>
1136 <dl class="section return"><dt>Returns</dt><dd>an int64 </dd></dl>
1137
1138 </div>
1139 </div>
1140 <a class="anchor" id="a2caa52ae1863bd073444f3737138a4db"></a>
1141 <div class="memitem">
1142 <div class="memproto">
1143 <table class="mlabels">
1144 <tr>
1145 <td class="mlabels-left">
1146 <table class="memname">
1147 <tr>
1148 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structlh__table.html">lh_table</a>* json_object_get_object </td>
1149 <td>(</td>
1150 <td class="paramtype">const struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
1151 <td class="paramname"><em>obj</em></td><td>)</td>
1152 <td></td>
1153 </tr>
1154 </table>
1155 </td>
1156 <td class="mlabels-right">
1157 <span class="mlabels"><span class="mlabel">read</span></span> </td>
1158 </tr>
1159 </table>
1160 </div><div class="memdoc">
1161 <p>Get the hashtable of a <a class="el" href="structjson__object.html">json_object</a> of type json_type_object </p>
1162 <dl class="params"><dt>Parameters</dt><dd>
1163 <table class="params">
1164 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
1165 </table>
1166 </dd>
1167 </dl>
1168 <dl class="section return"><dt>Returns</dt><dd>a linkhash </dd></dl>
1169
1170 </div>
1171 </div>
1172 <a class="anchor" id="a9ee29ca8d79896e15007131527f6002e"></a>
1173 <div class="memitem">
1174 <div class="memproto">
1175 <table class="memname">
1176 <tr>
1177 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> const char* json_object_get_string </td>
1178 <td>(</td>
1179 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
1180 <td class="paramname"><em>obj</em></td><td>)</td>
1181 <td></td>
1182 </tr>
1183 </table>
1184 </div><div class="memdoc">
1185 <p>Get the string value of a <a class="el" href="structjson__object.html">json_object</a></p>
1186 <p>If the passed object is of type json_type_null (i.e. obj == NULL), NULL is returned.</p>
1187 <p>If the passed object of type json_type_string, the string contents are returned.</p>
1188 <p>Otherwise the JSON representation of the object is returned.</p>
1189 <p>The returned string memory is managed by the <a class="el" href="structjson__object.html">json_object</a> and will be freed when the reference count of the <a class="el" href="structjson__object.html">json_object</a> drops to zero.</p>
1190 <dl class="params"><dt>Parameters</dt><dd>
1191 <table class="params">
1192 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
1193 </table>
1194 </dd>
1195 </dl>
1196 <dl class="section return"><dt>Returns</dt><dd>a string or NULL </dd></dl>
1197
1198 </div>
1199 </div>
1200 <a class="anchor" id="ac1d1f95a27a5e5d93bb66a8adfc1a2f4"></a>
1201 <div class="memitem">
1202 <div class="memproto">
1203 <table class="memname">
1204 <tr>
1205 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_object_get_string_len </td>
1206 <td>(</td>
1207 <td class="paramtype">const struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
1208 <td class="paramname"><em>obj</em></td><td>)</td>
1209 <td></td>
1210 </tr>
1211 </table>
1212 </div><div class="memdoc">
1213 <p>Get the string length of a <a class="el" href="structjson__object.html">json_object</a></p>
1214 <p>If the passed object is not of type json_type_string then zero will be returned.</p>
1215 <dl class="params"><dt>Parameters</dt><dd>
1216 <table class="params">
1217 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
1218 </table>
1219 </dd>
1220 </dl>
1221 <dl class="section return"><dt>Returns</dt><dd>int </dd></dl>
1222
1223 </div>
1224 </div>
1225 <a class="anchor" id="af256a3a7910e271a2b9735e5044c3827"></a>
1226 <div class="memitem">
1227 <div class="memproto">
1228 <table class="memname">
1229 <tr>
1230 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> enum <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06c">json_type</a> json_object_get_type </td>
1231 <td>(</td>
1232 <td class="paramtype">const struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
1233 <td class="paramname"><em>obj</em></td><td>)</td>
1234 <td></td>
1235 </tr>
1236 </table>
1237 </div><div class="memdoc">
1238 <p>Get the type of the <a class="el" href="structjson__object.html">json_object</a>. See also <a class="el" href="json__util_8h.html#a762aaf3df0a9c7b6919cdc1035348012">json_type_to_name()</a> to turn this into a string suitable, for instance, for logging.</p>
1239 <dl class="params"><dt>Parameters</dt><dd>
1240 <table class="params">
1241 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
1242 </table>
1243 </dd>
1244 </dl>
1245 <dl class="section return"><dt>Returns</dt><dd>type being one of: json_type_null (i.e. obj == NULL), json_type_boolean, json_type_double, json_type_int, json_type_object, json_type_array, json_type_string </dd></dl>
1246
1247 </div>
1248 </div>
1249 <a class="anchor" id="a82c27579b6d25d9d0eb3b72758d8b71d"></a>
1250 <div class="memitem">
1251 <div class="memproto">
1252 <table class="memname">
1253 <tr>
1254 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> uint64_t json_object_get_uint64 </td>
1255 <td>(</td>
1256 <td class="paramtype">const struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
1257 <td class="paramname"><em>obj</em></td><td>)</td>
1258 <td></td>
1259 </tr>
1260 </table>
1261 </div><div class="memdoc">
1262 <p>Get the uint value of a <a class="el" href="structjson__object.html">json_object</a></p>
1263 <p>The type is coerced to a uint64 if the passed object is not a uint64. double objects will return their uint64 conversion. Strings will be parsed as an uint64. If no conversion exists then 0 is returned.</p>
1264 <p>NOTE: Set errno to 0 directly before a call to this function to determine whether or not conversion was successful (it does not clear the value for you).</p>
1265 <dl class="params"><dt>Parameters</dt><dd>
1266 <table class="params">
1267 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
1268 </table>
1269 </dd>
1270 </dl>
1271 <dl class="section return"><dt>Returns</dt><dd>an uint64 </dd></dl>
1272
1273 </div>
1274 </div>
1275 <a class="anchor" id="ae925f3ec0f61cba5ea3dd50e0315f194"></a>
1276 <div class="memitem">
1277 <div class="memproto">
1278 <table class="memname">
1279 <tr>
1280 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void* json_object_get_userdata </td>
1281 <td>(</td>
1282 <td class="paramtype"><a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
1283 <td class="paramname"><em>jso</em></td><td>)</td>
1284 <td></td>
1285 </tr>
1286 </table>
1287 </div><div class="memdoc">
1288 <p>Returns the userdata set by <a class="el" href="json__object_8h.html#a4ee4281ccd123c62878e931a0a3bc43b">json_object_set_userdata()</a> or <a class="el" href="json__object_8h.html#a889345512a214b8f78f6a73561523c7c">json_object_set_serializer()</a></p>
1289 <dl class="params"><dt>Parameters</dt><dd>
1290 <table class="params">
1291 <tr><td class="paramname">jso</td><td>the object to return the userdata for </td></tr>
1292 </table>
1293 </dd>
1294 </dl>
1295
1296 </div>
1297 </div>
1298 <a class="anchor" id="a25691322b2d1ab24a3797e5752eb659f"></a>
1299 <div class="memitem">
1300 <div class="memproto">
1301 <table class="memname">
1302 <tr>
1303 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_object_int_inc </td>
1304 <td>(</td>
1305 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
1306 <td class="paramname"><em>obj</em>, </td>
1307 </tr>
1308 <tr>
1309 <td class="paramkey"></td>
1310 <td></td>
1311 <td class="paramtype">int64_t&#160;</td>
1312 <td class="paramname"><em>val</em>&#160;</td>
1313 </tr>
1314 <tr>
1315 <td></td>
1316 <td>)</td>
1317 <td></td><td></td>
1318 </tr>
1319 </table>
1320 </div><div class="memdoc">
1321 <p>Increment a json_type_int object by the given amount, which may be negative.</p>
1322 <p>If the type of obj is not json_type_int then 0 is returned with no further action taken. If the addition would result in a overflow, the object value is set to INT64_MAX. If the addition would result in a underflow, the object value is set to INT64_MIN. Neither overflow nor underflow affect the return value.</p>
1323 <dl class="params"><dt>Parameters</dt><dd>
1324 <table class="params">
1325 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
1326 <tr><td class="paramname">val</td><td>the value to add </td></tr>
1327 </table>
1328 </dd>
1329 </dl>
1330 <dl class="section return"><dt>Returns</dt><dd>1 if the increment succeded, 0 otherwise </dd></dl>
1331
1332 </div>
1333 </div>
1334 <a class="anchor" id="a8ab506a3d8f4ba5eb6a12ce0a6bbd37b"></a>
1335 <div class="memitem">
1336 <div class="memproto">
1337 <table class="memname">
1338 <tr>
1339 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_object_is_type </td>
1340 <td>(</td>
1341 <td class="paramtype">const struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
1342 <td class="paramname"><em>obj</em>, </td>
1343 </tr>
1344 <tr>
1345 <td class="paramkey"></td>
1346 <td></td>
1347 <td class="paramtype">enum <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06c">json_type</a>&#160;</td>
1348 <td class="paramname"><em>type</em>&#160;</td>
1349 </tr>
1350 <tr>
1351 <td></td>
1352 <td>)</td>
1353 <td></td><td></td>
1354 </tr>
1355 </table>
1356 </div><div class="memdoc">
1357 <p>Check if the <a class="el" href="structjson__object.html">json_object</a> is of a given type </p>
1358 <dl class="params"><dt>Parameters</dt><dd>
1359 <table class="params">
1360 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
1361 <tr><td class="paramname">type</td><td>one of: json_type_null (i.e. obj == NULL), json_type_boolean, json_type_double, json_type_int, json_type_object, json_type_array, json_type_string </td></tr>
1362 </table>
1363 </dd>
1364 </dl>
1365
1366 </div>
1367 </div>
1368 <a class="anchor" id="a84f7f8c0774c4600d958561d7548d649"></a>
1369 <div class="memitem">
1370 <div class="memproto">
1371 <table class="mlabels">
1372 <tr>
1373 <td class="mlabels-left">
1374 <table class="memname">
1375 <tr>
1376 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a>* json_object_new_array </td>
1377 <td>(</td>
1378 <td class="paramtype">void&#160;</td>
1379 <td class="paramname"></td><td>)</td>
1380 <td></td>
1381 </tr>
1382 </table>
1383 </td>
1384 <td class="mlabels-right">
1385 <span class="mlabels"><span class="mlabel">read</span></span> </td>
1386 </tr>
1387 </table>
1388 </div><div class="memdoc">
1389 <p>Create a new empty <a class="el" href="structjson__object.html">json_object</a> of type json_type_array </p>
1390 <dl class="section return"><dt>Returns</dt><dd>a <a class="el" href="structjson__object.html">json_object</a> of type json_type_array </dd></dl>
1391
1392 </div>
1393 </div>
1394 <a class="anchor" id="a2e290acd80e72cca745f89fb4600fb78"></a>
1395 <div class="memitem">
1396 <div class="memproto">
1397 <table class="mlabels">
1398 <tr>
1399 <td class="mlabels-left">
1400 <table class="memname">
1401 <tr>
1402 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a>* json_object_new_boolean </td>
1403 <td>(</td>
1404 <td class="paramtype"><a class="el" href="json__types_8h.html#a81f02022906fafc71eb9197049f07f73">json_bool</a>&#160;</td>
1405 <td class="paramname"><em>b</em></td><td>)</td>
1406 <td></td>
1407 </tr>
1408 </table>
1409 </td>
1410 <td class="mlabels-right">
1411 <span class="mlabels"><span class="mlabel">read</span></span> </td>
1412 </tr>
1413 </table>
1414 </div><div class="memdoc">
1415 <p>Create a new empty <a class="el" href="structjson__object.html">json_object</a> of type json_type_boolean </p>
1416 <dl class="params"><dt>Parameters</dt><dd>
1417 <table class="params">
1418 <tr><td class="paramname">b</td><td>a json_bool 1 or 0 </td></tr>
1419 </table>
1420 </dd>
1421 </dl>
1422 <dl class="section return"><dt>Returns</dt><dd>a <a class="el" href="structjson__object.html">json_object</a> of type json_type_boolean </dd></dl>
1423
1424 </div>
1425 </div>
1426 <a class="anchor" id="a594a093bafb9091f843da3197e0638aa"></a>
1427 <div class="memitem">
1428 <div class="memproto">
1429 <table class="mlabels">
1430 <tr>
1431 <td class="mlabels-left">
1432 <table class="memname">
1433 <tr>
1434 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a>* json_object_new_double </td>
1435 <td>(</td>
1436 <td class="paramtype">double&#160;</td>
1437 <td class="paramname"><em>d</em></td><td>)</td>
1438 <td></td>
1439 </tr>
1440 </table>
1441 </td>
1442 <td class="mlabels-right">
1443 <span class="mlabels"><span class="mlabel">read</span></span> </td>
1444 </tr>
1445 </table>
1446 </div><div class="memdoc">
1447 <p>Create a new empty <a class="el" href="structjson__object.html">json_object</a> of type json_type_double</p>
1448 <dl class="section see"><dt>See Also</dt><dd><a class="el" href="json__object_8h.html#ada262c62364e3819b6a64b1e3a632336">json_object_double_to_json_string()</a> for how to set a custom format string.</dd></dl>
1449 <dl class="params"><dt>Parameters</dt><dd>
1450 <table class="params">
1451 <tr><td class="paramname">d</td><td>the double </td></tr>
1452 </table>
1453 </dd>
1454 </dl>
1455 <dl class="section return"><dt>Returns</dt><dd>a <a class="el" href="structjson__object.html">json_object</a> of type json_type_double </dd></dl>
1456
1457 </div>
1458 </div>
1459 <a class="anchor" id="ae49671c026fe1ada370a75321e4e65f6"></a>
1460 <div class="memitem">
1461 <div class="memproto">
1462 <table class="mlabels">
1463 <tr>
1464 <td class="mlabels-left">
1465 <table class="memname">
1466 <tr>
1467 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a>* json_object_new_double_s </td>
1468 <td>(</td>
1469 <td class="paramtype">double&#160;</td>
1470 <td class="paramname"><em>d</em>, </td>
1471 </tr>
1472 <tr>
1473 <td class="paramkey"></td>
1474 <td></td>
1475 <td class="paramtype">const char *&#160;</td>
1476 <td class="paramname"><em>ds</em>&#160;</td>
1477 </tr>
1478 <tr>
1479 <td></td>
1480 <td>)</td>
1481 <td></td><td></td>
1482 </tr>
1483 </table>
1484 </td>
1485 <td class="mlabels-right">
1486 <span class="mlabels"><span class="mlabel">read</span></span> </td>
1487 </tr>
1488 </table>
1489 </div><div class="memdoc">
1490 <p>Create a new <a class="el" href="structjson__object.html">json_object</a> of type json_type_double, using the exact serialized representation of the value.</p>
1491 <p>This allows for numbers that would otherwise get displayed inefficiently (e.g. 12.3 =&gt; "12.300000000000001") to be serialized with the more convenient form.</p>
1492 <p>Notes:</p>
1493 <p>This is used by <a class="el" href="json__tokener_8h.html#a61679f178111963a9ffa3c8179553f7a">json_tokener_parse_ex()</a> to allow for an exact re-serialization of a parsed object.</p>
1494 <p>The userdata field is used to store the string representation, so it can't be used for other data if this function is used.</p>
1495 <p>A roughly equivalent sequence of calls, with the difference being that the serialization function won't be reset by <a class="el" href="json__object_8h.html#a3a7b7ce585565558cb69dad8d45d7757">json_object_set_double()</a>, is: </p>
1496 <div class="fragment"><div class="line">jso = <a class="code" href="json__object_8h.html#a594a093bafb9091f843da3197e0638aa">json_object_new_double</a>(d);</div>
1497 <div class="line"><a class="code" href="json__object_8h.html#a889345512a214b8f78f6a73561523c7c">json_object_set_serializer</a>(jso, <a class="code" href="json__object_8h.html#a56091ddbd2ec6d6200558cbeff1b86b8">json_object_userdata_to_json_string</a>,</div>
1498 <div class="line"> strdup(ds), <a class="code" href="json__object_8h.html#aff3190c34884bea3b4e65e286b973d89">json_object_free_userdata</a>);</div>
1499 </div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
1500 <table class="params">
1501 <tr><td class="paramname">d</td><td>the numeric value of the double. </td></tr>
1502 <tr><td class="paramname">ds</td><td>the string representation of the double. This will be copied. </td></tr>
1503 </table>
1504 </dd>
1505 </dl>
1506
1507 </div>
1508 </div>
1509 <a class="anchor" id="ae92f0770fb4b3c884ce35de52d3d7de8"></a>
1510 <div class="memitem">
1511 <div class="memproto">
1512 <table class="mlabels">
1513 <tr>
1514 <td class="mlabels-left">
1515 <table class="memname">
1516 <tr>
1517 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a>* json_object_new_int </td>
1518 <td>(</td>
1519 <td class="paramtype">int32_t&#160;</td>
1520 <td class="paramname"><em>i</em></td><td>)</td>
1521 <td></td>
1522 </tr>
1523 </table>
1524 </td>
1525 <td class="mlabels-right">
1526 <span class="mlabels"><span class="mlabel">read</span></span> </td>
1527 </tr>
1528 </table>
1529 </div><div class="memdoc">
1530 <p>Create a new empty <a class="el" href="structjson__object.html">json_object</a> of type json_type_int Note that values are stored as 64-bit values internally. To ensure the full range is maintained, use json_object_new_int64 instead. </p>
1531 <dl class="params"><dt>Parameters</dt><dd>
1532 <table class="params">
1533 <tr><td class="paramname">i</td><td>the integer </td></tr>
1534 </table>
1535 </dd>
1536 </dl>
1537 <dl class="section return"><dt>Returns</dt><dd>a <a class="el" href="structjson__object.html">json_object</a> of type json_type_int </dd></dl>
1538
1539 </div>
1540 </div>
1541 <a class="anchor" id="a7847f74494645c2b076505c37cc4cb93"></a>
1542 <div class="memitem">
1543 <div class="memproto">
1544 <table class="mlabels">
1545 <tr>
1546 <td class="mlabels-left">
1547 <table class="memname">
1548 <tr>
1549 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a>* json_object_new_int64 </td>
1550 <td>(</td>
1551 <td class="paramtype">int64_t&#160;</td>
1552 <td class="paramname"><em>i</em></td><td>)</td>
1553 <td></td>
1554 </tr>
1555 </table>
1556 </td>
1557 <td class="mlabels-right">
1558 <span class="mlabels"><span class="mlabel">read</span></span> </td>
1559 </tr>
1560 </table>
1561 </div><div class="memdoc">
1562 <p>Create a new empty <a class="el" href="structjson__object.html">json_object</a> of type json_type_int </p>
1563 <dl class="params"><dt>Parameters</dt><dd>
1564 <table class="params">
1565 <tr><td class="paramname">i</td><td>the integer </td></tr>
1566 </table>
1567 </dd>
1568 </dl>
1569 <dl class="section return"><dt>Returns</dt><dd>a <a class="el" href="structjson__object.html">json_object</a> of type json_type_int </dd></dl>
1570
1571 </div>
1572 </div>
1573 <a class="anchor" id="a29e23b5be729c679960242b3b81bcde0"></a>
1574 <div class="memitem">
1575 <div class="memproto">
1576 <table class="mlabels">
1577 <tr>
1578 <td class="mlabels-left">
1579 <table class="memname">
1580 <tr>
1581 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a>* json_object_new_null </td>
1582 <td>(</td>
1583 <td class="paramtype">void&#160;</td>
1584 <td class="paramname"></td><td>)</td>
1585 <td></td>
1586 </tr>
1587 </table>
1588 </td>
1589 <td class="mlabels-right">
1590 <span class="mlabels"><span class="mlabel">read</span></span> </td>
1591 </tr>
1592 </table>
1593 </div><div class="memdoc">
1594 <p>This method exists only to provide a complementary function along the lines of the other json_object_new_* functions. It always returns NULL, and it is entirely acceptable to simply use NULL directly. </p>
1595
1596 </div>
1597 </div>
1598 <a class="anchor" id="a68c383f54544fca19b5f2425be397600"></a>
1599 <div class="memitem">
1600 <div class="memproto">
1601 <table class="mlabels">
1602 <tr>
1603 <td class="mlabels-left">
1604 <table class="memname">
1605 <tr>
1606 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a>* json_object_new_object </td>
1607 <td>(</td>
1608 <td class="paramtype">void&#160;</td>
1609 <td class="paramname"></td><td>)</td>
1610 <td></td>
1611 </tr>
1612 </table>
1613 </td>
1614 <td class="mlabels-right">
1615 <span class="mlabels"><span class="mlabel">read</span></span> </td>
1616 </tr>
1617 </table>
1618 </div><div class="memdoc">
1619 <p>Create a new empty object with a reference count of 1. The caller of this object initially has sole ownership. Remember, when using json_object_object_add or json_object_array_put_idx, ownership will transfer to the object/array. Call json_object_get if you want to maintain shared ownership or also add this object as a child of multiple objects or arrays. Any ownerships you acquired but did not transfer must be released through json_object_put.</p>
1620 <dl class="section return"><dt>Returns</dt><dd>a <a class="el" href="structjson__object.html">json_object</a> of type json_type_object </dd></dl>
1621
1622 </div>
1623 </div>
1624 <a class="anchor" id="a7b7b5302b3903c9347eeb1f4a64d657b"></a>
1625 <div class="memitem">
1626 <div class="memproto">
1627 <table class="mlabels">
1628 <tr>
1629 <td class="mlabels-left">
1630 <table class="memname">
1631 <tr>
1632 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a>* json_object_new_string </td>
1633 <td>(</td>
1634 <td class="paramtype">const char *&#160;</td>
1635 <td class="paramname"><em>s</em></td><td>)</td>
1636 <td></td>
1637 </tr>
1638 </table>
1639 </td>
1640 <td class="mlabels-right">
1641 <span class="mlabels"><span class="mlabel">read</span></span> </td>
1642 </tr>
1643 </table>
1644 </div><div class="memdoc">
1645 <p>Create a new empty <a class="el" href="structjson__object.html">json_object</a> of type json_type_string</p>
1646 <p>A copy of the string is made and the memory is managed by the <a class="el" href="structjson__object.html">json_object</a></p>
1647 <dl class="params"><dt>Parameters</dt><dd>
1648 <table class="params">
1649 <tr><td class="paramname">s</td><td>the string </td></tr>
1650 </table>
1651 </dd>
1652 </dl>
1653 <dl class="section return"><dt>Returns</dt><dd>a <a class="el" href="structjson__object.html">json_object</a> of type json_type_string </dd></dl>
1654 <dl class="section see"><dt>See Also</dt><dd><a class="el" href="json__object_8h.html#a778a1aa34a508d08daac3bdb83e24b52">json_object_new_string_len()</a> </dd></dl>
1655
1656 </div>
1657 </div>
1658 <a class="anchor" id="a778a1aa34a508d08daac3bdb83e24b52"></a>
1659 <div class="memitem">
1660 <div class="memproto">
1661 <table class="mlabels">
1662 <tr>
1663 <td class="mlabels-left">
1664 <table class="memname">
1665 <tr>
1666 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a>* json_object_new_string_len </td>
1667 <td>(</td>
1668 <td class="paramtype">const char *&#160;</td>
1669 <td class="paramname"><em>s</em>, </td>
1670 </tr>
1671 <tr>
1672 <td class="paramkey"></td>
1673 <td></td>
1674 <td class="paramtype">const int&#160;</td>
1675 <td class="paramname"><em>len</em>&#160;</td>
1676 </tr>
1677 <tr>
1678 <td></td>
1679 <td>)</td>
1680 <td></td><td></td>
1681 </tr>
1682 </table>
1683 </td>
1684 <td class="mlabels-right">
1685 <span class="mlabels"><span class="mlabel">read</span></span> </td>
1686 </tr>
1687 </table>
1688 </div><div class="memdoc">
1689 <p>Create a new empty <a class="el" href="structjson__object.html">json_object</a> of type json_type_string and allocate len characters for the new string.</p>
1690 <p>A copy of the string is made and the memory is managed by the <a class="el" href="structjson__object.html">json_object</a></p>
1691 <dl class="params"><dt>Parameters</dt><dd>
1692 <table class="params">
1693 <tr><td class="paramname">s</td><td>the string </td></tr>
1694 <tr><td class="paramname">len</td><td>max length of the new string </td></tr>
1695 </table>
1696 </dd>
1697 </dl>
1698 <dl class="section return"><dt>Returns</dt><dd>a <a class="el" href="structjson__object.html">json_object</a> of type json_type_string </dd></dl>
1699 <dl class="section see"><dt>See Also</dt><dd><a class="el" href="json__object_8h.html#a7b7b5302b3903c9347eeb1f4a64d657b">json_object_new_string()</a> </dd></dl>
1700
1701 </div>
1702 </div>
1703 <a class="anchor" id="aa602ee5f6182b35f3f75a927320b4efd"></a>
1704 <div class="memitem">
1705 <div class="memproto">
1706 <table class="mlabels">
1707 <tr>
1708 <td class="mlabels-left">
1709 <table class="memname">
1710 <tr>
1711 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a>* json_object_new_uint64 </td>
1712 <td>(</td>
1713 <td class="paramtype">uint64_t&#160;</td>
1714 <td class="paramname"><em>i</em></td><td>)</td>
1715 <td></td>
1716 </tr>
1717 </table>
1718 </td>
1719 <td class="mlabels-right">
1720 <span class="mlabels"><span class="mlabel">read</span></span> </td>
1721 </tr>
1722 </table>
1723 </div><div class="memdoc">
1724 <p>Create a new empty <a class="el" href="structjson__object.html">json_object</a> of type json_type_uint </p>
1725 <dl class="params"><dt>Parameters</dt><dd>
1726 <table class="params">
1727 <tr><td class="paramname">i</td><td>the integer </td></tr>
1728 </table>
1729 </dd>
1730 </dl>
1731 <dl class="section return"><dt>Returns</dt><dd>a <a class="el" href="structjson__object.html">json_object</a> of type json_type_uint </dd></dl>
1732
1733 </div>
1734 </div>
1735 <a class="anchor" id="a27bd808a022251059a43f1f6370441cd"></a>
1736 <div class="memitem">
1737 <div class="memproto">
1738 <table class="memname">
1739 <tr>
1740 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_object_object_add </td>
1741 <td>(</td>
1742 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
1743 <td class="paramname"><em>obj</em>, </td>
1744 </tr>
1745 <tr>
1746 <td class="paramkey"></td>
1747 <td></td>
1748 <td class="paramtype">const char *&#160;</td>
1749 <td class="paramname"><em>key</em>, </td>
1750 </tr>
1751 <tr>
1752 <td class="paramkey"></td>
1753 <td></td>
1754 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
1755 <td class="paramname"><em>val</em>&#160;</td>
1756 </tr>
1757 <tr>
1758 <td></td>
1759 <td>)</td>
1760 <td></td><td></td>
1761 </tr>
1762 </table>
1763 </div><div class="memdoc">
1764 <p>Add an object field to a <a class="el" href="structjson__object.html">json_object</a> of type json_type_object</p>
1765 <p>The reference count will <em>not</em> be incremented. This is to make adding fields to objects in code more compact. If you want to retain a reference to an added object, independent of the lifetime of obj, you must wrap the passed object with json_object_get.</p>
1766 <p>Upon calling this, the ownership of val transfers to obj. Thus you must make sure that you do in fact have ownership over this object. For instance, json_object_new_object will give you ownership until you transfer it, whereas json_object_object_get does not.</p>
1767 <dl class="params"><dt>Parameters</dt><dd>
1768 <table class="params">
1769 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
1770 <tr><td class="paramname">key</td><td>the object field name (a private copy will be duplicated) </td></tr>
1771 <tr><td class="paramname">val</td><td>a <a class="el" href="structjson__object.html">json_object</a> or NULL member to associate with the given field</td></tr>
1772 </table>
1773 </dd>
1774 </dl>
1775 <dl class="section return"><dt>Returns</dt><dd>On success, <code>0</code> is returned. On error, a negative value is returned. </dd></dl>
1776
1777 </div>
1778 </div>
1779 <a class="anchor" id="a57d3e444dd7db6b4510d21bf3716a002"></a>
1780 <div class="memitem">
1781 <div class="memproto">
1782 <table class="memname">
1783 <tr>
1784 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_object_object_add_ex </td>
1785 <td>(</td>
1786 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
1787 <td class="paramname"><em>obj</em>, </td>
1788 </tr>
1789 <tr>
1790 <td class="paramkey"></td>
1791 <td></td>
1792 <td class="paramtype">const char *const&#160;</td>
1793 <td class="paramname"><em>key</em>, </td>
1794 </tr>
1795 <tr>
1796 <td class="paramkey"></td>
1797 <td></td>
1798 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *const&#160;</td>
1799 <td class="paramname"><em>val</em>, </td>
1800 </tr>
1801 <tr>
1802 <td class="paramkey"></td>
1803 <td></td>
1804 <td class="paramtype">const unsigned&#160;</td>
1805 <td class="paramname"><em>opts</em>&#160;</td>
1806 </tr>
1807 <tr>
1808 <td></td>
1809 <td>)</td>
1810 <td></td><td></td>
1811 </tr>
1812 </table>
1813 </div><div class="memdoc">
1814 <p>Add an object field to a <a class="el" href="structjson__object.html">json_object</a> of type json_type_object</p>
1815 <p>The semantics are identical to json_object_object_add, except that an additional flag fields gives you more control over some detail aspects of processing. See the description of JSON_C_OBJECT_ADD_* flags for more details.</p>
1816 <dl class="params"><dt>Parameters</dt><dd>
1817 <table class="params">
1818 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
1819 <tr><td class="paramname">key</td><td>the object field name (a private copy will be duplicated) </td></tr>
1820 <tr><td class="paramname">val</td><td>a <a class="el" href="structjson__object.html">json_object</a> or NULL member to associate with the given field </td></tr>
1821 <tr><td class="paramname">opts</td><td>process-modifying options. To specify multiple options, use arithmetic or (OPT1|OPT2) </td></tr>
1822 </table>
1823 </dd>
1824 </dl>
1825
1826 </div>
1827 </div>
1828 <a class="anchor" id="ac6605fdafca20bd5d33c84f4f80a3bda"></a>
1829 <div class="memitem">
1830 <div class="memproto">
1831 <table class="memname">
1832 <tr>
1833 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void json_object_object_del </td>
1834 <td>(</td>
1835 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
1836 <td class="paramname"><em>obj</em>, </td>
1837 </tr>
1838 <tr>
1839 <td class="paramkey"></td>
1840 <td></td>
1841 <td class="paramtype">const char *&#160;</td>
1842 <td class="paramname"><em>key</em>&#160;</td>
1843 </tr>
1844 <tr>
1845 <td></td>
1846 <td>)</td>
1847 <td></td><td></td>
1848 </tr>
1849 </table>
1850 </div><div class="memdoc">
1851 <p>Delete the given <a class="el" href="structjson__object.html">json_object</a> field</p>
1852 <p>The reference count will be decremented for the deleted object. If there are no more owners of the value represented by this key, then the value is freed. Otherwise, the reference to the value will remain in memory.</p>
1853 <dl class="params"><dt>Parameters</dt><dd>
1854 <table class="params">
1855 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
1856 <tr><td class="paramname">key</td><td>the object field name </td></tr>
1857 </table>
1858 </dd>
1859 </dl>
1860
1861 </div>
1862 </div>
1863 <a class="anchor" id="a1a097805abb53b4c8a60d573730a8939"></a>
1864 <div class="memitem">
1865 <div class="memproto">
1866 <table class="mlabels">
1867 <tr>
1868 <td class="mlabels-left">
1869 <table class="memname">
1870 <tr>
1871 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a>* json_object_object_get </td>
1872 <td>(</td>
1873 <td class="paramtype">const struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
1874 <td class="paramname"><em>obj</em>, </td>
1875 </tr>
1876 <tr>
1877 <td class="paramkey"></td>
1878 <td></td>
1879 <td class="paramtype">const char *&#160;</td>
1880 <td class="paramname"><em>key</em>&#160;</td>
1881 </tr>
1882 <tr>
1883 <td></td>
1884 <td>)</td>
1885 <td></td><td></td>
1886 </tr>
1887 </table>
1888 </td>
1889 <td class="mlabels-right">
1890 <span class="mlabels"><span class="mlabel">read</span></span> </td>
1891 </tr>
1892 </table>
1893 </div><div class="memdoc">
1894 <p>Get the <a class="el" href="structjson__object.html">json_object</a> associate with a given object field. Deprecated/discouraged: used json_object_object_get_ex instead.</p>
1895 <p>This returns NULL if the field is found but its value is null, or if the field is not found, or if obj is not a json_type_object. If you need to distinguish between these cases, use <a class="el" href="json__object_8h.html#a90d5f16d58636f01d2ed1a6030c7366a">json_object_object_get_ex()</a>.</p>
1896 <p><em>No</em> reference counts will be changed. There is no need to manually adjust reference counts through the json_object_put/json_object_get methods unless you need to have the child (value) reference maintain a different lifetime than the owning parent (obj). Ownership of the returned value is retained by obj (do not do json_object_put unless you have done a json_object_get). If you delete the value from obj (json_object_object_del) and wish to access the returned reference afterwards, make sure you have first gotten shared ownership through json_object_get (&amp; don't forget to do a json_object_put or transfer ownership to prevent a memory leak).</p>
1897 <dl class="params"><dt>Parameters</dt><dd>
1898 <table class="params">
1899 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
1900 <tr><td class="paramname">key</td><td>the object field name </td></tr>
1901 </table>
1902 </dd>
1903 </dl>
1904 <dl class="section return"><dt>Returns</dt><dd>the <a class="el" href="structjson__object.html">json_object</a> associated with the given field name </dd></dl>
1905
1906 </div>
1907 </div>
1908 <a class="anchor" id="a90d5f16d58636f01d2ed1a6030c7366a"></a>
1909 <div class="memitem">
1910 <div class="memproto">
1911 <table class="memname">
1912 <tr>
1913 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> <a class="el" href="json__types_8h.html#a81f02022906fafc71eb9197049f07f73">json_bool</a> json_object_object_get_ex </td>
1914 <td>(</td>
1915 <td class="paramtype">const struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
1916 <td class="paramname"><em>obj</em>, </td>
1917 </tr>
1918 <tr>
1919 <td class="paramkey"></td>
1920 <td></td>
1921 <td class="paramtype">const char *&#160;</td>
1922 <td class="paramname"><em>key</em>, </td>
1923 </tr>
1924 <tr>
1925 <td class="paramkey"></td>
1926 <td></td>
1927 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> **&#160;</td>
1928 <td class="paramname"><em>value</em>&#160;</td>
1929 </tr>
1930 <tr>
1931 <td></td>
1932 <td>)</td>
1933 <td></td><td></td>
1934 </tr>
1935 </table>
1936 </div><div class="memdoc">
1937 <p>Get the <a class="el" href="structjson__object.html">json_object</a> associated with a given object field.</p>
1938 <p>This returns true if the key is found, false in all other cases (including if obj isn't a json_type_object).</p>
1939 <p><em>No</em> reference counts will be changed. There is no need to manually adjust reference counts through the json_object_put/json_object_get methods unless you need to have the child (value) reference maintain a different lifetime than the owning parent (obj). Ownership of value is retained by obj.</p>
1940 <dl class="params"><dt>Parameters</dt><dd>
1941 <table class="params">
1942 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
1943 <tr><td class="paramname">key</td><td>the object field name </td></tr>
1944 <tr><td class="paramname">value</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 field name.</td></tr>
1945 </table>
1946 </dd>
1947 </dl>
1948 <p>It is safe to pass a NULL value. </p>
1949 <dl class="section return"><dt>Returns</dt><dd>whether or not the key exists </dd></dl>
1950
1951 </div>
1952 </div>
1953 <a class="anchor" id="ad59a0ad2ec914a5eef90af53acae06d9"></a>
1954 <div class="memitem">
1955 <div class="memproto">
1956 <table class="memname">
1957 <tr>
1958 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_object_object_length </td>
1959 <td>(</td>
1960 <td class="paramtype">const struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
1961 <td class="paramname"><em>obj</em></td><td>)</td>
1962 <td></td>
1963 </tr>
1964 </table>
1965 </div><div class="memdoc">
1966 <p>Get the size of an object in terms of the number of fields it has. </p>
1967 <dl class="params"><dt>Parameters</dt><dd>
1968 <table class="params">
1969 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> whose length to return </td></tr>
1970 </table>
1971 </dd>
1972 </dl>
1973
1974 </div>
1975 </div>
1976 <a class="anchor" id="afabf61f932cd64a4122ca8092452eed5"></a>
1977 <div class="memitem">
1978 <div class="memproto">
1979 <table class="memname">
1980 <tr>
1981 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_object_put </td>
1982 <td>(</td>
1983 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
1984 <td class="paramname"><em>obj</em></td><td>)</td>
1985 <td></td>
1986 </tr>
1987 </table>
1988 </div><div class="memdoc">
1989 <p>Decrement the reference count of <a class="el" href="structjson__object.html">json_object</a> and free if it reaches zero. You must have ownership of obj prior to doing this or you will cause an imbalance in the reference count. An obj of NULL may be passed; in that case this call is a no-op.</p>
1990 <dl class="params"><dt>Parameters</dt><dd>
1991 <table class="params">
1992 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
1993 </table>
1994 </dd>
1995 </dl>
1996 <dl class="section return"><dt>Returns</dt><dd>1 if the object was freed. </dd></dl>
1997
1998 </div>
1999 </div>
2000 <a class="anchor" id="a23863c1503f3a8dd8a460a6405da0a65"></a>
2001 <div class="memitem">
2002 <div class="memproto">
2003 <table class="memname">
2004 <tr>
2005 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_object_set_boolean </td>
2006 <td>(</td>
2007 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
2008 <td class="paramname"><em>obj</em>, </td>
2009 </tr>
2010 <tr>
2011 <td class="paramkey"></td>
2012 <td></td>
2013 <td class="paramtype"><a class="el" href="json__types_8h.html#a81f02022906fafc71eb9197049f07f73">json_bool</a>&#160;</td>
2014 <td class="paramname"><em>new_value</em>&#160;</td>
2015 </tr>
2016 <tr>
2017 <td></td>
2018 <td>)</td>
2019 <td></td><td></td>
2020 </tr>
2021 </table>
2022 </div><div class="memdoc">
2023 <p>Set the json_bool value of a <a class="el" href="structjson__object.html">json_object</a></p>
2024 <p>The type of obj is checked to be a json_type_boolean and 0 is returned if it is not without any further actions. If type of obj is json_type_boolean the object value is changed to new_value</p>
2025 <dl class="params"><dt>Parameters</dt><dd>
2026 <table class="params">
2027 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
2028 <tr><td class="paramname">new_value</td><td>the value to be set </td></tr>
2029 </table>
2030 </dd>
2031 </dl>
2032 <dl class="section return"><dt>Returns</dt><dd>1 if value is set correctly, 0 otherwise </dd></dl>
2033
2034 </div>
2035 </div>
2036 <a class="anchor" id="a3a7b7ce585565558cb69dad8d45d7757"></a>
2037 <div class="memitem">
2038 <div class="memproto">
2039 <table class="memname">
2040 <tr>
2041 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_object_set_double </td>
2042 <td>(</td>
2043 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
2044 <td class="paramname"><em>obj</em>, </td>
2045 </tr>
2046 <tr>
2047 <td class="paramkey"></td>
2048 <td></td>
2049 <td class="paramtype">double&#160;</td>
2050 <td class="paramname"><em>new_value</em>&#160;</td>
2051 </tr>
2052 <tr>
2053 <td></td>
2054 <td>)</td>
2055 <td></td><td></td>
2056 </tr>
2057 </table>
2058 </div><div class="memdoc">
2059 <p>Set the double value of a <a class="el" href="structjson__object.html">json_object</a></p>
2060 <p>The type of obj is checked to be a json_type_double and 0 is returned if it is not without any further actions. If type of obj is json_type_double the object value is changed to new_value</p>
2061 <p>If the object was created with <a class="el" href="json__object_8h.html#ae49671c026fe1ada370a75321e4e65f6">json_object_new_double_s()</a>, the serialization function is reset to the default and the cached serialized value is cleared.</p>
2062 <dl class="params"><dt>Parameters</dt><dd>
2063 <table class="params">
2064 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
2065 <tr><td class="paramname">new_value</td><td>the value to be set </td></tr>
2066 </table>
2067 </dd>
2068 </dl>
2069 <dl class="section return"><dt>Returns</dt><dd>1 if value is set correctly, 0 otherwise </dd></dl>
2070
2071 </div>
2072 </div>
2073 <a class="anchor" id="a4ab3568f12e01fd2967e765a72456caa"></a>
2074 <div class="memitem">
2075 <div class="memproto">
2076 <table class="memname">
2077 <tr>
2078 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_object_set_int </td>
2079 <td>(</td>
2080 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
2081 <td class="paramname"><em>obj</em>, </td>
2082 </tr>
2083 <tr>
2084 <td class="paramkey"></td>
2085 <td></td>
2086 <td class="paramtype">int&#160;</td>
2087 <td class="paramname"><em>new_value</em>&#160;</td>
2088 </tr>
2089 <tr>
2090 <td></td>
2091 <td>)</td>
2092 <td></td><td></td>
2093 </tr>
2094 </table>
2095 </div><div class="memdoc">
2096 <p>Set the int value of a <a class="el" href="structjson__object.html">json_object</a></p>
2097 <p>The type of obj is checked to be a json_type_int and 0 is returned if it is not without any further actions. If type of obj is json_type_int the object value is changed to new_value</p>
2098 <dl class="params"><dt>Parameters</dt><dd>
2099 <table class="params">
2100 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
2101 <tr><td class="paramname">new_value</td><td>the value to be set </td></tr>
2102 </table>
2103 </dd>
2104 </dl>
2105 <dl class="section return"><dt>Returns</dt><dd>1 if value is set correctly, 0 otherwise </dd></dl>
2106
2107 </div>
2108 </div>
2109 <a class="anchor" id="a7d3948600dde732abed0e261264ef53a"></a>
2110 <div class="memitem">
2111 <div class="memproto">
2112 <table class="memname">
2113 <tr>
2114 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_object_set_int64 </td>
2115 <td>(</td>
2116 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
2117 <td class="paramname"><em>obj</em>, </td>
2118 </tr>
2119 <tr>
2120 <td class="paramkey"></td>
2121 <td></td>
2122 <td class="paramtype">int64_t&#160;</td>
2123 <td class="paramname"><em>new_value</em>&#160;</td>
2124 </tr>
2125 <tr>
2126 <td></td>
2127 <td>)</td>
2128 <td></td><td></td>
2129 </tr>
2130 </table>
2131 </div><div class="memdoc">
2132 <p>Set the int64_t value of a <a class="el" href="structjson__object.html">json_object</a></p>
2133 <p>The type of obj is checked to be a json_type_int and 0 is returned if it is not without any further actions. If type of obj is json_type_int the object value is changed to new_value</p>
2134 <dl class="params"><dt>Parameters</dt><dd>
2135 <table class="params">
2136 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
2137 <tr><td class="paramname">new_value</td><td>the value to be set </td></tr>
2138 </table>
2139 </dd>
2140 </dl>
2141 <dl class="section return"><dt>Returns</dt><dd>1 if value is set correctly, 0 otherwise </dd></dl>
2142
2143 </div>
2144 </div>
2145 <a class="anchor" id="a889345512a214b8f78f6a73561523c7c"></a>
2146 <div class="memitem">
2147 <div class="memproto">
2148 <table class="memname">
2149 <tr>
2150 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void json_object_set_serializer </td>
2151 <td>(</td>
2152 <td class="paramtype"><a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
2153 <td class="paramname"><em>jso</em>, </td>
2154 </tr>
2155 <tr>
2156 <td class="paramkey"></td>
2157 <td></td>
2158 <td class="paramtype"><a class="el" href="json__types_8h.html#af84078100a9025df418f31626ea866fa">json_object_to_json_string_fn</a> *&#160;</td>
2159 <td class="paramname"><em>to_string_func</em>, </td>
2160 </tr>
2161 <tr>
2162 <td class="paramkey"></td>
2163 <td></td>
2164 <td class="paramtype">void *&#160;</td>
2165 <td class="paramname"><em>userdata</em>, </td>
2166 </tr>
2167 <tr>
2168 <td class="paramkey"></td>
2169 <td></td>
2170 <td class="paramtype"><a class="el" href="json__types_8h.html#aa647d7c567a06abe1a1a511f6d6860e4">json_object_delete_fn</a> *&#160;</td>
2171 <td class="paramname"><em>user_delete</em>&#160;</td>
2172 </tr>
2173 <tr>
2174 <td></td>
2175 <td>)</td>
2176 <td></td><td></td>
2177 </tr>
2178 </table>
2179 </div><div class="memdoc">
2180 <p>Set a custom serialization function to be used when this particular object is converted to a string by json_object_to_json_string.</p>
2181 <p>If custom userdata is already set on this object, any existing user_delete function is called before the new one is set.</p>
2182 <p>If to_string_func is NULL the default behaviour is reset (but the userdata and user_delete fields are still set).</p>
2183 <p>The userdata parameter is optional and may be passed as NULL. It can be used to provide additional data for to_string_func to use. This parameter may be NULL even if user_delete is non-NULL.</p>
2184 <p>The user_delete parameter is optional and may be passed as NULL, even if the userdata parameter is non-NULL. It will be called just before the <a class="el" href="structjson__object.html">json_object</a> is deleted, after it's reference count goes to zero (see <a class="el" href="json__object_8h.html#afabf61f932cd64a4122ca8092452eed5">json_object_put()</a>). If this is not provided, it is up to the caller to free the userdata at an appropriate time. (i.e. after the <a class="el" href="structjson__object.html">json_object</a> is deleted)</p>
2185 <p>Note that the userdata is the same as set by <a class="el" href="json__object_8h.html#a4ee4281ccd123c62878e931a0a3bc43b">json_object_set_userdata()</a>, so care must be taken not to overwrite the value when both a custom serializer and <a class="el" href="json__object_8h.html#a4ee4281ccd123c62878e931a0a3bc43b">json_object_set_userdata()</a> are used.</p>
2186 <dl class="params"><dt>Parameters</dt><dd>
2187 <table class="params">
2188 <tr><td class="paramname">jso</td><td>the object to customize </td></tr>
2189 <tr><td class="paramname">to_string_func</td><td>the custom serialization function </td></tr>
2190 <tr><td class="paramname">userdata</td><td>an optional opaque cookie </td></tr>
2191 <tr><td class="paramname">user_delete</td><td>an optional function from freeing userdata </td></tr>
2192 </table>
2193 </dd>
2194 </dl>
2195
2196 </div>
2197 </div>
2198 <a class="anchor" id="ac35013e51cdc0651512801c947df431c"></a>
2199 <div class="memitem">
2200 <div class="memproto">
2201 <table class="memname">
2202 <tr>
2203 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_object_set_string </td>
2204 <td>(</td>
2205 <td class="paramtype"><a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
2206 <td class="paramname"><em>obj</em>, </td>
2207 </tr>
2208 <tr>
2209 <td class="paramkey"></td>
2210 <td></td>
2211 <td class="paramtype">const char *&#160;</td>
2212 <td class="paramname"><em>new_value</em>&#160;</td>
2213 </tr>
2214 <tr>
2215 <td></td>
2216 <td>)</td>
2217 <td></td><td></td>
2218 </tr>
2219 </table>
2220 </div><div class="memdoc">
2221 <p>Set the string value of a <a class="el" href="structjson__object.html">json_object</a> with zero terminated strings equivalent to json_object_set_string_len (obj, new_value, strlen(new_value)) </p>
2222 <dl class="section return"><dt>Returns</dt><dd>1 if value is set correctly, 0 otherwise </dd></dl>
2223
2224 </div>
2225 </div>
2226 <a class="anchor" id="ae48707a0c8689e14aaa3a9b831db27fc"></a>
2227 <div class="memitem">
2228 <div class="memproto">
2229 <table class="memname">
2230 <tr>
2231 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_object_set_string_len </td>
2232 <td>(</td>
2233 <td class="paramtype"><a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
2234 <td class="paramname"><em>obj</em>, </td>
2235 </tr>
2236 <tr>
2237 <td class="paramkey"></td>
2238 <td></td>
2239 <td class="paramtype">const char *&#160;</td>
2240 <td class="paramname"><em>new_value</em>, </td>
2241 </tr>
2242 <tr>
2243 <td class="paramkey"></td>
2244 <td></td>
2245 <td class="paramtype">int&#160;</td>
2246 <td class="paramname"><em>len</em>&#160;</td>
2247 </tr>
2248 <tr>
2249 <td></td>
2250 <td>)</td>
2251 <td></td><td></td>
2252 </tr>
2253 </table>
2254 </div><div class="memdoc">
2255 <p>Set the string value of a <a class="el" href="structjson__object.html">json_object</a> str</p>
2256 <p>The type of obj is checked to be a json_type_string and 0 is returned if it is not without any further actions. If type of obj is json_type_string the object value is changed to new_value</p>
2257 <dl class="params"><dt>Parameters</dt><dd>
2258 <table class="params">
2259 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
2260 <tr><td class="paramname">new_value</td><td>the value to be set; Since string length is given in len this need not be zero terminated </td></tr>
2261 <tr><td class="paramname">len</td><td>the length of new_value </td></tr>
2262 </table>
2263 </dd>
2264 </dl>
2265 <dl class="section return"><dt>Returns</dt><dd>1 if value is set correctly, 0 otherwise </dd></dl>
2266
2267 </div>
2268 </div>
2269 <a class="anchor" id="a9900aa9a425e6f14e295b298460b65d4"></a>
2270 <div class="memitem">
2271 <div class="memproto">
2272 <table class="memname">
2273 <tr>
2274 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_object_set_uint64 </td>
2275 <td>(</td>
2276 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
2277 <td class="paramname"><em>obj</em>, </td>
2278 </tr>
2279 <tr>
2280 <td class="paramkey"></td>
2281 <td></td>
2282 <td class="paramtype">uint64_t&#160;</td>
2283 <td class="paramname"><em>new_value</em>&#160;</td>
2284 </tr>
2285 <tr>
2286 <td></td>
2287 <td>)</td>
2288 <td></td><td></td>
2289 </tr>
2290 </table>
2291 </div><div class="memdoc">
2292 <p>Set the uint64_t value of a <a class="el" href="structjson__object.html">json_object</a></p>
2293 <p>The type of obj is checked to be a json_type_uint and 0 is returned if it is not without any further actions. If type of obj is json_type_uint the object value is changed to new_value</p>
2294 <dl class="params"><dt>Parameters</dt><dd>
2295 <table class="params">
2296 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
2297 <tr><td class="paramname">new_value</td><td>the value to be set </td></tr>
2298 </table>
2299 </dd>
2300 </dl>
2301 <dl class="section return"><dt>Returns</dt><dd>1 if value is set correctly, 0 otherwise </dd></dl>
2302
2303 </div>
2304 </div>
2305 <a class="anchor" id="a4ee4281ccd123c62878e931a0a3bc43b"></a>
2306 <div class="memitem">
2307 <div class="memproto">
2308 <table class="memname">
2309 <tr>
2310 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void json_object_set_userdata </td>
2311 <td>(</td>
2312 <td class="paramtype"><a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
2313 <td class="paramname"><em>jso</em>, </td>
2314 </tr>
2315 <tr>
2316 <td class="paramkey"></td>
2317 <td></td>
2318 <td class="paramtype">void *&#160;</td>
2319 <td class="paramname"><em>userdata</em>, </td>
2320 </tr>
2321 <tr>
2322 <td class="paramkey"></td>
2323 <td></td>
2324 <td class="paramtype"><a class="el" href="json__types_8h.html#aa647d7c567a06abe1a1a511f6d6860e4">json_object_delete_fn</a> *&#160;</td>
2325 <td class="paramname"><em>user_delete</em>&#160;</td>
2326 </tr>
2327 <tr>
2328 <td></td>
2329 <td>)</td>
2330 <td></td><td></td>
2331 </tr>
2332 </table>
2333 </div><div class="memdoc">
2334 <p>Set an opaque userdata value for an object</p>
2335 <p>The userdata can be retrieved using <a class="el" href="json__object_8h.html#ae925f3ec0f61cba5ea3dd50e0315f194">json_object_get_userdata()</a>.</p>
2336 <p>If custom userdata is already set on this object, any existing user_delete function is called before the new one is set.</p>
2337 <p>The user_delete parameter is optional and may be passed as NULL, even if the userdata parameter is non-NULL. It will be called just before the <a class="el" href="structjson__object.html">json_object</a> is deleted, after it's reference count goes to zero (see <a class="el" href="json__object_8h.html#afabf61f932cd64a4122ca8092452eed5">json_object_put()</a>). If this is not provided, it is up to the caller to free the userdata at an appropriate time. (i.e. after the <a class="el" href="structjson__object.html">json_object</a> is deleted)</p>
2338 <p>Note: Objects created by parsing strings may have custom serializers set which expect the userdata to contain specific data (due to use of <a class="el" href="json__object_8h.html#ae49671c026fe1ada370a75321e4e65f6">json_object_new_double_s()</a>). In this case, json_object_set_serialiser() with NULL as to_string_func should be used instead to set the userdata and reset the serializer to its default value.</p>
2339 <dl class="params"><dt>Parameters</dt><dd>
2340 <table class="params">
2341 <tr><td class="paramname">jso</td><td>the object to set the userdata for </td></tr>
2342 <tr><td class="paramname">userdata</td><td>an optional opaque cookie </td></tr>
2343 <tr><td class="paramname">user_delete</td><td>an optional function from freeing userdata </td></tr>
2344 </table>
2345 </dd>
2346 </dl>
2347
2348 </div>
2349 </div>
2350 <a class="anchor" id="ab7390c22baa1700d977c2af6b22d43a4"></a>
2351 <div class="memitem">
2352 <div class="memproto">
2353 <table class="memname">
2354 <tr>
2355 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> const char* json_object_to_json_string </td>
2356 <td>(</td>
2357 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
2358 <td class="paramname"><em>obj</em></td><td>)</td>
2359 <td></td>
2360 </tr>
2361 </table>
2362 </div><div class="memdoc">
2363 <p>Stringify object to json format. Equivalent to json_object_to_json_string_ext(obj, JSON_C_TO_STRING_SPACED) The pointer you get is an internal of your json object. You don't have to free it, later use of <a class="el" href="json__object_8h.html#afabf61f932cd64a4122ca8092452eed5">json_object_put()</a> should be sufficient. If you can not ensure there's no concurrent access to *obj use strdup(). </p>
2364 <dl class="params"><dt>Parameters</dt><dd>
2365 <table class="params">
2366 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
2367 </table>
2368 </dd>
2369 </dl>
2370 <dl class="section return"><dt>Returns</dt><dd>a string in JSON format </dd></dl>
2371
2372 </div>
2373 </div>
2374 <a class="anchor" id="a9db613127bd4ef7db42307e43a85fc1b"></a>
2375 <div class="memitem">
2376 <div class="memproto">
2377 <table class="memname">
2378 <tr>
2379 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> const char* json_object_to_json_string_ext </td>
2380 <td>(</td>
2381 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
2382 <td class="paramname"><em>obj</em>, </td>
2383 </tr>
2384 <tr>
2385 <td class="paramkey"></td>
2386 <td></td>
2387 <td class="paramtype">int&#160;</td>
2388 <td class="paramname"><em>flags</em>&#160;</td>
2389 </tr>
2390 <tr>
2391 <td></td>
2392 <td>)</td>
2393 <td></td><td></td>
2394 </tr>
2395 </table>
2396 </div><div class="memdoc">
2397 <p>Stringify object to json format </p>
2398 <dl class="section see"><dt>See Also</dt><dd><a class="el" href="json__object_8h.html#ab7390c22baa1700d977c2af6b22d43a4">json_object_to_json_string()</a> for details on how to free string. </dd></dl>
2399 <dl class="params"><dt>Parameters</dt><dd>
2400 <table class="params">
2401 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
2402 <tr><td class="paramname">flags</td><td>formatting options, see JSON_C_TO_STRING_PRETTY and other constants </td></tr>
2403 </table>
2404 </dd>
2405 </dl>
2406 <dl class="section return"><dt>Returns</dt><dd>a string in JSON format </dd></dl>
2407
2408 </div>
2409 </div>
2410 <a class="anchor" id="add3770a3ba3d01a8f9adedfcd6bd8dbb"></a>
2411 <div class="memitem">
2412 <div class="memproto">
2413 <table class="memname">
2414 <tr>
2415 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> const char* json_object_to_json_string_length </td>
2416 <td>(</td>
2417 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
2418 <td class="paramname"><em>obj</em>, </td>
2419 </tr>
2420 <tr>
2421 <td class="paramkey"></td>
2422 <td></td>
2423 <td class="paramtype">int&#160;</td>
2424 <td class="paramname"><em>flags</em>, </td>
2425 </tr>
2426 <tr>
2427 <td class="paramkey"></td>
2428 <td></td>
2429 <td class="paramtype">size_t *&#160;</td>
2430 <td class="paramname"><em>length</em>&#160;</td>
2431 </tr>
2432 <tr>
2433 <td></td>
2434 <td>)</td>
2435 <td></td><td></td>
2436 </tr>
2437 </table>
2438 </div><div class="memdoc">
2439 <p>Stringify object to json format </p>
2440 <dl class="section see"><dt>See Also</dt><dd><a class="el" href="json__object_8h.html#ab7390c22baa1700d977c2af6b22d43a4">json_object_to_json_string()</a> for details on how to free string. </dd></dl>
2441 <dl class="params"><dt>Parameters</dt><dd>
2442 <table class="params">
2443 <tr><td class="paramname">obj</td><td>the <a class="el" href="structjson__object.html">json_object</a> instance </td></tr>
2444 <tr><td class="paramname">flags</td><td>formatting options, see JSON_C_TO_STRING_PRETTY and other constants </td></tr>
2445 <tr><td class="paramname">length</td><td>a pointer where, if not NULL, the length (without null) is stored </td></tr>
2446 </table>
2447 </dd>
2448 </dl>
2449 <dl class="section return"><dt>Returns</dt><dd>a string in JSON format and the length if not NULL </dd></dl>
2450
2451 </div>
2452 </div>
2453 <h2 class="groupheader">Variable Documentation</h2>
2454 <a class="anchor" id="a86ea08e75ddf054742bf806a3bc3f983"></a>
2455 <div class="memitem">
2456 <div class="memproto">
2457 <table class="memname">
2458 <tr>
2459 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> <a class="el" href="json__object_8h.html#af4562514916f62ea56adf752ada10b52">json_c_shallow_copy_fn</a> json_c_shallow_copy_default</td>
2460 </tr>
2461 </table>
2462 </div><div class="memdoc">
2463 <p>The default shallow copy implementation for use with <a class="el" href="json__object_8h.html#aaac16505f13bc56accfad82604d8bcdc">json_object_deep_copy()</a>. This simply calls the appropriate json_object_new_&lt;type&gt;() function and copies over the serializer function (_to_json_string internal field of the <a class="el" href="structjson__object.html">json_object</a> structure) but not any _userdata or _user_delete values.</p>
2464 <p>If you're writing a custom shallow_copy function, perhaps because you're using your own custom serializer, you can call this first to create the new object before customizing it with <a class="el" href="json__object_8h.html#a889345512a214b8f78f6a73561523c7c">json_object_set_serializer()</a>.</p>
2465 <dl class="section return"><dt>Returns</dt><dd>1 on success, -1 on errors, but never 2. </dd></dl>
2466
2467 </div>
2468 </div>
2469 <a class="anchor" id="aff3190c34884bea3b4e65e286b973d89"></a>
2470 <div class="memitem">
2471 <div class="memproto">
2472 <table class="memname">
2473 <tr>
2474 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> <a class="el" href="json__types_8h.html#aa647d7c567a06abe1a1a511f6d6860e4">json_object_delete_fn</a> json_object_free_userdata</td>
2475 </tr>
2476 </table>
2477 </div><div class="memdoc">
2478 <p>Simply call free on the userdata pointer. Can be used with <a class="el" href="json__object_8h.html#a889345512a214b8f78f6a73561523c7c">json_object_set_serializer()</a>.</p>
2479 <dl class="params"><dt>Parameters</dt><dd>
2480 <table class="params">
2481 <tr><td class="paramname">jso</td><td>unused </td></tr>
2482 <tr><td class="paramname">userdata</td><td>the pointer that is passed to free(). </td></tr>
2483 </table>
2484 </dd>
2485 </dl>
2486
2487 </div>
2488 </div>
2489 <a class="anchor" id="a56091ddbd2ec6d6200558cbeff1b86b8"></a>
2490 <div class="memitem">
2491 <div class="memproto">
2492 <table class="memname">
2493 <tr>
2494 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> <a class="el" href="json__types_8h.html#af84078100a9025df418f31626ea866fa">json_object_to_json_string_fn</a> json_object_userdata_to_json_string</td>
2495 </tr>
2496 </table>
2497 </div><div class="memdoc">
2498 <p>Copy the jso-&gt;_userdata string over to pb as-is. Can be used with <a class="el" href="json__object_8h.html#a889345512a214b8f78f6a73561523c7c">json_object_set_serializer()</a>.</p>
2499 <dl class="params"><dt>Parameters</dt><dd>
2500 <table class="params">
2501 <tr><td class="paramname">jso</td><td>The object whose _userdata is used. </td></tr>
2502 <tr><td class="paramname">pb</td><td>The destination buffer. </td></tr>
2503 <tr><td class="paramname">level</td><td>Ignored. </td></tr>
2504 <tr><td class="paramname">flags</td><td>Ignored. </td></tr>
2505 </table>
2506 </dd>
2507 </dl>
2508
2509 </div>
2510 </div>
2511 </div><!-- contents -->
2512 <!-- start footer part -->
2513 <hr class="footer"/><address class="footer"><small>
2514 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
2515 <img class="footer" src="doxygen.png" alt="doxygen"/>
2516 </a> 1.8.2
2517 </small></address>
2518 </body>
2519 </html>
+0
-334
doc/html/json__object__iterator_8h.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: json_object_iterator.h File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#nested-classes">Data Structures</a> &#124;
46 <a href="#func-members">Functions</a> </div>
47 <div class="headertitle">
48 <div class="title">json_object_iterator.h File Reference</div> </div>
49 </div><!--header-->
50 <div class="contents">
51
52 <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>.
53 <a href="#details">More...</a></p>
54 <table class="memberdecls">
55 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
56 Data Structures</h2></td></tr>
57 <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>
58 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
59 </table><table class="memberdecls">
60 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
61 Functions</h2></td></tr>
62 <tr class="memitem:ae93958fa755852192553f1686d248cd1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <br class="typebreak"/>
63 <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#ae93958fa755852192553f1686d248cd1">json_object_iter_init_default</a> (void)</td></tr>
64 <tr class="separator:ae93958fa755852192553f1686d248cd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
65 <tr class="memitem:afdcd32f83dd8f20e25669f197fb7bde9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <br class="typebreak"/>
66 <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#afdcd32f83dd8f20e25669f197fb7bde9">json_object_iter_begin</a> (struct <a class="el" href="structjson__object.html">json_object</a> *obj)</td></tr>
67 <tr class="separator:afdcd32f83dd8f20e25669f197fb7bde9"><td class="memSeparator" colspan="2">&#160;</td></tr>
68 <tr class="memitem:a381fbae848a3268013110002d553c32e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <br class="typebreak"/>
69 <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#a381fbae848a3268013110002d553c32e">json_object_iter_end</a> (const struct <a class="el" href="structjson__object.html">json_object</a> *obj)</td></tr>
70 <tr class="separator:a381fbae848a3268013110002d553c32e"><td class="memSeparator" colspan="2">&#160;</td></tr>
71 <tr class="memitem:a8a152d153844f1ec1698419abae8c2e4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object__iterator_8h.html#a8a152d153844f1ec1698419abae8c2e4">json_object_iter_next</a> (struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> *iter)</td></tr>
72 <tr class="separator:a8a152d153844f1ec1698419abae8c2e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
73 <tr class="memitem:adbbc3583aef14d9416a0fc8dbf750727"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object__iterator_8h.html#adbbc3583aef14d9416a0fc8dbf750727">json_object_iter_peek_name</a> (const struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> *iter)</td></tr>
74 <tr class="separator:adbbc3583aef14d9416a0fc8dbf750727"><td class="memSeparator" colspan="2">&#160;</td></tr>
75 <tr class="memitem:ad8fe9251ca04af4d8e6840a44de7984b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> 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#ad8fe9251ca04af4d8e6840a44de7984b">json_object_iter_peek_value</a> (const struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> *iter)</td></tr>
76 <tr class="separator:ad8fe9251ca04af4d8e6840a44de7984b"><td class="memSeparator" colspan="2">&#160;</td></tr>
77 <tr class="memitem:a9cbb250d185348e8b193a886c35ae39e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> <a class="el" href="json__types_8h.html#a81f02022906fafc71eb9197049f07f73">json_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object__iterator_8h.html#a9cbb250d185348e8b193a886c35ae39e">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>
78 <tr class="separator:a9cbb250d185348e8b193a886c35ae39e"><td class="memSeparator" colspan="2">&#160;</td></tr>
79 </table>
80 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
81 <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>
82 <p>Copyright (c) 2009-2012 Hewlett-Packard Development Company, L.P.</p>
83 <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>
84 <p>API attributes: <br/>
85 </p>
86 <ul>
87 <li>Thread-safe: NO<br/>
88 </li>
89 <li>Reentrant: NO </li>
90 </ul>
91 </div><h2 class="groupheader">Function Documentation</h2>
92 <a class="anchor" id="afdcd32f83dd8f20e25669f197fb7bde9"></a>
93 <div class="memitem">
94 <div class="memproto">
95 <table class="mlabels">
96 <tr>
97 <td class="mlabels-left">
98 <table class="memname">
99 <tr>
100 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> json_object_iter_begin </td>
101 <td>(</td>
102 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
103 <td class="paramname"><em>obj</em></td><td>)</td>
104 <td></td>
105 </tr>
106 </table>
107 </td>
108 <td class="mlabels-right">
109 <span class="mlabels"><span class="mlabel">read</span></span> </td>
110 </tr>
111 </table>
112 </div><div class="memdoc">
113 <p>Retrieves an iterator to the first pair of the JSON Object.</p>
114 <dl class="section warning"><dt>Warning</dt><dd>Any modification of the underlying pair invalidates all iterators to that pair.</dd></dl>
115 <dl class="params"><dt>Parameters</dt><dd>
116 <table class="params">
117 <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>
118 </table>
119 </dd>
120 </dl>
121 <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>
122 <div class="fragment"><div class="line"><span class="keyword">struct </span><a class="code" href="structjson__object__iterator.html">json_object_iterator</a> it;</div>
123 <div class="line"><span class="keyword">struct </span><a class="code" href="structjson__object__iterator.html">json_object_iterator</a> itEnd;</div>
124 <div class="line"><span class="keyword">struct </span><a class="code" href="structjson__object.html">json_object</a>* obj;</div>
125 <div class="line"></div>
126 <div class="line">obj = <a class="code" href="json__tokener_8h.html#a236ef64d079822a4411d13eae7190c4d">json_tokener_parse</a>(<span class="stringliteral">&quot;{&#39;first&#39;:&#39;george&#39;, &#39;age&#39;:100}&quot;</span>);</div>
127 <div class="line">it = <a class="code" href="json__object__iterator_8h.html#afdcd32f83dd8f20e25669f197fb7bde9">json_object_iter_begin</a>(obj);</div>
128 <div class="line">itEnd = <a class="code" href="json__object__iterator_8h.html#a381fbae848a3268013110002d553c32e">json_object_iter_end</a>(obj);</div>
129 <div class="line"></div>
130 <div class="line"><span class="keywordflow">while</span> (!<a class="code" href="json__object__iterator_8h.html#a9cbb250d185348e8b193a886c35ae39e">json_object_iter_equal</a>(&amp;it, &amp;itEnd)) {</div>
131 <div class="line"> printf(<span class="stringliteral">&quot;%s\n&quot;</span>,</div>
132 <div class="line"> <a class="code" href="json__object__iterator_8h.html#adbbc3583aef14d9416a0fc8dbf750727">json_object_iter_peek_name</a>(&amp;it));</div>
133 <div class="line"> <a class="code" href="json__object__iterator_8h.html#a8a152d153844f1ec1698419abae8c2e4">json_object_iter_next</a>(&amp;it);</div>
134 <div class="line">}</div>
135 </div><!-- fragment -->
136 </div>
137 </div>
138 <a class="anchor" id="a381fbae848a3268013110002d553c32e"></a>
139 <div class="memitem">
140 <div class="memproto">
141 <table class="mlabels">
142 <tr>
143 <td class="mlabels-left">
144 <table class="memname">
145 <tr>
146 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> json_object_iter_end </td>
147 <td>(</td>
148 <td class="paramtype">const struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
149 <td class="paramname"><em>obj</em></td><td>)</td>
150 <td></td>
151 </tr>
152 </table>
153 </td>
154 <td class="mlabels-right">
155 <span class="mlabels"><span class="mlabel">read</span></span> </td>
156 </tr>
157 </table>
158 </div><div class="memdoc">
159 <p>Retrieves the iterator that represents the position beyond the last pair of the given JSON Object instance.</p>
160 <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>
161 <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>
162 <dd>
163 For performance reasons, memorize the "end" iterator prior to any loop.</dd></dl>
164 <dl class="params"><dt>Parameters</dt><dd>
165 <table class="params">
166 <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>
167 </table>
168 </dd>
169 </dl>
170 <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
171 pair" value) </dd></dl>
172
173 </div>
174 </div>
175 <a class="anchor" id="a9cbb250d185348e8b193a886c35ae39e"></a>
176 <div class="memitem">
177 <div class="memproto">
178 <table class="memname">
179 <tr>
180 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> <a class="el" href="json__types_8h.html#a81f02022906fafc71eb9197049f07f73">json_bool</a> json_object_iter_equal </td>
181 <td>(</td>
182 <td class="paramtype">const struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> *&#160;</td>
183 <td class="paramname"><em>iter1</em>, </td>
184 </tr>
185 <tr>
186 <td class="paramkey"></td>
187 <td></td>
188 <td class="paramtype">const struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> *&#160;</td>
189 <td class="paramname"><em>iter2</em>&#160;</td>
190 </tr>
191 <tr>
192 <td></td>
193 <td>)</td>
194 <td></td><td></td>
195 </tr>
196 </table>
197 </div><div class="memdoc">
198 <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>
199 <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>
200 <dl class="params"><dt>Parameters</dt><dd>
201 <table class="params">
202 <tr><td class="paramname">iter1</td><td>Pointer to first valid, non-NULL iterator </td></tr>
203 <tr><td class="paramname">iter2</td><td>POinter to second valid, non-NULL iterator</td></tr>
204 </table>
205 </dd>
206 </dl>
207 <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>
208 <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>
209
210 </div>
211 </div>
212 <a class="anchor" id="ae93958fa755852192553f1686d248cd1"></a>
213 <div class="memitem">
214 <div class="memproto">
215 <table class="mlabels">
216 <tr>
217 <td class="mlabels-left">
218 <table class="memname">
219 <tr>
220 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> json_object_iter_init_default </td>
221 <td>(</td>
222 <td class="paramtype">void&#160;</td>
223 <td class="paramname"></td><td>)</td>
224 <td></td>
225 </tr>
226 </table>
227 </td>
228 <td class="mlabels-right">
229 <span class="mlabels"><span class="mlabel">read</span></span> </td>
230 </tr>
231 </table>
232 </div><div class="memdoc">
233 <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>
234 <div class="fragment"><div class="line"><span class="keyword">struct </span><a class="code" href="structjson__object__iterator.html">json_object_iterator</a> iter = <a class="code" href="json__object__iterator_8h.html#ae93958fa755852192553f1686d248cd1">json_object_iter_init_default</a>();</div>
235 <div class="line">MyClass() : iter_(<a class="code" href="json__object__iterator_8h.html#ae93958fa755852192553f1686d248cd1">json_object_iter_init_default</a>())</div>
236 </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>
237 <dd>
238 User and internal code MUST NOT make any assumptions about and dependencies on the value of the "default" iterator value.</dd></dl>
239 <dl class="section return"><dt>Returns</dt><dd><a class="el" href="structjson__object__iterator.html">json_object_iterator</a> </dd></dl>
240
241 </div>
242 </div>
243 <a class="anchor" id="a8a152d153844f1ec1698419abae8c2e4"></a>
244 <div class="memitem">
245 <div class="memproto">
246 <table class="memname">
247 <tr>
248 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void json_object_iter_next </td>
249 <td>(</td>
250 <td class="paramtype">struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> *&#160;</td>
251 <td class="paramname"><em>iter</em></td><td>)</td>
252 <td></td>
253 </tr>
254 </table>
255 </div><div class="memdoc">
256 <p>Returns an iterator to the next pair, if any</p>
257 <dl class="section warning"><dt>Warning</dt><dd>Any modification of the underlying pair invalidates all iterators to that pair.</dd></dl>
258 <dl class="params"><dt>Parameters</dt><dd>
259 <table class="params">
260 <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#a381fbae848a3268013110002d553c32e">json_object_iter_end()</a> for the same JSON Object instance. </td></tr>
261 </table>
262 </dd>
263 </dl>
264
265 </div>
266 </div>
267 <a class="anchor" id="adbbc3583aef14d9416a0fc8dbf750727"></a>
268 <div class="memitem">
269 <div class="memproto">
270 <table class="memname">
271 <tr>
272 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> const char* json_object_iter_peek_name </td>
273 <td>(</td>
274 <td class="paramtype">const struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> *&#160;</td>
275 <td class="paramname"><em>iter</em></td><td>)</td>
276 <td></td>
277 </tr>
278 </table>
279 </div><div class="memdoc">
280 <p>Returns a const pointer to the name of the pair referenced by the given iterator.</p>
281 <dl class="params"><dt>Parameters</dt><dd>
282 <table class="params">
283 <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>
284 </table>
285 </dd>
286 </dl>
287 <dl class="section warning"><dt>Warning</dt><dd>bad things will happen if an invalid or "end" iterator is passed.</dd></dl>
288 <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>
289
290 </div>
291 </div>
292 <a class="anchor" id="ad8fe9251ca04af4d8e6840a44de7984b"></a>
293 <div class="memitem">
294 <div class="memproto">
295 <table class="mlabels">
296 <tr>
297 <td class="mlabels-left">
298 <table class="memname">
299 <tr>
300 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a>* json_object_iter_peek_value </td>
301 <td>(</td>
302 <td class="paramtype">const struct <a class="el" href="structjson__object__iterator.html">json_object_iterator</a> *&#160;</td>
303 <td class="paramname"><em>iter</em></td><td>)</td>
304 <td></td>
305 </tr>
306 </table>
307 </td>
308 <td class="mlabels-right">
309 <span class="mlabels"><span class="mlabel">read</span></span> </td>
310 </tr>
311 </table>
312 </div><div class="memdoc">
313 <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>
314 <dl class="params"><dt>Parameters</dt><dd>
315 <table class="params">
316 <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>
317 </table>
318 </dd>
319 </dl>
320 <dl class="section warning"><dt>Warning</dt><dd>bad things will happen if invalid or "end" iterator is passed.</dd></dl>
321 <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>
322
323 </div>
324 </div>
325 </div><!-- contents -->
326 <!-- start footer part -->
327 <hr class="footer"/><address class="footer"><small>
328 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
329 <img class="footer" src="doxygen.png" alt="doxygen"/>
330 </a> 1.8.2
331 </small></address>
332 </body>
333 </html>
+0
-220
doc/html/json__object__private_8h.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: json_object_private.h File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#nested-classes">Data Structures</a> &#124;
46 <a href="#define-members">Macros</a> &#124;
47 <a href="#typedef-members">Typedefs</a> &#124;
48 <a href="#enum-members">Enumerations</a> &#124;
49 <a href="#func-members">Functions</a> &#124;
50 <a href="#var-members">Variables</a> </div>
51 <div class="headertitle">
52 <div class="title">json_object_private.h File Reference</div> </div>
53 </div><!--header-->
54 <div class="contents">
55
56 <p>Do not use, json-c internal, may be changed or removed at any time.
57 <a href="#details">More...</a></p>
58 <table class="memberdecls">
59 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
60 Data Structures</h2></td></tr>
61 <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>
62 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
63 <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>
64 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
65 </table><table class="memberdecls">
66 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
67 Macros</h2></td></tr>
68 <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>
69 <tr class="separator:a227adaf0073e17006f614190d414fa1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
70 </table><table class="memberdecls">
71 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
72 Typedefs</h2></td></tr>
73 <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>
74 <tr class="separator:aa125a0d39945a73a7d52b9823a2ef741"><td class="memSeparator" colspan="2">&#160;</td></tr>
75 <tr class="memitem:aee51efb4329e981ca92b991a26d26e5d"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="json__object__private_8h.html#a2c399964853692c47023a88167f551ff">json_object_int_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object__private_8h.html#aee51efb4329e981ca92b991a26d26e5d">json_object_int_type</a></td></tr>
76 <tr class="separator:aee51efb4329e981ca92b991a26d26e5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
77 </table><table class="memberdecls">
78 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
79 Enumerations</h2></td></tr>
80 <tr class="memitem:a2c399964853692c47023a88167f551ff"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__object__private_8h.html#a2c399964853692c47023a88167f551ff">json_object_int_type</a> { <a class="el" href="json__object__private_8h.html#a2c399964853692c47023a88167f551ffa9a8133eec6f4ce579d4b2b44b4d26610">json_object_int_type_int64</a>,
81 <a class="el" href="json__object__private_8h.html#a2c399964853692c47023a88167f551ffa2f4bad5c522ad0830b9145a2755c1992">json_object_int_type_uint64</a>
82 }</td></tr>
83 <tr class="separator:a2c399964853692c47023a88167f551ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
84 </table><table class="memberdecls">
85 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
86 Functions</h2></td></tr>
87 <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>
88 <tr class="separator:a2b38dd2d14fbfa6585de5664b6d61c0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
89 </table><table class="memberdecls">
90 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
91 Variables</h2></td></tr>
92 <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>
93 <tr class="separator:a27427f89f2fc995639e366635fbe58ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
94 <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>
95 <tr class="separator:a20dbe4913551cefa6b4b0a77fd4397c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
96 </table>
97 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
98 <div class="textblock"><p>Do not use, json-c internal, may be changed or removed at any time. </p>
99 </div><h2 class="groupheader">Macro Definition Documentation</h2>
100 <a class="anchor" id="a227adaf0073e17006f614190d414fa1a"></a>
101 <div class="memitem">
102 <div class="memproto">
103 <table class="memname">
104 <tr>
105 <td class="memname">#define LEN_DIRECT_STRING_DATA&#160;&#160;&#160;32</td>
106 </tr>
107 </table>
108 </div><div class="memdoc">
109 <p>&lt; how many bytes are directly stored in <a class="el" href="structjson__object.html">json_object</a> for strings? </p>
110
111 </div>
112 </div>
113 <h2 class="groupheader">Typedef Documentation</h2>
114 <a class="anchor" id="aee51efb4329e981ca92b991a26d26e5d"></a>
115 <div class="memitem">
116 <div class="memproto">
117 <table class="memname">
118 <tr>
119 <td class="memname">typedef enum <a class="el" href="json__object__private_8h.html#a2c399964853692c47023a88167f551ff">json_object_int_type</a> <a class="el" href="json__object__private_8h.html#a2c399964853692c47023a88167f551ff">json_object_int_type</a></td>
120 </tr>
121 </table>
122 </div><div class="memdoc">
123
124 </div>
125 </div>
126 <a class="anchor" id="aa125a0d39945a73a7d52b9823a2ef741"></a>
127 <div class="memitem">
128 <div class="memproto">
129 <table class="memname">
130 <tr>
131 <td class="memname">typedef void( json_object_private_delete_fn)(struct <a class="el" href="structjson__object.html">json_object</a> *o)</td>
132 </tr>
133 </table>
134 </div><div class="memdoc">
135
136 </div>
137 </div>
138 <h2 class="groupheader">Enumeration Type Documentation</h2>
139 <a class="anchor" id="a2c399964853692c47023a88167f551ff"></a>
140 <div class="memitem">
141 <div class="memproto">
142 <table class="memname">
143 <tr>
144 <td class="memname">enum <a class="el" href="json__object__private_8h.html#a2c399964853692c47023a88167f551ff">json_object_int_type</a></td>
145 </tr>
146 </table>
147 </div><div class="memdoc">
148 <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
149 <tr><td valign="top"><em><a class="anchor" id="a2c399964853692c47023a88167f551ffa9a8133eec6f4ce579d4b2b44b4d26610"></a>json_object_int_type_int64</em>&nbsp;</td><td>
150 </td></tr>
151 <tr><td valign="top"><em><a class="anchor" id="a2c399964853692c47023a88167f551ffa2f4bad5c522ad0830b9145a2755c1992"></a>json_object_int_type_uint64</em>&nbsp;</td><td>
152 </td></tr>
153 </table>
154 </dd>
155 </dl>
156
157 </div>
158 </div>
159 <h2 class="groupheader">Function Documentation</h2>
160 <a class="anchor" id="a2b38dd2d14fbfa6585de5664b6d61c0c"></a>
161 <div class="memitem">
162 <div class="memproto">
163 <table class="memname">
164 <tr>
165 <td class="memname">void _json_c_set_last_err </td>
166 <td>(</td>
167 <td class="paramtype">const char *&#160;</td>
168 <td class="paramname"><em>err_fmt</em>, </td>
169 </tr>
170 <tr>
171 <td class="paramkey"></td>
172 <td></td>
173 <td class="paramtype">&#160;</td>
174 <td class="paramname"><em>...</em>&#160;</td>
175 </tr>
176 <tr>
177 <td></td>
178 <td>)</td>
179 <td></td><td></td>
180 </tr>
181 </table>
182 </div><div class="memdoc">
183
184 </div>
185 </div>
186 <h2 class="groupheader">Variable Documentation</h2>
187 <a class="anchor" id="a20dbe4913551cefa6b4b0a77fd4397c4"></a>
188 <div class="memitem">
189 <div class="memproto">
190 <table class="memname">
191 <tr>
192 <td class="memname">const char* json_hex_chars</td>
193 </tr>
194 </table>
195 </div><div class="memdoc">
196
197 </div>
198 </div>
199 <a class="anchor" id="a27427f89f2fc995639e366635fbe58ac"></a>
200 <div class="memitem">
201 <div class="memproto">
202 <table class="memname">
203 <tr>
204 <td class="memname">const char* json_number_chars</td>
205 </tr>
206 </table>
207 </div><div class="memdoc">
208
209 </div>
210 </div>
211 </div><!-- contents -->
212 <!-- start footer part -->
213 <hr class="footer"/><address class="footer"><small>
214 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
215 <img class="footer" src="doxygen.png" alt="doxygen"/>
216 </a> 1.8.2
217 </small></address>
218 </body>
219 </html>
+0
-268
doc/html/json__pointer_8h.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: json_pointer.h File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#func-members">Functions</a> </div>
46 <div class="headertitle">
47 <div class="title">json_pointer.h File Reference</div> </div>
48 </div><!--header-->
49 <div class="contents">
50
51 <p>JSON Pointer (RFC 6901) implementation for retrieving objects from a json-c object tree.
52 <a href="#details">More...</a></p>
53 <table class="memberdecls">
54 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
55 Functions</h2></td></tr>
56 <tr class="memitem:aff88937e32b0ba6ffbd07cb4b1919053"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__pointer_8h.html#aff88937e32b0ba6ffbd07cb4b1919053">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>
57 <tr class="separator:aff88937e32b0ba6ffbd07cb4b1919053"><td class="memSeparator" colspan="2">&#160;</td></tr>
58 <tr class="memitem:af0ac03df64b215d05041e8007ed0233d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__pointer_8h.html#af0ac03df64b215d05041e8007ed0233d">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>
59 <tr class="separator:af0ac03df64b215d05041e8007ed0233d"><td class="memSeparator" colspan="2">&#160;</td></tr>
60 <tr class="memitem:aef0e651f63ce5ce35648503705e2586b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__pointer_8h.html#aef0e651f63ce5ce35648503705e2586b">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>
61 <tr class="separator:aef0e651f63ce5ce35648503705e2586b"><td class="memSeparator" colspan="2">&#160;</td></tr>
62 <tr class="memitem:a66f1f98a2ce085c19f6750193b4c726d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__pointer_8h.html#a66f1f98a2ce085c19f6750193b4c726d">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>
63 <tr class="separator:a66f1f98a2ce085c19f6750193b4c726d"><td class="memSeparator" colspan="2">&#160;</td></tr>
64 </table>
65 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
66 <div class="textblock"><p>JSON Pointer (RFC 6901) implementation for retrieving objects from a json-c object tree. </p>
67 </div><h2 class="groupheader">Function Documentation</h2>
68 <a class="anchor" id="aff88937e32b0ba6ffbd07cb4b1919053"></a>
69 <div class="memitem">
70 <div class="memproto">
71 <table class="memname">
72 <tr>
73 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_pointer_get </td>
74 <td>(</td>
75 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
76 <td class="paramname"><em>obj</em>, </td>
77 </tr>
78 <tr>
79 <td class="paramkey"></td>
80 <td></td>
81 <td class="paramtype">const char *&#160;</td>
82 <td class="paramname"><em>path</em>, </td>
83 </tr>
84 <tr>
85 <td class="paramkey"></td>
86 <td></td>
87 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> **&#160;</td>
88 <td class="paramname"><em>res</em>&#160;</td>
89 </tr>
90 <tr>
91 <td></td>
92 <td>)</td>
93 <td></td><td></td>
94 </tr>
95 </table>
96 </div><div class="memdoc">
97 <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>
98 <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>
99 <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>
100 <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>
101 <dl class="params"><dt>Parameters</dt><dd>
102 <table class="params">
103 <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>
104 <tr><td class="paramname">path</td><td>a (RFC6901) string notation for the sub-object to retrieve </td></tr>
105 <tr><td class="paramname">res</td><td>a pointer that stores a reference to the <a class="el" href="structjson__object.html">json_object</a> associated with the given path</td></tr>
106 </table>
107 </dd>
108 </dl>
109 <dl class="section return"><dt>Returns</dt><dd>negative if an error (or not found), or 0 if succeeded </dd></dl>
110
111 </div>
112 </div>
113 <a class="anchor" id="af0ac03df64b215d05041e8007ed0233d"></a>
114 <div class="memitem">
115 <div class="memproto">
116 <table class="memname">
117 <tr>
118 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_pointer_getf </td>
119 <td>(</td>
120 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
121 <td class="paramname"><em>obj</em>, </td>
122 </tr>
123 <tr>
124 <td class="paramkey"></td>
125 <td></td>
126 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> **&#160;</td>
127 <td class="paramname"><em>res</em>, </td>
128 </tr>
129 <tr>
130 <td class="paramkey"></td>
131 <td></td>
132 <td class="paramtype">const char *&#160;</td>
133 <td class="paramname"><em>path_fmt</em>, </td>
134 </tr>
135 <tr>
136 <td class="paramkey"></td>
137 <td></td>
138 <td class="paramtype">&#160;</td>
139 <td class="paramname"><em>...</em>&#160;</td>
140 </tr>
141 <tr>
142 <td></td>
143 <td>)</td>
144 <td></td><td></td>
145 </tr>
146 </table>
147 </div><div class="memdoc">
148 <p>This is a variant of '<a class="el" href="json__pointer_8h.html#aff88937e32b0ba6ffbd07cb4b1919053">json_pointer_get()</a>' that supports printf() style arguments.</p>
149 <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>
150 <p>Please take into consideration all recommended 'printf()' format security aspects when using this function.</p>
151 <dl class="params"><dt>Parameters</dt><dd>
152 <table class="params">
153 <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>
154 <tr><td class="paramname">res</td><td>a pointer that stores a reference to the <a class="el" href="structjson__object.html">json_object</a> associated with the given path </td></tr>
155 <tr><td class="paramname">path_fmt</td><td>a printf() style format for the path</td></tr>
156 </table>
157 </dd>
158 </dl>
159 <dl class="section return"><dt>Returns</dt><dd>negative if an error (or not found), or 0 if succeeded </dd></dl>
160
161 </div>
162 </div>
163 <a class="anchor" id="aef0e651f63ce5ce35648503705e2586b"></a>
164 <div class="memitem">
165 <div class="memproto">
166 <table class="memname">
167 <tr>
168 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_pointer_set </td>
169 <td>(</td>
170 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> **&#160;</td>
171 <td class="paramname"><em>obj</em>, </td>
172 </tr>
173 <tr>
174 <td class="paramkey"></td>
175 <td></td>
176 <td class="paramtype">const char *&#160;</td>
177 <td class="paramname"><em>path</em>, </td>
178 </tr>
179 <tr>
180 <td class="paramkey"></td>
181 <td></td>
182 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
183 <td class="paramname"><em>value</em>&#160;</td>
184 </tr>
185 <tr>
186 <td></td>
187 <td>)</td>
188 <td></td><td></td>
189 </tr>
190 </table>
191 </div><div class="memdoc">
192 <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>
193 <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>
194 <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#aef0e651f63ce5ce35648503705e2586b">json_pointer_set()</a>' is negative (meaning the 'value' object did not get set into '*obj').</p>
195 <p>That also implies that '<a class="el" href="json__pointer_8h.html#aef0e651f63ce5ce35648503705e2586b">json_pointer_set()</a>' does not do any refcount incrementing. (Just that single decrement that was mentioned above).</p>
196 <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>
197 <dl class="params"><dt>Parameters</dt><dd>
198 <table class="params">
199 <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>
200 <tr><td class="paramname">path</td><td>a (RFC6901) string notation for the sub-object to set in the tree </td></tr>
201 <tr><td class="paramname">value</td><td>object to set at path</td></tr>
202 </table>
203 </dd>
204 </dl>
205 <dl class="section return"><dt>Returns</dt><dd>negative if an error (or not found), or 0 if succeeded </dd></dl>
206
207 </div>
208 </div>
209 <a class="anchor" id="a66f1f98a2ce085c19f6750193b4c726d"></a>
210 <div class="memitem">
211 <div class="memproto">
212 <table class="memname">
213 <tr>
214 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_pointer_setf </td>
215 <td>(</td>
216 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> **&#160;</td>
217 <td class="paramname"><em>obj</em>, </td>
218 </tr>
219 <tr>
220 <td class="paramkey"></td>
221 <td></td>
222 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
223 <td class="paramname"><em>value</em>, </td>
224 </tr>
225 <tr>
226 <td class="paramkey"></td>
227 <td></td>
228 <td class="paramtype">const char *&#160;</td>
229 <td class="paramname"><em>path_fmt</em>, </td>
230 </tr>
231 <tr>
232 <td class="paramkey"></td>
233 <td></td>
234 <td class="paramtype">&#160;</td>
235 <td class="paramname"><em>...</em>&#160;</td>
236 </tr>
237 <tr>
238 <td></td>
239 <td>)</td>
240 <td></td><td></td>
241 </tr>
242 </table>
243 </div><div class="memdoc">
244 <p>This is a variant of '<a class="el" href="json__pointer_8h.html#aef0e651f63ce5ce35648503705e2586b">json_pointer_set()</a>' that supports printf() style arguments.</p>
245 <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>
246 <p>Please take into consideration all recommended 'printf()' format security aspects when using this function.</p>
247 <dl class="params"><dt>Parameters</dt><dd>
248 <table class="params">
249 <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>
250 <tr><td class="paramname">value</td><td>object to set at path </td></tr>
251 <tr><td class="paramname">path_fmt</td><td>a printf() style format for the path</td></tr>
252 </table>
253 </dd>
254 </dl>
255 <dl class="section return"><dt>Returns</dt><dd>negative if an error (or not found), or 0 if succeeded </dd></dl>
256
257 </div>
258 </div>
259 </div><!-- contents -->
260 <!-- start footer part -->
261 <hr class="footer"/><address class="footer"><small>
262 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
263 <img class="footer" src="doxygen.png" alt="doxygen"/>
264 </a> 1.8.2
265 </small></address>
266 </body>
267 </html>
+0
-649
doc/html/json__tokener_8h.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: json_tokener.h File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#nested-classes">Data Structures</a> &#124;
46 <a href="#define-members">Macros</a> &#124;
47 <a href="#typedef-members">Typedefs</a> &#124;
48 <a href="#enum-members">Enumerations</a> &#124;
49 <a href="#func-members">Functions</a> </div>
50 <div class="headertitle">
51 <div class="title">json_tokener.h File Reference</div> </div>
52 </div><!--header-->
53 <div class="contents">
54
55 <p>Methods to parse an input string into a tree of <a class="el" href="structjson__object.html">json_object</a> objects.
56 <a href="#details">More...</a></p>
57 <table class="memberdecls">
58 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
59 Data Structures</h2></td></tr>
60 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__tokener__srec.html">json_tokener_srec</a></td></tr>
61 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
62 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__tokener.html">json_tokener</a></td></tr>
63 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
64 </table><table class="memberdecls">
65 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
66 Macros</h2></td></tr>
67 <tr class="memitem:a5ccd346459feb66e4e0af32005360279"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#a5ccd346459feb66e4e0af32005360279">JSON_TOKENER_DEFAULT_DEPTH</a>&#160;&#160;&#160;32</td></tr>
68 <tr class="separator:a5ccd346459feb66e4e0af32005360279"><td class="memSeparator" colspan="2">&#160;</td></tr>
69 <tr class="memitem:a72be595cb7e090c70b1d29feb1cbfb16"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#a72be595cb7e090c70b1d29feb1cbfb16">JSON_TOKENER_STRICT</a>&#160;&#160;&#160;0x01</td></tr>
70 <tr class="separator:a72be595cb7e090c70b1d29feb1cbfb16"><td class="memSeparator" colspan="2">&#160;</td></tr>
71 <tr class="memitem:a633ab043f2b07fd22420af2b369a260a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#a633ab043f2b07fd22420af2b369a260a">JSON_TOKENER_VALIDATE_UTF8</a>&#160;&#160;&#160;0x10</td></tr>
72 <tr class="separator:a633ab043f2b07fd22420af2b369a260a"><td class="memSeparator" colspan="2">&#160;</td></tr>
73 </table><table class="memberdecls">
74 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
75 Typedefs</h2></td></tr>
76 <tr class="memitem:a4dd5e5b65aee7f376f529f86b210ff49"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjson__tokener.html">json_tokener</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#a4dd5e5b65aee7f376f529f86b210ff49">json_tokener</a></td></tr>
77 <tr class="separator:a4dd5e5b65aee7f376f529f86b210ff49"><td class="memSeparator" colspan="2">&#160;</td></tr>
78 </table><table class="memberdecls">
79 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
80 Enumerations</h2></td></tr>
81 <tr class="memitem:a0a31f0df8a532ef8be5c09ba40eacb59"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener_error</a> { <br/>
82 &#160;&#160;<a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59afe2fa9bde03155019b2df30f66a5fcd0">json_tokener_success</a>,
83 <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a9b26e920ca765df91c84e999561d8fb0">json_tokener_continue</a>,
84 <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a59b2c36d9cc30c3038e09b9ddee6c86c">json_tokener_error_depth</a>,
85 <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a8f774f4c7869afdd9b92295fca3a9ded">json_tokener_error_parse_eof</a>,
86 <br/>
87 &#160;&#160;<a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a3309fa8ea4ab3ee0a81c55b69d223710">json_tokener_error_parse_unexpected</a>,
88 <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a641bbb8d881fdd1e463f20a1a203b77c">json_tokener_error_parse_null</a>,
89 <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59addbdfe084e20709da3d20c8ae8ca278c">json_tokener_error_parse_boolean</a>,
90 <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59ab1b3ad685eb97235d269cc5b9eb7ab81">json_tokener_error_parse_number</a>,
91 <br/>
92 &#160;&#160;<a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a574846740b785146f164a209dc89574e">json_tokener_error_parse_array</a>,
93 <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a2003bd8e96c6680cd22419c5ceafd4c0">json_tokener_error_parse_object_key_name</a>,
94 <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59af91a2a819b0d6344d6d4e1d2579f28fd">json_tokener_error_parse_object_key_sep</a>,
95 <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a9ddb98741aebf7ac44735b4a43717013">json_tokener_error_parse_object_value_sep</a>,
96 <br/>
97 &#160;&#160;<a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a033ce89ce7b8f9e591e4bea92121c4c7">json_tokener_error_parse_string</a>,
98 <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a3588c05b1da8b909a8cbdef66b0a1a28">json_tokener_error_parse_comment</a>,
99 <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59ab405d4a1282f3b037048d3456869a4c1">json_tokener_error_parse_utf8_string</a>,
100 <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a1eeed74de65c0c12c9f9c28cf4f3ff1d">json_tokener_error_size</a>
101 <br/>
102 }</td></tr>
103 <tr class="separator:a0a31f0df8a532ef8be5c09ba40eacb59"><td class="memSeparator" colspan="2">&#160;</td></tr>
104 <tr class="memitem:af026dec71e4548e6200eb2f902f1c4e2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2">json_tokener_state</a> { <br/>
105 &#160;&#160;<a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a9db152607ec1872a000f1fcd8757297d">json_tokener_state_eatws</a>,
106 <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a7c4c0bed1ebde45f5a99de4278792d72">json_tokener_state_start</a>,
107 <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ad80b689cb709967b67a348de3d8601d2">json_tokener_state_finish</a>,
108 <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a668fb2654c59608945370003403a5792">json_tokener_state_null</a>,
109 <br/>
110 &#160;&#160;<a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a0ff1d1935d49188aa1e6b998d43e655c">json_tokener_state_comment_start</a>,
111 <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a8c2680b8873a8dce85f0b1ac25882dc9">json_tokener_state_comment</a>,
112 <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ad8151350b1ef50298bafbab244ac1162">json_tokener_state_comment_eol</a>,
113 <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a62cef297a37a98b1239ea4bbd39723e1">json_tokener_state_comment_end</a>,
114 <br/>
115 &#160;&#160;<a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2aa90ea4c327a285bfbbce49d42d491d65">json_tokener_state_string</a>,
116 <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a1cf793d73587f68c4f2b3b4f65ff728e">json_tokener_state_string_escape</a>,
117 <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a6c852da2e694be56799c58c201d6dca0">json_tokener_state_escape_unicode</a>,
118 <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a3525b15ecd0a698281b3914115b6bd3e">json_tokener_state_boolean</a>,
119 <br/>
120 &#160;&#160;<a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a7ce18d281d322af690b45f3b8b599e81">json_tokener_state_number</a>,
121 <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ab3d763300f1914865be09d603ddc11f4">json_tokener_state_array</a>,
122 <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2aa2a01798ebe318ea91c38a886418f771">json_tokener_state_array_add</a>,
123 <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a4ec7762aeab3424cbb14354c94025865">json_tokener_state_array_sep</a>,
124 <br/>
125 &#160;&#160;<a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a8c7dbda177a5d83a36a64f7cb99b9a29">json_tokener_state_object_field_start</a>,
126 <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a77375940a10806e81d99876d13be67fc">json_tokener_state_object_field</a>,
127 <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a0220aea1d9204aadfffde92c7f73f5f7">json_tokener_state_object_field_end</a>,
128 <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a4c7b7deac37355491572f6da84f208aa">json_tokener_state_object_value</a>,
129 <br/>
130 &#160;&#160;<a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ade6bee72f2147e634b19eb84e58eb162">json_tokener_state_object_value_add</a>,
131 <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2adaf3e06c5fc04fd4f04040cd67698215">json_tokener_state_object_sep</a>,
132 <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ab1a0ad626ec662c1ba4fb5bfee1cd0a9">json_tokener_state_array_after_sep</a>,
133 <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a3a2c9cf26d076936a10a6ae3ca4eb523">json_tokener_state_object_field_start_after_sep</a>,
134 <br/>
135 &#160;&#160;<a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ab9f6244bfca4924db61ed3050c780b53">json_tokener_state_inf</a>
136 <br/>
137 }</td></tr>
138 <tr class="separator:af026dec71e4548e6200eb2f902f1c4e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
139 </table><table class="memberdecls">
140 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
141 Functions</h2></td></tr>
142 <tr class="memitem:a4a2fa28d815f8b370cbb00b80ebc0f1d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#a4a2fa28d815f8b370cbb00b80ebc0f1d">json_tokener_get_parse_end</a> (struct <a class="el" href="structjson__tokener.html">json_tokener</a> *tok)</td></tr>
143 <tr class="separator:a4a2fa28d815f8b370cbb00b80ebc0f1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
144 <tr class="memitem:af060dd6b593b3b710044bcb97dcec07f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#af060dd6b593b3b710044bcb97dcec07f">json_tokener_error_desc</a> (enum <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener_error</a> jerr)</td></tr>
145 <tr class="separator:af060dd6b593b3b710044bcb97dcec07f"><td class="memSeparator" colspan="2">&#160;</td></tr>
146 <tr class="memitem:af5d7ffd95a0f6e5d5bb5994d233b4197"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> enum <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener_error</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#af5d7ffd95a0f6e5d5bb5994d233b4197">json_tokener_get_error</a> (struct <a class="el" href="structjson__tokener.html">json_tokener</a> *tok)</td></tr>
147 <tr class="separator:af5d7ffd95a0f6e5d5bb5994d233b4197"><td class="memSeparator" colspan="2">&#160;</td></tr>
148 <tr class="memitem:a5ac7e2c350bc592cf2fa7b9935b00ef5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__tokener.html">json_tokener</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#a5ac7e2c350bc592cf2fa7b9935b00ef5">json_tokener_new</a> (void)</td></tr>
149 <tr class="separator:a5ac7e2c350bc592cf2fa7b9935b00ef5"><td class="memSeparator" colspan="2">&#160;</td></tr>
150 <tr class="memitem:a6a1583ddd434e13515d6232de813462e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__tokener.html">json_tokener</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#a6a1583ddd434e13515d6232de813462e">json_tokener_new_ex</a> (int depth)</td></tr>
151 <tr class="separator:a6a1583ddd434e13515d6232de813462e"><td class="memSeparator" colspan="2">&#160;</td></tr>
152 <tr class="memitem:a887c4661906fc6b36cc366304e522534"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#a887c4661906fc6b36cc366304e522534">json_tokener_free</a> (struct <a class="el" href="structjson__tokener.html">json_tokener</a> *tok)</td></tr>
153 <tr class="separator:a887c4661906fc6b36cc366304e522534"><td class="memSeparator" colspan="2">&#160;</td></tr>
154 <tr class="memitem:a238649a59737be5152d525aeaf4153ab"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#a238649a59737be5152d525aeaf4153ab">json_tokener_reset</a> (struct <a class="el" href="structjson__tokener.html">json_tokener</a> *tok)</td></tr>
155 <tr class="separator:a238649a59737be5152d525aeaf4153ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
156 <tr class="memitem:a236ef64d079822a4411d13eae7190c4d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#a236ef64d079822a4411d13eae7190c4d">json_tokener_parse</a> (const char *str)</td></tr>
157 <tr class="separator:a236ef64d079822a4411d13eae7190c4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
158 <tr class="memitem:a735f2dc755d57ed5c5b807aaaaef3b14"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#a735f2dc755d57ed5c5b807aaaaef3b14">json_tokener_parse_verbose</a> (const char *str, enum <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener_error</a> *error)</td></tr>
159 <tr class="separator:a735f2dc755d57ed5c5b807aaaaef3b14"><td class="memSeparator" colspan="2">&#160;</td></tr>
160 <tr class="memitem:a7e7a0c0c9dc79e5e47b2608bb8aad7b7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#a7e7a0c0c9dc79e5e47b2608bb8aad7b7">json_tokener_set_flags</a> (struct <a class="el" href="structjson__tokener.html">json_tokener</a> *tok, int flags)</td></tr>
161 <tr class="separator:a7e7a0c0c9dc79e5e47b2608bb8aad7b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
162 <tr class="memitem:a61679f178111963a9ffa3c8179553f7a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__tokener_8h.html#a61679f178111963a9ffa3c8179553f7a">json_tokener_parse_ex</a> (struct <a class="el" href="structjson__tokener.html">json_tokener</a> *tok, const char *str, int len)</td></tr>
163 <tr class="separator:a61679f178111963a9ffa3c8179553f7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
164 </table>
165 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
166 <div class="textblock"><p>Methods to parse an input string into a tree of <a class="el" href="structjson__object.html">json_object</a> objects. </p>
167 </div><h2 class="groupheader">Macro Definition Documentation</h2>
168 <a class="anchor" id="a5ccd346459feb66e4e0af32005360279"></a>
169 <div class="memitem">
170 <div class="memproto">
171 <table class="memname">
172 <tr>
173 <td class="memname">#define JSON_TOKENER_DEFAULT_DEPTH&#160;&#160;&#160;32</td>
174 </tr>
175 </table>
176 </div><div class="memdoc">
177
178 </div>
179 </div>
180 <a class="anchor" id="a72be595cb7e090c70b1d29feb1cbfb16"></a>
181 <div class="memitem">
182 <div class="memproto">
183 <table class="memname">
184 <tr>
185 <td class="memname">#define JSON_TOKENER_STRICT&#160;&#160;&#160;0x01</td>
186 </tr>
187 </table>
188 </div><div class="memdoc">
189 <p>Be strict when parsing JSON input. Use caution with this flag as what is considered valid may become more restrictive from one release to the next, causing your code to fail on previously working input.</p>
190 <p>This flag is not set by default.</p>
191 <dl class="section see"><dt>See Also</dt><dd><a class="el" href="json__tokener_8h.html#a7e7a0c0c9dc79e5e47b2608bb8aad7b7">json_tokener_set_flags()</a> </dd></dl>
192
193 </div>
194 </div>
195 <a class="anchor" id="a633ab043f2b07fd22420af2b369a260a"></a>
196 <div class="memitem">
197 <div class="memproto">
198 <table class="memname">
199 <tr>
200 <td class="memname">#define JSON_TOKENER_VALIDATE_UTF8&#160;&#160;&#160;0x10</td>
201 </tr>
202 </table>
203 </div><div class="memdoc">
204 <p>Cause <a class="el" href="json__tokener_8h.html#a61679f178111963a9ffa3c8179553f7a">json_tokener_parse_ex()</a> to validate that input is UTF8. If this flag is specified and validation fails, then json_tokener_get_error(tok) will return json_tokener_error_parse_utf8_string</p>
205 <p>This flag is not set by default.</p>
206 <dl class="section see"><dt>See Also</dt><dd><a class="el" href="json__tokener_8h.html#a7e7a0c0c9dc79e5e47b2608bb8aad7b7">json_tokener_set_flags()</a> </dd></dl>
207
208 </div>
209 </div>
210 <h2 class="groupheader">Typedef Documentation</h2>
211 <a class="anchor" id="a4dd5e5b65aee7f376f529f86b210ff49"></a>
212 <div class="memitem">
213 <div class="memproto">
214 <table class="memname">
215 <tr>
216 <td class="memname">typedef struct <a class="el" href="structjson__tokener.html">json_tokener</a> <a class="el" href="structjson__tokener.html">json_tokener</a></td>
217 </tr>
218 </table>
219 </div><div class="memdoc">
220 <dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000003">Deprecated:</a></b></dt><dd>Unused in json-c code </dd></dl>
221
222 </div>
223 </div>
224 <h2 class="groupheader">Enumeration Type Documentation</h2>
225 <a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59"></a>
226 <div class="memitem">
227 <div class="memproto">
228 <table class="memname">
229 <tr>
230 <td class="memname">enum <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener_error</a></td>
231 </tr>
232 </table>
233 </div><div class="memdoc">
234 <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
235 <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59afe2fa9bde03155019b2df30f66a5fcd0"></a>json_tokener_success</em>&nbsp;</td><td>
236 </td></tr>
237 <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59a9b26e920ca765df91c84e999561d8fb0"></a>json_tokener_continue</em>&nbsp;</td><td>
238 </td></tr>
239 <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59a59b2c36d9cc30c3038e09b9ddee6c86c"></a>json_tokener_error_depth</em>&nbsp;</td><td>
240 </td></tr>
241 <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59a8f774f4c7869afdd9b92295fca3a9ded"></a>json_tokener_error_parse_eof</em>&nbsp;</td><td>
242 </td></tr>
243 <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59a3309fa8ea4ab3ee0a81c55b69d223710"></a>json_tokener_error_parse_unexpected</em>&nbsp;</td><td>
244 </td></tr>
245 <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59a641bbb8d881fdd1e463f20a1a203b77c"></a>json_tokener_error_parse_null</em>&nbsp;</td><td>
246 </td></tr>
247 <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59addbdfe084e20709da3d20c8ae8ca278c"></a>json_tokener_error_parse_boolean</em>&nbsp;</td><td>
248 </td></tr>
249 <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59ab1b3ad685eb97235d269cc5b9eb7ab81"></a>json_tokener_error_parse_number</em>&nbsp;</td><td>
250 </td></tr>
251 <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59a574846740b785146f164a209dc89574e"></a>json_tokener_error_parse_array</em>&nbsp;</td><td>
252 </td></tr>
253 <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59a2003bd8e96c6680cd22419c5ceafd4c0"></a>json_tokener_error_parse_object_key_name</em>&nbsp;</td><td>
254 </td></tr>
255 <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59af91a2a819b0d6344d6d4e1d2579f28fd"></a>json_tokener_error_parse_object_key_sep</em>&nbsp;</td><td>
256 </td></tr>
257 <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59a9ddb98741aebf7ac44735b4a43717013"></a>json_tokener_error_parse_object_value_sep</em>&nbsp;</td><td>
258 </td></tr>
259 <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59a033ce89ce7b8f9e591e4bea92121c4c7"></a>json_tokener_error_parse_string</em>&nbsp;</td><td>
260 </td></tr>
261 <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59a3588c05b1da8b909a8cbdef66b0a1a28"></a>json_tokener_error_parse_comment</em>&nbsp;</td><td>
262 </td></tr>
263 <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59ab405d4a1282f3b037048d3456869a4c1"></a>json_tokener_error_parse_utf8_string</em>&nbsp;</td><td>
264 </td></tr>
265 <tr><td valign="top"><em><a class="anchor" id="a0a31f0df8a532ef8be5c09ba40eacb59a1eeed74de65c0c12c9f9c28cf4f3ff1d"></a>json_tokener_error_size</em>&nbsp;</td><td>
266 </td></tr>
267 </table>
268 </dd>
269 </dl>
270
271 </div>
272 </div>
273 <a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2"></a>
274 <div class="memitem">
275 <div class="memproto">
276 <table class="memname">
277 <tr>
278 <td class="memname">enum <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2">json_tokener_state</a></td>
279 </tr>
280 </table>
281 </div><div class="memdoc">
282 <dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>Don't use this outside of json_tokener.c, it will be made private in a future release. </dd></dl>
283 <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
284 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a9db152607ec1872a000f1fcd8757297d"></a>json_tokener_state_eatws</em>&nbsp;</td><td>
285 </td></tr>
286 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a7c4c0bed1ebde45f5a99de4278792d72"></a>json_tokener_state_start</em>&nbsp;</td><td>
287 </td></tr>
288 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2ad80b689cb709967b67a348de3d8601d2"></a>json_tokener_state_finish</em>&nbsp;</td><td>
289 </td></tr>
290 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a668fb2654c59608945370003403a5792"></a>json_tokener_state_null</em>&nbsp;</td><td>
291 </td></tr>
292 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a0ff1d1935d49188aa1e6b998d43e655c"></a>json_tokener_state_comment_start</em>&nbsp;</td><td>
293 </td></tr>
294 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a8c2680b8873a8dce85f0b1ac25882dc9"></a>json_tokener_state_comment</em>&nbsp;</td><td>
295 </td></tr>
296 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2ad8151350b1ef50298bafbab244ac1162"></a>json_tokener_state_comment_eol</em>&nbsp;</td><td>
297 </td></tr>
298 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a62cef297a37a98b1239ea4bbd39723e1"></a>json_tokener_state_comment_end</em>&nbsp;</td><td>
299 </td></tr>
300 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2aa90ea4c327a285bfbbce49d42d491d65"></a>json_tokener_state_string</em>&nbsp;</td><td>
301 </td></tr>
302 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a1cf793d73587f68c4f2b3b4f65ff728e"></a>json_tokener_state_string_escape</em>&nbsp;</td><td>
303 </td></tr>
304 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a6c852da2e694be56799c58c201d6dca0"></a>json_tokener_state_escape_unicode</em>&nbsp;</td><td>
305 </td></tr>
306 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a3525b15ecd0a698281b3914115b6bd3e"></a>json_tokener_state_boolean</em>&nbsp;</td><td>
307 </td></tr>
308 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a7ce18d281d322af690b45f3b8b599e81"></a>json_tokener_state_number</em>&nbsp;</td><td>
309 </td></tr>
310 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2ab3d763300f1914865be09d603ddc11f4"></a>json_tokener_state_array</em>&nbsp;</td><td>
311 </td></tr>
312 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2aa2a01798ebe318ea91c38a886418f771"></a>json_tokener_state_array_add</em>&nbsp;</td><td>
313 </td></tr>
314 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a4ec7762aeab3424cbb14354c94025865"></a>json_tokener_state_array_sep</em>&nbsp;</td><td>
315 </td></tr>
316 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a8c7dbda177a5d83a36a64f7cb99b9a29"></a>json_tokener_state_object_field_start</em>&nbsp;</td><td>
317 </td></tr>
318 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a77375940a10806e81d99876d13be67fc"></a>json_tokener_state_object_field</em>&nbsp;</td><td>
319 </td></tr>
320 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a0220aea1d9204aadfffde92c7f73f5f7"></a>json_tokener_state_object_field_end</em>&nbsp;</td><td>
321 </td></tr>
322 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a4c7b7deac37355491572f6da84f208aa"></a>json_tokener_state_object_value</em>&nbsp;</td><td>
323 </td></tr>
324 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2ade6bee72f2147e634b19eb84e58eb162"></a>json_tokener_state_object_value_add</em>&nbsp;</td><td>
325 </td></tr>
326 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2adaf3e06c5fc04fd4f04040cd67698215"></a>json_tokener_state_object_sep</em>&nbsp;</td><td>
327 </td></tr>
328 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2ab1a0ad626ec662c1ba4fb5bfee1cd0a9"></a>json_tokener_state_array_after_sep</em>&nbsp;</td><td>
329 </td></tr>
330 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2a3a2c9cf26d076936a10a6ae3ca4eb523"></a>json_tokener_state_object_field_start_after_sep</em>&nbsp;</td><td>
331 </td></tr>
332 <tr><td valign="top"><em><a class="anchor" id="af026dec71e4548e6200eb2f902f1c4e2ab9f6244bfca4924db61ed3050c780b53"></a>json_tokener_state_inf</em>&nbsp;</td><td>
333 </td></tr>
334 </table>
335 </dd>
336 </dl>
337
338 </div>
339 </div>
340 <h2 class="groupheader">Function Documentation</h2>
341 <a class="anchor" id="af060dd6b593b3b710044bcb97dcec07f"></a>
342 <div class="memitem">
343 <div class="memproto">
344 <table class="memname">
345 <tr>
346 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> const char* json_tokener_error_desc </td>
347 <td>(</td>
348 <td class="paramtype">enum <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener_error</a>&#160;</td>
349 <td class="paramname"><em>jerr</em></td><td>)</td>
350 <td></td>
351 </tr>
352 </table>
353 </div><div class="memdoc">
354 <p>Given an error previously returned by <a class="el" href="json__tokener_8h.html#af5d7ffd95a0f6e5d5bb5994d233b4197">json_tokener_get_error()</a>, return a human readable description of the error.</p>
355 <dl class="section return"><dt>Returns</dt><dd>a generic error message is returned if an invalid error value is provided. </dd></dl>
356
357 </div>
358 </div>
359 <a class="anchor" id="a887c4661906fc6b36cc366304e522534"></a>
360 <div class="memitem">
361 <div class="memproto">
362 <table class="memname">
363 <tr>
364 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void json_tokener_free </td>
365 <td>(</td>
366 <td class="paramtype">struct <a class="el" href="structjson__tokener.html">json_tokener</a> *&#160;</td>
367 <td class="paramname"><em>tok</em></td><td>)</td>
368 <td></td>
369 </tr>
370 </table>
371 </div><div class="memdoc">
372
373 </div>
374 </div>
375 <a class="anchor" id="af5d7ffd95a0f6e5d5bb5994d233b4197"></a>
376 <div class="memitem">
377 <div class="memproto">
378 <table class="memname">
379 <tr>
380 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> enum <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener_error</a> json_tokener_get_error </td>
381 <td>(</td>
382 <td class="paramtype">struct <a class="el" href="structjson__tokener.html">json_tokener</a> *&#160;</td>
383 <td class="paramname"><em>tok</em></td><td>)</td>
384 <td></td>
385 </tr>
386 </table>
387 </div><div class="memdoc">
388 <p>Retrieve the error caused by the last call to <a class="el" href="json__tokener_8h.html#a61679f178111963a9ffa3c8179553f7a">json_tokener_parse_ex()</a>, or json_tokener_success if there is no error.</p>
389 <p>When parsing a JSON string in pieces, if the tokener is in the middle of parsing this will return json_tokener_continue.</p>
390 <dl class="section see"><dt>See Also</dt><dd><a class="el" href="json__tokener_8h.html#af060dd6b593b3b710044bcb97dcec07f">json_tokener_error_desc()</a>. </dd></dl>
391
392 </div>
393 </div>
394 <a class="anchor" id="a4a2fa28d815f8b370cbb00b80ebc0f1d"></a>
395 <div class="memitem">
396 <div class="memproto">
397 <table class="memname">
398 <tr>
399 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> size_t json_tokener_get_parse_end </td>
400 <td>(</td>
401 <td class="paramtype">struct <a class="el" href="structjson__tokener.html">json_tokener</a> *&#160;</td>
402 <td class="paramname"><em>tok</em></td><td>)</td>
403 <td></td>
404 </tr>
405 </table>
406 </div><div class="memdoc">
407 <p>Return the offset of the byte after the last byte parsed relative to the start of the most recent string passed in to <a class="el" href="json__tokener_8h.html#a61679f178111963a9ffa3c8179553f7a">json_tokener_parse_ex()</a>. i.e. this is where parsing would start again if the input contains another JSON object after the currently parsed one.</p>
408 <p>Note that when multiple parse calls are issued, this is <em>not</em> the total number of characters parsed.</p>
409 <p>In the past this would have been accessed as tok-&gt;char_offset.</p>
410 <p>See <a class="el" href="json__tokener_8h.html#a61679f178111963a9ffa3c8179553f7a">json_tokener_parse_ex()</a> for an example of how to use this. </p>
411
412 </div>
413 </div>
414 <a class="anchor" id="a5ac7e2c350bc592cf2fa7b9935b00ef5"></a>
415 <div class="memitem">
416 <div class="memproto">
417 <table class="mlabels">
418 <tr>
419 <td class="mlabels-left">
420 <table class="memname">
421 <tr>
422 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__tokener.html">json_tokener</a>* json_tokener_new </td>
423 <td>(</td>
424 <td class="paramtype">void&#160;</td>
425 <td class="paramname"></td><td>)</td>
426 <td></td>
427 </tr>
428 </table>
429 </td>
430 <td class="mlabels-right">
431 <span class="mlabels"><span class="mlabel">read</span></span> </td>
432 </tr>
433 </table>
434 </div><div class="memdoc">
435
436 </div>
437 </div>
438 <a class="anchor" id="a6a1583ddd434e13515d6232de813462e"></a>
439 <div class="memitem">
440 <div class="memproto">
441 <table class="mlabels">
442 <tr>
443 <td class="mlabels-left">
444 <table class="memname">
445 <tr>
446 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__tokener.html">json_tokener</a>* json_tokener_new_ex </td>
447 <td>(</td>
448 <td class="paramtype">int&#160;</td>
449 <td class="paramname"><em>depth</em></td><td>)</td>
450 <td></td>
451 </tr>
452 </table>
453 </td>
454 <td class="mlabels-right">
455 <span class="mlabels"><span class="mlabel">read</span></span> </td>
456 </tr>
457 </table>
458 </div><div class="memdoc">
459
460 </div>
461 </div>
462 <a class="anchor" id="a236ef64d079822a4411d13eae7190c4d"></a>
463 <div class="memitem">
464 <div class="memproto">
465 <table class="mlabels">
466 <tr>
467 <td class="mlabels-left">
468 <table class="memname">
469 <tr>
470 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a>* json_tokener_parse </td>
471 <td>(</td>
472 <td class="paramtype">const char *&#160;</td>
473 <td class="paramname"><em>str</em></td><td>)</td>
474 <td></td>
475 </tr>
476 </table>
477 </td>
478 <td class="mlabels-right">
479 <span class="mlabels"><span class="mlabel">read</span></span> </td>
480 </tr>
481 </table>
482 </div><div class="memdoc">
483
484 </div>
485 </div>
486 <a class="anchor" id="a61679f178111963a9ffa3c8179553f7a"></a>
487 <div class="memitem">
488 <div class="memproto">
489 <table class="mlabels">
490 <tr>
491 <td class="mlabels-left">
492 <table class="memname">
493 <tr>
494 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a>* json_tokener_parse_ex </td>
495 <td>(</td>
496 <td class="paramtype">struct <a class="el" href="structjson__tokener.html">json_tokener</a> *&#160;</td>
497 <td class="paramname"><em>tok</em>, </td>
498 </tr>
499 <tr>
500 <td class="paramkey"></td>
501 <td></td>
502 <td class="paramtype">const char *&#160;</td>
503 <td class="paramname"><em>str</em>, </td>
504 </tr>
505 <tr>
506 <td class="paramkey"></td>
507 <td></td>
508 <td class="paramtype">int&#160;</td>
509 <td class="paramname"><em>len</em>&#160;</td>
510 </tr>
511 <tr>
512 <td></td>
513 <td>)</td>
514 <td></td><td></td>
515 </tr>
516 </table>
517 </td>
518 <td class="mlabels-right">
519 <span class="mlabels"><span class="mlabel">read</span></span> </td>
520 </tr>
521 </table>
522 </div><div class="memdoc">
523 <p>Parse a string and return a non-NULL <a class="el" href="structjson__object.html">json_object</a> if a valid JSON value is found. The string does not need to be a JSON object or array; it can also be a string, number or boolean value.</p>
524 <p>A partial JSON string can be parsed. If the parsing is incomplete, NULL will be returned and <a class="el" href="json__tokener_8h.html#af5d7ffd95a0f6e5d5bb5994d233b4197">json_tokener_get_error()</a> will return json_tokener_continue. <a class="el" href="json__tokener_8h.html#a61679f178111963a9ffa3c8179553f7a">json_tokener_parse_ex()</a> can then be called with additional bytes in str to continue the parsing.</p>
525 <p>If <a class="el" href="json__tokener_8h.html#a61679f178111963a9ffa3c8179553f7a">json_tokener_parse_ex()</a> returns NULL and the error is anything other than json_tokener_continue, a fatal error has occurred and parsing must be halted. Then, the tok object must not be reused until <a class="el" href="json__tokener_8h.html#a238649a59737be5152d525aeaf4153ab">json_tokener_reset()</a> is called.</p>
526 <p>When a valid JSON value is parsed, a non-NULL <a class="el" href="structjson__object.html">json_object</a> will be returned, with a reference count of one which belongs to the caller. Also, <a class="el" href="json__tokener_8h.html#af5d7ffd95a0f6e5d5bb5994d233b4197">json_tokener_get_error()</a> will return json_tokener_success. Be sure to check the type with <a class="el" href="json__object_8h.html#a8ab506a3d8f4ba5eb6a12ce0a6bbd37b">json_object_is_type()</a> or <a class="el" href="json__object_8h.html#af256a3a7910e271a2b9735e5044c3827">json_object_get_type()</a> before using the object.</p>
527 <p>Trailing characters after the parsed value do not automatically cause an error. It is up to the caller to decide whether to treat this as an error or to handle the additional characters, perhaps by parsing another json value starting from that point.</p>
528 <p>Extra characters can be detected by comparing the value returned by <a class="el" href="json__tokener_8h.html#a4a2fa28d815f8b370cbb00b80ebc0f1d">json_tokener_get_parse_end()</a> against the length of the last len parameter passed in.</p>
529 <p>The tokener does <b>not</b> maintain an internal buffer so the caller is responsible for calling json_tokener_parse_ex with an appropriate str parameter starting with the extra characters.</p>
530 <p>This interface is presently not 64-bit clean due to the int len argument so the function limits the maximum string size to INT32_MAX (2GB). If the function is called with len == -1 then strlen is called to check the string length is less than INT32_MAX (2GB)</p>
531 <p>Example: </p>
532 <div class="fragment"><div class="line"><a class="code" href="structjson__object.html">json_object</a> *jobj = NULL;</div>
533 <div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span> *mystring = NULL;</div>
534 <div class="line"><span class="keywordtype">int</span> stringlen = 0;</div>
535 <div class="line"><span class="keyword">enum</span> <a class="code" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener_error</a> jerr;</div>
536 <div class="line"><span class="keywordflow">do</span> {</div>
537 <div class="line"> mystring = ... <span class="comment">// get JSON string, e.g. read from file, etc...</span></div>
538 <div class="line"> stringlen = strlen(mystring);</div>
539 <div class="line"> jobj = <a class="code" href="json__tokener_8h.html#a61679f178111963a9ffa3c8179553f7a">json_tokener_parse_ex</a>(tok, mystring, stringlen);</div>
540 <div class="line">} <span class="keywordflow">while</span> ((jerr = <a class="code" href="json__tokener_8h.html#af5d7ffd95a0f6e5d5bb5994d233b4197">json_tokener_get_error</a>(tok)) == <a class="code" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a9b26e920ca765df91c84e999561d8fb0">json_tokener_continue</a>);</div>
541 <div class="line"><span class="keywordflow">if</span> (jerr != <a class="code" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59afe2fa9bde03155019b2df30f66a5fcd0">json_tokener_success</a>)</div>
542 <div class="line">{</div>
543 <div class="line"> fprintf(stderr, <span class="stringliteral">&quot;Error: %s\n&quot;</span>, <a class="code" href="json__tokener_8h.html#af060dd6b593b3b710044bcb97dcec07f">json_tokener_error_desc</a>(jerr));</div>
544 <div class="line"> <span class="comment">// Handle errors, as appropriate for your application.</span></div>
545 <div class="line">}</div>
546 <div class="line"><span class="keywordflow">if</span> (<a class="code" href="json__tokener_8h.html#a4a2fa28d815f8b370cbb00b80ebc0f1d">json_tokener_get_parse_end</a>(tok) &lt; stringlen)</div>
547 <div class="line">{</div>
548 <div class="line"> <span class="comment">// Handle extra characters after parsed object as desired.</span></div>
549 <div class="line"> <span class="comment">// e.g. issue an error, parse another object from that point, etc...</span></div>
550 <div class="line">}</div>
551 <div class="line"><span class="comment">// Success, use jobj here.</span></div>
552 </div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
553 <table class="params">
554 <tr><td class="paramname">tok</td><td>a <a class="el" href="structjson__tokener.html">json_tokener</a> previously allocated with <a class="el" href="json__tokener_8h.html#a5ac7e2c350bc592cf2fa7b9935b00ef5">json_tokener_new()</a> </td></tr>
555 <tr><td class="paramname">str</td><td>an string with any valid JSON expression, or portion of. This does not need to be null terminated. </td></tr>
556 <tr><td class="paramname">len</td><td>the length of str </td></tr>
557 </table>
558 </dd>
559 </dl>
560
561 </div>
562 </div>
563 <a class="anchor" id="a735f2dc755d57ed5c5b807aaaaef3b14"></a>
564 <div class="memitem">
565 <div class="memproto">
566 <table class="mlabels">
567 <tr>
568 <td class="mlabels-left">
569 <table class="memname">
570 <tr>
571 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a>* json_tokener_parse_verbose </td>
572 <td>(</td>
573 <td class="paramtype">const char *&#160;</td>
574 <td class="paramname"><em>str</em>, </td>
575 </tr>
576 <tr>
577 <td class="paramkey"></td>
578 <td></td>
579 <td class="paramtype">enum <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener_error</a> *&#160;</td>
580 <td class="paramname"><em>error</em>&#160;</td>
581 </tr>
582 <tr>
583 <td></td>
584 <td>)</td>
585 <td></td><td></td>
586 </tr>
587 </table>
588 </td>
589 <td class="mlabels-right">
590 <span class="mlabels"><span class="mlabel">read</span></span> </td>
591 </tr>
592 </table>
593 </div><div class="memdoc">
594
595 </div>
596 </div>
597 <a class="anchor" id="a238649a59737be5152d525aeaf4153ab"></a>
598 <div class="memitem">
599 <div class="memproto">
600 <table class="memname">
601 <tr>
602 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void json_tokener_reset </td>
603 <td>(</td>
604 <td class="paramtype">struct <a class="el" href="structjson__tokener.html">json_tokener</a> *&#160;</td>
605 <td class="paramname"><em>tok</em></td><td>)</td>
606 <td></td>
607 </tr>
608 </table>
609 </div><div class="memdoc">
610
611 </div>
612 </div>
613 <a class="anchor" id="a7e7a0c0c9dc79e5e47b2608bb8aad7b7"></a>
614 <div class="memitem">
615 <div class="memproto">
616 <table class="memname">
617 <tr>
618 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void json_tokener_set_flags </td>
619 <td>(</td>
620 <td class="paramtype">struct <a class="el" href="structjson__tokener.html">json_tokener</a> *&#160;</td>
621 <td class="paramname"><em>tok</em>, </td>
622 </tr>
623 <tr>
624 <td class="paramkey"></td>
625 <td></td>
626 <td class="paramtype">int&#160;</td>
627 <td class="paramname"><em>flags</em>&#160;</td>
628 </tr>
629 <tr>
630 <td></td>
631 <td>)</td>
632 <td></td><td></td>
633 </tr>
634 </table>
635 </div><div class="memdoc">
636 <p>Set flags that control how parsing will be done. </p>
637
638 </div>
639 </div>
640 </div><!-- contents -->
641 <!-- start footer part -->
642 <hr class="footer"/><address class="footer"><small>
643 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
644 <img class="footer" src="doxygen.png" alt="doxygen"/>
645 </a> 1.8.2
646 </small></address>
647 </body>
648 </html>
+0
-230
doc/html/json__types_8h.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: json_types.h File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#nested-classes">Data Structures</a> &#124;
46 <a href="#define-members">Macros</a> &#124;
47 <a href="#typedef-members">Typedefs</a> &#124;
48 <a href="#enum-members">Enumerations</a> </div>
49 <div class="headertitle">
50 <div class="title">json_types.h File Reference</div> </div>
51 </div><!--header-->
52 <div class="contents">
53
54 <p>Basic types used in a few places in json-c, but you should include "json_object.h" instead.
55 <a href="#details">More...</a></p>
56 <table class="memberdecls">
57 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
58 Data Structures</h2></td></tr>
59 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__object__iter.html">json_object_iter</a></td></tr>
60 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
61 </table><table class="memberdecls">
62 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
63 Macros</h2></td></tr>
64 <tr class="memitem:a2a31d5c00f3a4712f2d5d62aee66344e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__types_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a>&#160;&#160;&#160;extern</td></tr>
65 <tr class="separator:a2a31d5c00f3a4712f2d5d62aee66344e"><td class="memSeparator" colspan="2">&#160;</td></tr>
66 </table><table class="memberdecls">
67 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
68 Typedefs</h2></td></tr>
69 <tr class="memitem:af88126730e765f2068968f4b16fd074f"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjson__object__iter.html">json_object_iter</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__types_8h.html#af88126730e765f2068968f4b16fd074f">json_object_iter</a></td></tr>
70 <tr class="separator:af88126730e765f2068968f4b16fd074f"><td class="memSeparator" colspan="2">&#160;</td></tr>
71 <tr class="memitem:a81f02022906fafc71eb9197049f07f73"><td class="memItemLeft" align="right" valign="top">typedef int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__types_8h.html#a81f02022906fafc71eb9197049f07f73">json_bool</a></td></tr>
72 <tr class="separator:a81f02022906fafc71eb9197049f07f73"><td class="memSeparator" colspan="2">&#160;</td></tr>
73 <tr class="memitem:af27907ced0f5a43409ad96430fe0f914"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structjson__object.html">json_object</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__types_8h.html#af27907ced0f5a43409ad96430fe0f914">json_object</a></td></tr>
74 <tr class="memdesc:af27907ced0f5a43409ad96430fe0f914"><td class="mdescLeft">&#160;</td><td class="mdescRight">The core type for all type of JSON objects handled by json-c. <a href="#af27907ced0f5a43409ad96430fe0f914"></a><br/></td></tr>
75 <tr class="separator:af27907ced0f5a43409ad96430fe0f914"><td class="memSeparator" colspan="2">&#160;</td></tr>
76 <tr class="memitem:aa647d7c567a06abe1a1a511f6d6860e4"><td class="memItemLeft" align="right" valign="top">typedef void(&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__types_8h.html#aa647d7c567a06abe1a1a511f6d6860e4">json_object_delete_fn</a> )(struct <a class="el" href="structjson__object.html">json_object</a> *jso, void *userdata)</td></tr>
77 <tr class="separator:aa647d7c567a06abe1a1a511f6d6860e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
78 <tr class="memitem:af84078100a9025df418f31626ea866fa"><td class="memItemLeft" align="right" valign="top">typedef int(&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__types_8h.html#af84078100a9025df418f31626ea866fa">json_object_to_json_string_fn</a> )(struct <a class="el" href="structjson__object.html">json_object</a> *jso, struct <a class="el" href="structprintbuf.html">printbuf</a> *pb, int level, int flags)</td></tr>
79 <tr class="separator:af84078100a9025df418f31626ea866fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
80 <tr class="memitem:aba5eff84f8638d22f50403175f270c96"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06c">json_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__types_8h.html#aba5eff84f8638d22f50403175f270c96">json_type</a></td></tr>
81 <tr class="separator:aba5eff84f8638d22f50403175f270c96"><td class="memSeparator" colspan="2">&#160;</td></tr>
82 </table><table class="memberdecls">
83 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
84 Enumerations</h2></td></tr>
85 <tr class="memitem:ac75c61993722a9b8aaa44704072ec06c"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06c">json_type</a> { <br/>
86 &#160;&#160;<a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06ca127e62d156e13517471fcde3378979c1">json_type_null</a>,
87 <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06ca5d15299e90dbb9935ff6d3e2c22a285c">json_type_boolean</a>,
88 <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06cac6ac2d9a16577d00210fea64d16b47cd">json_type_double</a>,
89 <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06ca7bf325c213b43c5f970ae2d4443ab956">json_type_int</a>,
90 <br/>
91 &#160;&#160;<a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06cac966c8008f0b2c07da59ee8a60ad440f">json_type_object</a>,
92 <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06cae536c8c9da4648e6b9348abddde6113c">json_type_array</a>,
93 <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06cac9f56e57c09245522d764015a054faa6">json_type_string</a>
94 <br/>
95 }</td></tr>
96 <tr class="separator:ac75c61993722a9b8aaa44704072ec06c"><td class="memSeparator" colspan="2">&#160;</td></tr>
97 </table>
98 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
99 <div class="textblock"><p>Basic types used in a few places in json-c, but you should include "json_object.h" instead. </p>
100 </div><h2 class="groupheader">Macro Definition Documentation</h2>
101 <a class="anchor" id="a2a31d5c00f3a4712f2d5d62aee66344e"></a>
102 <div class="memitem">
103 <div class="memproto">
104 <table class="memname">
105 <tr>
106 <td class="memname">#define JSON_EXPORT&#160;&#160;&#160;extern</td>
107 </tr>
108 </table>
109 </div><div class="memdoc">
110
111 </div>
112 </div>
113 <h2 class="groupheader">Typedef Documentation</h2>
114 <a class="anchor" id="a81f02022906fafc71eb9197049f07f73"></a>
115 <div class="memitem">
116 <div class="memproto">
117 <table class="memname">
118 <tr>
119 <td class="memname">typedef int <a class="el" href="json__types_8h.html#a81f02022906fafc71eb9197049f07f73">json_bool</a></td>
120 </tr>
121 </table>
122 </div><div class="memdoc">
123
124 </div>
125 </div>
126 <a class="anchor" id="af27907ced0f5a43409ad96430fe0f914"></a>
127 <div class="memitem">
128 <div class="memproto">
129 <table class="memname">
130 <tr>
131 <td class="memname">typedef struct <a class="el" href="structjson__object.html">json_object</a> <a class="el" href="structjson__object.html">json_object</a></td>
132 </tr>
133 </table>
134 </div><div class="memdoc">
135
136 <p>The core type for all type of JSON objects handled by json-c. </p>
137
138 </div>
139 </div>
140 <a class="anchor" id="aa647d7c567a06abe1a1a511f6d6860e4"></a>
141 <div class="memitem">
142 <div class="memproto">
143 <table class="memname">
144 <tr>
145 <td class="memname">typedef void( json_object_delete_fn)(struct <a class="el" href="structjson__object.html">json_object</a> *jso, void *userdata)</td>
146 </tr>
147 </table>
148 </div><div class="memdoc">
149 <p>Type of custom user delete functions. See json_object_set_serializer. </p>
150
151 </div>
152 </div>
153 <a class="anchor" id="af88126730e765f2068968f4b16fd074f"></a>
154 <div class="memitem">
155 <div class="memproto">
156 <table class="memname">
157 <tr>
158 <td class="memname">typedef struct <a class="el" href="structjson__object__iter.html">json_object_iter</a> <a class="el" href="structjson__object__iter.html">json_object_iter</a></td>
159 </tr>
160 </table>
161 </div><div class="memdoc">
162
163 </div>
164 </div>
165 <a class="anchor" id="af84078100a9025df418f31626ea866fa"></a>
166 <div class="memitem">
167 <div class="memproto">
168 <table class="memname">
169 <tr>
170 <td class="memname">typedef int( json_object_to_json_string_fn)(struct <a class="el" href="structjson__object.html">json_object</a> *jso, struct <a class="el" href="structprintbuf.html">printbuf</a> *pb, int level, int flags)</td>
171 </tr>
172 </table>
173 </div><div class="memdoc">
174 <p>Type of a custom serialization function. See json_object_set_serializer. </p>
175
176 </div>
177 </div>
178 <a class="anchor" id="aba5eff84f8638d22f50403175f270c96"></a>
179 <div class="memitem">
180 <div class="memproto">
181 <table class="memname">
182 <tr>
183 <td class="memname">typedef enum <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06c">json_type</a> <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06c">json_type</a></td>
184 </tr>
185 </table>
186 </div><div class="memdoc">
187
188 </div>
189 </div>
190 <h2 class="groupheader">Enumeration Type Documentation</h2>
191 <a class="anchor" id="ac75c61993722a9b8aaa44704072ec06c"></a>
192 <div class="memitem">
193 <div class="memproto">
194 <table class="memname">
195 <tr>
196 <td class="memname">enum <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06c">json_type</a></td>
197 </tr>
198 </table>
199 </div><div class="memdoc">
200 <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
201 <tr><td valign="top"><em><a class="anchor" id="ac75c61993722a9b8aaa44704072ec06ca127e62d156e13517471fcde3378979c1"></a>json_type_null</em>&nbsp;</td><td>
202 </td></tr>
203 <tr><td valign="top"><em><a class="anchor" id="ac75c61993722a9b8aaa44704072ec06ca5d15299e90dbb9935ff6d3e2c22a285c"></a>json_type_boolean</em>&nbsp;</td><td>
204 </td></tr>
205 <tr><td valign="top"><em><a class="anchor" id="ac75c61993722a9b8aaa44704072ec06cac6ac2d9a16577d00210fea64d16b47cd"></a>json_type_double</em>&nbsp;</td><td>
206 </td></tr>
207 <tr><td valign="top"><em><a class="anchor" id="ac75c61993722a9b8aaa44704072ec06ca7bf325c213b43c5f970ae2d4443ab956"></a>json_type_int</em>&nbsp;</td><td>
208 </td></tr>
209 <tr><td valign="top"><em><a class="anchor" id="ac75c61993722a9b8aaa44704072ec06cac966c8008f0b2c07da59ee8a60ad440f"></a>json_type_object</em>&nbsp;</td><td>
210 </td></tr>
211 <tr><td valign="top"><em><a class="anchor" id="ac75c61993722a9b8aaa44704072ec06cae536c8c9da4648e6b9348abddde6113c"></a>json_type_array</em>&nbsp;</td><td>
212 </td></tr>
213 <tr><td valign="top"><em><a class="anchor" id="ac75c61993722a9b8aaa44704072ec06cac9f56e57c09245522d764015a054faa6"></a>json_type_string</em>&nbsp;</td><td>
214 </td></tr>
215 </table>
216 </dd>
217 </dl>
218
219 </div>
220 </div>
221 </div><!-- contents -->
222 <!-- start footer part -->
223 <hr class="footer"/><address class="footer"><small>
224 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
225 <img class="footer" src="doxygen.png" alt="doxygen"/>
226 </a> 1.8.2
227 </small></address>
228 </body>
229 </html>
+0
-472
doc/html/json__util_8h.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: json_util.h File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#define-members">Macros</a> &#124;
46 <a href="#func-members">Functions</a> </div>
47 <div class="headertitle">
48 <div class="title">json_util.h File Reference</div> </div>
49 </div><!--header-->
50 <div class="contents">
51
52 <p>Miscllaneous utility functions and macros.
53 <a href="#details">More...</a></p>
54 <table class="memberdecls">
55 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
56 Macros</h2></td></tr>
57 <tr class="memitem:a3dde282dc23d0eaa3c4840df8dc262d4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__util_8h.html#a3dde282dc23d0eaa3c4840df8dc262d4">json_min</a>(a, b)&#160;&#160;&#160;((a) &lt; (b) ? (a) : (b))</td></tr>
58 <tr class="separator:a3dde282dc23d0eaa3c4840df8dc262d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
59 <tr class="memitem:a57d63d199d4b9ea40359253618951300"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__util_8h.html#a57d63d199d4b9ea40359253618951300">json_max</a>(a, b)&#160;&#160;&#160;((a) &gt; (b) ? (a) : (b))</td></tr>
60 <tr class="separator:a57d63d199d4b9ea40359253618951300"><td class="memSeparator" colspan="2">&#160;</td></tr>
61 <tr class="memitem:a084b6afc8f7fbef88976aabe4aca7efd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__util_8h.html#a084b6afc8f7fbef88976aabe4aca7efd">JSON_FILE_BUF_SIZE</a>&#160;&#160;&#160;4096</td></tr>
62 <tr class="separator:a084b6afc8f7fbef88976aabe4aca7efd"><td class="memSeparator" colspan="2">&#160;</td></tr>
63 </table><table class="memberdecls">
64 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
65 Functions</h2></td></tr>
66 <tr class="memitem:a03119ec0a71af4eee95318e9b2aaf05b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__util_8h.html#a03119ec0a71af4eee95318e9b2aaf05b">json_object_from_file</a> (const char *filename)</td></tr>
67 <tr class="separator:a03119ec0a71af4eee95318e9b2aaf05b"><td class="memSeparator" colspan="2">&#160;</td></tr>
68 <tr class="memitem:a88c5c7ce735d95f6c3c81c73475e14aa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__util_8h.html#a88c5c7ce735d95f6c3c81c73475e14aa">json_object_from_fd_ex</a> (int fd, int depth)</td></tr>
69 <tr class="separator:a88c5c7ce735d95f6c3c81c73475e14aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
70 <tr class="memitem:a5b72bf6f3ac8fb03da38d2e2d1e18d1b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__util_8h.html#a5b72bf6f3ac8fb03da38d2e2d1e18d1b">json_object_from_fd</a> (int fd)</td></tr>
71 <tr class="separator:a5b72bf6f3ac8fb03da38d2e2d1e18d1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
72 <tr class="memitem:a486fc95fafe7cb91c58c7f6487036bc5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__util_8h.html#a486fc95fafe7cb91c58c7f6487036bc5">json_object_to_file</a> (const char *filename, struct <a class="el" href="structjson__object.html">json_object</a> *obj)</td></tr>
73 <tr class="separator:a486fc95fafe7cb91c58c7f6487036bc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
74 <tr class="memitem:a68a7385c555cf21797e361d1d4de3441"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__util_8h.html#a68a7385c555cf21797e361d1d4de3441">json_object_to_file_ext</a> (const char *filename, struct <a class="el" href="structjson__object.html">json_object</a> *obj, int flags)</td></tr>
75 <tr class="separator:a68a7385c555cf21797e361d1d4de3441"><td class="memSeparator" colspan="2">&#160;</td></tr>
76 <tr class="memitem:afd492c120e359d2d75b67da96b580661"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__util_8h.html#afd492c120e359d2d75b67da96b580661">json_object_to_fd</a> (int fd, struct <a class="el" href="structjson__object.html">json_object</a> *obj, int flags)</td></tr>
77 <tr class="separator:afd492c120e359d2d75b67da96b580661"><td class="memSeparator" colspan="2">&#160;</td></tr>
78 <tr class="memitem:a9fe4dbb5fe32850cdc22a97454e4500b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__util_8h.html#a9fe4dbb5fe32850cdc22a97454e4500b">json_util_get_last_err</a> (void)</td></tr>
79 <tr class="separator:a9fe4dbb5fe32850cdc22a97454e4500b"><td class="memSeparator" colspan="2">&#160;</td></tr>
80 <tr class="memitem:a9d9a63936cdae6639b9cdd87fdd13506"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__util_8h.html#a9d9a63936cdae6639b9cdd87fdd13506">json_parse_int64</a> (const char *buf, int64_t *retval)</td></tr>
81 <tr class="separator:a9d9a63936cdae6639b9cdd87fdd13506"><td class="memSeparator" colspan="2">&#160;</td></tr>
82 <tr class="memitem:a94c2340c1344d57f7aa067f2dd0407f9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__util_8h.html#a94c2340c1344d57f7aa067f2dd0407f9">json_parse_uint64</a> (const char *buf, uint64_t *retval)</td></tr>
83 <tr class="separator:a94c2340c1344d57f7aa067f2dd0407f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
84 <tr class="memitem:a3f0f0b8f29a41b47d62e6c867707be50"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__util_8h.html#a3f0f0b8f29a41b47d62e6c867707be50">json_parse_double</a> (const char *buf, double *retval)</td></tr>
85 <tr class="separator:a3f0f0b8f29a41b47d62e6c867707be50"><td class="memSeparator" colspan="2">&#160;</td></tr>
86 <tr class="memitem:a762aaf3df0a9c7b6919cdc1035348012"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__util_8h.html#a762aaf3df0a9c7b6919cdc1035348012">json_type_to_name</a> (enum <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06c">json_type</a> o_type)</td></tr>
87 <tr class="separator:a762aaf3df0a9c7b6919cdc1035348012"><td class="memSeparator" colspan="2">&#160;</td></tr>
88 </table>
89 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
90 <div class="textblock"><p>Miscllaneous utility functions and macros. </p>
91 </div><h2 class="groupheader">Macro Definition Documentation</h2>
92 <a class="anchor" id="a084b6afc8f7fbef88976aabe4aca7efd"></a>
93 <div class="memitem">
94 <div class="memproto">
95 <table class="memname">
96 <tr>
97 <td class="memname">#define JSON_FILE_BUF_SIZE&#160;&#160;&#160;4096</td>
98 </tr>
99 </table>
100 </div><div class="memdoc">
101
102 </div>
103 </div>
104 <a class="anchor" id="a57d63d199d4b9ea40359253618951300"></a>
105 <div class="memitem">
106 <div class="memproto">
107 <table class="memname">
108 <tr>
109 <td class="memname">#define json_max</td>
110 <td>(</td>
111 <td class="paramtype">&#160;</td>
112 <td class="paramname">a, </td>
113 </tr>
114 <tr>
115 <td class="paramkey"></td>
116 <td></td>
117 <td class="paramtype">&#160;</td>
118 <td class="paramname">b&#160;</td>
119 </tr>
120 <tr>
121 <td></td>
122 <td>)</td>
123 <td></td><td>&#160;&#160;&#160;((a) &gt; (b) ? (a) : (b))</td>
124 </tr>
125 </table>
126 </div><div class="memdoc">
127
128 </div>
129 </div>
130 <a class="anchor" id="a3dde282dc23d0eaa3c4840df8dc262d4"></a>
131 <div class="memitem">
132 <div class="memproto">
133 <table class="memname">
134 <tr>
135 <td class="memname">#define json_min</td>
136 <td>(</td>
137 <td class="paramtype">&#160;</td>
138 <td class="paramname">a, </td>
139 </tr>
140 <tr>
141 <td class="paramkey"></td>
142 <td></td>
143 <td class="paramtype">&#160;</td>
144 <td class="paramname">b&#160;</td>
145 </tr>
146 <tr>
147 <td></td>
148 <td>)</td>
149 <td></td><td>&#160;&#160;&#160;((a) &lt; (b) ? (a) : (b))</td>
150 </tr>
151 </table>
152 </div><div class="memdoc">
153
154 </div>
155 </div>
156 <h2 class="groupheader">Function Documentation</h2>
157 <a class="anchor" id="a5b72bf6f3ac8fb03da38d2e2d1e18d1b"></a>
158 <div class="memitem">
159 <div class="memproto">
160 <table class="mlabels">
161 <tr>
162 <td class="mlabels-left">
163 <table class="memname">
164 <tr>
165 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a>* json_object_from_fd </td>
166 <td>(</td>
167 <td class="paramtype">int&#160;</td>
168 <td class="paramname"><em>fd</em></td><td>)</td>
169 <td></td>
170 </tr>
171 </table>
172 </td>
173 <td class="mlabels-right">
174 <span class="mlabels"><span class="mlabel">read</span></span> </td>
175 </tr>
176 </table>
177 </div><div class="memdoc">
178 <p>Create a JSON object from an already opened file descriptor, using the default maximum object depth. (JSON_TOKENER_DEFAULT_DEPTH)</p>
179 <p>See <a class="el" href="json__util_8h.html#a88c5c7ce735d95f6c3c81c73475e14aa">json_object_from_fd_ex()</a> for details. </p>
180
181 </div>
182 </div>
183 <a class="anchor" id="a88c5c7ce735d95f6c3c81c73475e14aa"></a>
184 <div class="memitem">
185 <div class="memproto">
186 <table class="mlabels">
187 <tr>
188 <td class="mlabels-left">
189 <table class="memname">
190 <tr>
191 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a>* json_object_from_fd_ex </td>
192 <td>(</td>
193 <td class="paramtype">int&#160;</td>
194 <td class="paramname"><em>fd</em>, </td>
195 </tr>
196 <tr>
197 <td class="paramkey"></td>
198 <td></td>
199 <td class="paramtype">int&#160;</td>
200 <td class="paramname"><em>depth</em>&#160;</td>
201 </tr>
202 <tr>
203 <td></td>
204 <td>)</td>
205 <td></td><td></td>
206 </tr>
207 </table>
208 </td>
209 <td class="mlabels-right">
210 <span class="mlabels"><span class="mlabel">read</span></span> </td>
211 </tr>
212 </table>
213 </div><div class="memdoc">
214 <p>Create a JSON object from already opened file descriptor.</p>
215 <p>This function can be helpful, when you opened the file already, e.g. when you have a temp file. Note, that the fd must be readable at the actual position, i.e. use lseek(fd, 0, SEEK_SET) before.</p>
216 <p>The depth argument specifies the maximum object depth to pass to <a class="el" href="json__tokener_8h.html#a6a1583ddd434e13515d6232de813462e">json_tokener_new_ex()</a>. When depth == -1, JSON_TOKENER_DEFAULT_DEPTH is used instead.</p>
217 <p>Returns NULL on failure. See <a class="el" href="json__util_8h.html#a9fe4dbb5fe32850cdc22a97454e4500b">json_util_get_last_err()</a> for details. </p>
218
219 </div>
220 </div>
221 <a class="anchor" id="a03119ec0a71af4eee95318e9b2aaf05b"></a>
222 <div class="memitem">
223 <div class="memproto">
224 <table class="mlabels">
225 <tr>
226 <td class="mlabels-left">
227 <table class="memname">
228 <tr>
229 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structjson__object.html">json_object</a>* json_object_from_file </td>
230 <td>(</td>
231 <td class="paramtype">const char *&#160;</td>
232 <td class="paramname"><em>filename</em></td><td>)</td>
233 <td></td>
234 </tr>
235 </table>
236 </td>
237 <td class="mlabels-right">
238 <span class="mlabels"><span class="mlabel">read</span></span> </td>
239 </tr>
240 </table>
241 </div><div class="memdoc">
242 <p>Read the full contents of the given file, then convert it to a <a class="el" href="structjson__object.html">json_object</a> using <a class="el" href="json__tokener_8h.html#a236ef64d079822a4411d13eae7190c4d">json_tokener_parse()</a>.</p>
243 <p>Returns NULL on failure. See <a class="el" href="json__util_8h.html#a9fe4dbb5fe32850cdc22a97454e4500b">json_util_get_last_err()</a> for details. </p>
244
245 </div>
246 </div>
247 <a class="anchor" id="afd492c120e359d2d75b67da96b580661"></a>
248 <div class="memitem">
249 <div class="memproto">
250 <table class="memname">
251 <tr>
252 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_object_to_fd </td>
253 <td>(</td>
254 <td class="paramtype">int&#160;</td>
255 <td class="paramname"><em>fd</em>, </td>
256 </tr>
257 <tr>
258 <td class="paramkey"></td>
259 <td></td>
260 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
261 <td class="paramname"><em>obj</em>, </td>
262 </tr>
263 <tr>
264 <td class="paramkey"></td>
265 <td></td>
266 <td class="paramtype">int&#160;</td>
267 <td class="paramname"><em>flags</em>&#160;</td>
268 </tr>
269 <tr>
270 <td></td>
271 <td>)</td>
272 <td></td><td></td>
273 </tr>
274 </table>
275 </div><div class="memdoc">
276 <p>Convert the <a class="el" href="structjson__object.html">json_object</a> to a string and write it to the file descriptor. Handles partial writes and will keep writing until done, or an error occurs.</p>
277 <dl class="params"><dt>Parameters</dt><dd>
278 <table class="params">
279 <tr><td class="paramname">fd</td><td>an open, writable file descriptor to write to </td></tr>
280 <tr><td class="paramname">obj</td><td>the object to serializer and write </td></tr>
281 <tr><td class="paramname">flags</td><td>flags to pass to <a class="el" href="json__object_8h.html#a9db613127bd4ef7db42307e43a85fc1b">json_object_to_json_string_ext()</a> </td></tr>
282 </table>
283 </dd>
284 </dl>
285 <dl class="section return"><dt>Returns</dt><dd>-1 if something fails. See <a class="el" href="json__util_8h.html#a9fe4dbb5fe32850cdc22a97454e4500b">json_util_get_last_err()</a> for details. </dd></dl>
286
287 </div>
288 </div>
289 <a class="anchor" id="a486fc95fafe7cb91c58c7f6487036bc5"></a>
290 <div class="memitem">
291 <div class="memproto">
292 <table class="memname">
293 <tr>
294 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_object_to_file </td>
295 <td>(</td>
296 <td class="paramtype">const char *&#160;</td>
297 <td class="paramname"><em>filename</em>, </td>
298 </tr>
299 <tr>
300 <td class="paramkey"></td>
301 <td></td>
302 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
303 <td class="paramname"><em>obj</em>&#160;</td>
304 </tr>
305 <tr>
306 <td></td>
307 <td>)</td>
308 <td></td><td></td>
309 </tr>
310 </table>
311 </div><div class="memdoc">
312 <p>Equivalent to: json_object_to_file_ext(filename, obj, JSON_C_TO_STRING_PLAIN);</p>
313 <p>Returns -1 if something fails. See <a class="el" href="json__util_8h.html#a9fe4dbb5fe32850cdc22a97454e4500b">json_util_get_last_err()</a> for details. </p>
314
315 </div>
316 </div>
317 <a class="anchor" id="a68a7385c555cf21797e361d1d4de3441"></a>
318 <div class="memitem">
319 <div class="memproto">
320 <table class="memname">
321 <tr>
322 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_object_to_file_ext </td>
323 <td>(</td>
324 <td class="paramtype">const char *&#160;</td>
325 <td class="paramname"><em>filename</em>, </td>
326 </tr>
327 <tr>
328 <td class="paramkey"></td>
329 <td></td>
330 <td class="paramtype">struct <a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
331 <td class="paramname"><em>obj</em>, </td>
332 </tr>
333 <tr>
334 <td class="paramkey"></td>
335 <td></td>
336 <td class="paramtype">int&#160;</td>
337 <td class="paramname"><em>flags</em>&#160;</td>
338 </tr>
339 <tr>
340 <td></td>
341 <td>)</td>
342 <td></td><td></td>
343 </tr>
344 </table>
345 </div><div class="memdoc">
346 <p>Open and truncate the given file, creating it if necessary, then convert the <a class="el" href="structjson__object.html">json_object</a> to a string and write it to the file.</p>
347 <p>Returns -1 if something fails. See <a class="el" href="json__util_8h.html#a9fe4dbb5fe32850cdc22a97454e4500b">json_util_get_last_err()</a> for details. </p>
348
349 </div>
350 </div>
351 <a class="anchor" id="a3f0f0b8f29a41b47d62e6c867707be50"></a>
352 <div class="memitem">
353 <div class="memproto">
354 <table class="memname">
355 <tr>
356 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_parse_double </td>
357 <td>(</td>
358 <td class="paramtype">const char *&#160;</td>
359 <td class="paramname"><em>buf</em>, </td>
360 </tr>
361 <tr>
362 <td class="paramkey"></td>
363 <td></td>
364 <td class="paramtype">double *&#160;</td>
365 <td class="paramname"><em>retval</em>&#160;</td>
366 </tr>
367 <tr>
368 <td></td>
369 <td>)</td>
370 <td></td><td></td>
371 </tr>
372 </table>
373 </div><div class="memdoc">
374
375 </div>
376 </div>
377 <a class="anchor" id="a9d9a63936cdae6639b9cdd87fdd13506"></a>
378 <div class="memitem">
379 <div class="memproto">
380 <table class="memname">
381 <tr>
382 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_parse_int64 </td>
383 <td>(</td>
384 <td class="paramtype">const char *&#160;</td>
385 <td class="paramname"><em>buf</em>, </td>
386 </tr>
387 <tr>
388 <td class="paramkey"></td>
389 <td></td>
390 <td class="paramtype">int64_t *&#160;</td>
391 <td class="paramname"><em>retval</em>&#160;</td>
392 </tr>
393 <tr>
394 <td></td>
395 <td>)</td>
396 <td></td><td></td>
397 </tr>
398 </table>
399 </div><div class="memdoc">
400
401 </div>
402 </div>
403 <a class="anchor" id="a94c2340c1344d57f7aa067f2dd0407f9"></a>
404 <div class="memitem">
405 <div class="memproto">
406 <table class="memname">
407 <tr>
408 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_parse_uint64 </td>
409 <td>(</td>
410 <td class="paramtype">const char *&#160;</td>
411 <td class="paramname"><em>buf</em>, </td>
412 </tr>
413 <tr>
414 <td class="paramkey"></td>
415 <td></td>
416 <td class="paramtype">uint64_t *&#160;</td>
417 <td class="paramname"><em>retval</em>&#160;</td>
418 </tr>
419 <tr>
420 <td></td>
421 <td>)</td>
422 <td></td><td></td>
423 </tr>
424 </table>
425 </div><div class="memdoc">
426
427 </div>
428 </div>
429 <a class="anchor" id="a762aaf3df0a9c7b6919cdc1035348012"></a>
430 <div class="memitem">
431 <div class="memproto">
432 <table class="memname">
433 <tr>
434 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> const char* json_type_to_name </td>
435 <td>(</td>
436 <td class="paramtype">enum <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06c">json_type</a>&#160;</td>
437 <td class="paramname"><em>o_type</em></td><td>)</td>
438 <td></td>
439 </tr>
440 </table>
441 </div><div class="memdoc">
442 <p>Return a string describing the type of the object. e.g. "int", or "object", etc... </p>
443
444 </div>
445 </div>
446 <a class="anchor" id="a9fe4dbb5fe32850cdc22a97454e4500b"></a>
447 <div class="memitem">
448 <div class="memproto">
449 <table class="memname">
450 <tr>
451 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> const char* json_util_get_last_err </td>
452 <td>(</td>
453 <td class="paramtype">void&#160;</td>
454 <td class="paramname"></td><td>)</td>
455 <td></td>
456 </tr>
457 </table>
458 </div><div class="memdoc">
459 <p>Return the last error from various json-c functions, including: json_object_to_file{,<em>ext}, <a class="el" href="json__util_8h.html#afd492c120e359d2d75b67da96b580661">json_object_to_fd()</a> or json_object_from</em>{file,fd}, or NULL if there is none. </p>
460
461 </div>
462 </div>
463 </div><!-- contents -->
464 <!-- start footer part -->
465 <hr class="footer"/><address class="footer"><small>
466 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
467 <img class="footer" src="doxygen.png" alt="doxygen"/>
468 </a> 1.8.2
469 </small></address>
470 </body>
471 </html>
+0
-239
doc/html/json__visit_8h.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: json_visit.h File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#define-members">Macros</a> &#124;
46 <a href="#typedef-members">Typedefs</a> &#124;
47 <a href="#func-members">Functions</a> </div>
48 <div class="headertitle">
49 <div class="title">json_visit.h File Reference</div> </div>
50 </div><!--header-->
51 <div class="contents">
52
53 <p>Methods for walking a tree of objects.
54 <a href="#details">More...</a></p>
55 <table class="memberdecls">
56 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
57 Macros</h2></td></tr>
58 <tr class="memitem:ac5be4a96b99b724833943003715dfc1c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__visit_8h.html#ac5be4a96b99b724833943003715dfc1c">JSON_C_VISIT_SECOND</a>&#160;&#160;&#160;0x02</td></tr>
59 <tr class="separator:ac5be4a96b99b724833943003715dfc1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
60 <tr class="memitem:a98b35e1ba1d52d41799dccbfd2c170a1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__visit_8h.html#a98b35e1ba1d52d41799dccbfd2c170a1">JSON_C_VISIT_RETURN_CONTINUE</a>&#160;&#160;&#160;0</td></tr>
61 <tr class="separator:a98b35e1ba1d52d41799dccbfd2c170a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
62 <tr class="memitem:adc7ca60a79c4ae870d9463e41527c2a1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__visit_8h.html#adc7ca60a79c4ae870d9463e41527c2a1">JSON_C_VISIT_RETURN_SKIP</a>&#160;&#160;&#160;7547</td></tr>
63 <tr class="separator:adc7ca60a79c4ae870d9463e41527c2a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
64 <tr class="memitem:a327a21f1f1c6f84e7a13fbaaf4a51b13"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__visit_8h.html#a327a21f1f1c6f84e7a13fbaaf4a51b13">JSON_C_VISIT_RETURN_POP</a>&#160;&#160;&#160;767</td></tr>
65 <tr class="separator:a327a21f1f1c6f84e7a13fbaaf4a51b13"><td class="memSeparator" colspan="2">&#160;</td></tr>
66 <tr class="memitem:a5956f41bed48f90a127f9b37fad7ea97"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__visit_8h.html#a5956f41bed48f90a127f9b37fad7ea97">JSON_C_VISIT_RETURN_STOP</a>&#160;&#160;&#160;7867</td></tr>
67 <tr class="separator:a5956f41bed48f90a127f9b37fad7ea97"><td class="memSeparator" colspan="2">&#160;</td></tr>
68 <tr class="memitem:abfacb0713b81c897a8ce5f37ff6ffb9c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__visit_8h.html#abfacb0713b81c897a8ce5f37ff6ffb9c">JSON_C_VISIT_RETURN_ERROR</a>&#160;&#160;&#160;-1</td></tr>
69 <tr class="separator:abfacb0713b81c897a8ce5f37ff6ffb9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
70 </table><table class="memberdecls">
71 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
72 Typedefs</h2></td></tr>
73 <tr class="memitem:a0fadec4abb2befcacfaff7df822f3f8d"><td class="memItemLeft" align="right" valign="top">typedef int(&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__visit_8h.html#a0fadec4abb2befcacfaff7df822f3f8d">json_c_visit_userfunc</a> )(<a class="el" href="structjson__object.html">json_object</a> *jso, int flags, <a class="el" href="structjson__object.html">json_object</a> *parent_jso, const char *jso_key, size_t *jso_index, void *userarg)</td></tr>
74 <tr class="separator:a0fadec4abb2befcacfaff7df822f3f8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
75 </table><table class="memberdecls">
76 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
77 Functions</h2></td></tr>
78 <tr class="memitem:a0f585e56a5d417381cdf6c28538dbb20"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="json__visit_8h.html#a0f585e56a5d417381cdf6c28538dbb20">json_c_visit</a> (<a class="el" href="structjson__object.html">json_object</a> *jso, int future_flags, <a class="el" href="json__visit_8h.html#a0fadec4abb2befcacfaff7df822f3f8d">json_c_visit_userfunc</a> *userfunc, void *userarg)</td></tr>
79 <tr class="separator:a0f585e56a5d417381cdf6c28538dbb20"><td class="memSeparator" colspan="2">&#160;</td></tr>
80 </table>
81 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
82 <div class="textblock"><p>Methods for walking a tree of objects. </p>
83 </div><h2 class="groupheader">Macro Definition Documentation</h2>
84 <a class="anchor" id="a98b35e1ba1d52d41799dccbfd2c170a1"></a>
85 <div class="memitem">
86 <div class="memproto">
87 <table class="memname">
88 <tr>
89 <td class="memname">#define JSON_C_VISIT_RETURN_CONTINUE&#160;&#160;&#160;0</td>
90 </tr>
91 </table>
92 </div><div class="memdoc">
93 <p>This json_c_visit_userfunc return value indicates that iteration should proceed normally. </p>
94
95 </div>
96 </div>
97 <a class="anchor" id="abfacb0713b81c897a8ce5f37ff6ffb9c"></a>
98 <div class="memitem">
99 <div class="memproto">
100 <table class="memname">
101 <tr>
102 <td class="memname">#define JSON_C_VISIT_RETURN_ERROR&#160;&#160;&#160;-1</td>
103 </tr>
104 </table>
105 </div><div class="memdoc">
106 <p>This json_c_visit_userfunc return value indicates that iteration should stop immediately, and cause json_c_visit to return an error. </p>
107
108 </div>
109 </div>
110 <a class="anchor" id="a327a21f1f1c6f84e7a13fbaaf4a51b13"></a>
111 <div class="memitem">
112 <div class="memproto">
113 <table class="memname">
114 <tr>
115 <td class="memname">#define JSON_C_VISIT_RETURN_POP&#160;&#160;&#160;767</td>
116 </tr>
117 </table>
118 </div><div class="memdoc">
119 <p>This json_c_visit_userfunc return value indicates that iteration of the fields/elements of the <b>containing</b> object should stop and continue "popped up" a level of the object hierarchy. For example, returning this when handling arg will result in arg3 and any other fields being skipped. The next call to userfunc will be the JSON_C_VISIT_SECOND call on "foo", followed by a userfunc call on "bar". </p>
120 <pre>
121 {
122 "foo": {
123 "arg1": 1,
124 "arg2": 2,
125 "arg3": 3,
126 ...
127 },
128 "bar": {
129 ...
130 }
131 }
132 </pre>
133 </div>
134 </div>
135 <a class="anchor" id="adc7ca60a79c4ae870d9463e41527c2a1"></a>
136 <div class="memitem">
137 <div class="memproto">
138 <table class="memname">
139 <tr>
140 <td class="memname">#define JSON_C_VISIT_RETURN_SKIP&#160;&#160;&#160;7547</td>
141 </tr>
142 </table>
143 </div><div class="memdoc">
144 <p>This json_c_visit_userfunc return value indicates that iteration over the members of the current object should be skipped. If the current object isn't a container (array or object), this is no different than JSON_C_VISIT_RETURN_CONTINUE. </p>
145
146 </div>
147 </div>
148 <a class="anchor" id="a5956f41bed48f90a127f9b37fad7ea97"></a>
149 <div class="memitem">
150 <div class="memproto">
151 <table class="memname">
152 <tr>
153 <td class="memname">#define JSON_C_VISIT_RETURN_STOP&#160;&#160;&#160;7867</td>
154 </tr>
155 </table>
156 </div><div class="memdoc">
157 <p>This json_c_visit_userfunc return value indicates that iteration should stop immediately, and cause json_c_visit to return success. </p>
158
159 </div>
160 </div>
161 <a class="anchor" id="ac5be4a96b99b724833943003715dfc1c"></a>
162 <div class="memitem">
163 <div class="memproto">
164 <table class="memname">
165 <tr>
166 <td class="memname">#define JSON_C_VISIT_SECOND&#160;&#160;&#160;0x02</td>
167 </tr>
168 </table>
169 </div><div class="memdoc">
170 <p>Passed to json_c_visit_userfunc as one of the flags values to indicate that this is the second time a container (array or object) is being called, after all of it's members have been iterated over. </p>
171
172 </div>
173 </div>
174 <h2 class="groupheader">Typedef Documentation</h2>
175 <a class="anchor" id="a0fadec4abb2befcacfaff7df822f3f8d"></a>
176 <div class="memitem">
177 <div class="memproto">
178 <table class="memname">
179 <tr>
180 <td class="memname">typedef int( json_c_visit_userfunc)(<a class="el" href="structjson__object.html">json_object</a> *jso, int flags, <a class="el" href="structjson__object.html">json_object</a> *parent_jso, const char *jso_key, size_t *jso_index, void *userarg)</td>
181 </tr>
182 </table>
183 </div><div class="memdoc">
184
185 </div>
186 </div>
187 <h2 class="groupheader">Function Documentation</h2>
188 <a class="anchor" id="a0f585e56a5d417381cdf6c28538dbb20"></a>
189 <div class="memitem">
190 <div class="memproto">
191 <table class="memname">
192 <tr>
193 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int json_c_visit </td>
194 <td>(</td>
195 <td class="paramtype"><a class="el" href="structjson__object.html">json_object</a> *&#160;</td>
196 <td class="paramname"><em>jso</em>, </td>
197 </tr>
198 <tr>
199 <td class="paramkey"></td>
200 <td></td>
201 <td class="paramtype">int&#160;</td>
202 <td class="paramname"><em>future_flags</em>, </td>
203 </tr>
204 <tr>
205 <td class="paramkey"></td>
206 <td></td>
207 <td class="paramtype"><a class="el" href="json__visit_8h.html#a0fadec4abb2befcacfaff7df822f3f8d">json_c_visit_userfunc</a> *&#160;</td>
208 <td class="paramname"><em>userfunc</em>, </td>
209 </tr>
210 <tr>
211 <td class="paramkey"></td>
212 <td></td>
213 <td class="paramtype">void *&#160;</td>
214 <td class="paramname"><em>userarg</em>&#160;</td>
215 </tr>
216 <tr>
217 <td></td>
218 <td>)</td>
219 <td></td><td></td>
220 </tr>
221 </table>
222 </div><div class="memdoc">
223 <p>Visit each object in the JSON hierarchy starting at jso. For each object, userfunc is called, passing the object and userarg. If the object has a parent (i.e. anything other than jso itself) its parent will be passed as parent_jso, and either jso_key or jso_index will be set, depending on whether the parent is an object or an array.</p>
224 <p>Nodes will be visited depth first, but containers (arrays and objects) will be visited twice, the second time with JSON_C_VISIT_SECOND set in flags.</p>
225 <p>userfunc must return one of the defined return values, to indicate whether and how to continue visiting nodes, or one of various ways to stop.</p>
226 <p>Returns 0 if nodes were visited successfully, even if some were intentionally skipped due to what userfunc returned. Returns &lt;0 if an error occurred during iteration, including if userfunc returned JSON_C_VISIT_RETURN_ERROR. </p>
227
228 </div>
229 </div>
230 </div><!-- contents -->
231 <!-- start footer part -->
232 <hr class="footer"/><address class="footer"><small>
233 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
234 <img class="footer" src="doxygen.png" alt="doxygen"/>
235 </a> 1.8.2
236 </small></address>
237 </body>
238 </html>
+0
-956
doc/html/linkhash_8h.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: linkhash.h File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#nested-classes">Data Structures</a> &#124;
46 <a href="#define-members">Macros</a> &#124;
47 <a href="#typedef-members">Typedefs</a> &#124;
48 <a href="#func-members">Functions</a> </div>
49 <div class="headertitle">
50 <div class="title">linkhash.h File Reference</div> </div>
51 </div><!--header-->
52 <div class="contents">
53
54 <p>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.
55 <a href="#details">More...</a></p>
56 <table class="memberdecls">
57 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
58 Data Structures</h2></td></tr>
59 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlh__entry.html">lh_entry</a></td></tr>
60 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
61 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlh__table.html">lh_table</a></td></tr>
62 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
63 </table><table class="memberdecls">
64 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
65 Macros</h2></td></tr>
66 <tr class="memitem:a032f1bd115df254dda325437203ce5fb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a032f1bd115df254dda325437203ce5fb">LH_PRIME</a>&#160;&#160;&#160;0x9e370001UL</td></tr>
67 <tr class="separator:a032f1bd115df254dda325437203ce5fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
68 <tr class="memitem:a66b61772c29d85eb52b697e0b0dc0aaf"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a66b61772c29d85eb52b697e0b0dc0aaf">LH_LOAD_FACTOR</a>&#160;&#160;&#160;0.66</td></tr>
69 <tr class="separator:a66b61772c29d85eb52b697e0b0dc0aaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
70 <tr class="memitem:a93fad7f8ae44575dc89c9567859972d2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a93fad7f8ae44575dc89c9567859972d2">LH_EMPTY</a>&#160;&#160;&#160;(void *)-1</td></tr>
71 <tr class="separator:a93fad7f8ae44575dc89c9567859972d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
72 <tr class="memitem:ac69428f2de0a6fb080b6fb373d506aa7"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#ac69428f2de0a6fb080b6fb373d506aa7">LH_FREED</a>&#160;&#160;&#160;(void *)-2</td></tr>
73 <tr class="separator:ac69428f2de0a6fb080b6fb373d506aa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
74 <tr class="memitem:ac32e80138c5be6dd9b0483a9cbcc8799"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#ac32e80138c5be6dd9b0483a9cbcc8799">JSON_C_STR_HASH_DFLT</a>&#160;&#160;&#160;0</td></tr>
75 <tr class="separator:ac32e80138c5be6dd9b0483a9cbcc8799"><td class="memSeparator" colspan="2">&#160;</td></tr>
76 <tr class="memitem:a62316f34fd42941b97a8e9a6b6e68faa"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a62316f34fd42941b97a8e9a6b6e68faa">JSON_C_STR_HASH_PERLLIKE</a>&#160;&#160;&#160;1</td></tr>
77 <tr class="separator:a62316f34fd42941b97a8e9a6b6e68faa"><td class="memSeparator" colspan="2">&#160;</td></tr>
78 <tr class="memitem:ad7dd67da915065dce2c6f44cb03e2d82"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#ad7dd67da915065dce2c6f44cb03e2d82">lh_foreach</a>(table, entry)&#160;&#160;&#160;for (entry = table-&gt;head; entry; entry = entry-&gt;next)</td></tr>
79 <tr class="separator:ad7dd67da915065dce2c6f44cb03e2d82"><td class="memSeparator" colspan="2">&#160;</td></tr>
80 <tr class="memitem:abcbb0df08b4976d0649b826b6bacfca1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#abcbb0df08b4976d0649b826b6bacfca1">lh_foreach_safe</a>(table, entry, tmp)&#160;&#160;&#160;for (entry = table-&gt;head; entry &amp;&amp; ((tmp = entry-&gt;next) || 1); entry = tmp)</td></tr>
81 <tr class="separator:abcbb0df08b4976d0649b826b6bacfca1"><td class="memSeparator" colspan="2">&#160;</td></tr>
82 <tr class="memitem:a77c5cddef96e6f1ab036ccf911783456"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a77c5cddef96e6f1ab036ccf911783456">_LH_INLINE</a>&#160;&#160;&#160;inline</td></tr>
83 <tr class="separator:a77c5cddef96e6f1ab036ccf911783456"><td class="memSeparator" colspan="2">&#160;</td></tr>
84 <tr class="memitem:afb856ed4a9bcfd090dde5151fa3ad9ae"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#afb856ed4a9bcfd090dde5151fa3ad9ae">_LH_UNCONST</a>(a)&#160;&#160;&#160;((void *)(uintptr_t)(const void *)(a))</td></tr>
85 <tr class="separator:afb856ed4a9bcfd090dde5151fa3ad9ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
86 <tr class="memitem:a7579ce28b8366fc9b8656f14270aa3aa"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a7579ce28b8366fc9b8656f14270aa3aa">lh_entry_k</a>(entry)&#160;&#160;&#160;<a class="el" href="linkhash_8h.html#afb856ed4a9bcfd090dde5151fa3ad9ae">_LH_UNCONST</a>((entry)-&gt;k)</td></tr>
87 <tr class="separator:a7579ce28b8366fc9b8656f14270aa3aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
88 <tr class="memitem:a0d4052ccfd8c5d351a9c1d3ba07671b3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a0d4052ccfd8c5d351a9c1d3ba07671b3">lh_entry_v</a>(entry)&#160;&#160;&#160;<a class="el" href="linkhash_8h.html#afb856ed4a9bcfd090dde5151fa3ad9ae">_LH_UNCONST</a>((entry)-&gt;v)</td></tr>
89 <tr class="separator:a0d4052ccfd8c5d351a9c1d3ba07671b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
90 </table><table class="memberdecls">
91 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
92 Typedefs</h2></td></tr>
93 <tr class="memitem:a671553d0ee3c2a123190ba0f8ed2b635"><td class="memItemLeft" align="right" valign="top">typedef void(&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> )(struct <a class="el" href="structlh__entry.html">lh_entry</a> *e)</td></tr>
94 <tr class="separator:a671553d0ee3c2a123190ba0f8ed2b635"><td class="memSeparator" colspan="2">&#160;</td></tr>
95 <tr class="memitem:a38bae27995dcfb6ee3fb109a9be229b2"><td class="memItemLeft" align="right" valign="top">typedef unsigned long(&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a38bae27995dcfb6ee3fb109a9be229b2">lh_hash_fn</a> )(const void *k)</td></tr>
96 <tr class="separator:a38bae27995dcfb6ee3fb109a9be229b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
97 <tr class="memitem:a91fd85fc81b0c7c83c62f00e84729091"><td class="memItemLeft" align="right" valign="top">typedef int(&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a91fd85fc81b0c7c83c62f00e84729091">lh_equal_fn</a> )(const void *k1, const void *k2)</td></tr>
98 <tr class="separator:a91fd85fc81b0c7c83c62f00e84729091"><td class="memSeparator" colspan="2">&#160;</td></tr>
99 <tr class="memitem:a766e90057496fc6712d6be0da180a21f"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structlh__table.html">lh_table</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a766e90057496fc6712d6be0da180a21f">lh_table</a></td></tr>
100 <tr class="separator:a766e90057496fc6712d6be0da180a21f"><td class="memSeparator" colspan="2">&#160;</td></tr>
101 </table><table class="memberdecls">
102 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
103 Functions</h2></td></tr>
104 <tr class="memitem:ac8e1d61af44d9c0824d8c7980385bcd3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#ac8e1d61af44d9c0824d8c7980385bcd3">json_global_set_string_hash</a> (const int h)</td></tr>
105 <tr class="separator:ac8e1d61af44d9c0824d8c7980385bcd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
106 <tr class="memitem:a9c4f8a71dbe4d3390d9f7adb331beb0e"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structlh__table.html">lh_table</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a9c4f8a71dbe4d3390d9f7adb331beb0e">lh_table_new</a> (int size, <a class="el" href="linkhash_8h.html#a671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> *free_fn, <a class="el" href="linkhash_8h.html#a38bae27995dcfb6ee3fb109a9be229b2">lh_hash_fn</a> *hash_fn, <a class="el" href="linkhash_8h.html#a91fd85fc81b0c7c83c62f00e84729091">lh_equal_fn</a> *equal_fn)</td></tr>
107 <tr class="separator:a9c4f8a71dbe4d3390d9f7adb331beb0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
108 <tr class="memitem:a6bf630754affe92612639542a6c49c3f"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structlh__table.html">lh_table</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a6bf630754affe92612639542a6c49c3f">lh_kchar_table_new</a> (int size, <a class="el" href="linkhash_8h.html#a671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> *free_fn)</td></tr>
109 <tr class="separator:a6bf630754affe92612639542a6c49c3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
110 <tr class="memitem:af8108563b961dbf5471fe2c0e51f40a5"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structlh__table.html">lh_table</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#af8108563b961dbf5471fe2c0e51f40a5">lh_kptr_table_new</a> (int size, <a class="el" href="linkhash_8h.html#a671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> *free_fn)</td></tr>
111 <tr class="separator:af8108563b961dbf5471fe2c0e51f40a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
112 <tr class="memitem:a81653acf740cf8c9fe672e6cd16df0cf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a81653acf740cf8c9fe672e6cd16df0cf">lh_table_free</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t)</td></tr>
113 <tr class="separator:a81653acf740cf8c9fe672e6cd16df0cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
114 <tr class="memitem:a86c0cd547be1e2c2486a73bd58e1352c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a86c0cd547be1e2c2486a73bd58e1352c">lh_table_insert</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, const void *k, const void *v)</td></tr>
115 <tr class="separator:a86c0cd547be1e2c2486a73bd58e1352c"><td class="memSeparator" colspan="2">&#160;</td></tr>
116 <tr class="memitem:a4558a9347a422e03a15b0b7a29b82dc3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a4558a9347a422e03a15b0b7a29b82dc3">lh_table_insert_w_hash</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, const void *k, const void *v, const unsigned long h, const unsigned opts)</td></tr>
117 <tr class="separator:a4558a9347a422e03a15b0b7a29b82dc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
118 <tr class="memitem:ad3b6ca2d967a6c3021ee6c39e014a918"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structlh__entry.html">lh_entry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#ad3b6ca2d967a6c3021ee6c39e014a918">lh_table_lookup_entry</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, const void *k)</td></tr>
119 <tr class="separator:ad3b6ca2d967a6c3021ee6c39e014a918"><td class="memSeparator" colspan="2">&#160;</td></tr>
120 <tr class="memitem:a59ecaf34ef59280952f4459b2de63677"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structlh__entry.html">lh_entry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a59ecaf34ef59280952f4459b2de63677">lh_table_lookup_entry_w_hash</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, const void *k, const unsigned long h)</td></tr>
121 <tr class="separator:a59ecaf34ef59280952f4459b2de63677"><td class="memSeparator" colspan="2">&#160;</td></tr>
122 <tr class="memitem:a81c270bb0dd9d5c8a3e7ae20bc4d67f3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="json__types_8h.html#a81f02022906fafc71eb9197049f07f73">json_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a81c270bb0dd9d5c8a3e7ae20bc4d67f3">lh_table_lookup_ex</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, const void *k, void **v)</td></tr>
123 <tr class="separator:a81c270bb0dd9d5c8a3e7ae20bc4d67f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
124 <tr class="memitem:ae5885a71c3457190fb1dc2d6e20dde3b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#ae5885a71c3457190fb1dc2d6e20dde3b">lh_table_delete_entry</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, struct <a class="el" href="structlh__entry.html">lh_entry</a> *e)</td></tr>
125 <tr class="separator:ae5885a71c3457190fb1dc2d6e20dde3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
126 <tr class="memitem:a2fed2c78f70d229edb2d00775ffe593c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a2fed2c78f70d229edb2d00775ffe593c">lh_table_delete</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, const void *k)</td></tr>
127 <tr class="separator:a2fed2c78f70d229edb2d00775ffe593c"><td class="memSeparator" colspan="2">&#160;</td></tr>
128 <tr class="memitem:ac9ba631c91fe80fb905f04c7cd526f2b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#ac9ba631c91fe80fb905f04c7cd526f2b">lh_table_length</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t)</td></tr>
129 <tr class="separator:ac9ba631c91fe80fb905f04c7cd526f2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
130 <tr class="memitem:a30c8414e31aeee7669acc938116d933f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="linkhash_8h.html#a30c8414e31aeee7669acc938116d933f">lh_table_resize</a> (struct <a class="el" href="structlh__table.html">lh_table</a> *t, int new_size)</td></tr>
131 <tr class="separator:a30c8414e31aeee7669acc938116d933f"><td class="memSeparator" colspan="2">&#160;</td></tr>
132 </table>
133 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
134 <div class="textblock"><p>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. </p>
135 </div><h2 class="groupheader">Macro Definition Documentation</h2>
136 <a class="anchor" id="a77c5cddef96e6f1ab036ccf911783456"></a>
137 <div class="memitem">
138 <div class="memproto">
139 <table class="memname">
140 <tr>
141 <td class="memname">#define _LH_INLINE&#160;&#160;&#160;inline</td>
142 </tr>
143 </table>
144 </div><div class="memdoc">
145 <dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000007">Deprecated:</a></b></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></dl>
146
147 </div>
148 </div>
149 <a class="anchor" id="afb856ed4a9bcfd090dde5151fa3ad9ae"></a>
150 <div class="memitem">
151 <div class="memproto">
152 <table class="memname">
153 <tr>
154 <td class="memname">#define _LH_UNCONST</td>
155 <td>(</td>
156 <td class="paramtype">&#160;</td>
157 <td class="paramname">a</td><td>)</td>
158 <td>&#160;&#160;&#160;((void *)(uintptr_t)(const void *)(a))</td>
159 </tr>
160 </table>
161 </div><div class="memdoc">
162 <dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000008">Deprecated:</a></b></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></dl>
163
164 </div>
165 </div>
166 <a class="anchor" id="ac32e80138c5be6dd9b0483a9cbcc8799"></a>
167 <div class="memitem">
168 <div class="memproto">
169 <table class="memname">
170 <tr>
171 <td class="memname">#define JSON_C_STR_HASH_DFLT&#160;&#160;&#160;0</td>
172 </tr>
173 </table>
174 </div><div class="memdoc">
175 <p>default string hash function </p>
176
177 </div>
178 </div>
179 <a class="anchor" id="a62316f34fd42941b97a8e9a6b6e68faa"></a>
180 <div class="memitem">
181 <div class="memproto">
182 <table class="memname">
183 <tr>
184 <td class="memname">#define JSON_C_STR_HASH_PERLLIKE&#160;&#160;&#160;1</td>
185 </tr>
186 </table>
187 </div><div class="memdoc">
188 <p>perl-like string hash function </p>
189
190 </div>
191 </div>
192 <a class="anchor" id="a93fad7f8ae44575dc89c9567859972d2"></a>
193 <div class="memitem">
194 <div class="memproto">
195 <table class="memname">
196 <tr>
197 <td class="memname">#define LH_EMPTY&#160;&#160;&#160;(void *)-1</td>
198 </tr>
199 </table>
200 </div><div class="memdoc">
201 <p>sentinel pointer value for empty slots </p>
202
203 </div>
204 </div>
205 <a class="anchor" id="a7579ce28b8366fc9b8656f14270aa3aa"></a>
206 <div class="memitem">
207 <div class="memproto">
208 <table class="memname">
209 <tr>
210 <td class="memname">#define lh_entry_k</td>
211 <td>(</td>
212 <td class="paramtype">&#160;</td>
213 <td class="paramname">entry</td><td>)</td>
214 <td>&#160;&#160;&#160;<a class="el" href="linkhash_8h.html#afb856ed4a9bcfd090dde5151fa3ad9ae">_LH_UNCONST</a>((entry)-&gt;k)</td>
215 </tr>
216 </table>
217 </div><div class="memdoc">
218 <p>Return a non-const version of <a class="el" href="structlh__entry.html#a79d9f1ef0dc444e17105aaeaf167e22c">lh_entry.k</a>.</p>
219 <p><a class="el" href="structlh__entry.html#a79d9f1ef0dc444e17105aaeaf167e22c">lh_entry.k</a> is const to indicate and help ensure that linkhash itself doesn't modify it, but callers are allowed to do what they want with it. See also <a class="el" href="structlh__entry.html#a14f40cc124c32b03f81151ae7934d2e7">lh_entry.k_is_constant</a> </p>
220
221 </div>
222 </div>
223 <a class="anchor" id="a0d4052ccfd8c5d351a9c1d3ba07671b3"></a>
224 <div class="memitem">
225 <div class="memproto">
226 <table class="memname">
227 <tr>
228 <td class="memname">#define lh_entry_v</td>
229 <td>(</td>
230 <td class="paramtype">&#160;</td>
231 <td class="paramname">entry</td><td>)</td>
232 <td>&#160;&#160;&#160;<a class="el" href="linkhash_8h.html#afb856ed4a9bcfd090dde5151fa3ad9ae">_LH_UNCONST</a>((entry)-&gt;v)</td>
233 </tr>
234 </table>
235 </div><div class="memdoc">
236 <p>Return a non-const version of <a class="el" href="structlh__entry.html#a1b676732ab2ad3eeaedf6ec60a6a0835">lh_entry.v</a>.</p>
237 <p>v is const to indicate and help ensure that linkhash itself doesn't modify it, but callers are allowed to do what they want with it. </p>
238
239 </div>
240 </div>
241 <a class="anchor" id="ad7dd67da915065dce2c6f44cb03e2d82"></a>
242 <div class="memitem">
243 <div class="memproto">
244 <table class="memname">
245 <tr>
246 <td class="memname">#define lh_foreach</td>
247 <td>(</td>
248 <td class="paramtype">&#160;</td>
249 <td class="paramname">table, </td>
250 </tr>
251 <tr>
252 <td class="paramkey"></td>
253 <td></td>
254 <td class="paramtype">&#160;</td>
255 <td class="paramname">entry&#160;</td>
256 </tr>
257 <tr>
258 <td></td>
259 <td>)</td>
260 <td></td><td>&#160;&#160;&#160;for (entry = table-&gt;head; entry; entry = entry-&gt;next)</td>
261 </tr>
262 </table>
263 </div><div class="memdoc">
264 <p>Convenience list iterator. </p>
265
266 </div>
267 </div>
268 <a class="anchor" id="abcbb0df08b4976d0649b826b6bacfca1"></a>
269 <div class="memitem">
270 <div class="memproto">
271 <table class="memname">
272 <tr>
273 <td class="memname">#define lh_foreach_safe</td>
274 <td>(</td>
275 <td class="paramtype">&#160;</td>
276 <td class="paramname">table, </td>
277 </tr>
278 <tr>
279 <td class="paramkey"></td>
280 <td></td>
281 <td class="paramtype">&#160;</td>
282 <td class="paramname">entry, </td>
283 </tr>
284 <tr>
285 <td class="paramkey"></td>
286 <td></td>
287 <td class="paramtype">&#160;</td>
288 <td class="paramname">tmp&#160;</td>
289 </tr>
290 <tr>
291 <td></td>
292 <td>)</td>
293 <td></td><td>&#160;&#160;&#160;for (entry = table-&gt;head; entry &amp;&amp; ((tmp = entry-&gt;next) || 1); entry = tmp)</td>
294 </tr>
295 </table>
296 </div><div class="memdoc">
297 <p>lh_foreach_safe allows calling of deletion routine while iterating.</p>
298 <dl class="params"><dt>Parameters</dt><dd>
299 <table class="params">
300 <tr><td class="paramname">table</td><td>a struct <a class="el" href="structlh__table.html">lh_table</a> * to iterate over </td></tr>
301 <tr><td class="paramname">entry</td><td>a struct <a class="el" href="structlh__entry.html">lh_entry</a> * variable to hold each element </td></tr>
302 <tr><td class="paramname">tmp</td><td>a struct <a class="el" href="structlh__entry.html">lh_entry</a> * variable to hold a temporary pointer to the next element </td></tr>
303 </table>
304 </dd>
305 </dl>
306
307 </div>
308 </div>
309 <a class="anchor" id="ac69428f2de0a6fb080b6fb373d506aa7"></a>
310 <div class="memitem">
311 <div class="memproto">
312 <table class="memname">
313 <tr>
314 <td class="memname">#define LH_FREED&#160;&#160;&#160;(void *)-2</td>
315 </tr>
316 </table>
317 </div><div class="memdoc">
318 <p>sentinel pointer value for freed slots </p>
319
320 </div>
321 </div>
322 <a class="anchor" id="a66b61772c29d85eb52b697e0b0dc0aaf"></a>
323 <div class="memitem">
324 <div class="memproto">
325 <table class="memname">
326 <tr>
327 <td class="memname">#define LH_LOAD_FACTOR&#160;&#160;&#160;0.66</td>
328 </tr>
329 </table>
330 </div><div class="memdoc">
331 <p>The fraction of filled hash buckets until an insert will cause the table to be resized. This can range from just above 0 up to 1.0. </p>
332
333 </div>
334 </div>
335 <a class="anchor" id="a032f1bd115df254dda325437203ce5fb"></a>
336 <div class="memitem">
337 <div class="memproto">
338 <table class="memname">
339 <tr>
340 <td class="memname">#define LH_PRIME&#160;&#160;&#160;0x9e370001UL</td>
341 </tr>
342 </table>
343 </div><div class="memdoc">
344 <p>golden prime used in hash functions </p>
345
346 </div>
347 </div>
348 <h2 class="groupheader">Typedef Documentation</h2>
349 <a class="anchor" id="a671553d0ee3c2a123190ba0f8ed2b635"></a>
350 <div class="memitem">
351 <div class="memproto">
352 <table class="memname">
353 <tr>
354 <td class="memname">typedef void( lh_entry_free_fn)(struct <a class="el" href="structlh__entry.html">lh_entry</a> *e)</td>
355 </tr>
356 </table>
357 </div><div class="memdoc">
358 <p>callback function prototypes </p>
359
360 </div>
361 </div>
362 <a class="anchor" id="a91fd85fc81b0c7c83c62f00e84729091"></a>
363 <div class="memitem">
364 <div class="memproto">
365 <table class="memname">
366 <tr>
367 <td class="memname">typedef int( lh_equal_fn)(const void *k1, const void *k2)</td>
368 </tr>
369 </table>
370 </div><div class="memdoc">
371 <p>callback function prototypes </p>
372
373 </div>
374 </div>
375 <a class="anchor" id="a38bae27995dcfb6ee3fb109a9be229b2"></a>
376 <div class="memitem">
377 <div class="memproto">
378 <table class="memname">
379 <tr>
380 <td class="memname">typedef unsigned long( lh_hash_fn)(const void *k)</td>
381 </tr>
382 </table>
383 </div><div class="memdoc">
384 <p>callback function prototypes </p>
385
386 </div>
387 </div>
388 <a class="anchor" id="a766e90057496fc6712d6be0da180a21f"></a>
389 <div class="memitem">
390 <div class="memproto">
391 <table class="memname">
392 <tr>
393 <td class="memname">typedef struct <a class="el" href="structlh__table.html">lh_table</a> <a class="el" href="structlh__table.html">lh_table</a></td>
394 </tr>
395 </table>
396 </div><div class="memdoc">
397
398 </div>
399 </div>
400 <h2 class="groupheader">Function Documentation</h2>
401 <a class="anchor" id="ac8e1d61af44d9c0824d8c7980385bcd3"></a>
402 <div class="memitem">
403 <div class="memproto">
404 <table class="memname">
405 <tr>
406 <td class="memname">int json_global_set_string_hash </td>
407 <td>(</td>
408 <td class="paramtype">const int&#160;</td>
409 <td class="paramname"><em>h</em></td><td>)</td>
410 <td></td>
411 </tr>
412 </table>
413 </div><div class="memdoc">
414 <p>This function sets the hash function to be used for strings. Must be one of the JSON_C_STR_HASH_* values. </p>
415 <dl class="section return"><dt>Returns</dt><dd>0 - ok, -1 if parameter was invalid </dd></dl>
416
417 </div>
418 </div>
419 <a class="anchor" id="a6bf630754affe92612639542a6c49c3f"></a>
420 <div class="memitem">
421 <div class="memproto">
422 <table class="mlabels">
423 <tr>
424 <td class="mlabels-left">
425 <table class="memname">
426 <tr>
427 <td class="memname">struct <a class="el" href="structlh__table.html">lh_table</a>* lh_kchar_table_new </td>
428 <td>(</td>
429 <td class="paramtype">int&#160;</td>
430 <td class="paramname"><em>size</em>, </td>
431 </tr>
432 <tr>
433 <td class="paramkey"></td>
434 <td></td>
435 <td class="paramtype"><a class="el" href="linkhash_8h.html#a671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> *&#160;</td>
436 <td class="paramname"><em>free_fn</em>&#160;</td>
437 </tr>
438 <tr>
439 <td></td>
440 <td>)</td>
441 <td></td><td></td>
442 </tr>
443 </table>
444 </td>
445 <td class="mlabels-right">
446 <span class="mlabels"><span class="mlabel">read</span></span> </td>
447 </tr>
448 </table>
449 </div><div class="memdoc">
450 <p>Convenience function to create a new linkhash table with char keys.</p>
451 <dl class="params"><dt>Parameters</dt><dd>
452 <table class="params">
453 <tr><td class="paramname">size</td><td>initial table size. </td></tr>
454 <tr><td class="paramname">free_fn</td><td>callback function used to free memory for entries. </td></tr>
455 </table>
456 </dd>
457 </dl>
458 <dl class="section return"><dt>Returns</dt><dd>On success, a pointer to the new linkhash table is returned. On error, a null pointer is returned. </dd></dl>
459
460 </div>
461 </div>
462 <a class="anchor" id="af8108563b961dbf5471fe2c0e51f40a5"></a>
463 <div class="memitem">
464 <div class="memproto">
465 <table class="mlabels">
466 <tr>
467 <td class="mlabels-left">
468 <table class="memname">
469 <tr>
470 <td class="memname">struct <a class="el" href="structlh__table.html">lh_table</a>* lh_kptr_table_new </td>
471 <td>(</td>
472 <td class="paramtype">int&#160;</td>
473 <td class="paramname"><em>size</em>, </td>
474 </tr>
475 <tr>
476 <td class="paramkey"></td>
477 <td></td>
478 <td class="paramtype"><a class="el" href="linkhash_8h.html#a671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> *&#160;</td>
479 <td class="paramname"><em>free_fn</em>&#160;</td>
480 </tr>
481 <tr>
482 <td></td>
483 <td>)</td>
484 <td></td><td></td>
485 </tr>
486 </table>
487 </td>
488 <td class="mlabels-right">
489 <span class="mlabels"><span class="mlabel">read</span></span> </td>
490 </tr>
491 </table>
492 </div><div class="memdoc">
493 <p>Convenience function to create a new linkhash table with ptr keys.</p>
494 <dl class="params"><dt>Parameters</dt><dd>
495 <table class="params">
496 <tr><td class="paramname">size</td><td>initial table size. </td></tr>
497 <tr><td class="paramname">free_fn</td><td>callback function used to free memory for entries. </td></tr>
498 </table>
499 </dd>
500 </dl>
501 <dl class="section return"><dt>Returns</dt><dd>On success, a pointer to the new linkhash table is returned. On error, a null pointer is returned. </dd></dl>
502
503 </div>
504 </div>
505 <a class="anchor" id="a2fed2c78f70d229edb2d00775ffe593c"></a>
506 <div class="memitem">
507 <div class="memproto">
508 <table class="memname">
509 <tr>
510 <td class="memname">int lh_table_delete </td>
511 <td>(</td>
512 <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&#160;</td>
513 <td class="paramname"><em>t</em>, </td>
514 </tr>
515 <tr>
516 <td class="paramkey"></td>
517 <td></td>
518 <td class="paramtype">const void *&#160;</td>
519 <td class="paramname"><em>k</em>&#160;</td>
520 </tr>
521 <tr>
522 <td></td>
523 <td>)</td>
524 <td></td><td></td>
525 </tr>
526 </table>
527 </div><div class="memdoc">
528 <p>Delete a record from the table.</p>
529 <p>If a callback free function is provided then it is called for the for the item being deleted. </p>
530 <dl class="params"><dt>Parameters</dt><dd>
531 <table class="params">
532 <tr><td class="paramname">t</td><td>the table to delete from. </td></tr>
533 <tr><td class="paramname">k</td><td>a pointer to the key to delete. </td></tr>
534 </table>
535 </dd>
536 </dl>
537 <dl class="section return"><dt>Returns</dt><dd>0 if the item was deleted. </dd>
538 <dd>
539 -1 if it was not found. </dd></dl>
540
541 </div>
542 </div>
543 <a class="anchor" id="ae5885a71c3457190fb1dc2d6e20dde3b"></a>
544 <div class="memitem">
545 <div class="memproto">
546 <table class="memname">
547 <tr>
548 <td class="memname">int lh_table_delete_entry </td>
549 <td>(</td>
550 <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&#160;</td>
551 <td class="paramname"><em>t</em>, </td>
552 </tr>
553 <tr>
554 <td class="paramkey"></td>
555 <td></td>
556 <td class="paramtype">struct <a class="el" href="structlh__entry.html">lh_entry</a> *&#160;</td>
557 <td class="paramname"><em>e</em>&#160;</td>
558 </tr>
559 <tr>
560 <td></td>
561 <td>)</td>
562 <td></td><td></td>
563 </tr>
564 </table>
565 </div><div class="memdoc">
566 <p>Delete a record from the table.</p>
567 <p>If a callback free function is provided then it is called for the for the item being deleted. </p>
568 <dl class="params"><dt>Parameters</dt><dd>
569 <table class="params">
570 <tr><td class="paramname">t</td><td>the table to delete from. </td></tr>
571 <tr><td class="paramname">e</td><td>a pointer to the entry to delete. </td></tr>
572 </table>
573 </dd>
574 </dl>
575 <dl class="section return"><dt>Returns</dt><dd>0 if the item was deleted. </dd>
576 <dd>
577 -1 if it was not found. </dd></dl>
578
579 </div>
580 </div>
581 <a class="anchor" id="a81653acf740cf8c9fe672e6cd16df0cf"></a>
582 <div class="memitem">
583 <div class="memproto">
584 <table class="memname">
585 <tr>
586 <td class="memname">void lh_table_free </td>
587 <td>(</td>
588 <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&#160;</td>
589 <td class="paramname"><em>t</em></td><td>)</td>
590 <td></td>
591 </tr>
592 </table>
593 </div><div class="memdoc">
594 <p>Free a linkhash table.</p>
595 <p>If a lh_entry_free_fn callback free function was provided then it is called for all entries in the table.</p>
596 <dl class="params"><dt>Parameters</dt><dd>
597 <table class="params">
598 <tr><td class="paramname">t</td><td>table to free. </td></tr>
599 </table>
600 </dd>
601 </dl>
602
603 </div>
604 </div>
605 <a class="anchor" id="a86c0cd547be1e2c2486a73bd58e1352c"></a>
606 <div class="memitem">
607 <div class="memproto">
608 <table class="memname">
609 <tr>
610 <td class="memname">int lh_table_insert </td>
611 <td>(</td>
612 <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&#160;</td>
613 <td class="paramname"><em>t</em>, </td>
614 </tr>
615 <tr>
616 <td class="paramkey"></td>
617 <td></td>
618 <td class="paramtype">const void *&#160;</td>
619 <td class="paramname"><em>k</em>, </td>
620 </tr>
621 <tr>
622 <td class="paramkey"></td>
623 <td></td>
624 <td class="paramtype">const void *&#160;</td>
625 <td class="paramname"><em>v</em>&#160;</td>
626 </tr>
627 <tr>
628 <td></td>
629 <td>)</td>
630 <td></td><td></td>
631 </tr>
632 </table>
633 </div><div class="memdoc">
634 <p>Insert a record into the table.</p>
635 <dl class="params"><dt>Parameters</dt><dd>
636 <table class="params">
637 <tr><td class="paramname">t</td><td>the table to insert into. </td></tr>
638 <tr><td class="paramname">k</td><td>a pointer to the key to insert. </td></tr>
639 <tr><td class="paramname">v</td><td>a pointer to the value to insert.</td></tr>
640 </table>
641 </dd>
642 </dl>
643 <dl class="section return"><dt>Returns</dt><dd>On success, <code>0</code> is returned. On error, a negative value is returned. </dd></dl>
644
645 </div>
646 </div>
647 <a class="anchor" id="a4558a9347a422e03a15b0b7a29b82dc3"></a>
648 <div class="memitem">
649 <div class="memproto">
650 <table class="memname">
651 <tr>
652 <td class="memname">int lh_table_insert_w_hash </td>
653 <td>(</td>
654 <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&#160;</td>
655 <td class="paramname"><em>t</em>, </td>
656 </tr>
657 <tr>
658 <td class="paramkey"></td>
659 <td></td>
660 <td class="paramtype">const void *&#160;</td>
661 <td class="paramname"><em>k</em>, </td>
662 </tr>
663 <tr>
664 <td class="paramkey"></td>
665 <td></td>
666 <td class="paramtype">const void *&#160;</td>
667 <td class="paramname"><em>v</em>, </td>
668 </tr>
669 <tr>
670 <td class="paramkey"></td>
671 <td></td>
672 <td class="paramtype">const unsigned long&#160;</td>
673 <td class="paramname"><em>h</em>, </td>
674 </tr>
675 <tr>
676 <td class="paramkey"></td>
677 <td></td>
678 <td class="paramtype">const unsigned&#160;</td>
679 <td class="paramname"><em>opts</em>&#160;</td>
680 </tr>
681 <tr>
682 <td></td>
683 <td>)</td>
684 <td></td><td></td>
685 </tr>
686 </table>
687 </div><div class="memdoc">
688 <p>Insert a record into the table using a precalculated key hash.</p>
689 <p>The hash h, which should be calculated with lh_get_hash() on k, is provided by the caller, to allow for optimization when multiple operations with the same key are known to be needed.</p>
690 <dl class="params"><dt>Parameters</dt><dd>
691 <table class="params">
692 <tr><td class="paramname">t</td><td>the table to insert into. </td></tr>
693 <tr><td class="paramname">k</td><td>a pointer to the key to insert. </td></tr>
694 <tr><td class="paramname">v</td><td>a pointer to the value to insert. </td></tr>
695 <tr><td class="paramname">h</td><td>hash value of the key to insert </td></tr>
696 <tr><td class="paramname">opts</td><td>if set to JSON_C_OBJECT_KEY_IS_CONSTANT, sets <a class="el" href="structlh__entry.html#a14f40cc124c32b03f81151ae7934d2e7">lh_entry.k_is_constant</a> so t's free function knows to avoid freeing the key. </td></tr>
697 </table>
698 </dd>
699 </dl>
700
701 </div>
702 </div>
703 <a class="anchor" id="ac9ba631c91fe80fb905f04c7cd526f2b"></a>
704 <div class="memitem">
705 <div class="memproto">
706 <table class="memname">
707 <tr>
708 <td class="memname">int lh_table_length </td>
709 <td>(</td>
710 <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&#160;</td>
711 <td class="paramname"><em>t</em></td><td>)</td>
712 <td></td>
713 </tr>
714 </table>
715 </div><div class="memdoc">
716
717 </div>
718 </div>
719 <a class="anchor" id="ad3b6ca2d967a6c3021ee6c39e014a918"></a>
720 <div class="memitem">
721 <div class="memproto">
722 <table class="mlabels">
723 <tr>
724 <td class="mlabels-left">
725 <table class="memname">
726 <tr>
727 <td class="memname">struct <a class="el" href="structlh__entry.html">lh_entry</a>* lh_table_lookup_entry </td>
728 <td>(</td>
729 <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&#160;</td>
730 <td class="paramname"><em>t</em>, </td>
731 </tr>
732 <tr>
733 <td class="paramkey"></td>
734 <td></td>
735 <td class="paramtype">const void *&#160;</td>
736 <td class="paramname"><em>k</em>&#160;</td>
737 </tr>
738 <tr>
739 <td></td>
740 <td>)</td>
741 <td></td><td></td>
742 </tr>
743 </table>
744 </td>
745 <td class="mlabels-right">
746 <span class="mlabels"><span class="mlabel">read</span></span> </td>
747 </tr>
748 </table>
749 </div><div class="memdoc">
750 <p>Lookup a record in the table.</p>
751 <dl class="params"><dt>Parameters</dt><dd>
752 <table class="params">
753 <tr><td class="paramname">t</td><td>the table to lookup </td></tr>
754 <tr><td class="paramname">k</td><td>a pointer to the key to lookup </td></tr>
755 </table>
756 </dd>
757 </dl>
758 <dl class="section return"><dt>Returns</dt><dd>a pointer to the record structure of the value or NULL if it does not exist. </dd></dl>
759
760 </div>
761 </div>
762 <a class="anchor" id="a59ecaf34ef59280952f4459b2de63677"></a>
763 <div class="memitem">
764 <div class="memproto">
765 <table class="mlabels">
766 <tr>
767 <td class="mlabels-left">
768 <table class="memname">
769 <tr>
770 <td class="memname">struct <a class="el" href="structlh__entry.html">lh_entry</a>* lh_table_lookup_entry_w_hash </td>
771 <td>(</td>
772 <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&#160;</td>
773 <td class="paramname"><em>t</em>, </td>
774 </tr>
775 <tr>
776 <td class="paramkey"></td>
777 <td></td>
778 <td class="paramtype">const void *&#160;</td>
779 <td class="paramname"><em>k</em>, </td>
780 </tr>
781 <tr>
782 <td class="paramkey"></td>
783 <td></td>
784 <td class="paramtype">const unsigned long&#160;</td>
785 <td class="paramname"><em>h</em>&#160;</td>
786 </tr>
787 <tr>
788 <td></td>
789 <td>)</td>
790 <td></td><td></td>
791 </tr>
792 </table>
793 </td>
794 <td class="mlabels-right">
795 <span class="mlabels"><span class="mlabel">read</span></span> </td>
796 </tr>
797 </table>
798 </div><div class="memdoc">
799 <p>Lookup a record in the table using a precalculated key hash.</p>
800 <p>The hash h, which should be calculated with lh_get_hash() on k, is provided by the caller, to allow for optimization when multiple operations with the same key are known to be needed.</p>
801 <dl class="params"><dt>Parameters</dt><dd>
802 <table class="params">
803 <tr><td class="paramname">t</td><td>the table to lookup </td></tr>
804 <tr><td class="paramname">k</td><td>a pointer to the key to lookup </td></tr>
805 <tr><td class="paramname">h</td><td>hash value of the key to lookup </td></tr>
806 </table>
807 </dd>
808 </dl>
809 <dl class="section return"><dt>Returns</dt><dd>a pointer to the record structure of the value or NULL if it does not exist. </dd></dl>
810
811 </div>
812 </div>
813 <a class="anchor" id="a81c270bb0dd9d5c8a3e7ae20bc4d67f3"></a>
814 <div class="memitem">
815 <div class="memproto">
816 <table class="memname">
817 <tr>
818 <td class="memname"><a class="el" href="json__types_8h.html#a81f02022906fafc71eb9197049f07f73">json_bool</a> lh_table_lookup_ex </td>
819 <td>(</td>
820 <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&#160;</td>
821 <td class="paramname"><em>t</em>, </td>
822 </tr>
823 <tr>
824 <td class="paramkey"></td>
825 <td></td>
826 <td class="paramtype">const void *&#160;</td>
827 <td class="paramname"><em>k</em>, </td>
828 </tr>
829 <tr>
830 <td class="paramkey"></td>
831 <td></td>
832 <td class="paramtype">void **&#160;</td>
833 <td class="paramname"><em>v</em>&#160;</td>
834 </tr>
835 <tr>
836 <td></td>
837 <td>)</td>
838 <td></td><td></td>
839 </tr>
840 </table>
841 </div><div class="memdoc">
842 <p>Lookup a record in the table.</p>
843 <dl class="params"><dt>Parameters</dt><dd>
844 <table class="params">
845 <tr><td class="paramname">t</td><td>the table to lookup </td></tr>
846 <tr><td class="paramname">k</td><td>a pointer to the key to lookup </td></tr>
847 <tr><td class="paramname">v</td><td>a pointer to a where to store the found value (set to NULL if it doesn't exist). </td></tr>
848 </table>
849 </dd>
850 </dl>
851 <dl class="section return"><dt>Returns</dt><dd>whether or not the key was found </dd></dl>
852
853 </div>
854 </div>
855 <a class="anchor" id="a9c4f8a71dbe4d3390d9f7adb331beb0e"></a>
856 <div class="memitem">
857 <div class="memproto">
858 <table class="mlabels">
859 <tr>
860 <td class="mlabels-left">
861 <table class="memname">
862 <tr>
863 <td class="memname">struct <a class="el" href="structlh__table.html">lh_table</a>* lh_table_new </td>
864 <td>(</td>
865 <td class="paramtype">int&#160;</td>
866 <td class="paramname"><em>size</em>, </td>
867 </tr>
868 <tr>
869 <td class="paramkey"></td>
870 <td></td>
871 <td class="paramtype"><a class="el" href="linkhash_8h.html#a671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> *&#160;</td>
872 <td class="paramname"><em>free_fn</em>, </td>
873 </tr>
874 <tr>
875 <td class="paramkey"></td>
876 <td></td>
877 <td class="paramtype"><a class="el" href="linkhash_8h.html#a38bae27995dcfb6ee3fb109a9be229b2">lh_hash_fn</a> *&#160;</td>
878 <td class="paramname"><em>hash_fn</em>, </td>
879 </tr>
880 <tr>
881 <td class="paramkey"></td>
882 <td></td>
883 <td class="paramtype"><a class="el" href="linkhash_8h.html#a91fd85fc81b0c7c83c62f00e84729091">lh_equal_fn</a> *&#160;</td>
884 <td class="paramname"><em>equal_fn</em>&#160;</td>
885 </tr>
886 <tr>
887 <td></td>
888 <td>)</td>
889 <td></td><td></td>
890 </tr>
891 </table>
892 </td>
893 <td class="mlabels-right">
894 <span class="mlabels"><span class="mlabel">read</span></span> </td>
895 </tr>
896 </table>
897 </div><div class="memdoc">
898 <p>Create a new linkhash table.</p>
899 <dl class="params"><dt>Parameters</dt><dd>
900 <table class="params">
901 <tr><td class="paramname">size</td><td>initial table size. The table is automatically resized although this incurs a performance penalty. </td></tr>
902 <tr><td class="paramname">free_fn</td><td>callback function used to free memory for entries when lh_table_free or lh_table_delete is called. If NULL is provided, then memory for keys and values must be freed by the caller. </td></tr>
903 <tr><td class="paramname">hash_fn</td><td>function used to hash keys. 2 standard ones are defined: lh_ptr_hash and lh_char_hash for hashing pointer values and C strings respectively. </td></tr>
904 <tr><td class="paramname">equal_fn</td><td>comparison function to compare keys. 2 standard ones defined: lh_ptr_hash and lh_char_hash for comparing pointer values and C strings respectively. </td></tr>
905 </table>
906 </dd>
907 </dl>
908 <dl class="section return"><dt>Returns</dt><dd>On success, a pointer to the new linkhash table is returned. On error, a null pointer is returned. </dd></dl>
909
910 </div>
911 </div>
912 <a class="anchor" id="a30c8414e31aeee7669acc938116d933f"></a>
913 <div class="memitem">
914 <div class="memproto">
915 <table class="memname">
916 <tr>
917 <td class="memname">int lh_table_resize </td>
918 <td>(</td>
919 <td class="paramtype">struct <a class="el" href="structlh__table.html">lh_table</a> *&#160;</td>
920 <td class="paramname"><em>t</em>, </td>
921 </tr>
922 <tr>
923 <td class="paramkey"></td>
924 <td></td>
925 <td class="paramtype">int&#160;</td>
926 <td class="paramname"><em>new_size</em>&#160;</td>
927 </tr>
928 <tr>
929 <td></td>
930 <td>)</td>
931 <td></td><td></td>
932 </tr>
933 </table>
934 </div><div class="memdoc">
935 <p>Resizes the specified table.</p>
936 <dl class="params"><dt>Parameters</dt><dd>
937 <table class="params">
938 <tr><td class="paramname">t</td><td>Pointer to table to resize. </td></tr>
939 <tr><td class="paramname">new_size</td><td>New table size. Must be positive.</td></tr>
940 </table>
941 </dd>
942 </dl>
943 <dl class="section return"><dt>Returns</dt><dd>On success, <code>0</code> is returned. On error, a negative value is returned. </dd></dl>
944
945 </div>
946 </div>
947 </div><!-- contents -->
948 <!-- start footer part -->
949 <hr class="footer"/><address class="footer"><small>
950 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
951 <img class="footer" src="doxygen.png" alt="doxygen"/>
952 </a> 1.8.2
953 </small></address>
954 </body>
955 </html>
+0
-125
doc/html/math__compat_8h.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: math_compat.h File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#define-members">Macros</a> </div>
46 <div class="headertitle">
47 <div class="title">math_compat.h File Reference</div> </div>
48 </div><!--header-->
49 <div class="contents">
50
51 <p>Do not use, json-c internal, may be changed or removed at any time.
52 <a href="#details">More...</a></p>
53 <table class="memberdecls">
54 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
55 Macros</h2></td></tr>
56 <tr class="memitem:a956e2723d559858d08644ac99146e910"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="math__compat_8h.html#a956e2723d559858d08644ac99146e910">INFINITY</a>&#160;&#160;&#160;(DBL_MAX + DBL_MAX)</td></tr>
57 <tr class="separator:a956e2723d559858d08644ac99146e910"><td class="memSeparator" colspan="2">&#160;</td></tr>
58 <tr class="memitem:a77914bc4c960d1bfda49328bd0646985"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="math__compat_8h.html#a77914bc4c960d1bfda49328bd0646985">HAVE_DECL_INFINITY</a></td></tr>
59 <tr class="separator:a77914bc4c960d1bfda49328bd0646985"><td class="memSeparator" colspan="2">&#160;</td></tr>
60 <tr class="memitem:a8abfcc76130f3f991d124dd22d7e69bc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="math__compat_8h.html#a8abfcc76130f3f991d124dd22d7e69bc">NAN</a>&#160;&#160;&#160;(<a class="el" href="math__compat_8h.html#a956e2723d559858d08644ac99146e910">INFINITY</a> - <a class="el" href="math__compat_8h.html#a956e2723d559858d08644ac99146e910">INFINITY</a>)</td></tr>
61 <tr class="separator:a8abfcc76130f3f991d124dd22d7e69bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
62 <tr class="memitem:a9025492cba029d3e372532a1d012f119"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="math__compat_8h.html#a9025492cba029d3e372532a1d012f119">HAVE_DECL_NAN</a></td></tr>
63 <tr class="separator:a9025492cba029d3e372532a1d012f119"><td class="memSeparator" colspan="2">&#160;</td></tr>
64 </table>
65 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
66 <div class="textblock"><p>Do not use, json-c internal, may be changed or removed at any time. </p>
67 </div><h2 class="groupheader">Macro Definition Documentation</h2>
68 <a class="anchor" id="a77914bc4c960d1bfda49328bd0646985"></a>
69 <div class="memitem">
70 <div class="memproto">
71 <table class="memname">
72 <tr>
73 <td class="memname">#define HAVE_DECL_INFINITY</td>
74 </tr>
75 </table>
76 </div><div class="memdoc">
77
78 </div>
79 </div>
80 <a class="anchor" id="a9025492cba029d3e372532a1d012f119"></a>
81 <div class="memitem">
82 <div class="memproto">
83 <table class="memname">
84 <tr>
85 <td class="memname">#define HAVE_DECL_NAN</td>
86 </tr>
87 </table>
88 </div><div class="memdoc">
89
90 </div>
91 </div>
92 <a class="anchor" id="a956e2723d559858d08644ac99146e910"></a>
93 <div class="memitem">
94 <div class="memproto">
95 <table class="memname">
96 <tr>
97 <td class="memname">#define INFINITY&#160;&#160;&#160;(DBL_MAX + DBL_MAX)</td>
98 </tr>
99 </table>
100 </div><div class="memdoc">
101
102 </div>
103 </div>
104 <a class="anchor" id="a8abfcc76130f3f991d124dd22d7e69bc"></a>
105 <div class="memitem">
106 <div class="memproto">
107 <table class="memname">
108 <tr>
109 <td class="memname">#define NAN&#160;&#160;&#160;(<a class="el" href="math__compat_8h.html#a956e2723d559858d08644ac99146e910">INFINITY</a> - <a class="el" href="math__compat_8h.html#a956e2723d559858d08644ac99146e910">INFINITY</a>)</td>
110 </tr>
111 </table>
112 </div><div class="memdoc">
113
114 </div>
115 </div>
116 </div><!-- contents -->
117 <!-- start footer part -->
118 <hr class="footer"/><address class="footer"><small>
119 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
120 <img class="footer" src="doxygen.png" alt="doxygen"/>
121 </a> 1.8.2
122 </small></address>
123 </body>
124 </html>
+0
-190
doc/html/md_README.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: `json-c`</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 </div><!-- top -->
37 <div class="header">
38 <div class="headertitle">
39 <div class="title">`json-c` </div> </div>
40 </div><!--header-->
41 <div class="contents">
42 <div class="textblock"><ol type="1">
43 <li><a href="#overview">Overview and Build Status</a></li>
44 <li><a href="#buildunix">Building on Unix</a><ul>
45 <li><a href="#installprereq">Prerequisites</a></li>
46 <li><a href="#buildcmds">Build commands</a></li>
47 </ul>
48 </li>
49 <li><a href="#CMake">CMake options</a></li>
50 <li><a href="#testing">Testing</a></li>
51 <li><a href="#buildvcpkg">Building with `vcpkg`</a></li>
52 <li><a href="#linking">Linking to libjson-c</a></li>
53 <li><a href="#using">Using json-c</a></li>
54 </ol>
55 <h2>JSON-C - A JSON implementation in C <a class="anchor" id="overview"></a></h2>
56 <p>Build Status</p>
57 <ul>
58 <li><a href="https://ci.appveyor.com/project/hawicz/json-c">AppVeyor Build</a> <div class="image">
59 <img src="https://ci.appveyor.com/api/projects/status/github/json-c/json-c?branch=master&svg=true" alt="AppVeyor Build Status"/>
60 </div>
61 </li>
62 <li><a href="https://travis-ci.org/json-c/json-c">Travis Build</a> <div class="image">
63 <img src="https://travis-ci.org/json-c/json-c.svg?branch=master" alt="Travis Build Status"/>
64 </div>
65 </li>
66 </ul>
67 <p>Test Status</p>
68 <ul>
69 <li><a href="https://coveralls.io/github/json-c/json-c?branch=master">Coveralls</a> <a href="https://coveralls.io/github/json-c/json-c?branch=master">![Coverage Status](https://coveralls.io/repos/github/json-c/json-c/badge.svg?branch=master)</a></li>
70 </ul>
71 <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>
72 <h2>Building on Unix with <code>git</code>, <code>gcc</code> and <code>cmake</code> <a class="anchor" id="buildunix"></a></h2>
73 <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>
74 <h3>Prerequisites: <a class="anchor" id="installprereq"></a></h3>
75 <ul>
76 <li><code>gcc</code>, <code>clang</code>, or another C compiler</li>
77 </ul>
78 <ul>
79 <li>cmake&gt;=2.8, &gt;=3.16 recommended</li>
80 </ul>
81 <p>To generate docs you'll also need:</p>
82 <ul>
83 <li><code>doxygen&gt;=1.8.13</code></li>
84 </ul>
85 <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>
86 <h3>Install using apt (e.g. Ubuntu 16.04.2 LTS)</h3>
87 <p>```sh sudo apt install git sudo apt install cmake sudo apt install doxygen # optional sudo apt install valgrind # optional ```</p>
88 <h3>Build instructions: <a class="anchor" id="buildcmds"></a></h3>
89 <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>
90 <p>```sh $ git clone <a href="https://github.com/json-c/json-c.git">https://github.com/json-c/json-c.git</a> $ mkdir json-c-build $ cd json-c-build $ cmake ../json-c # See CMake section below for custom arguments ```</p>
91 <p>Note: it's also possible to put your build directory inside the json-c source directory, or even not use a separate build directory at all, but certain things might not work quite right (notably, <code>make distcheck</code>)</p>
92 <p>Then:</p>
93 <p>```sh $ make $ make test $ make USE_VALGRIND=0 test # optionally skip using valgrind $ make install ```</p>
94 <h3>Generating documentation with Doxygen:</h3>
95 <p>The libray documentation can be generated directly from the source codes using Doxygen tool:</p>
96 <p>```sh </p>
97 <h1>in build directory</h1>
98 <p>make doc google-chrome doc/html/index.html ```</p>
99 <h2>CMake Options <a class="anchor" id="CMake"></a></h2>
100 <p>The json-c library is built with <a href="https://cmake.org/cmake-tutorial/">CMake</a>, which can take a few options.</p>
101 <table class="doxtable">
102 <tr>
103 <th>Variable </th><th>Type </th><th>Description</th></tr>
104 <tr>
105 <td>CMAKE_INSTALL_PREFIX </td><td>String </td><td>The install location. </td></tr>
106 <tr>
107 <td>CMAKE_BUILD_TYPE </td><td>String </td><td>Defaults to "debug" </td></tr>
108 <tr>
109 <td>BUILD_SHARED_LIBS </td><td>Bool </td><td>The default build generates a dynamic (dll/so) library. Set this to OFF to create a static library instead. </td></tr>
110 <tr>
111 <td>ENABLE_RDRAND </td><td>Bool </td><td>Enable RDRAND Hardware RNG Hash Seed </td></tr>
112 <tr>
113 <td>ENABLE_THREADING </td><td>Bool </td><td>Enable partial threading support </td></tr>
114 <tr>
115 <td>DISABLE_WERROR </td><td>Bool </td><td>Disable use of -Werror </td></tr>
116 <tr>
117 <td>DISABLE_BSYMBOLIC </td><td>Bool </td><td>Disable use of -Bsymbolic-functions </td></tr>
118 </table>
119 <p>Pass these options as <code>-D</code> on CMake's command-line.</p>
120 <p>```sh cmake -DBUILD_SHARED_LIBS=OFF ... ```</p>
121 <h3>Building with partial threading support</h3>
122 <p>Although json-c does not support fully multi-threaded access to object trees, it has some code to help make its 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>
123 <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 cmake command with: -DENABLE_THREADING=ON</p>
124 <p>Separately, the default hash function used for object field keys, lh_char_hash, uses a compare-and-swap operation to ensure the random 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>
125 <h3>cmake-configure wrapper script</h3>
126 <p>For those familiar with the old autoconf/autogen.sh/configure method, there is a <code>cmake-configure</code> wrapper script to ease the transition to cmake.</p>
127 <p>```sh mkdir build cd build ../cmake-configure &ndash;prefix=/some/install/path make ```</p>
128 <p>cmake-configure can take a few options.</p>
129 <table class="doxtable">
130 <tr>
131 <th>options </th><th>Description</th></tr>
132 <tr>
133 <td>prefix=PREFIX </td><td>install architecture-independent files in PREFIX </td></tr>
134 <tr>
135 <td>enable-threading </td><td>Enable code to support partly multi-threaded use </td></tr>
136 <tr>
137 <td>enable-rdrand </td><td>Enable RDRAND Hardware RNG Hash Seed generation on supported x86/x64 platforms. </td></tr>
138 <tr>
139 <td>enable-shared </td><td>build shared libraries [default=yes] </td></tr>
140 <tr>
141 <td>enable-static </td><td>build static libraries [default=yes] </td></tr>
142 <tr>
143 <td>disable-Bsymbolic </td><td>Avoid linking with -Bsymbolic-function </td></tr>
144 <tr>
145 <td>disable-werror </td><td>Avoid treating compiler warnings as fatal errors </td></tr>
146 </table>
147 <h2>Testing: <a class="anchor" id="testing"></a></h2>
148 <p>By default, if valgrind is available running tests uses it. That can slow the tests down considerably, so to disable it use: ```sh export USE_VALGRIND=0 ```</p>
149 <p>To run tests a separate build directory is recommended: ```sh mkdir build-test cd build-test </p>
150 <h1>VALGRIND=1 causes -DVALGRIND=1 to be passed when compiling code</h1>
151 <h1>which uses slightly slower, but valgrind-safe code.</h1>
152 <p>VALGRIND=1 cmake .. make</p>
153 <p>make test </p>
154 <h1>By default, if valgrind is available running tests uses it.</h1>
155 <p>make USE_VALGRIND=0 test # optionally skip using valgrind ```</p>
156 <p>If a test fails, check <code>Testing/Temporary/LastTest.log</code>, <code>tests/testSubDir/${testname}/${testname}.vg.out</code>, and other similar files. If there is insufficient output try: ```sh VERBOSE=1 make test ``` or ```sh JSONC_TEST_TRACE=1 make test ``` and check the log files again.</p>
157 <h2>Building on Unix and Windows with <code>vcpkg</code> <a class="anchor" id="buildvcpkg"></a></h2>
158 <p>You can download and install JSON-C using the <a href="https://github.com/Microsoft/vcpkg/">vcpkg</a> dependency manager: </p>
159 <pre class="fragment">git clone https://github.com/Microsoft/vcpkg.git
160 cd vcpkg
161 ./bootstrap-vcpkg.sh
162 ./vcpkg integrate install
163 vcpkg install json-c
164 </pre><p>The JSON-C port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please <a href="https://github.com/Microsoft/vcpkg">create an issue or pull request</a> on the vcpkg repository.</p>
165 <h2>Linking to <code>libjson-c</code> <a class="anchor" id="linking"></a></h2>
166 <p>If your system has <code>pkgconfig</code>, then you can just add this to your <code>makefile</code>:</p>
167 <p>```make CFLAGS += $(shell pkg-config &ndash;cflags json-c) LDFLAGS += $(shell pkg-config &ndash;libs json-c) ```</p>
168 <p>Without <code>pkgconfig</code>, you would do something like this:</p>
169 <p>```make JSON_C_DIR=/path/to/json_c/install CFLAGS += -I/include/json-c LDFLAGS+= -L/lib -ljson-c ```</p>
170 <h2>Using json-c <a class="anchor" id="using"></a></h2>
171 <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>
172 <ul>
173 <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>
174 <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>
175 <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>
176 <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>
177 <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>
178 <li><a class="el" href="json__util_8h.html" title="Miscllaneous utility functions and macros.">json_util.h</a> - Miscelleanous utility functions.</li>
179 </ul>
180 <p>For a full list of headers see <a href="http://json-c.github.io/json-c/json-c-0.13.1/doc/html/files.html">files.html</a> </p>
181 </div></div><!-- contents -->
182 <!-- start footer part -->
183 <hr class="footer"/><address class="footer"><small>
184 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
185 <img class="footer" src="doxygen.png" alt="doxygen"/>
186 </a> 1.8.2
187 </small></address>
188 </body>
189 </html>
+0
-72
doc/html/md_issues_closed_for_0.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: issues_closed_for_0</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 </div><!-- top -->
37 <div class="header">
38 <div class="headertitle">
39 <div class="title">issues_closed_for_0 </div> </div>
40 </div><!--header-->
41 <div class="contents">
42 <div class="textblock"><p>This list was created with:</p>
43 <p>``` curl <a href="https://api.github.com/search/issues?q=">https://api.github.com/search/issues?q=</a>"repo%3Ajson-c%2Fjson-c+closed%3A&gt;2014-04-10+created%3A&lt;2017-12-01&amp;sort=created&amp;order=asc&amp;per_page=400&amp;page=1" &gt; issues1.out curl <a href="https://api.github.com/search/issues?q=">https://api.github.com/search/issues?q=</a>"repo%3Ajson-c%2Fjson-c+closed%3A&gt;2014-04-10+created%3A&lt;2017-12-01&amp;sort=created&amp;order=asc&amp;per_page=400&amp;page=2" &gt; issues2.out curl <a href="https://api.github.com/search/issues?q=">https://api.github.com/search/issues?q=</a>"repo%3Ajson-c%2Fjson-c+closed%3A&gt;2014-04-10+created%3A&lt;2017-12-01&amp;sort=created&amp;order=asc&amp;per_page=400&amp;page=3" &gt; issues3.out jq -r '.items[] | "[" + .title + "](" + .url + ")" | tostring' issues?.out &gt; issues.md sed -e's,^[ *(.*)](<a href="https://api.github.com/">https://api.github.com/</a>.*/([0-9].*)),<a href="https://github.com/json-c/json-c/issues/\2">Issue #\2</a> - \1,' -i issues.md #... manual editing ... ``` <hr/>
44 <p>Issues and Pull Requests closed for the 0.13 release (since commit f84d9c, the 0.12 branch point, 2014-04-10)</p>
45 <p><a href="https://github.com/json-c/json-c/issues/61">Issue #61</a> - Make <a class="el" href="json__object_8h.html#a27bd808a022251059a43f1f6370441cd">json_object_object_add()</a> indicate success or failure, test fix \ <a href="https://github.com/json-c/json-c/issues/113">Issue #113</a> - Build fixes (make dist and make distcheck) \ <a href="https://github.com/json-c/json-c/issues/124">Issue #124</a> - Fixing build \ <a href="https://github.com/json-c/json-c/issues/125">Issue #125</a> - Fix compile error(variable size set but not used) on g++4.6 \ <a href="https://github.com/json-c/json-c/issues/126">Issue #126</a> - Removed unused size variable. \ <a href="https://github.com/json-c/json-c/issues/127">Issue #127</a> - remove unused <code>size</code> variable \ <a href="https://github.com/json-c/json-c/issues/128">Issue #128</a> - Remove unused variable from json_tokenizer.c \ <a href="https://github.com/json-c/json-c/issues/130">Issue #130</a> - Failed to compile under Ubuntu 13.10 32bit \ <a href="https://github.com/json-c/json-c/issues/131">Issue #131</a> - undefined symbol: __sync_val_compare_and_swap_4 \ <a href="https://github.com/json-c/json-c/issues/132">Issue #132</a> - Remove unused variable 'size' \ <a href="https://github.com/json-c/json-c/issues/133">Issue #133</a> - Update and rename README to <a class="el" href="README_8md.html">README.md</a> \ <a href="https://github.com/json-c/json-c/issues/134">Issue #134</a> - Must remove variable size... \ <a href="https://github.com/json-c/json-c/issues/135">Issue #135</a> - bits.h uses removed json_tokener_errors[error] \ <a href="https://github.com/json-c/json-c/issues/136">Issue #136</a> - Error when running make check \ <a href="https://github.com/json-c/json-c/issues/137">Issue #137</a> - config.h.in should not be in git \ <a href="https://github.com/json-c/json-c/issues/138">Issue #138</a> - Can't build on RHEL 6.5 due to dependency on automake-1.14 \ <a href="https://github.com/json-c/json-c/issues/140">Issue #140</a> - Code bug in random_test.c evaluating same expression twice \ <a href="https://github.com/json-c/json-c/issues/141">Issue #141</a> - Removed duplicate check in random_seed test - bug #140 \ <a href="https://github.com/json-c/json-c/issues/142">Issue #142</a> - Please undeprecate json_object_object_get \ <a href="https://github.com/json-c/json-c/issues/144">Issue #144</a> - Introduce json_object_from_fd \ <a href="https://github.com/json-c/json-c/issues/145">Issue #145</a> - Handle % character properly \ <a href="https://github.com/json-c/json-c/issues/146">Issue #146</a> - TAGS rename \ <a href="https://github.com/json-c/json-c/issues/148">Issue #148</a> - Bump the soname \ <a href="https://github.com/json-c/json-c/issues/149">Issue #149</a> - SONAME bump \ <a href="https://github.com/json-c/json-c/issues/150">Issue #150</a> - Fix build using MinGW. \ <a href="https://github.com/json-c/json-c/issues/151">Issue #151</a> - Remove json_type enum trailing comma \ <a href="https://github.com/json-c/json-c/issues/152">Issue #152</a> - error while compiling json-c library version 0.11 \ <a href="https://github.com/json-c/json-c/issues/153">Issue #153</a> - improve doc for <a class="el" href="json__object_8h.html#ab7390c22baa1700d977c2af6b22d43a4">json_object_to_json_string()</a> \ <a href="https://github.com/json-c/json-c/issues/154">Issue #154</a> - double precision \ <a href="https://github.com/json-c/json-c/issues/155">Issue #155</a> - add bsearch for arrays \ <a href="https://github.com/json-c/json-c/issues/156">Issue #156</a> - Remove trailing whitespaces \ <a href="https://github.com/json-c/json-c/issues/157">Issue #157</a> - JSON-C shall not exit on calloc fail. \ <a href="https://github.com/json-c/json-c/issues/158">Issue #158</a> - while using json-c 0.11, I am facing strange crash issue in json_object_put. \ <a href="https://github.com/json-c/json-c/issues/159">Issue #159</a> - json_tokener.c compile error \ <a href="https://github.com/json-c/json-c/issues/160">Issue #160</a> - missing header file on windows?? \ <a href="https://github.com/json-c/json-c/issues/161">Issue #161</a> - Is there a way to append to file? \ <a href="https://github.com/json-c/json-c/issues/162">Issue #162</a> - json_util: add directory check for POSIX distros \ <a href="https://github.com/json-c/json-c/issues/163">Issue #163</a> - Fix Win32 build problems \ <a href="https://github.com/json-c/json-c/issues/164">Issue #164</a> - made it compile and link on Widnows (as static library) \ <a href="https://github.com/json-c/json-c/issues/165">Issue #165</a> - json_object_to_json_string_ext length \ <a href="https://github.com/json-c/json-c/issues/167">Issue #167</a> - Can't build on Windows with Visual Studio 2010 \ <a href="https://github.com/json-c/json-c/issues/168">Issue #168</a> - Tightening the number parsing algorithm \ <a href="https://github.com/json-c/json-c/issues/169">Issue #169</a> - Doesn't compile on ubuntu 14.04, 64bit \ <a href="https://github.com/json-c/json-c/issues/170">Issue #170</a> - Generated files in repository \ <a href="https://github.com/json-c/json-c/issues/171">Issue #171</a> - Update configuration for VS2010 and win64 \ <a href="https://github.com/json-c/json-c/issues/172">Issue #172</a> - Adding support for parsing octal numbers \ <a href="https://github.com/json-c/json-c/issues/173">Issue #173</a> - json_parse_int64 doesn't work correctly at illumos \ <a href="https://github.com/json-c/json-c/issues/174">Issue #174</a> - Adding JSON_C_TO_STRING_PRETTY_TAB flag \ <a href="https://github.com/json-c/json-c/issues/175">Issue #175</a> - make check fails 4 tests with overflows when built with ASAN \ <a href="https://github.com/json-c/json-c/issues/176">Issue #176</a> - Possible to delete an array element at a given idx ? \ <a href="https://github.com/json-c/json-c/issues/177">Issue #177</a> - Fix compiler warnings \ <a href="https://github.com/json-c/json-c/issues/178">Issue #178</a> - Unable to compile on CentOS5 \ <a href="https://github.com/json-c/json-c/issues/179">Issue #179</a> - Added array_list_del_idx and json_object_array_del_idx \ <a href="https://github.com/json-c/json-c/issues/180">Issue #180</a> - Enable silent build by default \ <a href="https://github.com/json-c/json-c/issues/181">Issue #181</a> - json_tokener_parse_ex accepts invalid JSON \ <a href="https://github.com/json-c/json-c/issues/182">Issue #182</a> - Link against libm when needed \ <a href="https://github.com/json-c/json-c/issues/183">Issue #183</a> - Apply compile warning fix to master branch \ <a href="https://github.com/json-c/json-c/issues/184">Issue #184</a> - Use only GCC-specific flags when compiling with GCC \ <a href="https://github.com/json-c/json-c/issues/185">Issue #185</a> - compile error \ <a href="https://github.com/json-c/json-c/issues/186">Issue #186</a> - Syntax error \ <a href="https://github.com/json-c/json-c/issues/187">Issue #187</a> - array_list_get_idx and negative indexes. \ <a href="https://github.com/json-c/json-c/issues/188">Issue #188</a> - json_object_object_foreach warnings \ <a href="https://github.com/json-c/json-c/issues/189">Issue #189</a> - noisy json_object_from_file: error opening file \ <a href="https://github.com/json-c/json-c/issues/190">Issue #190</a> - warning: initialization discards const qualifier from pointer target type [enabled by default] \ <a href="https://github.com/json-c/json-c/issues/192">Issue #192</a> - json_tokener_parse accepts invalid JSON {"key": "value" , } \ <a href="https://github.com/json-c/json-c/issues/193">Issue #193</a> - Make serialization format of doubles configurable \ <a href="https://github.com/json-c/json-c/issues/194">Issue #194</a> - Add utility function for comparing json_objects \ <a href="https://github.com/json-c/json-c/issues/195">Issue #195</a> - Call uselocale instead of setlocale \ <a href="https://github.com/json-c/json-c/issues/196">Issue #196</a> - Performance improvements \ <a href="https://github.com/json-c/json-c/issues/197">Issue #197</a> - Time for a new release? \ <a href="https://github.com/json-c/json-c/issues/198">Issue #198</a> - Fix possible memory leak and remove superfluous NULL checks before free() \ <a href="https://github.com/json-c/json-c/issues/199">Issue #199</a> - Fix build in Visual Studio \ <a href="https://github.com/json-c/json-c/issues/200">Issue #200</a> - Add build scripts for CI platforms \ <a href="https://github.com/json-c/json-c/issues/201">Issue #201</a> - disable forward-slash escaping? \ <a href="https://github.com/json-c/json-c/issues/202">Issue #202</a> - Array with objects support \ <a href="https://github.com/json-c/json-c/issues/203">Issue #203</a> - Add source position/coordinates to API \ <a href="https://github.com/json-c/json-c/issues/204">Issue #204</a> - json-c/json.h not found \ <a href="https://github.com/json-c/json-c/issues/205">Issue #205</a> - json-c Compiled with Visual Studios \ <a href="https://github.com/json-c/json-c/issues/206">Issue #206</a> - what do i use in place of json_object_object_get? \ <a href="https://github.com/json-c/json-c/issues/207">Issue #207</a> - Add support for property pairs directly added to arrays \ <a href="https://github.com/json-c/json-c/issues/208">Issue #208</a> - Performance enhancements (mainly) to <a class="el" href="json__object_8h.html#ab7390c22baa1700d977c2af6b22d43a4">json_object_to_json_string()</a> \ <a href="https://github.com/json-c/json-c/issues/209">Issue #209</a> - fix regression from 2d549662be832da838aa063da2efa78ee3b99668 \ <a href="https://github.com/json-c/json-c/issues/210">Issue #210</a> - Use size_t for arrays \ <a href="https://github.com/json-c/json-c/issues/211">Issue #211</a> - Atomic updates for the refcount \ <a href="https://github.com/json-c/json-c/issues/212">Issue #212</a> - Refcount doesn't work between threads \ <a href="https://github.com/json-c/json-c/issues/213">Issue #213</a> - fix to compile with microsoft visual c++ 2010 \ <a href="https://github.com/json-c/json-c/issues/214">Issue #214</a> - Some non-GNU systems support __sync_val_compare_and_swap \ <a href="https://github.com/json-c/json-c/issues/215">Issue #215</a> - Build json-c for window 64 bit. \ <a href="https://github.com/json-c/json-c/issues/216">Issue #216</a> - configure: check realloc with AC_CHECK_FUNCS() to fix cross-compilation. \ <a href="https://github.com/json-c/json-c/issues/217">Issue #217</a> - Checking for functions in float.h \ <a href="https://github.com/json-c/json-c/issues/218">Issue #218</a> - Use a macro to indicate C99 to the compiler \ <a href="https://github.com/json-c/json-c/issues/219">Issue #219</a> - Fix various potential null ptr deref and int32 overflows \ <a href="https://github.com/json-c/json-c/issues/220">Issue #220</a> - Add utility function for comparing json_objects \ <a href="https://github.com/json-c/json-c/issues/221">Issue #221</a> - JSON_C_TO_STRING_NOSLASHESCAPE works incorrectly \ <a href="https://github.com/json-c/json-c/issues/222">Issue #222</a> - Fix issue #221: JSON_C_TO_STRING_NOSLASHESCAPE works incorrectly \ <a href="https://github.com/json-c/json-c/issues/223">Issue #223</a> - Clarify json_object_get_string documentation of NULL handling &amp; return \ <a href="https://github.com/json-c/json-c/issues/224">Issue #224</a> - json_tokener.c - all warnings being treated as errors \ <a href="https://github.com/json-c/json-c/issues/225">Issue #225</a> - Hi, will you support clib as a "registry"? \ <a href="https://github.com/json-c/json-c/issues/227">Issue #227</a> - Bump SOVERSION to 3 \ <a href="https://github.com/json-c/json-c/issues/228">Issue #228</a> - avoid double slashes from json \ <a href="https://github.com/json-c/json-c/issues/229">Issue #229</a> - configure fails: checking size of size_t... configure: error: cannot determine a size for size_t \ <a href="https://github.com/json-c/json-c/issues/230">Issue #230</a> - Use stdint.h to check for size_t size \ <a href="https://github.com/json-c/json-c/issues/231">Issue #231</a> - Fix size_t size check for first-time builds \ <a href="https://github.com/json-c/json-c/issues/232">Issue #232</a> - tests/tests1: fix printf format for size_t arguments \ <a href="https://github.com/json-c/json-c/issues/233">Issue #233</a> - Include stddef.h in <a class="el" href="json__object_8h.html" title="Core json-c API. Start here, or with json_tokener.h.">json_object.h</a> \ <a href="https://github.com/json-c/json-c/issues/234">Issue #234</a> - Add public API to use userdata independently of custom serializer \ <a href="https://github.com/json-c/json-c/issues/235">Issue #235</a> - Undefined symbols Error for architecture x86_64 on Mac \ <a href="https://github.com/json-c/json-c/issues/236">Issue #236</a> - Building a project which uses json-c with flag -Wcast-qual causes compilation errors \ <a href="https://github.com/json-c/json-c/issues/237">Issue #237</a> - handle escaped utf-8 \ <a href="https://github.com/json-c/json-c/issues/238">Issue #238</a> - linkhash.c: optimised the table_free path \ <a href="https://github.com/json-c/json-c/issues/239">Issue #239</a> - initialize null terminator of new printbuf \ <a href="https://github.com/json-c/json-c/issues/240">Issue #240</a> - Compile error: Variable set but not used \ <a href="https://github.com/json-c/json-c/issues/241">Issue #241</a> - getting error in date string 19\/07\/2016, fixed for error 19/07/2016 \ <a href="https://github.com/json-c/json-c/issues/242">Issue #242</a> - json_tokener_parse error \ <a href="https://github.com/json-c/json-c/issues/243">Issue #243</a> - Fix #165 \ <a href="https://github.com/json-c/json-c/issues/244">Issue #244</a> - Error while compiling source from RHEL5, could you please help me to fix this \ <a href="https://github.com/json-c/json-c/issues/245">Issue #245</a> - json-c compile in window xp \ <a href="https://github.com/json-c/json-c/issues/246">Issue #246</a> - Mac: uselocale failed to build \ <a href="https://github.com/json-c/json-c/issues/247">Issue #247</a> - json_object_array_del_idx function has segment fault error? \ <a href="https://github.com/json-c/json-c/issues/248">Issue #248</a> - Minor changes in C source code \ <a href="https://github.com/json-c/json-c/issues/249">Issue #249</a> - Improving README \ <a href="https://github.com/json-c/json-c/issues/250">Issue #250</a> - Improving .gitignore \ <a href="https://github.com/json-c/json-c/issues/251">Issue #251</a> - Adding a file for EditorConfig \ <a href="https://github.com/json-c/json-c/issues/252">Issue #252</a> - Very minor changes not related to C source code \ <a href="https://github.com/json-c/json-c/issues/253">Issue #253</a> - Adding a test with cppcheck for Travis CI \ <a href="https://github.com/json-c/json-c/issues/254">Issue #254</a> - Very minor changes to some tests \ <a href="https://github.com/json-c/json-c/issues/255">Issue #255</a> - Minor changes in C source code \ <a href="https://github.com/json-c/json-c/issues/256">Issue #256</a> - Mailing list dead? \ <a href="https://github.com/json-c/json-c/issues/257">Issue #257</a> - Defining a coding style \ <a href="https://github.com/json-c/json-c/issues/258">Issue #258</a> - Enable CI services \ <a href="https://github.com/json-c/json-c/issues/259">Issue #259</a> - Fails to parse valid json \ <a href="https://github.com/json-c/json-c/issues/260">Issue #260</a> - Adding an object to itself \ <a href="https://github.com/json-c/json-c/issues/261">Issue #261</a> - Lack of proper documentation \ <a href="https://github.com/json-c/json-c/issues/262">Issue #262</a> - Add Cmakefile and fix compiler warning. \ <a href="https://github.com/json-c/json-c/issues/263">Issue #263</a> - Compiler Warnings with VS2015 \ <a href="https://github.com/json-c/json-c/issues/264">Issue #264</a> - successed in simple test while failed in my project \ <a href="https://github.com/json-c/json-c/issues/265">Issue #265</a> - Conformance report for reference \ <a href="https://github.com/json-c/json-c/issues/266">Issue #266</a> - crash perhaps related to reference counting \ <a href="https://github.com/json-c/json-c/issues/267">Issue #267</a> - Removes me as Win32 maintainer, because I'm not. \ <a href="https://github.com/json-c/json-c/issues/268">Issue #268</a> - Documentation of json_object_to_json_string gives no information about memory management \ <a href="https://github.com/json-c/json-c/issues/269">Issue #269</a> - json_object_&lt;type&gt;_set(json_object *o,&lt;type&gt; value) API for value setting in json object private structure \ <a href="https://github.com/json-c/json-c/issues/270">Issue #270</a> - new API json_object_new_double_f(doubel d,const char * fmt); \ <a href="https://github.com/json-c/json-c/issues/271">Issue #271</a> - Cannot compile using CMake on macOS \ <a href="https://github.com/json-c/json-c/issues/273">Issue #273</a> - fixed wrong object name in json_object_all_values_equal \ <a href="https://github.com/json-c/json-c/issues/274">Issue #274</a> - Support for 64 bit pointers on Windows \ <a href="https://github.com/json-c/json-c/issues/275">Issue #275</a> - Out-of-bounds read in json_tokener_parse_ex \ <a href="https://github.com/json-c/json-c/issues/276">Issue #276</a> - ./configure for centos release 6.7(final) failure \ <a href="https://github.com/json-c/json-c/issues/277">Issue #277</a> - Json object set xxx \ <a href="https://github.com/json-c/json-c/issues/278">Issue #278</a> - Serialization of double with no fractional component drops trailing zero \ <a href="https://github.com/json-c/json-c/issues/279">Issue #279</a> - Segmentation fault in <a class="el" href="arraylist_8h.html#aa3bf90f47aa210032304b14e7ad09ef7">array_list_length()</a> \ <a href="https://github.com/json-c/json-c/issues/280">Issue #280</a> - Should json_object_array_get_idx check whether input obj is array? \ <a href="https://github.com/json-c/json-c/issues/281">Issue #281</a> - how to pretty print json-c? \ <a href="https://github.com/json-c/json-c/issues/282">Issue #282</a> - ignore temporary files \ <a href="https://github.com/json-c/json-c/issues/283">Issue #283</a> - json_pointer: add first revision based on RFC 6901 \ <a href="https://github.com/json-c/json-c/issues/284">Issue #284</a> - Resusing <a class="el" href="structjson__tokener.html">json_tokener</a> object \ <a href="https://github.com/json-c/json-c/issues/285">Issue #285</a> - Revert "compat/strdup.h: move common compat check for strdup() to own \
46 &lt;a href="<a href="https://github.com/json-c/json-c/issues/286">https://github.com/json-c/json-c/issues/286</a>"&gt;Issue #286&lt;/a&gt; - json_tokener_parse_ex() returns json_tokener_continue on zero-length string \
47 &lt;a href="<a href="https://github.com/json-c/json-c/issues/287">https://github.com/json-c/json-c/issues/287</a>"&gt;Issue #287&lt;/a&gt; - json_pointer: extend setter &amp; getter with printf() style arguments \
48 &lt;a href="<a href="https://github.com/json-c/json-c/issues/288">https://github.com/json-c/json-c/issues/288</a>"&gt;Issue #288&lt;/a&gt; - Fix _GNU_SOURCE define for vasprintf \
49 &lt;a href="<a href="https://github.com/json-c/json-c/issues/289">https://github.com/json-c/json-c/issues/289</a>"&gt;Issue #289&lt;/a&gt; - bugfix: floating point representaion without fractional part \
50 &lt;a href="<a href="https://github.com/json-c/json-c/issues/290">https://github.com/json-c/json-c/issues/290</a>"&gt;Issue #290&lt;/a&gt; - duplicate an json_object \
51 &lt;a href="<a href="https://github.com/json-c/json-c/issues/291">https://github.com/json-c/json-c/issues/291</a>"&gt;Issue #291&lt;/a&gt; - isspace assert error \
52 &lt;a href="<a href="https://github.com/json-c/json-c/issues/292">https://github.com/json-c/json-c/issues/292</a>"&gt;Issue #292&lt;/a&gt; - configure error "./configure: line 13121: syntax error near unexpected token `-Wall'" \
53 &lt;a href="<a href="https://github.com/json-c/json-c/issues/293">https://github.com/json-c/json-c/issues/293</a>"&gt;Issue #293&lt;/a&gt; - how to make with bitcode for ios \
54 &lt;a href="<a href="https://github.com/json-c/json-c/issues/294">https://github.com/json-c/json-c/issues/294</a>"&gt;Issue #294&lt;/a&gt; - Adding UTF-8 validation. Fixes #122 \
55 &lt;a href="<a href="https://github.com/json-c/json-c/issues/295">https://github.com/json-c/json-c/issues/295</a>"&gt;Issue #295&lt;/a&gt; - cross compile w/ mingw \
56 &lt;a href="<a href="https://github.com/json-c/json-c/issues/296">https://github.com/json-c/json-c/issues/296</a>"&gt;Issue #296&lt;/a&gt; - Missing functions header in json_object.h \
57 &lt;a href="<a href="https://github.com/json-c/json-c/issues/297">https://github.com/json-c/json-c/issues/297</a>"&gt;Issue #297&lt;/a&gt; - could not parse string to Json object? Like string str=\"helloworld;E\test\log\;end" \ <a href="https://github.com/json-c/json-c/issues/298">Issue #298</a> - Building using CMake doesn't work \ <a href="https://github.com/json-c/json-c/issues/299">Issue #299</a> - Improve <a class="el" href="structjson__object.html">json_object</a> -&gt; string performance \ <a href="https://github.com/json-c/json-c/issues/300">Issue #300</a> - Running tests with MinGW build \ <a href="https://github.com/json-c/json-c/issues/301">Issue #301</a> - How to deep copy <a class="el" href="structjson__object.html">json_object</a> in C++ ? \ <a href="https://github.com/json-c/json-c/issues/302">Issue #302</a> - json_tokener_parse_ex doesn't parse JSON values \ <a href="https://github.com/json-c/json-c/issues/303">Issue #303</a> - fix doc in tokener header file \ <a href="https://github.com/json-c/json-c/issues/304">Issue #304</a> - (.text+0x72846): undefined reference to `is_error' \ <a href="https://github.com/json-c/json-c/issues/305">Issue #305</a> - Fix compilation without C-99 option \ <a href="https://github.com/json-c/json-c/issues/306">Issue #306</a> - ./configure: line 12748 -error=deprecated-declarations \ <a href="https://github.com/json-c/json-c/issues/307">Issue #307</a> - Memory leak in json_tokener_parse \ <a href="https://github.com/json-c/json-c/issues/308">Issue #308</a> - AM_PROG_LIBTOOL not found on Linux \ <a href="https://github.com/json-c/json-c/issues/309">Issue #309</a> - GCC 7 reports various -Wimplicit-fallthrough= errors \ <a href="https://github.com/json-c/json-c/issues/310">Issue #310</a> - Add FALLTHRU comment to handle GCC7 warnings. \ <a href="https://github.com/json-c/json-c/issues/311">Issue #311</a> - Fix error C3688 when compiling on Visual Studio 2015 \ <a href="https://github.com/json-c/json-c/issues/312">Issue #312</a> - Fix CMake Build process improved for MinGW and MSYS2 \ <a href="https://github.com/json-c/json-c/issues/313">Issue #313</a> - VERBOSE=1 make check; tests/test_util_file.test.c and tests/test_util_file.expected out of sync \ <a href="https://github.com/json-c/json-c/issues/315">Issue #315</a> - Passing -1 to json_tokener_parse_ex is possibly unsafe \ <a href="https://github.com/json-c/json-c/issues/316">Issue #316</a> - Memory Returned by json_object_to_json_string not freed \ <a href="https://github.com/json-c/json-c/issues/317">Issue #317</a> - json_object_get_string gives segmentation error \ <a href="https://github.com/json-c/json-c/issues/318">Issue #318</a> - PVS-Studio static analyzer analyze results \ <a href="https://github.com/json-c/json-c/issues/319">Issue #319</a> - Windows: Fix dynamic library build with Visual Studio \ <a href="https://github.com/json-c/json-c/issues/320">Issue #320</a> - Can't compile in Mac OS X El Capitan \ <a href="https://github.com/json-c/json-c/issues/321">Issue #321</a> - build,cmake: fix vasprintf implicit definition and generate both static &amp; shared libs \ <a href="https://github.com/json-c/json-c/issues/322">Issue #322</a> - can not link with libjson-c.a \ <a href="https://github.com/json-c/json-c/issues/323">Issue #323</a> - implicit fallthrough detected by gcc 7.1 \ <a href="https://github.com/json-c/json-c/issues/324">Issue #324</a> - JsonPath like function? \ <a href="https://github.com/json-c/json-c/issues/325">Issue #325</a> - Fix stack buffer overflow in json_object_double_to_json_string_format() \ <a href="https://github.com/json-c/json-c/issues/327">Issue #327</a> - why json-c so hard to compile \ <a href="https://github.com/json-c/json-c/issues/328">Issue #328</a> - <a class="el" href="structjson__object.html">json_object</a>: implement <a class="el" href="json__object_8h.html#aaac16505f13bc56accfad82604d8bcdc">json_object_deep_copy()</a> function \ <a href="https://github.com/json-c/json-c/issues/329">Issue #329</a> - build,cmake: build,cmake: rename libjson-c-static.a to libjson-c.a \ <a href="https://github.com/json-c/json-c/issues/330">Issue #330</a> - tests: symlink basic tests to a single file that has the common code \ <a href="https://github.com/json-c/json-c/issues/331">Issue #331</a> - Safe use of snprintf() / vsnprintf() for Visual studio, and thread-safety fix \ <a href="https://github.com/json-c/json-c/issues/332">Issue #332</a> - Valgrind: invalid read after json_object_array_del_idx. \ <a href="https://github.com/json-c/json-c/issues/333">Issue #333</a> - Replace obsolete AM_PROG_LIBTOOL \ <a href="https://github.com/json-c/json-c/issues/335">Issue #335</a> - <a class="el" href="README_8md.html">README.md</a>: show build status tag from travis-ci.org \ <a href="https://github.com/json-c/json-c/issues/336">Issue #336</a> - tests: fix tests in travis-ci.org \ <a href="https://github.com/json-c/json-c/issues/337">Issue #337</a> - Synchronize "potentially racy" random seed in lh_char_hash() \ <a href="https://github.com/json-c/json-c/issues/338">Issue #338</a> - implement <a class="el" href="json__object_8h.html#a25691322b2d1ab24a3797e5752eb659f">json_object_int_inc(json_object *, int64_t)</a> \ <a href="https://github.com/json-c/json-c/issues/339">Issue #339</a> - Json schema validation \ <a href="https://github.com/json-c/json-c/issues/340">Issue #340</a> - strerror_override: add extern "C" and JSON_EXPORT specifiers for Visual C++ compilers \ <a href="https://github.com/json-c/json-c/issues/341">Issue #341</a> - character "/" parse as "\/" \ <a href="https://github.com/json-c/json-c/issues/342">Issue #342</a> - No such file or directory "/usr/include/json.h" \ <a href="https://github.com/json-c/json-c/issues/343">Issue #343</a> - Can't parse json \ <a href="https://github.com/json-c/json-c/issues/344">Issue #344</a> - Fix Mingw build \ <a href="https://github.com/json-c/json-c/issues/345">Issue #345</a> - Fix make dist and make distcheck \ <a href="https://github.com/json-c/json-c/issues/346">Issue #346</a> - Clamp double to int32 when narrowing in json_object_get_int. \ <a href="https://github.com/json-c/json-c/issues/347">Issue #347</a> - MSVC linker error json_c_strerror \ <a href="https://github.com/json-c/json-c/issues/348">Issue #348</a> - why \ <a href="https://github.com/json-c/json-c/issues/349">Issue #349</a> - <code>missing</code> is missing? \ <a href="https://github.com/json-c/json-c/issues/350">Issue #350</a> - stderror-override and disable-shared \ <a href="https://github.com/json-c/json-c/issues/351">Issue #351</a> - SIZE_T_MAX redefined from limits.h \ <a href="https://github.com/json-c/json-c/issues/352">Issue #352</a> - <code>INSTALL</code> overrides an automake script. \ <a href="https://github.com/json-c/json-c/issues/353">Issue #353</a> - Documentation issues \ <a href="https://github.com/json-c/json-c/issues/354">Issue #354</a> - Fixes #351 #352 #353 \ <a href="https://github.com/json-c/json-c/issues/355">Issue #355</a> - 1.make it can been compiled with Visual Studio 2010 by modify the CMakeList.txt and others \ <a href="https://github.com/json-c/json-c/issues/356">Issue #356</a> - VS2008 test test_util_file.cpp err! \ <a href="https://github.com/json-c/json-c/issues/357">Issue #357</a> - __json_c_strerror incompatibility with link-time optimization \ <a href="https://github.com/json-c/json-c/issues/358">Issue #358</a> - make issue \ <a href="https://github.com/json-c/json-c/issues/359">Issue #359</a> - update CMakeLists.txt for compile with visual studio at least 2010 \ <a href="https://github.com/json-c/json-c/issues/360">Issue #360</a> - Use strtoll() to parse ints \ <a href="https://github.com/json-c/json-c/issues/361">Issue #361</a> - Fix double to int cast overflow in json_object_get_int64. \ <a href="https://github.com/json-c/json-c/issues/362">Issue #362</a> - CMake Package Config \ <a href="https://github.com/json-c/json-c/issues/363">Issue #363</a> - Issue #338, add json_object_add_int functions \ <a href="https://github.com/json-c/json-c/issues/364">Issue #364</a> - Cmake is Errir \ <a href="https://github.com/json-c/json-c/issues/365">Issue #365</a> - added fallthrough for gcc7 \ <a href="https://github.com/json-c/json-c/issues/366">Issue #366</a> - how to check the json string,crash! \ <a href="https://github.com/json-c/json-c/issues/367">Issue #367</a> - Is json-c support "redirect" semantic? \ <a href="https://github.com/json-c/json-c/issues/368">Issue #368</a> - Add examples \ <a href="https://github.com/json-c/json-c/issues/369">Issue #369</a> - How to build json-c library for android? \ <a href="https://github.com/json-c/json-c/issues/370">Issue #370</a> - Compiling using clang-cl \ <a href="https://github.com/json-c/json-c/issues/371">Issue #371</a> - Invalid parsing for Infinity with json-c 0.12 \ <a href="https://github.com/json-c/json-c/issues/372">Issue #372</a> - Json-c 0.12: Fixed Infinity bug \ <a href="https://github.com/json-c/json-c/issues/373">Issue #373</a> - build: fix build on appveyor CI \ <a href="https://github.com/json-c/json-c/issues/374">Issue #374</a> - Undefined symbols for architecture x86_64: \ <a href="https://github.com/json-c/json-c/issues/375">Issue #375</a> - what would happened when json_object_object_add add the same key \ <a href="https://github.com/json-c/json-c/issues/376">Issue #376</a> - Eclipse error \ <a href="https://github.com/json-c/json-c/issues/377">Issue #377</a> - on gcc 7.2.0 on my linux distribution with json-c 2013-04-02 source \ <a href="https://github.com/json-c/json-c/issues/378">Issue #378</a> - Eclipse: library (libjson-c) not found, but configured \ <a href="https://github.com/json-c/json-c/issues/379">Issue #379</a> - error: this statement may fall through [-Werror=implicit-fallthrough=] \ <a href="https://github.com/json-c/json-c/issues/380">Issue #380</a> - Build on Windows \ <a href="https://github.com/json-c/json-c/issues/381">Issue #381</a> - Fix makedist \ <a href="https://github.com/json-c/json-c/issues/382">Issue #382</a> - Memory leak for json_tokener_parse_ex for version 0.12.1 \ <a href="https://github.com/json-c/json-c/issues/383">Issue #383</a> - Fix a compiler warning. \ <a href="https://github.com/json-c/json-c/issues/384">Issue #384</a> - Fix a VS 2015 compiler warnings. \</p>
58 <p>This list was created with:</p>
59 <p>``` curl <a href="https://api.github.com/search/issues?q=">https://api.github.com/search/issues?q=</a>"repo%3Ajson-c%2Fjson-c+closed%3A&gt;2017-12-07+created%3A&lt;2020-04-17&amp;sort=created&amp;order=asc&amp;per_page=400&amp;page=1" &gt; issues1.out curl <a href="https://api.github.com/search/issues?q=">https://api.github.com/search/issues?q=</a>"repo%3Ajson-c%2Fjson-c+closed%3A&gt;2017-12-07+created%3A&lt;2020-04-17&amp;sort=created&amp;order=asc&amp;per_page=400&amp;page=2" &gt; issues2.out curl <a href="https://api.github.com/search/issues?q=">https://api.github.com/search/issues?q=</a>"repo%3Ajson-c%2Fjson-c+closed%3A&gt;2017-12-07+created%3A&lt;2020-04-17&amp;sort=created&amp;order=asc&amp;per_page=400&amp;page=3" &gt; issues3.out jq -r '.items[] | "[" + .title + "](" + .url + ")" | tostring' issues?.out &gt; issues.md sed -e's,^[ *(.*)](<a href="https://api.github.com/">https://api.github.com/</a>.*/([0-9].*)),<a href="https://github.com/json-c/json-c/issues/\2">Issue #\2</a> - \1,' -i issues.md #... manual editing ... ``` <hr/>
60 <p>Issues and Pull Requests closed for the 0.14 release (since commit d582d3a(2017-12-07) to a911439(2020-04-17))</p>
61 <p><a href="https://github.com/json-c/json-c/issues/122">Issue #122</a> - Add utf-8 validation when parsing strings. \ <a href="https://github.com/json-c/json-c/issues/139">Issue #139</a> - json_object_from_file cannot accept max_depth \ <a href="https://github.com/json-c/json-c/issues/143">Issue #143</a> - RFE / enhancement for full 64-bit signed/unsigned support \ <a href="https://github.com/json-c/json-c/issues/147">Issue #147</a> - Please introduce soname bump if API changed \ <a href="https://github.com/json-c/json-c/issues/166">Issue #166</a> - Need a way to specify nesting depth when opening JSON file \ <a href="https://github.com/json-c/json-c/issues/226">Issue #226</a> - There is no <a class="el" href="json__object_8h.html#a29e23b5be729c679960242b3b81bcde0">json_object_new_null()</a> \ <a href="https://github.com/json-c/json-c/issues/314">Issue #314</a> - new release ? \ <a href="https://github.com/json-c/json-c/issues/326">Issue #326</a> - Please extend api json_object_get_uint64 \ <a href="https://github.com/json-c/json-c/issues/334">Issue #334</a> - Switch json-c builds to use CMake \ <a href="https://github.com/json-c/json-c/issues/386">Issue #386</a> - Makefile: Add ACLOCAL_AMFLAGS \ <a href="https://github.com/json-c/json-c/issues/387">Issue #387</a> - doc: Use other doxygen feature to specify mainpage \ <a href="https://github.com/json-c/json-c/issues/388">Issue #388</a> - <a class="el" href="structjson__object.html">json_object</a>: Add size_t json_object_sizeof() \ <a href="https://github.com/json-c/json-c/issues/389">Issue #389</a> - <a class="el" href="structjson__object.html">json_object</a>: Avoid double free (and thus a segfault) when ref_count gets &lt; 0 \ <a href="https://github.com/json-c/json-c/issues/390">Issue #390</a> - <a class="el" href="structjson__object.html">json_object</a>: Add const size_t json_c_object_sizeof() \ <a href="https://github.com/json-c/json-c/issues/391">Issue #391</a> - Fix non-GNUC define for JSON_C_CONST_FUNCTION \ <a href="https://github.com/json-c/json-c/issues/392">Issue #392</a> - <a class="el" href="structjson__object.html">json_object</a>: Avoid invalid free (and thus a segfault) when ref_count gets &lt; 0 \ <a href="https://github.com/json-c/json-c/issues/393">Issue #393</a> - json_object_private: Use unsigned 32-bit integer type for refcount \ <a href="https://github.com/json-c/json-c/issues/394">Issue #394</a> - Problem serializing double \ <a href="https://github.com/json-c/json-c/issues/395">Issue #395</a> - Key gets modified if it contains "\" \ <a href="https://github.com/json-c/json-c/issues/396">Issue #396</a> - Build failure with no threads uClibc toolchain \ <a href="https://github.com/json-c/json-c/issues/397">Issue #397</a> - update json object with key. \ <a href="https://github.com/json-c/json-c/issues/398">Issue #398</a> - Build failed. \ <a href="https://github.com/json-c/json-c/issues/399">Issue #399</a> - Avoid uninitialized variable warnings \ <a href="https://github.com/json-c/json-c/issues/400">Issue #400</a> - How to generate static lib (.a) \ <a href="https://github.com/json-c/json-c/issues/401">Issue #401</a> - Warnings with Valgrind \ <a href="https://github.com/json-c/json-c/issues/402">Issue #402</a> - Add fuzzers from OSS-Fuzz \ <a href="https://github.com/json-c/json-c/issues/403">Issue #403</a> - Segmentation fault when double quotes is used \ <a href="https://github.com/json-c/json-c/issues/404">Issue #404</a> - valgrind: memory leak \ <a href="https://github.com/json-c/json-c/issues/405">Issue #405</a> - Missing API to determine an object is empty \ <a href="https://github.com/json-c/json-c/issues/406">Issue #406</a> - Undefine NDEBUG for tests \ <a href="https://github.com/json-c/json-c/issues/407">Issue #407</a> - json_tokener_parse is crash \ <a href="https://github.com/json-c/json-c/issues/408">Issue #408</a> - bug in array_list_del_idx when <a class="el" href="arraylist_8h.html#aa3bf90f47aa210032304b14e7ad09ef7">array_list_length()</a>==1 \ <a href="https://github.com/json-c/json-c/issues/410">Issue #410</a> - Fixed typos \ <a href="https://github.com/json-c/json-c/issues/411">Issue #411</a> - Crash- signal SIGSEGV, Segmentation fault. ../sysdeps/x86_64/strlen.S: No such file or directory. \ <a href="https://github.com/json-c/json-c/issues/412">Issue #412</a> - json_type changes during inter process communication. \ <a href="https://github.com/json-c/json-c/issues/413">Issue #413</a> - how to read object of type <code><a class="el" href="structjson__object.html">json_object</a> *</code> in c++ \ <a href="https://github.com/json-c/json-c/issues/414">Issue #414</a> - [Question] How JSON-c stores the serialized data in memory? \ <a href="https://github.com/json-c/json-c/issues/415">Issue #415</a> - Resolve windows name conflict \ <a href="https://github.com/json-c/json-c/issues/416">Issue #416</a> - segmentation fault in json_tokener_parse \ <a href="https://github.com/json-c/json-c/issues/417">Issue #417</a> - json_tokener_parse json_object_object_get_ex with string value which is json string \ <a href="https://github.com/json-c/json-c/issues/418">Issue #418</a> - json_object_from_* return value documented incorrectly \ <a href="https://github.com/json-c/json-c/issues/419">Issue #419</a> - Suggestion: document (and define) that <a class="el" href="json__object_8h.html#afabf61f932cd64a4122ca8092452eed5">json_object_put()</a> accepts NULL pointer to object \ <a href="https://github.com/json-c/json-c/issues/420">Issue #420</a> - arraylist: Fixed names of parameters for callback function \ <a href="https://github.com/json-c/json-c/issues/421">Issue #421</a> - install <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> header file \ <a href="https://github.com/json-c/json-c/issues/422">Issue #422</a> - <a class="el" href="json__object_8h.html#a94a70cff6a14398b581b7b10b0792c5b">json_object_get_double()</a> does not set errno when there is no valid conversion \ <a href="https://github.com/json-c/json-c/issues/423">Issue #423</a> - memory leak \ <a href="https://github.com/json-c/json-c/issues/424">Issue #424</a> - Parse string contains "\" or "/" errors \ <a href="https://github.com/json-c/json-c/issues/425">Issue #425</a> - what this is? \ <a href="https://github.com/json-c/json-c/issues/426">Issue #426</a> - __deprecated not supported on clang. \ <a href="https://github.com/json-c/json-c/issues/427">Issue #427</a> - CMake: builds involving this target will not be correct \ <a href="https://github.com/json-c/json-c/issues/430">Issue #430</a> - <a class="el" href="json__object_8h.html#ac6605fdafca20bd5d33c84f4f80a3bda">json_object_object_del()</a> and Segmentation fault \ <a href="https://github.com/json-c/json-c/issues/431">Issue #431</a> - cmake: Bump required version \ <a href="https://github.com/json-c/json-c/issues/432">Issue #432</a> - The real CMake support. \ <a href="https://github.com/json-c/json-c/issues/433">Issue #433</a> - The real CMake support. \ <a href="https://github.com/json-c/json-c/issues/434">Issue #434</a> - The real CMake support \ <a href="https://github.com/json-c/json-c/issues/435">Issue #435</a> - <a class="el" href="json__object_8h.html#ac6605fdafca20bd5d33c84f4f80a3bda">json_object_object_del()</a> segmentation fault \ <a href="https://github.com/json-c/json-c/issues/436">Issue #436</a> - Improve pkgconfig setting \ <a href="https://github.com/json-c/json-c/issues/437">Issue #437</a> - Bad link in <a class="el" href="README_8md.html">README.md</a> \ <a href="https://github.com/json-c/json-c/issues/438">Issue #438</a> - Bad link in README.html \ <a href="https://github.com/json-c/json-c/issues/439">Issue #439</a> - reserved identifier violation \ <a href="https://github.com/json-c/json-c/issues/440">Issue #440</a> - Use of angle brackets around file names for include statements \ <a href="https://github.com/json-c/json-c/issues/441">Issue #441</a> - fix c flag loss during cmake building \ <a href="https://github.com/json-c/json-c/issues/442">Issue #442</a> - error in configure file \ <a href="https://github.com/json-c/json-c/issues/443">Issue #443</a> - remove pretty spaces when using pretty tabs \ <a href="https://github.com/json-c/json-c/issues/444">Issue #444</a> - Document refcount of json_tokener_parse_ex return \ <a href="https://github.com/json-c/json-c/issues/445">Issue #445</a> - Add missing "make check" target to cmake config \ <a href="https://github.com/json-c/json-c/issues/446">Issue #446</a> - Forward slashes get escaped \ <a href="https://github.com/json-c/json-c/issues/448">Issue #448</a> - Buffer overflow in json-c \ <a href="https://github.com/json-c/json-c/issues/449">Issue #449</a> - Need of json_type_int64 returned by <a class="el" href="json__object_8h.html#af256a3a7910e271a2b9735e5044c3827">json_object_get_type()</a> \ <a href="https://github.com/json-c/json-c/issues/450">Issue #450</a> - Allow use json-c cmake as subproject \ <a href="https://github.com/json-c/json-c/issues/452">Issue #452</a> - Update <a class="el" href="README_8md.html">README.md</a> \ <a href="https://github.com/json-c/json-c/issues/453">Issue #453</a> - Fixed misalignment in JSON string due to space after <br/>
62 being printed... \ <a href="https://github.com/json-c/json-c/issues/454">Issue #454</a> - json_object_private: save 8 bytes in struct <a class="el" href="structjson__object.html">json_object</a> in 64-bit arc… \ <a href="https://github.com/json-c/json-c/issues/455">Issue #455</a> - index.html:fix dead link \ <a href="https://github.com/json-c/json-c/issues/456">Issue #456</a> - STYLE.txt:remove executable permissions \ <a href="https://github.com/json-c/json-c/issues/457">Issue #457</a> - .gitignore:add build directory \ <a href="https://github.com/json-c/json-c/issues/458">Issue #458</a> - <a class="el" href="README_8md.html">README.md</a>:fix dead "file.html" link \ <a href="https://github.com/json-c/json-c/issues/459">Issue #459</a> - README.html:fix link to Doxygen docs, remove WIN32 link \ <a href="https://github.com/json-c/json-c/issues/460">Issue #460</a> - No docs for <a class="el" href="json__object_8h.html#a778a1aa34a508d08daac3bdb83e24b52">json_object_new_string_len()</a> \ <a href="https://github.com/json-c/json-c/issues/461">Issue #461</a> - json_object.c:set errno in <a class="el" href="json__object_8h.html#a94a70cff6a14398b581b7b10b0792c5b">json_object_get_double()</a> \ <a href="https://github.com/json-c/json-c/issues/462">Issue #462</a> - <a class="el" href="json__object_8h.html" title="Core json-c API. Start here, or with json_tokener.h.">json_object.h</a>:document <a class="el" href="json__object_8h.html#a778a1aa34a508d08daac3bdb83e24b52">json_object_new_string_len()</a> \ <a href="https://github.com/json-c/json-c/issues/463">Issue #463</a> - please check newlocale api first argument valuse. \ <a href="https://github.com/json-c/json-c/issues/465">Issue #465</a> - CMakeLists.txt doesn't contain <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> which <a class="el" href="json_8h.html" title="A convenience header that may be included instead of other individual ones.">json.h</a> includes \ <a href="https://github.com/json-c/json-c/issues/466">Issue #466</a> - configure:3610: error: C compiler cannot create executables \ <a href="https://github.com/json-c/json-c/issues/467">Issue #467</a> - Fix compiler warnings \ <a href="https://github.com/json-c/json-c/issues/468">Issue #468</a> - Fix compiler warnings \ <a href="https://github.com/json-c/json-c/issues/469">Issue #469</a> - Build under alpine with pecl install &amp; docker-php-ext-enable? \ <a href="https://github.com/json-c/json-c/issues/470">Issue #470</a> - cfuhash_foreach_remove doesn't upate cfuhash_num_entries \ <a href="https://github.com/json-c/json-c/issues/472">Issue #472</a> - Segmentation fault in json_object_iter_begin \ <a href="https://github.com/json-c/json-c/issues/473">Issue #473</a> - Convert ChangeLog to valid UTF-8 encoding. \ <a href="https://github.com/json-c/json-c/issues/474">Issue #474</a> - Installation directories empty with CMake in pkg-config. \ <a href="https://github.com/json-c/json-c/issues/475">Issue #475</a> - improvement proposal for json_object_object_foreach \ <a href="https://github.com/json-c/json-c/issues/477">Issue #477</a> - Hang/Crash with large strings \ <a href="https://github.com/json-c/json-c/issues/478">Issue #478</a> - json_object_get_string_len returns 0 when value is number \ <a href="https://github.com/json-c/json-c/issues/479">Issue #479</a> - I want to use it in iOS or Android but I can't compile \ <a href="https://github.com/json-c/json-c/issues/480">Issue #480</a> - json-c-0.12.1 failed making from source code \ <a href="https://github.com/json-c/json-c/issues/481">Issue #481</a> - error while loading shared libraries: libjson-c.so.4 \ <a href="https://github.com/json-c/json-c/issues/482">Issue #482</a> - Error "double free or corruption" after free() \ <a href="https://github.com/json-c/json-c/issues/483">Issue #483</a> - compatible with rarely-used Chinese characters in GBK charset \ <a href="https://github.com/json-c/json-c/issues/485">Issue #485</a> - Install CMake module files \ <a href="https://github.com/json-c/json-c/issues/486">Issue #486</a> - In the case of negative double value, it is formatted without including ".0" \ <a href="https://github.com/json-c/json-c/issues/488">Issue #488</a> - Some APIs are not exported when built as shared lib on Win32 \ <a href="https://github.com/json-c/json-c/issues/489">Issue #489</a> - Don't use -Werror by default \ <a href="https://github.com/json-c/json-c/issues/490">Issue #490</a> - do not compile with -Werror by default \ <a href="https://github.com/json-c/json-c/issues/491">Issue #491</a> - build: add option &ndash;disable-werror to configure \ <a href="https://github.com/json-c/json-c/issues/492">Issue #492</a> - lack some quick usage in readme \ <a href="https://github.com/json-c/json-c/issues/494">Issue #494</a> - Code generator? \ <a href="https://github.com/json-c/json-c/issues/495">Issue #495</a> - <a class="el" href="README_8md.html">README.md</a>:fix 2 typos \ <a href="https://github.com/json-c/json-c/issues/496">Issue #496</a> - <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>:suggest minor grammar improvement for pointer doc \ <a href="https://github.com/json-c/json-c/issues/497">Issue #497</a> - add common header for all tests \ <a href="https://github.com/json-c/json-c/issues/498">Issue #498</a> - double_serializer_test fails (with valgrind) \ <a href="https://github.com/json-c/json-c/issues/499">Issue #499</a> - .travis.yml:test on more recent clang and gcc versions \ <a href="https://github.com/json-c/json-c/issues/500">Issue #500</a> - test/Makefile.am:add missing deps for test1 and test2 \ <a href="https://github.com/json-c/json-c/issues/501">Issue #501</a> - undefine NDEBUG for tests \ <a href="https://github.com/json-c/json-c/issues/502">Issue #502</a> - configure error \ <a href="https://github.com/json-c/json-c/issues/503">Issue #503</a> - json-c retuns OK when Invalid json string is passed \ <a href="https://github.com/json-c/json-c/issues/504">Issue #504</a> - json_object_put coredump \ <a href="https://github.com/json-c/json-c/issues/505">Issue #505</a> - Add vcpkg installation instructions \ <a href="https://github.com/json-c/json-c/issues/506">Issue #506</a> - Cannot parse more than one object \ <a href="https://github.com/json-c/json-c/issues/509">Issue #509</a> - Sometimes a double value is not serialized \ <a href="https://github.com/json-c/json-c/issues/510">Issue #510</a> - Bump so-name and improve CMake \ <a href="https://github.com/json-c/json-c/issues/511">Issue #511</a> - Reduce lines for better optimization \ <a href="https://github.com/json-c/json-c/issues/512">Issue #512</a> - Properly append to CMAKE_C_FLAGS string \ <a href="https://github.com/json-c/json-c/issues/513">Issue #513</a> - What does <code>userdata</code> means?And what is the case we can use it? \ <a href="https://github.com/json-c/json-c/issues/514">Issue #514</a> - Json c 0.13 \ <a href="https://github.com/json-c/json-c/issues/515">Issue #515</a> - Mies suomesta fixes segfaults and logic errors \ <a href="https://github.com/json-c/json-c/issues/516">Issue #516</a> - Lja slight mods \ <a href="https://github.com/json-c/json-c/issues/518">Issue #518</a> - Escape character "\\003\", get unexpected value \ <a href="https://github.com/json-c/json-c/issues/519">Issue #519</a> - Add test case obj token \ <a href="https://github.com/json-c/json-c/issues/520">Issue #520</a> - Adding type uint64 \ <a href="https://github.com/json-c/json-c/issues/521">Issue #521</a> - build cmake windows 10 \ <a href="https://github.com/json-c/json-c/issues/522">Issue #522</a> - update json_visit testcase \ <a href="https://github.com/json-c/json-c/issues/523">Issue #523</a> - update tsetcase for tokener_c \ <a href="https://github.com/json-c/json-c/issues/524">Issue #524</a> - Increase coverage \ <a href="https://github.com/json-c/json-c/issues/525">Issue #525</a> - update pointer test case \ <a href="https://github.com/json-c/json-c/issues/526">Issue #526</a> - Increased the test coverage of printbuf.c 82% to 92%. \ <a href="https://github.com/json-c/json-c/issues/527">Issue #527</a> - Arraylist testcase \ <a href="https://github.com/json-c/json-c/issues/528">Issue #528</a> - Solve issue #108. Skip while parsing. \ <a href="https://github.com/json-c/json-c/issues/529">Issue #529</a> - Increased the test coverage of json_c_version.c 0% to 100%. \ <a href="https://github.com/json-c/json-c/issues/530">Issue #530</a> - validate utf-8 string before parse \ <a href="https://github.com/json-c/json-c/issues/531">Issue #531</a> - validate utf-8 string \ <a href="https://github.com/json-c/json-c/issues/532">Issue #532</a> - json_object_object_get_ex returning the original object \ <a href="https://github.com/json-c/json-c/issues/533">Issue #533</a> - Fix "make check" \ <a href="https://github.com/json-c/json-c/issues/535">Issue #535</a> - short string optimization: excessive array length \ <a href="https://github.com/json-c/json-c/issues/536">Issue #536</a> - add <a class="el" href="json__object_8h.html#a29e23b5be729c679960242b3b81bcde0">json_object_new_null()</a> \ <a href="https://github.com/json-c/json-c/issues/538">Issue #538</a> - update shortstring and arraylist parameters \ <a href="https://github.com/json-c/json-c/issues/539">Issue #539</a> - double serializes to the old value after set_double \ <a href="https://github.com/json-c/json-c/issues/541">Issue #541</a> - add coveralls auto tool to json-c \ <a href="https://github.com/json-c/json-c/issues/542">Issue #542</a> - add uint64 data to json-c \ <a href="https://github.com/json-c/json-c/issues/543">Issue #543</a> - Readme \ <a href="https://github.com/json-c/json-c/issues/544">Issue #544</a> - Increase distcheck target in cmake \ <a href="https://github.com/json-c/json-c/issues/545">Issue #545</a> - add doc target in cmake \ <a href="https://github.com/json-c/json-c/issues/546">Issue #546</a> - Add uninstall target in cmake \ <a href="https://github.com/json-c/json-c/issues/547">Issue #547</a> - modify json-c default build type, and fix up the assert() errors in t… \ <a href="https://github.com/json-c/json-c/issues/548">Issue #548</a> - Solve some problems about cmake build type (debug/release) \ <a href="https://github.com/json-c/json-c/issues/549">Issue #549</a> - lib installation issues \ <a href="https://github.com/json-c/json-c/issues/550">Issue #550</a> - Format codes with clang-format tool? \ <a href="https://github.com/json-c/json-c/issues/551">Issue #551</a> - Allow hexadecimal number format convention parsing \ <a href="https://github.com/json-c/json-c/issues/553">Issue #553</a> - Fix/clang ubsan \ <a href="https://github.com/json-c/json-c/issues/554">Issue #554</a> - RFC 8259 compatibility mode \ <a href="https://github.com/json-c/json-c/issues/555">Issue #555</a> - Format json-c with clang-format tool \ <a href="https://github.com/json-c/json-c/issues/556">Issue #556</a> - Fixes various Wreturn-type and Wimplicit-fallthrough errors on Mingw-w64 \ <a href="https://github.com/json-c/json-c/issues/557">Issue #557</a> - Add option in CMAKE to not build documentation \ <a href="https://github.com/json-c/json-c/issues/558">Issue #558</a> - modify the doc target message \ <a href="https://github.com/json-c/json-c/issues/559">Issue #559</a> - <a class="el" href="json__visit_8h.html#a0f585e56a5d417381cdf6c28538dbb20">json_c_visit()</a> not exported on Windows \ <a href="https://github.com/json-c/json-c/issues/560">Issue #560</a> - error: implicit declaration of function '_strtoi64' \ <a href="https://github.com/json-c/json-c/issues/561">Issue #561</a> - add the badge in <a class="el" href="README_8md.html">README.md</a> and test the coveralls \ <a href="https://github.com/json-c/json-c/issues/562">Issue #562</a> - Bugfix and testcases supplements \ <a href="https://github.com/json-c/json-c/issues/563">Issue #563</a> - Changed order of calloc args to match stdlib \ <a href="https://github.com/json-c/json-c/issues/564">Issue #564</a> - Remove autogenerated files \ <a href="https://github.com/json-c/json-c/issues/565">Issue #565</a> - test the CI and ignore this PR \ <a href="https://github.com/json-c/json-c/issues/566">Issue #566</a> - add the <a class="el" href="json__types_8h.html" title="Basic types used in a few places in json-c, but you should include &quot;json_object.h&quot; instead...">json_types.h</a> to Makefile.am \ <a href="https://github.com/json-c/json-c/issues/567">Issue #567</a> - Install <a class="el" href="json__types_8h.html" title="Basic types used in a few places in json-c, but you should include &quot;json_object.h&quot; instead...">json_types.h</a> with autotools build as well. \ <a href="https://github.com/json-c/json-c/issues/568">Issue #568</a> - Adding better support to MinGW \ <a href="https://github.com/json-c/json-c/issues/569">Issue #569</a> - Handling of -Bsymbolic-function in CMakeLists.txt is deficient \ <a href="https://github.com/json-c/json-c/issues/571">Issue #571</a> - CMake: Bump SONAME to 5. \ <a href="https://github.com/json-c/json-c/issues/572">Issue #572</a> - Small fixes to CMakeLists \ <a href="https://github.com/json-c/json-c/issues/573">Issue #573</a> - Fix coveralls submission. \ <a href="https://github.com/json-c/json-c/issues/574">Issue #574</a> - autogen.sh missing from repository \ <a href="https://github.com/json-c/json-c/issues/575">Issue #575</a> - Small cosmetics. \ <a href="https://github.com/json-c/json-c/issues/576">Issue #576</a> - Test coverage for json_c_version. \ <a href="https://github.com/json-c/json-c/issues/577">Issue #577</a> - Be verbose on failing json_c_version test. \ <a href="https://github.com/json-c/json-c/issues/578">Issue #578</a> - CMake: Install pkgconfig file in proper location by default \ <a href="https://github.com/json-c/json-c/issues/579">Issue #579</a> - Enforce strict prototypes. \ <a href="https://github.com/json-c/json-c/issues/580">Issue #580</a> - Fix CMake tests for enforced strict prototypes. \ <a href="https://github.com/json-c/json-c/issues/581">Issue #581</a> - CMakeLists: do not enforce strict prototypes on Windows. \ </p>
63 </div></div><!-- contents -->
64 <!-- start footer part -->
65 <hr class="footer"/><address class="footer"><small>
66 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
67 <img class="footer" src="doxygen.png" alt="doxygen"/>
68 </a> 1.8.2
69 </small></address>
70 </body>
71 </html>
doc/html/nav_f.png less more
Binary diff not shown
doc/html/nav_g.png less more
Binary diff not shown
doc/html/nav_h.png less more
Binary diff not shown
doc/html/open.png less more
Binary diff not shown
+0
-58
doc/html/pages.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: Related Pages</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 </div><!-- top -->
37 <div class="header">
38 <div class="headertitle">
39 <div class="title">Related Pages</div> </div>
40 </div><!--header-->
41 <div class="contents">
42 <div class="textblock">Here is a list of all related documentation pages:</div><div class="directory">
43 <table class="directory">
44 <tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="md_issues_closed_for_0.html" target="_self">issues_closed_for_0</a></td><td class="desc"></td></tr>
45 <tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="md_README.html" target="_self">`json-c`</a></td><td class="desc"></td></tr>
46 <tr id="row_2_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="deprecated.html" target="_self">Deprecated List</a></td><td class="desc"></td></tr>
47 </table>
48 </div><!-- directory -->
49 </div><!-- contents -->
50 <!-- start footer part -->
51 <hr class="footer"/><address class="footer"><small>
52 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
53 <img class="footer" src="doxygen.png" alt="doxygen"/>
54 </a> 1.8.2
55 </small></address>
56 </body>
57 </html>
+0
-403
doc/html/printbuf_8h.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: printbuf.h File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#nested-classes">Data Structures</a> &#124;
46 <a href="#define-members">Macros</a> &#124;
47 <a href="#typedef-members">Typedefs</a> &#124;
48 <a href="#func-members">Functions</a> </div>
49 <div class="headertitle">
50 <div class="title">printbuf.h File Reference</div> </div>
51 </div><!--header-->
52 <div class="contents">
53
54 <p>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.
55 <a href="#details">More...</a></p>
56 <table class="memberdecls">
57 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
58 Data Structures</h2></td></tr>
59 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structprintbuf.html">printbuf</a></td></tr>
60 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
61 </table><table class="memberdecls">
62 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
63 Macros</h2></td></tr>
64 <tr class="memitem:a2a31d5c00f3a4712f2d5d62aee66344e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a>&#160;&#160;&#160;extern</td></tr>
65 <tr class="separator:a2a31d5c00f3a4712f2d5d62aee66344e"><td class="memSeparator" colspan="2">&#160;</td></tr>
66 <tr class="memitem:a6f3a4dc87fab41c37e3eff42f40dc346"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="printbuf_8h.html#a6f3a4dc87fab41c37e3eff42f40dc346">printbuf_memappend_fast</a>(p, bufptr, bufsize)</td></tr>
67 <tr class="separator:a6f3a4dc87fab41c37e3eff42f40dc346"><td class="memSeparator" colspan="2">&#160;</td></tr>
68 <tr class="memitem:acdd84ad88987c0166b7ba0e3f1f8f1bb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="printbuf_8h.html#acdd84ad88987c0166b7ba0e3f1f8f1bb">printbuf_length</a>(p)&#160;&#160;&#160;((p)-&gt;bpos)</td></tr>
69 <tr class="separator:acdd84ad88987c0166b7ba0e3f1f8f1bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
70 <tr class="memitem:ab009973c5e15aae191e610cd70752603"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="printbuf_8h.html#ab009973c5e15aae191e610cd70752603">_printbuf_check_literal</a>(mystr)&#160;&#160;&#160;(&quot;&quot; mystr)</td></tr>
71 <tr class="separator:ab009973c5e15aae191e610cd70752603"><td class="memSeparator" colspan="2">&#160;</td></tr>
72 <tr class="memitem:a2f30492682f5fbc59a8749b428e0e4ba"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="printbuf_8h.html#a2f30492682f5fbc59a8749b428e0e4ba">printbuf_strappend</a>(pb, str)&#160;&#160;&#160;<a class="el" href="printbuf_8h.html#a9c193d30e9ca4936ea28a6c9e8e4f6f0">printbuf_memappend</a>((pb), <a class="el" href="printbuf_8h.html#ab009973c5e15aae191e610cd70752603">_printbuf_check_literal</a>(str), sizeof(str) - 1)</td></tr>
73 <tr class="separator:a2f30492682f5fbc59a8749b428e0e4ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
74 </table><table class="memberdecls">
75 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
76 Typedefs</h2></td></tr>
77 <tr class="memitem:ace274df280df67463ff417b1b3392395"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structprintbuf.html">printbuf</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="printbuf_8h.html#ace274df280df67463ff417b1b3392395">printbuf</a></td></tr>
78 <tr class="separator:ace274df280df67463ff417b1b3392395"><td class="memSeparator" colspan="2">&#160;</td></tr>
79 </table><table class="memberdecls">
80 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
81 Functions</h2></td></tr>
82 <tr class="memitem:a645670fa132f0ae9a75f43c0b464bdaf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structprintbuf.html">printbuf</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="printbuf_8h.html#a645670fa132f0ae9a75f43c0b464bdaf">printbuf_new</a> (void)</td></tr>
83 <tr class="separator:a645670fa132f0ae9a75f43c0b464bdaf"><td class="memSeparator" colspan="2">&#160;</td></tr>
84 <tr class="memitem:a9c193d30e9ca4936ea28a6c9e8e4f6f0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="printbuf_8h.html#a9c193d30e9ca4936ea28a6c9e8e4f6f0">printbuf_memappend</a> (struct <a class="el" href="structprintbuf.html">printbuf</a> *p, const char *buf, int size)</td></tr>
85 <tr class="separator:a9c193d30e9ca4936ea28a6c9e8e4f6f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
86 <tr class="memitem:a93a27f4f8a092c58666724de23ae804d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="printbuf_8h.html#a93a27f4f8a092c58666724de23ae804d">printbuf_memset</a> (struct <a class="el" href="structprintbuf.html">printbuf</a> *pb, int offset, int charvalue, int len)</td></tr>
87 <tr class="separator:a93a27f4f8a092c58666724de23ae804d"><td class="memSeparator" colspan="2">&#160;</td></tr>
88 <tr class="memitem:a61f6bc0b1ca5787f0faca6799d61a0bb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="printbuf_8h.html#a61f6bc0b1ca5787f0faca6799d61a0bb">sprintbuf</a> (struct <a class="el" href="structprintbuf.html">printbuf</a> *p, const char *msg,...)</td></tr>
89 <tr class="separator:a61f6bc0b1ca5787f0faca6799d61a0bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
90 <tr class="memitem:a705c62167df13e65e04de9ae60f6e136"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="printbuf_8h.html#a705c62167df13e65e04de9ae60f6e136">printbuf_reset</a> (struct <a class="el" href="structprintbuf.html">printbuf</a> *p)</td></tr>
91 <tr class="separator:a705c62167df13e65e04de9ae60f6e136"><td class="memSeparator" colspan="2">&#160;</td></tr>
92 <tr class="memitem:a2b744266191ef5e3102fbf910e790a98"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="printbuf_8h.html#a2b744266191ef5e3102fbf910e790a98">printbuf_free</a> (struct <a class="el" href="structprintbuf.html">printbuf</a> *p)</td></tr>
93 <tr class="separator:a2b744266191ef5e3102fbf910e790a98"><td class="memSeparator" colspan="2">&#160;</td></tr>
94 </table>
95 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
96 <div class="textblock"><p>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. </p>
97 </div><h2 class="groupheader">Macro Definition Documentation</h2>
98 <a class="anchor" id="ab009973c5e15aae191e610cd70752603"></a>
99 <div class="memitem">
100 <div class="memproto">
101 <table class="memname">
102 <tr>
103 <td class="memname">#define _printbuf_check_literal</td>
104 <td>(</td>
105 <td class="paramtype">&#160;</td>
106 <td class="paramname">mystr</td><td>)</td>
107 <td>&#160;&#160;&#160;(&quot;&quot; mystr)</td>
108 </tr>
109 </table>
110 </div><div class="memdoc">
111 <p>Results in a compile error if the argument is not a string literal. </p>
112
113 </div>
114 </div>
115 <a class="anchor" id="a2a31d5c00f3a4712f2d5d62aee66344e"></a>
116 <div class="memitem">
117 <div class="memproto">
118 <table class="memname">
119 <tr>
120 <td class="memname">#define JSON_EXPORT&#160;&#160;&#160;extern</td>
121 </tr>
122 </table>
123 </div><div class="memdoc">
124
125 </div>
126 </div>
127 <a class="anchor" id="acdd84ad88987c0166b7ba0e3f1f8f1bb"></a>
128 <div class="memitem">
129 <div class="memproto">
130 <table class="memname">
131 <tr>
132 <td class="memname">#define printbuf_length</td>
133 <td>(</td>
134 <td class="paramtype">&#160;</td>
135 <td class="paramname">p</td><td>)</td>
136 <td>&#160;&#160;&#160;((p)-&gt;bpos)</td>
137 </tr>
138 </table>
139 </div><div class="memdoc">
140
141 </div>
142 </div>
143 <a class="anchor" id="a6f3a4dc87fab41c37e3eff42f40dc346"></a>
144 <div class="memitem">
145 <div class="memproto">
146 <table class="memname">
147 <tr>
148 <td class="memname">#define printbuf_memappend_fast</td>
149 <td>(</td>
150 <td class="paramtype">&#160;</td>
151 <td class="paramname">p, </td>
152 </tr>
153 <tr>
154 <td class="paramkey"></td>
155 <td></td>
156 <td class="paramtype">&#160;</td>
157 <td class="paramname">bufptr, </td>
158 </tr>
159 <tr>
160 <td class="paramkey"></td>
161 <td></td>
162 <td class="paramtype">&#160;</td>
163 <td class="paramname">bufsize&#160;</td>
164 </tr>
165 <tr>
166 <td></td>
167 <td>)</td>
168 <td></td><td></td>
169 </tr>
170 </table>
171 </div><div class="memdoc">
172 <b>Value:</b><div class="fragment"><div class="line"><span class="keywordflow">do</span> \</div>
173 <div class="line"> { \</div>
174 <div class="line"> if ((p-&gt;size - p-&gt;bpos) &gt; bufsize) \</div>
175 <div class="line"> { \</div>
176 <div class="line"> memcpy(p-&gt;buf + p-&gt;bpos, (bufptr), bufsize); \</div>
177 <div class="line"> p-&gt;bpos += bufsize; \</div>
178 <div class="line"> p-&gt;buf[p-&gt;bpos] = <span class="charliteral">&#39;\0&#39;</span>; \</div>
179 <div class="line"> } \</div>
180 <div class="line"> else \</div>
181 <div class="line"> { \</div>
182 <div class="line"> printbuf_memappend(p, (bufptr), bufsize); \</div>
183 <div class="line"> } \</div>
184 <div class="line"> } <span class="keywordflow">while</span> (0)</div>
185 </div><!-- fragment -->
186 </div>
187 </div>
188 <a class="anchor" id="a2f30492682f5fbc59a8749b428e0e4ba"></a>
189 <div class="memitem">
190 <div class="memproto">
191 <table class="memname">
192 <tr>
193 <td class="memname">#define printbuf_strappend</td>
194 <td>(</td>
195 <td class="paramtype">&#160;</td>
196 <td class="paramname">pb, </td>
197 </tr>
198 <tr>
199 <td class="paramkey"></td>
200 <td></td>
201 <td class="paramtype">&#160;</td>
202 <td class="paramname">str&#160;</td>
203 </tr>
204 <tr>
205 <td></td>
206 <td>)</td>
207 <td></td><td>&#160;&#160;&#160;<a class="el" href="printbuf_8h.html#a9c193d30e9ca4936ea28a6c9e8e4f6f0">printbuf_memappend</a>((pb), <a class="el" href="printbuf_8h.html#ab009973c5e15aae191e610cd70752603">_printbuf_check_literal</a>(str), sizeof(str) - 1)</td>
208 </tr>
209 </table>
210 </div><div class="memdoc">
211 <p>This is an optimization wrapper around <a class="el" href="printbuf_8h.html#a9c193d30e9ca4936ea28a6c9e8e4f6f0">printbuf_memappend()</a> that is useful for appending string literals. Since the size of string constants is known at compile time, using this macro can avoid a costly strlen() call. This is especially helpful when a constant string must be appended many times. If you got here because of a compilation error caused by passing something other than a string literal, use <a class="el" href="printbuf_8h.html#a6f3a4dc87fab41c37e3eff42f40dc346">printbuf_memappend_fast()</a> in conjunction with strlen().</p>
212 <p>See also: <a class="el" href="printbuf_8h.html#a6f3a4dc87fab41c37e3eff42f40dc346">printbuf_memappend_fast()</a> <a class="el" href="printbuf_8h.html#a9c193d30e9ca4936ea28a6c9e8e4f6f0">printbuf_memappend()</a> <a class="el" href="printbuf_8h.html#a61f6bc0b1ca5787f0faca6799d61a0bb">sprintbuf()</a> </p>
213
214 </div>
215 </div>
216 <h2 class="groupheader">Typedef Documentation</h2>
217 <a class="anchor" id="ace274df280df67463ff417b1b3392395"></a>
218 <div class="memitem">
219 <div class="memproto">
220 <table class="memname">
221 <tr>
222 <td class="memname">typedef struct <a class="el" href="structprintbuf.html">printbuf</a> <a class="el" href="structprintbuf.html">printbuf</a></td>
223 </tr>
224 </table>
225 </div><div class="memdoc">
226
227 </div>
228 </div>
229 <h2 class="groupheader">Function Documentation</h2>
230 <a class="anchor" id="a2b744266191ef5e3102fbf910e790a98"></a>
231 <div class="memitem">
232 <div class="memproto">
233 <table class="memname">
234 <tr>
235 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void printbuf_free </td>
236 <td>(</td>
237 <td class="paramtype">struct <a class="el" href="structprintbuf.html">printbuf</a> *&#160;</td>
238 <td class="paramname"><em>p</em></td><td>)</td>
239 <td></td>
240 </tr>
241 </table>
242 </div><div class="memdoc">
243
244 </div>
245 </div>
246 <a class="anchor" id="a9c193d30e9ca4936ea28a6c9e8e4f6f0"></a>
247 <div class="memitem">
248 <div class="memproto">
249 <table class="memname">
250 <tr>
251 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int printbuf_memappend </td>
252 <td>(</td>
253 <td class="paramtype">struct <a class="el" href="structprintbuf.html">printbuf</a> *&#160;</td>
254 <td class="paramname"><em>p</em>, </td>
255 </tr>
256 <tr>
257 <td class="paramkey"></td>
258 <td></td>
259 <td class="paramtype">const char *&#160;</td>
260 <td class="paramname"><em>buf</em>, </td>
261 </tr>
262 <tr>
263 <td class="paramkey"></td>
264 <td></td>
265 <td class="paramtype">int&#160;</td>
266 <td class="paramname"><em>size</em>&#160;</td>
267 </tr>
268 <tr>
269 <td></td>
270 <td>)</td>
271 <td></td><td></td>
272 </tr>
273 </table>
274 </div><div class="memdoc">
275
276 </div>
277 </div>
278 <a class="anchor" id="a93a27f4f8a092c58666724de23ae804d"></a>
279 <div class="memitem">
280 <div class="memproto">
281 <table class="memname">
282 <tr>
283 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int printbuf_memset </td>
284 <td>(</td>
285 <td class="paramtype">struct <a class="el" href="structprintbuf.html">printbuf</a> *&#160;</td>
286 <td class="paramname"><em>pb</em>, </td>
287 </tr>
288 <tr>
289 <td class="paramkey"></td>
290 <td></td>
291 <td class="paramtype">int&#160;</td>
292 <td class="paramname"><em>offset</em>, </td>
293 </tr>
294 <tr>
295 <td class="paramkey"></td>
296 <td></td>
297 <td class="paramtype">int&#160;</td>
298 <td class="paramname"><em>charvalue</em>, </td>
299 </tr>
300 <tr>
301 <td class="paramkey"></td>
302 <td></td>
303 <td class="paramtype">int&#160;</td>
304 <td class="paramname"><em>len</em>&#160;</td>
305 </tr>
306 <tr>
307 <td></td>
308 <td>)</td>
309 <td></td><td></td>
310 </tr>
311 </table>
312 </div><div class="memdoc">
313 <p>Set len bytes of the buffer to charvalue, starting at offset offset. Similar to calling memset(x, charvalue, len);</p>
314 <p>The memory allocated for the buffer is extended as necessary.</p>
315 <p>If offset is -1, this starts at the end of the current data in the buffer. </p>
316
317 </div>
318 </div>
319 <a class="anchor" id="a645670fa132f0ae9a75f43c0b464bdaf"></a>
320 <div class="memitem">
321 <div class="memproto">
322 <table class="mlabels">
323 <tr>
324 <td class="mlabels-left">
325 <table class="memname">
326 <tr>
327 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> struct <a class="el" href="structprintbuf.html">printbuf</a>* printbuf_new </td>
328 <td>(</td>
329 <td class="paramtype">void&#160;</td>
330 <td class="paramname"></td><td>)</td>
331 <td></td>
332 </tr>
333 </table>
334 </td>
335 <td class="mlabels-right">
336 <span class="mlabels"><span class="mlabel">read</span></span> </td>
337 </tr>
338 </table>
339 </div><div class="memdoc">
340
341 </div>
342 </div>
343 <a class="anchor" id="a705c62167df13e65e04de9ae60f6e136"></a>
344 <div class="memitem">
345 <div class="memproto">
346 <table class="memname">
347 <tr>
348 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> void printbuf_reset </td>
349 <td>(</td>
350 <td class="paramtype">struct <a class="el" href="structprintbuf.html">printbuf</a> *&#160;</td>
351 <td class="paramname"><em>p</em></td><td>)</td>
352 <td></td>
353 </tr>
354 </table>
355 </div><div class="memdoc">
356
357 </div>
358 </div>
359 <a class="anchor" id="a61f6bc0b1ca5787f0faca6799d61a0bb"></a>
360 <div class="memitem">
361 <div class="memproto">
362 <table class="memname">
363 <tr>
364 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int sprintbuf </td>
365 <td>(</td>
366 <td class="paramtype">struct <a class="el" href="structprintbuf.html">printbuf</a> *&#160;</td>
367 <td class="paramname"><em>p</em>, </td>
368 </tr>
369 <tr>
370 <td class="paramkey"></td>
371 <td></td>
372 <td class="paramtype">const char *&#160;</td>
373 <td class="paramname"><em>msg</em>, </td>
374 </tr>
375 <tr>
376 <td class="paramkey"></td>
377 <td></td>
378 <td class="paramtype">&#160;</td>
379 <td class="paramname"><em>...</em>&#160;</td>
380 </tr>
381 <tr>
382 <td></td>
383 <td>)</td>
384 <td></td><td></td>
385 </tr>
386 </table>
387 </div><div class="memdoc">
388 <p>Formatted print to printbuf.</p>
389 <p>This function is the most expensive of the available functions for appending string data to a printbuf and should be used only where convenience is more important than speed. Avoid using this function in high performance code or tight loops; in these scenarios, consider using snprintf() with a static buffer in conjunction with one of the printbuf_*append() functions.</p>
390 <p>See also: <a class="el" href="printbuf_8h.html#a6f3a4dc87fab41c37e3eff42f40dc346">printbuf_memappend_fast()</a> <a class="el" href="printbuf_8h.html#a9c193d30e9ca4936ea28a6c9e8e4f6f0">printbuf_memappend()</a> <a class="el" href="printbuf_8h.html#a2f30492682f5fbc59a8749b428e0e4ba">printbuf_strappend()</a> </p>
391
392 </div>
393 </div>
394 </div><!-- contents -->
395 <!-- start footer part -->
396 <hr class="footer"/><address class="footer"><small>
397 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
398 <img class="footer" src="doxygen.png" alt="doxygen"/>
399 </a> 1.8.2
400 </small></address>
401 </body>
402 </html>
+0
-87
doc/html/random__seed_8h.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: random_seed.h File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#func-members">Functions</a> </div>
46 <div class="headertitle">
47 <div class="title">random_seed.h File Reference</div> </div>
48 </div><!--header-->
49 <div class="contents">
50
51 <p>Do not use, json-c internal, may be changed or removed at any time.
52 <a href="#details">More...</a></p>
53 <table class="memberdecls">
54 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
55 Functions</h2></td></tr>
56 <tr class="memitem:a4775cb23fbc2f32fe7880180259a140a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="random__seed_8h.html#a4775cb23fbc2f32fe7880180259a140a">json_c_get_random_seed</a> (void)</td></tr>
57 <tr class="separator:a4775cb23fbc2f32fe7880180259a140a"><td class="memSeparator" colspan="2">&#160;</td></tr>
58 </table>
59 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
60 <div class="textblock"><p>Do not use, json-c internal, may be changed or removed at any time. </p>
61 </div><h2 class="groupheader">Function Documentation</h2>
62 <a class="anchor" id="a4775cb23fbc2f32fe7880180259a140a"></a>
63 <div class="memitem">
64 <div class="memproto">
65 <table class="memname">
66 <tr>
67 <td class="memname">int json_c_get_random_seed </td>
68 <td>(</td>
69 <td class="paramtype">void&#160;</td>
70 <td class="paramname"></td><td>)</td>
71 <td></td>
72 </tr>
73 </table>
74 </div><div class="memdoc">
75
76 </div>
77 </div>
78 </div><!-- contents -->
79 <!-- start footer part -->
80 <hr class="footer"/><address class="footer"><small>
81 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
82 <img class="footer" src="doxygen.png" alt="doxygen"/>
83 </a> 1.8.2
84 </small></address>
85 </body>
86 </html>
+0
-62
doc/html/snprintf__compat_8h.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: snprintf_compat.h File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="headertitle">
45 <div class="title">snprintf_compat.h File Reference</div> </div>
46 </div><!--header-->
47 <div class="contents">
48
49 <p>Do not use, json-c internal, may be changed or removed at any time.
50 <a href="#details">More...</a></p>
51 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
52 <div class="textblock"><p>Do not use, json-c internal, may be changed or removed at any time. </p>
53 </div></div><!-- contents -->
54 <!-- start footer part -->
55 <hr class="footer"/><address class="footer"><small>
56 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
57 <img class="footer" src="doxygen.png" alt="doxygen"/>
58 </a> 1.8.2
59 </small></address>
60 </body>
61 </html>
+0
-62
doc/html/strdup__compat_8h.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: strdup_compat.h File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="headertitle">
45 <div class="title">strdup_compat.h File Reference</div> </div>
46 </div><!--header-->
47 <div class="contents">
48
49 <p>Do not use, json-c internal, may be changed or removed at any time.
50 <a href="#details">More...</a></p>
51 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
52 <div class="textblock"><p>Do not use, json-c internal, may be changed or removed at any time. </p>
53 </div></div><!-- contents -->
54 <!-- start footer part -->
55 <hr class="footer"/><address class="footer"><small>
56 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
57 <img class="footer" src="doxygen.png" alt="doxygen"/>
58 </a> 1.8.2
59 </small></address>
60 </body>
61 </html>
+0
-106
doc/html/strerror__override_8h.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: strerror_override.h File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#define-members">Macros</a> &#124;
46 <a href="#func-members">Functions</a> </div>
47 <div class="headertitle">
48 <div class="title">strerror_override.h File Reference</div> </div>
49 </div><!--header-->
50 <div class="contents">
51
52 <p>Do not use, json-c internal, may be changed or removed at any time.
53 <a href="#details">More...</a></p>
54 <table class="memberdecls">
55 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
56 Macros</h2></td></tr>
57 <tr class="memitem:a9dae36435b1668856ec610d6d5238754"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="strerror__override_8h.html#a9dae36435b1668856ec610d6d5238754">strerror</a>&#160;&#160;&#160;<a class="el" href="strerror__override_8h.html#a2affa276d0d7b0a446105e324560576f">_json_c_strerror</a></td></tr>
58 <tr class="separator:a9dae36435b1668856ec610d6d5238754"><td class="memSeparator" colspan="2">&#160;</td></tr>
59 </table><table class="memberdecls">
60 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
61 Functions</h2></td></tr>
62 <tr class="memitem:a2affa276d0d7b0a446105e324560576f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="strerror__override_8h.html#a2affa276d0d7b0a446105e324560576f">_json_c_strerror</a> (int errno_in)</td></tr>
63 <tr class="separator:a2affa276d0d7b0a446105e324560576f"><td class="memSeparator" colspan="2">&#160;</td></tr>
64 </table>
65 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
66 <div class="textblock"><p>Do not use, json-c internal, may be changed or removed at any time. </p>
67 </div><h2 class="groupheader">Macro Definition Documentation</h2>
68 <a class="anchor" id="a9dae36435b1668856ec610d6d5238754"></a>
69 <div class="memitem">
70 <div class="memproto">
71 <table class="memname">
72 <tr>
73 <td class="memname">#define strerror&#160;&#160;&#160;<a class="el" href="strerror__override_8h.html#a2affa276d0d7b0a446105e324560576f">_json_c_strerror</a></td>
74 </tr>
75 </table>
76 </div><div class="memdoc">
77
78 </div>
79 </div>
80 <h2 class="groupheader">Function Documentation</h2>
81 <a class="anchor" id="a2affa276d0d7b0a446105e324560576f"></a>
82 <div class="memitem">
83 <div class="memproto">
84 <table class="memname">
85 <tr>
86 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> char* _json_c_strerror </td>
87 <td>(</td>
88 <td class="paramtype">int&#160;</td>
89 <td class="paramname"><em>errno_in</em></td><td>)</td>
90 <td></td>
91 </tr>
92 </table>
93 </div><div class="memdoc">
94
95 </div>
96 </div>
97 </div><!-- contents -->
98 <!-- start footer part -->
99 <hr class="footer"/><address class="footer"><small>
100 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
101 <img class="footer" src="doxygen.png" alt="doxygen"/>
102 </a> 1.8.2
103 </small></address>
104 </body>
105 </html>
+0
-83
doc/html/strerror__override__private_8h.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: strerror_override_private.h File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#var-members">Variables</a> </div>
46 <div class="headertitle">
47 <div class="title">strerror_override_private.h File Reference</div> </div>
48 </div><!--header-->
49 <div class="contents">
50
51 <p>Do not use, json-c internal, may be changed or removed at any time.
52 <a href="#details">More...</a></p>
53 <table class="memberdecls">
54 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
55 Variables</h2></td></tr>
56 <tr class="memitem:af98a3cb4b7adc1b28d93906406f4f2f6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="strerror__override__private_8h.html#af98a3cb4b7adc1b28d93906406f4f2f6">_json_c_strerror_enable</a></td></tr>
57 <tr class="separator:af98a3cb4b7adc1b28d93906406f4f2f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
58 </table>
59 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
60 <div class="textblock"><p>Do not use, json-c internal, may be changed or removed at any time. </p>
61 </div><h2 class="groupheader">Variable Documentation</h2>
62 <a class="anchor" id="af98a3cb4b7adc1b28d93906406f4f2f6"></a>
63 <div class="memitem">
64 <div class="memproto">
65 <table class="memname">
66 <tr>
67 <td class="memname"><a class="el" href="printbuf_8h.html#a2a31d5c00f3a4712f2d5d62aee66344e">JSON_EXPORT</a> int _json_c_strerror_enable</td>
68 </tr>
69 </table>
70 </div><div class="memdoc">
71
72 </div>
73 </div>
74 </div><!-- contents -->
75 <!-- start footer part -->
76 <hr class="footer"/><address class="footer"><small>
77 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
78 <img class="footer" src="doxygen.png" alt="doxygen"/>
79 </a> 1.8.2
80 </small></address>
81 </body>
82 </html>
+0
-123
doc/html/structarray__list.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: array_list Struct Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
39 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#pub-attribs">Data Fields</a> </div>
46 <div class="headertitle">
47 <div class="title">array_list Struct Reference</div> </div>
48 </div><!--header-->
49 <div class="contents">
50 <table class="memberdecls">
51 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
52 Data Fields</h2></td></tr>
53 <tr class="memitem:a7ba65feda2b156148c08667cf155b657"><td class="memItemLeft" align="right" valign="top">void **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarray__list.html#a7ba65feda2b156148c08667cf155b657">array</a></td></tr>
54 <tr class="separator:a7ba65feda2b156148c08667cf155b657"><td class="memSeparator" colspan="2">&#160;</td></tr>
55 <tr class="memitem:a5638022574f4ddb0f80d62535085bf4f"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarray__list.html#a5638022574f4ddb0f80d62535085bf4f">length</a></td></tr>
56 <tr class="separator:a5638022574f4ddb0f80d62535085bf4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
57 <tr class="memitem:a11b92f48ed715b187f8609351405342f"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarray__list.html#a11b92f48ed715b187f8609351405342f">size</a></td></tr>
58 <tr class="separator:a11b92f48ed715b187f8609351405342f"><td class="memSeparator" colspan="2">&#160;</td></tr>
59 <tr class="memitem:ab7989cdde357e5c7819c562c7680ab74"><td class="memItemLeft" align="right" valign="top"><a class="el" href="arraylist_8h.html#aad83e4ed3c8ea274e6f18459276d774b">array_list_free_fn</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structarray__list.html#ab7989cdde357e5c7819c562c7680ab74">free_fn</a></td></tr>
60 <tr class="separator:ab7989cdde357e5c7819c562c7680ab74"><td class="memSeparator" colspan="2">&#160;</td></tr>
61 </table>
62 <h2 class="groupheader">Field Documentation</h2>
63 <a class="anchor" id="a7ba65feda2b156148c08667cf155b657"></a>
64 <div class="memitem">
65 <div class="memproto">
66 <table class="memname">
67 <tr>
68 <td class="memname">void** array_list::array</td>
69 </tr>
70 </table>
71 </div><div class="memdoc">
72
73 </div>
74 </div>
75 <a class="anchor" id="ab7989cdde357e5c7819c562c7680ab74"></a>
76 <div class="memitem">
77 <div class="memproto">
78 <table class="memname">
79 <tr>
80 <td class="memname"><a class="el" href="arraylist_8h.html#aad83e4ed3c8ea274e6f18459276d774b">array_list_free_fn</a>* array_list::free_fn</td>
81 </tr>
82 </table>
83 </div><div class="memdoc">
84
85 </div>
86 </div>
87 <a class="anchor" id="a5638022574f4ddb0f80d62535085bf4f"></a>
88 <div class="memitem">
89 <div class="memproto">
90 <table class="memname">
91 <tr>
92 <td class="memname">size_t array_list::length</td>
93 </tr>
94 </table>
95 </div><div class="memdoc">
96
97 </div>
98 </div>
99 <a class="anchor" id="a11b92f48ed715b187f8609351405342f"></a>
100 <div class="memitem">
101 <div class="memproto">
102 <table class="memname">
103 <tr>
104 <td class="memname">size_t array_list::size</td>
105 </tr>
106 </table>
107 </div><div class="memdoc">
108
109 </div>
110 </div>
111 <hr/>The documentation for this struct was generated from the following file:<ul>
112 <li><a class="el" href="arraylist_8h.html">arraylist.h</a></li>
113 </ul>
114 </div><!-- contents -->
115 <!-- start footer part -->
116 <hr class="footer"/><address class="footer"><small>
117 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
118 <img class="footer" src="doxygen.png" alt="doxygen"/>
119 </a> 1.8.2
120 </small></address>
121 </body>
122 </html>
+0
-185
doc/html/structjson__object.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: json_object Struct Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
39 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#nested-classes">Data Structures</a> &#124;
46 <a href="#pub-attribs">Data Fields</a> </div>
47 <div class="headertitle">
48 <div class="title">json_object Struct Reference</div> </div>
49 </div><!--header-->
50 <div class="contents">
51 <table class="memberdecls">
52 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
53 Data Structures</h2></td></tr>
54 <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">data</a></td></tr>
55 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
56 </table><table class="memberdecls">
57 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
58 Data Fields</h2></td></tr>
59 <tr class="memitem:a28307a4a3fe6cefe27e28fec56b76b3e"><td class="memItemLeft" align="right" valign="top">enum <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06c">json_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__object.html#a28307a4a3fe6cefe27e28fec56b76b3e">o_type</a></td></tr>
60 <tr class="separator:a28307a4a3fe6cefe27e28fec56b76b3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
61 <tr class="memitem:ac3a795ba10ac33897bfda80cf4b8254e"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__object.html#ac3a795ba10ac33897bfda80cf4b8254e">_ref_count</a></td></tr>
62 <tr class="separator:ac3a795ba10ac33897bfda80cf4b8254e"><td class="memSeparator" colspan="2">&#160;</td></tr>
63 <tr class="memitem:a63666be714a8ce8907d56142c1d9dfb7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="json__object__private_8h.html#aa125a0d39945a73a7d52b9823a2ef741">json_object_private_delete_fn</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__object.html#a63666be714a8ce8907d56142c1d9dfb7">_delete</a></td></tr>
64 <tr class="separator:a63666be714a8ce8907d56142c1d9dfb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
65 <tr class="memitem:a077a02daac4653f91584dd7f47c3d632"><td class="memItemLeft" align="right" valign="top"><a class="el" href="json__types_8h.html#af84078100a9025df418f31626ea866fa">json_object_to_json_string_fn</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__object.html#a077a02daac4653f91584dd7f47c3d632">_to_json_string</a></td></tr>
66 <tr class="separator:a077a02daac4653f91584dd7f47c3d632"><td class="memSeparator" colspan="2">&#160;</td></tr>
67 <tr class="memitem:afdcaa9e24bce7c86c33cb6f6ae65cb56"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structprintbuf.html">printbuf</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__object.html#afdcaa9e24bce7c86c33cb6f6ae65cb56">_pb</a></td></tr>
68 <tr class="separator:afdcaa9e24bce7c86c33cb6f6ae65cb56"><td class="memSeparator" colspan="2">&#160;</td></tr>
69 <tr class="memitem:a33aff83ffea02b934235c4821cca8cf0"><td class="memItemLeft" align="right" valign="top">union <a class="el" href="unionjson__object_1_1data.html">json_object::data</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__object.html#a33aff83ffea02b934235c4821cca8cf0">o</a></td></tr>
70 <tr class="separator:a33aff83ffea02b934235c4821cca8cf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
71 <tr class="memitem:ad9e57edb1cbd63578490081b2a9636ad"><td class="memItemLeft" align="right" valign="top"><a class="el" href="json__types_8h.html#aa647d7c567a06abe1a1a511f6d6860e4">json_object_delete_fn</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__object.html#ad9e57edb1cbd63578490081b2a9636ad">_user_delete</a></td></tr>
72 <tr class="separator:ad9e57edb1cbd63578490081b2a9636ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
73 <tr class="memitem:a592a5391c3717ff7e8930476027226fe"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__object.html#a592a5391c3717ff7e8930476027226fe">_userdata</a></td></tr>
74 <tr class="separator:a592a5391c3717ff7e8930476027226fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
75 </table>
76 <h2 class="groupheader">Field Documentation</h2>
77 <a class="anchor" id="a63666be714a8ce8907d56142c1d9dfb7"></a>
78 <div class="memitem">
79 <div class="memproto">
80 <table class="memname">
81 <tr>
82 <td class="memname"><a class="el" href="json__object__private_8h.html#aa125a0d39945a73a7d52b9823a2ef741">json_object_private_delete_fn</a>* json_object::_delete</td>
83 </tr>
84 </table>
85 </div><div class="memdoc">
86
87 </div>
88 </div>
89 <a class="anchor" id="afdcaa9e24bce7c86c33cb6f6ae65cb56"></a>
90 <div class="memitem">
91 <div class="memproto">
92 <table class="memname">
93 <tr>
94 <td class="memname">struct <a class="el" href="structprintbuf.html">printbuf</a>* json_object::_pb</td>
95 </tr>
96 </table>
97 </div><div class="memdoc">
98
99 </div>
100 </div>
101 <a class="anchor" id="ac3a795ba10ac33897bfda80cf4b8254e"></a>
102 <div class="memitem">
103 <div class="memproto">
104 <table class="memname">
105 <tr>
106 <td class="memname">uint32_t json_object::_ref_count</td>
107 </tr>
108 </table>
109 </div><div class="memdoc">
110
111 </div>
112 </div>
113 <a class="anchor" id="a077a02daac4653f91584dd7f47c3d632"></a>
114 <div class="memitem">
115 <div class="memproto">
116 <table class="memname">
117 <tr>
118 <td class="memname"><a class="el" href="json__types_8h.html#af84078100a9025df418f31626ea866fa">json_object_to_json_string_fn</a>* json_object::_to_json_string</td>
119 </tr>
120 </table>
121 </div><div class="memdoc">
122
123 </div>
124 </div>
125 <a class="anchor" id="ad9e57edb1cbd63578490081b2a9636ad"></a>
126 <div class="memitem">
127 <div class="memproto">
128 <table class="memname">
129 <tr>
130 <td class="memname"><a class="el" href="json__types_8h.html#aa647d7c567a06abe1a1a511f6d6860e4">json_object_delete_fn</a>* json_object::_user_delete</td>
131 </tr>
132 </table>
133 </div><div class="memdoc">
134
135 </div>
136 </div>
137 <a class="anchor" id="a592a5391c3717ff7e8930476027226fe"></a>
138 <div class="memitem">
139 <div class="memproto">
140 <table class="memname">
141 <tr>
142 <td class="memname">void* json_object::_userdata</td>
143 </tr>
144 </table>
145 </div><div class="memdoc">
146
147 </div>
148 </div>
149 <a class="anchor" id="a33aff83ffea02b934235c4821cca8cf0"></a>
150 <div class="memitem">
151 <div class="memproto">
152 <table class="memname">
153 <tr>
154 <td class="memname">union <a class="el" href="unionjson__object_1_1data.html">json_object::data</a> json_object::o</td>
155 </tr>
156 </table>
157 </div><div class="memdoc">
158
159 </div>
160 </div>
161 <a class="anchor" id="a28307a4a3fe6cefe27e28fec56b76b3e"></a>
162 <div class="memitem">
163 <div class="memproto">
164 <table class="memname">
165 <tr>
166 <td class="memname">enum <a class="el" href="json__types_8h.html#ac75c61993722a9b8aaa44704072ec06c">json_type</a> json_object::o_type</td>
167 </tr>
168 </table>
169 </div><div class="memdoc">
170
171 </div>
172 </div>
173 <hr/>The documentation for this struct was generated from the following file:<ul>
174 <li><a class="el" href="json__object__private_8h.html">json_object_private.h</a></li>
175 </ul>
176 </div><!-- contents -->
177 <!-- start footer part -->
178 <hr class="footer"/><address class="footer"><small>
179 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
180 <img class="footer" src="doxygen.png" alt="doxygen"/>
181 </a> 1.8.2
182 </small></address>
183 </body>
184 </html>
+0
-111
doc/html/structjson__object__iter.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: json_object_iter Struct Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
39 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#pub-attribs">Data Fields</a> </div>
46 <div class="headertitle">
47 <div class="title">json_object_iter Struct Reference</div> </div>
48 </div><!--header-->
49 <div class="contents">
50 <table class="memberdecls">
51 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
52 Data Fields</h2></td></tr>
53 <tr class="memitem:a0b76228b3a039075e9d84f88fa72ff53"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__object__iter.html#a0b76228b3a039075e9d84f88fa72ff53">key</a></td></tr>
54 <tr class="separator:a0b76228b3a039075e9d84f88fa72ff53"><td class="memSeparator" colspan="2">&#160;</td></tr>
55 <tr class="memitem:aaae14a8d17aacddacb0a57234e0a4491"><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="structjson__object__iter.html#aaae14a8d17aacddacb0a57234e0a4491">val</a></td></tr>
56 <tr class="separator:aaae14a8d17aacddacb0a57234e0a4491"><td class="memSeparator" colspan="2">&#160;</td></tr>
57 <tr class="memitem:a64e326f050826c644c02ed5bcd214faa"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structlh__entry.html">lh_entry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__object__iter.html#a64e326f050826c644c02ed5bcd214faa">entry</a></td></tr>
58 <tr class="separator:a64e326f050826c644c02ed5bcd214faa"><td class="memSeparator" colspan="2">&#160;</td></tr>
59 </table>
60 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
61 <div class="textblock"><p>A structure to use with <a class="el" href="json__object_8h.html#a71f07006c12d78f7bbf4cb716a5af3a6">json_object_object_foreachC()</a> loops. Contains key, val and entry members. </p>
62 </div><h2 class="groupheader">Field Documentation</h2>
63 <a class="anchor" id="a64e326f050826c644c02ed5bcd214faa"></a>
64 <div class="memitem">
65 <div class="memproto">
66 <table class="memname">
67 <tr>
68 <td class="memname">struct <a class="el" href="structlh__entry.html">lh_entry</a>* json_object_iter::entry</td>
69 </tr>
70 </table>
71 </div><div class="memdoc">
72
73 </div>
74 </div>
75 <a class="anchor" id="a0b76228b3a039075e9d84f88fa72ff53"></a>
76 <div class="memitem">
77 <div class="memproto">
78 <table class="memname">
79 <tr>
80 <td class="memname">char* json_object_iter::key</td>
81 </tr>
82 </table>
83 </div><div class="memdoc">
84
85 </div>
86 </div>
87 <a class="anchor" id="aaae14a8d17aacddacb0a57234e0a4491"></a>
88 <div class="memitem">
89 <div class="memproto">
90 <table class="memname">
91 <tr>
92 <td class="memname">struct <a class="el" href="structjson__object.html">json_object</a>* json_object_iter::val</td>
93 </tr>
94 </table>
95 </div><div class="memdoc">
96
97 </div>
98 </div>
99 <hr/>The documentation for this struct was generated from the following file:<ul>
100 <li><a class="el" href="json__types_8h.html">json_types.h</a></li>
101 </ul>
102 </div><!-- contents -->
103 <!-- start footer part -->
104 <hr class="footer"/><address class="footer"><small>
105 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
106 <img class="footer" src="doxygen.png" alt="doxygen"/>
107 </a> 1.8.2
108 </small></address>
109 </body>
110 </html>
+0
-83
doc/html/structjson__object__iterator.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: json_object_iterator Struct Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
39 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#pub-attribs">Data Fields</a> </div>
46 <div class="headertitle">
47 <div class="title">json_object_iterator Struct Reference</div> </div>
48 </div><!--header-->
49 <div class="contents">
50 <table class="memberdecls">
51 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
52 Data Fields</h2></td></tr>
53 <tr class="memitem:a69c61c14f5a36b1dc2217e49cd987f47"><td class="memItemLeft" align="right" valign="top">const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__object__iterator.html#a69c61c14f5a36b1dc2217e49cd987f47">opaque_</a></td></tr>
54 <tr class="separator:a69c61c14f5a36b1dc2217e49cd987f47"><td class="memSeparator" colspan="2">&#160;</td></tr>
55 </table>
56 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
57 <div class="textblock"><p>The opaque iterator that references a name/value pair within a JSON Object instance or the "end" iterator value. </p>
58 </div><h2 class="groupheader">Field Documentation</h2>
59 <a class="anchor" id="a69c61c14f5a36b1dc2217e49cd987f47"></a>
60 <div class="memitem">
61 <div class="memproto">
62 <table class="memname">
63 <tr>
64 <td class="memname">const void* json_object_iterator::opaque_</td>
65 </tr>
66 </table>
67 </div><div class="memdoc">
68
69 </div>
70 </div>
71 <hr/>The documentation for this struct was generated from the following file:<ul>
72 <li><a class="el" href="json__object__iterator_8h.html">json_object_iterator.h</a></li>
73 </ul>
74 </div><!-- contents -->
75 <!-- start footer part -->
76 <hr class="footer"/><address class="footer"><small>
77 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
78 <img class="footer" src="doxygen.png" alt="doxygen"/>
79 </a> 1.8.2
80 </small></address>
81 </body>
82 </html>
+0
-240
doc/html/structjson__tokener.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: json_tokener Struct Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
39 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#pub-attribs">Data Fields</a> </div>
46 <div class="headertitle">
47 <div class="title">json_tokener Struct Reference</div> </div>
48 </div><!--header-->
49 <div class="contents">
50 <table class="memberdecls">
51 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
52 Data Fields</h2></td></tr>
53 <tr class="memitem:a9772e2170322a19d8da6ce5d7dc46895"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__tokener.html#a9772e2170322a19d8da6ce5d7dc46895">str</a></td></tr>
54 <tr class="separator:a9772e2170322a19d8da6ce5d7dc46895"><td class="memSeparator" colspan="2">&#160;</td></tr>
55 <tr class="memitem:a1cdc7f85d7bde95f81bb08b7e61d6684"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structprintbuf.html">printbuf</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__tokener.html#a1cdc7f85d7bde95f81bb08b7e61d6684">pb</a></td></tr>
56 <tr class="separator:a1cdc7f85d7bde95f81bb08b7e61d6684"><td class="memSeparator" colspan="2">&#160;</td></tr>
57 <tr class="memitem:a9d9b33c3982925349627dc6a3edca940"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__tokener.html#a9d9b33c3982925349627dc6a3edca940">max_depth</a></td></tr>
58 <tr class="separator:a9d9b33c3982925349627dc6a3edca940"><td class="memSeparator" colspan="2">&#160;</td></tr>
59 <tr class="memitem:ae0e5102b44cc1fc680be3e0fb5fff028"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__tokener.html#ae0e5102b44cc1fc680be3e0fb5fff028">depth</a></td></tr>
60 <tr class="separator:ae0e5102b44cc1fc680be3e0fb5fff028"><td class="memSeparator" colspan="2">&#160;</td></tr>
61 <tr class="memitem:ad3bf0aa728ea14549d5aa6ca8dcba070"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__tokener.html#ad3bf0aa728ea14549d5aa6ca8dcba070">is_double</a></td></tr>
62 <tr class="separator:ad3bf0aa728ea14549d5aa6ca8dcba070"><td class="memSeparator" colspan="2">&#160;</td></tr>
63 <tr class="memitem:a8eed213c0a37d09c1df66c8567e44471"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__tokener.html#a8eed213c0a37d09c1df66c8567e44471">st_pos</a></td></tr>
64 <tr class="separator:a8eed213c0a37d09c1df66c8567e44471"><td class="memSeparator" colspan="2">&#160;</td></tr>
65 <tr class="memitem:a9daae2516fd6df23555d33ef01020a76"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__tokener.html#a9daae2516fd6df23555d33ef01020a76">char_offset</a></td></tr>
66 <tr class="separator:a9daae2516fd6df23555d33ef01020a76"><td class="memSeparator" colspan="2">&#160;</td></tr>
67 <tr class="memitem:adef37cdc2578d8f8920db14315728cbd"><td class="memItemLeft" align="right" valign="top">enum <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener_error</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__tokener.html#adef37cdc2578d8f8920db14315728cbd">err</a></td></tr>
68 <tr class="separator:adef37cdc2578d8f8920db14315728cbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
69 <tr class="memitem:a32fa73e43fb760e6845231a8482eb064"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__tokener.html#a32fa73e43fb760e6845231a8482eb064">ucs_char</a></td></tr>
70 <tr class="separator:a32fa73e43fb760e6845231a8482eb064"><td class="memSeparator" colspan="2">&#160;</td></tr>
71 <tr class="memitem:aea488b73085ac7c5969ae7fc29e25fa0"><td class="memItemLeft" align="right" valign="top">char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__tokener.html#aea488b73085ac7c5969ae7fc29e25fa0">quote_char</a></td></tr>
72 <tr class="separator:aea488b73085ac7c5969ae7fc29e25fa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
73 <tr class="memitem:a3521d62906eb0e15d07d7b4f64a5fac3"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structjson__tokener__srec.html">json_tokener_srec</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__tokener.html#a3521d62906eb0e15d07d7b4f64a5fac3">stack</a></td></tr>
74 <tr class="separator:a3521d62906eb0e15d07d7b4f64a5fac3"><td class="memSeparator" colspan="2">&#160;</td></tr>
75 <tr class="memitem:aabfdcf2825154108669ffa3f4ab9c4ea"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__tokener.html#aabfdcf2825154108669ffa3f4ab9c4ea">flags</a></td></tr>
76 <tr class="separator:aabfdcf2825154108669ffa3f4ab9c4ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
77 </table>
78 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
79 <div class="textblock"><p>Internal state of the json parser. Do not access any fields of this structure directly. Its definition is published due to historical limitations in the json tokener API, and will be changed to be an opaque type in the future. </p>
80 </div><h2 class="groupheader">Field Documentation</h2>
81 <a class="anchor" id="a9daae2516fd6df23555d33ef01020a76"></a>
82 <div class="memitem">
83 <div class="memproto">
84 <table class="memname">
85 <tr>
86 <td class="memname">int json_tokener::char_offset</td>
87 </tr>
88 </table>
89 </div><div class="memdoc">
90 <dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000005">Deprecated:</a></b></dt><dd>See <a class="el" href="json__tokener_8h.html#a4a2fa28d815f8b370cbb00b80ebc0f1d">json_tokener_get_parse_end()</a> instead. </dd></dl>
91
92 </div>
93 </div>
94 <a class="anchor" id="ae0e5102b44cc1fc680be3e0fb5fff028"></a>
95 <div class="memitem">
96 <div class="memproto">
97 <table class="memname">
98 <tr>
99 <td class="memname">int json_tokener::depth</td>
100 </tr>
101 </table>
102 </div><div class="memdoc">
103
104 </div>
105 </div>
106 <a class="anchor" id="adef37cdc2578d8f8920db14315728cbd"></a>
107 <div class="memitem">
108 <div class="memproto">
109 <table class="memname">
110 <tr>
111 <td class="memname">enum <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener_error</a> json_tokener::err</td>
112 </tr>
113 </table>
114 </div><div class="memdoc">
115 <dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000006">Deprecated:</a></b></dt><dd>See <a class="el" href="json__tokener_8h.html#af5d7ffd95a0f6e5d5bb5994d233b4197">json_tokener_get_error()</a> instead. </dd></dl>
116
117 </div>
118 </div>
119 <a class="anchor" id="aabfdcf2825154108669ffa3f4ab9c4ea"></a>
120 <div class="memitem">
121 <div class="memproto">
122 <table class="memname">
123 <tr>
124 <td class="memname">int json_tokener::flags</td>
125 </tr>
126 </table>
127 </div><div class="memdoc">
128
129 </div>
130 </div>
131 <a class="anchor" id="ad3bf0aa728ea14549d5aa6ca8dcba070"></a>
132 <div class="memitem">
133 <div class="memproto">
134 <table class="memname">
135 <tr>
136 <td class="memname">int json_tokener::is_double</td>
137 </tr>
138 </table>
139 </div><div class="memdoc">
140
141 </div>
142 </div>
143 <a class="anchor" id="a9d9b33c3982925349627dc6a3edca940"></a>
144 <div class="memitem">
145 <div class="memproto">
146 <table class="memname">
147 <tr>
148 <td class="memname">int json_tokener::max_depth</td>
149 </tr>
150 </table>
151 </div><div class="memdoc">
152
153 </div>
154 </div>
155 <a class="anchor" id="a1cdc7f85d7bde95f81bb08b7e61d6684"></a>
156 <div class="memitem">
157 <div class="memproto">
158 <table class="memname">
159 <tr>
160 <td class="memname">struct <a class="el" href="structprintbuf.html">printbuf</a>* json_tokener::pb</td>
161 </tr>
162 </table>
163 </div><div class="memdoc">
164
165 </div>
166 </div>
167 <a class="anchor" id="aea488b73085ac7c5969ae7fc29e25fa0"></a>
168 <div class="memitem">
169 <div class="memproto">
170 <table class="memname">
171 <tr>
172 <td class="memname">char json_tokener::quote_char</td>
173 </tr>
174 </table>
175 </div><div class="memdoc">
176
177 </div>
178 </div>
179 <a class="anchor" id="a8eed213c0a37d09c1df66c8567e44471"></a>
180 <div class="memitem">
181 <div class="memproto">
182 <table class="memname">
183 <tr>
184 <td class="memname">int json_tokener::st_pos</td>
185 </tr>
186 </table>
187 </div><div class="memdoc">
188
189 </div>
190 </div>
191 <a class="anchor" id="a3521d62906eb0e15d07d7b4f64a5fac3"></a>
192 <div class="memitem">
193 <div class="memproto">
194 <table class="memname">
195 <tr>
196 <td class="memname">struct <a class="el" href="structjson__tokener__srec.html">json_tokener_srec</a>* json_tokener::stack</td>
197 </tr>
198 </table>
199 </div><div class="memdoc">
200
201 </div>
202 </div>
203 <a class="anchor" id="a9772e2170322a19d8da6ce5d7dc46895"></a>
204 <div class="memitem">
205 <div class="memproto">
206 <table class="memname">
207 <tr>
208 <td class="memname">char* json_tokener::str</td>
209 </tr>
210 </table>
211 </div><div class="memdoc">
212 <dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000004">Deprecated:</a></b></dt><dd>Do not access any of these fields outside of json_tokener.c </dd></dl>
213
214 </div>
215 </div>
216 <a class="anchor" id="a32fa73e43fb760e6845231a8482eb064"></a>
217 <div class="memitem">
218 <div class="memproto">
219 <table class="memname">
220 <tr>
221 <td class="memname">unsigned int json_tokener::ucs_char</td>
222 </tr>
223 </table>
224 </div><div class="memdoc">
225
226 </div>
227 </div>
228 <hr/>The documentation for this struct was generated from the following file:<ul>
229 <li><a class="el" href="json__tokener_8h.html">json_tokener.h</a></li>
230 </ul>
231 </div><!-- contents -->
232 <!-- start footer part -->
233 <hr class="footer"/><address class="footer"><small>
234 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
235 <img class="footer" src="doxygen.png" alt="doxygen"/>
236 </a> 1.8.2
237 </small></address>
238 </body>
239 </html>
+0
-125
doc/html/structjson__tokener__srec.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: json_tokener_srec Struct Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
39 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#pub-attribs">Data Fields</a> </div>
46 <div class="headertitle">
47 <div class="title">json_tokener_srec Struct Reference</div> </div>
48 </div><!--header-->
49 <div class="contents">
50 <table class="memberdecls">
51 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
52 Data Fields</h2></td></tr>
53 <tr class="memitem:a868b9912dbb1e4813a630c944f522d48"><td class="memItemLeft" align="right" valign="top">enum <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2">json_tokener_state</a> state&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__tokener__srec.html#a868b9912dbb1e4813a630c944f522d48">saved_state</a></td></tr>
54 <tr class="separator:a868b9912dbb1e4813a630c944f522d48"><td class="memSeparator" colspan="2">&#160;</td></tr>
55 <tr class="memitem:ad2bb71affec1da5ba1d9952c3bf2c12a"><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="structjson__tokener__srec.html#ad2bb71affec1da5ba1d9952c3bf2c12a">obj</a></td></tr>
56 <tr class="separator:ad2bb71affec1da5ba1d9952c3bf2c12a"><td class="memSeparator" colspan="2">&#160;</td></tr>
57 <tr class="memitem:a466f192f920368a5a6375aeba1e2757f"><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="structjson__tokener__srec.html#a466f192f920368a5a6375aeba1e2757f">current</a></td></tr>
58 <tr class="separator:a466f192f920368a5a6375aeba1e2757f"><td class="memSeparator" colspan="2">&#160;</td></tr>
59 <tr class="memitem:a99551c172e97ac2e7a3849a50b4f51ca"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structjson__tokener__srec.html#a99551c172e97ac2e7a3849a50b4f51ca">obj_field_name</a></td></tr>
60 <tr class="separator:a99551c172e97ac2e7a3849a50b4f51ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
61 </table>
62 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
63 <div class="textblock"><dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>Don't use this outside of json_tokener.c, it will be made private in a future release. </dd></dl>
64 </div><h2 class="groupheader">Field Documentation</h2>
65 <a class="anchor" id="a466f192f920368a5a6375aeba1e2757f"></a>
66 <div class="memitem">
67 <div class="memproto">
68 <table class="memname">
69 <tr>
70 <td class="memname">struct <a class="el" href="structjson__object.html">json_object</a>* json_tokener_srec::current</td>
71 </tr>
72 </table>
73 </div><div class="memdoc">
74
75 </div>
76 </div>
77 <a class="anchor" id="ad2bb71affec1da5ba1d9952c3bf2c12a"></a>
78 <div class="memitem">
79 <div class="memproto">
80 <table class="memname">
81 <tr>
82 <td class="memname">struct <a class="el" href="structjson__object.html">json_object</a>* json_tokener_srec::obj</td>
83 </tr>
84 </table>
85 </div><div class="memdoc">
86
87 </div>
88 </div>
89 <a class="anchor" id="a99551c172e97ac2e7a3849a50b4f51ca"></a>
90 <div class="memitem">
91 <div class="memproto">
92 <table class="memname">
93 <tr>
94 <td class="memname">char* json_tokener_srec::obj_field_name</td>
95 </tr>
96 </table>
97 </div><div class="memdoc">
98
99 </div>
100 </div>
101 <a class="anchor" id="a868b9912dbb1e4813a630c944f522d48"></a>
102 <div class="memitem">
103 <div class="memproto">
104 <table class="memname">
105 <tr>
106 <td class="memname">enum <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2">json_tokener_state</a> state json_tokener_srec::saved_state</td>
107 </tr>
108 </table>
109 </div><div class="memdoc">
110
111 </div>
112 </div>
113 <hr/>The documentation for this struct was generated from the following file:<ul>
114 <li><a class="el" href="json__tokener_8h.html">json_tokener.h</a></li>
115 </ul>
116 </div><!-- contents -->
117 <!-- start footer part -->
118 <hr class="footer"/><address class="footer"><small>
119 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
120 <img class="footer" src="doxygen.png" alt="doxygen"/>
121 </a> 1.8.2
122 </small></address>
123 </body>
124 </html>
+0
-144
doc/html/structlh__entry.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: lh_entry Struct Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
39 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#pub-attribs">Data Fields</a> </div>
46 <div class="headertitle">
47 <div class="title">lh_entry Struct Reference</div> </div>
48 </div><!--header-->
49 <div class="contents">
50 <table class="memberdecls">
51 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
52 Data Fields</h2></td></tr>
53 <tr class="memitem:a79d9f1ef0dc444e17105aaeaf167e22c"><td class="memItemLeft" align="right" valign="top">const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlh__entry.html#a79d9f1ef0dc444e17105aaeaf167e22c">k</a></td></tr>
54 <tr class="separator:a79d9f1ef0dc444e17105aaeaf167e22c"><td class="memSeparator" colspan="2">&#160;</td></tr>
55 <tr class="memitem:a14f40cc124c32b03f81151ae7934d2e7"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlh__entry.html#a14f40cc124c32b03f81151ae7934d2e7">k_is_constant</a></td></tr>
56 <tr class="separator:a14f40cc124c32b03f81151ae7934d2e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
57 <tr class="memitem:a1b676732ab2ad3eeaedf6ec60a6a0835"><td class="memItemLeft" align="right" valign="top">const void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlh__entry.html#a1b676732ab2ad3eeaedf6ec60a6a0835">v</a></td></tr>
58 <tr class="separator:a1b676732ab2ad3eeaedf6ec60a6a0835"><td class="memSeparator" colspan="2">&#160;</td></tr>
59 <tr class="memitem:a7c40c46e72d9a0ba071a8d49d535bc67"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structlh__entry.html">lh_entry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlh__entry.html#a7c40c46e72d9a0ba071a8d49d535bc67">next</a></td></tr>
60 <tr class="separator:a7c40c46e72d9a0ba071a8d49d535bc67"><td class="memSeparator" colspan="2">&#160;</td></tr>
61 <tr class="memitem:a6fb9c3de01fb5af67d8d429921cc6a3b"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structlh__entry.html">lh_entry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlh__entry.html#a6fb9c3de01fb5af67d8d429921cc6a3b">prev</a></td></tr>
62 <tr class="separator:a6fb9c3de01fb5af67d8d429921cc6a3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
63 </table>
64 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
65 <div class="textblock"><p>An entry in the hash table </p>
66 </div><h2 class="groupheader">Field Documentation</h2>
67 <a class="anchor" id="a79d9f1ef0dc444e17105aaeaf167e22c"></a>
68 <div class="memitem">
69 <div class="memproto">
70 <table class="memname">
71 <tr>
72 <td class="memname">const void* lh_entry::k</td>
73 </tr>
74 </table>
75 </div><div class="memdoc">
76 <p>The key. Use <a class="el" href="linkhash_8h.html#a7579ce28b8366fc9b8656f14270aa3aa">lh_entry_k()</a> instead of accessing this directly. </p>
77
78 </div>
79 </div>
80 <a class="anchor" id="a14f40cc124c32b03f81151ae7934d2e7"></a>
81 <div class="memitem">
82 <div class="memproto">
83 <table class="memname">
84 <tr>
85 <td class="memname">int lh_entry::k_is_constant</td>
86 </tr>
87 </table>
88 </div><div class="memdoc">
89 <p>A flag for users of linkhash to know whether or not they need to free k. </p>
90
91 </div>
92 </div>
93 <a class="anchor" id="a7c40c46e72d9a0ba071a8d49d535bc67"></a>
94 <div class="memitem">
95 <div class="memproto">
96 <table class="memname">
97 <tr>
98 <td class="memname">struct <a class="el" href="structlh__entry.html">lh_entry</a>* lh_entry::next</td>
99 </tr>
100 </table>
101 </div><div class="memdoc">
102 <p>The next entry </p>
103
104 </div>
105 </div>
106 <a class="anchor" id="a6fb9c3de01fb5af67d8d429921cc6a3b"></a>
107 <div class="memitem">
108 <div class="memproto">
109 <table class="memname">
110 <tr>
111 <td class="memname">struct <a class="el" href="structlh__entry.html">lh_entry</a>* lh_entry::prev</td>
112 </tr>
113 </table>
114 </div><div class="memdoc">
115 <p>The previous entry. </p>
116
117 </div>
118 </div>
119 <a class="anchor" id="a1b676732ab2ad3eeaedf6ec60a6a0835"></a>
120 <div class="memitem">
121 <div class="memproto">
122 <table class="memname">
123 <tr>
124 <td class="memname">const void* lh_entry::v</td>
125 </tr>
126 </table>
127 </div><div class="memdoc">
128 <p>The value. Use <a class="el" href="linkhash_8h.html#a0d4052ccfd8c5d351a9c1d3ba07671b3">lh_entry_v()</a> instead of accessing this directly. </p>
129
130 </div>
131 </div>
132 <hr/>The documentation for this struct was generated from the following file:<ul>
133 <li><a class="el" href="linkhash_8h.html">linkhash.h</a></li>
134 </ul>
135 </div><!-- contents -->
136 <!-- start footer part -->
137 <hr class="footer"/><address class="footer"><small>
138 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
139 <img class="footer" src="doxygen.png" alt="doxygen"/>
140 </a> 1.8.2
141 </small></address>
142 </body>
143 </html>
+0
-186
doc/html/structlh__table.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: lh_table Struct Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
39 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#pub-attribs">Data Fields</a> </div>
46 <div class="headertitle">
47 <div class="title">lh_table Struct Reference</div> </div>
48 </div><!--header-->
49 <div class="contents">
50 <table class="memberdecls">
51 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
52 Data Fields</h2></td></tr>
53 <tr class="memitem:ae251575ec2935bcb0e0589ca8e243839"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlh__table.html#ae251575ec2935bcb0e0589ca8e243839">size</a></td></tr>
54 <tr class="separator:ae251575ec2935bcb0e0589ca8e243839"><td class="memSeparator" colspan="2">&#160;</td></tr>
55 <tr class="memitem:aa172ed8fe205367b54e0e2cdf9ea8c6c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlh__table.html#aa172ed8fe205367b54e0e2cdf9ea8c6c">count</a></td></tr>
56 <tr class="separator:aa172ed8fe205367b54e0e2cdf9ea8c6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
57 <tr class="memitem:aa7d986a3b12a9fa47e349713794c30fb"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structlh__entry.html">lh_entry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlh__table.html#aa7d986a3b12a9fa47e349713794c30fb">head</a></td></tr>
58 <tr class="separator:aa7d986a3b12a9fa47e349713794c30fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
59 <tr class="memitem:a479895e45db2bdf9bf5d173fa4b7e277"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structlh__entry.html">lh_entry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlh__table.html#a479895e45db2bdf9bf5d173fa4b7e277">tail</a></td></tr>
60 <tr class="separator:a479895e45db2bdf9bf5d173fa4b7e277"><td class="memSeparator" colspan="2">&#160;</td></tr>
61 <tr class="memitem:a4fd9c5aba38791b26ab0ec614a5caf8f"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structlh__entry.html">lh_entry</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlh__table.html#a4fd9c5aba38791b26ab0ec614a5caf8f">table</a></td></tr>
62 <tr class="separator:a4fd9c5aba38791b26ab0ec614a5caf8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
63 <tr class="memitem:a30ea5903f4f8126abd6aa489ffe14737"><td class="memItemLeft" align="right" valign="top"><a class="el" href="linkhash_8h.html#a671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlh__table.html#a30ea5903f4f8126abd6aa489ffe14737">free_fn</a></td></tr>
64 <tr class="separator:a30ea5903f4f8126abd6aa489ffe14737"><td class="memSeparator" colspan="2">&#160;</td></tr>
65 <tr class="memitem:a1488d1a4a320b1a9bb2f441859544be1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="linkhash_8h.html#a38bae27995dcfb6ee3fb109a9be229b2">lh_hash_fn</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlh__table.html#a1488d1a4a320b1a9bb2f441859544be1">hash_fn</a></td></tr>
66 <tr class="separator:a1488d1a4a320b1a9bb2f441859544be1"><td class="memSeparator" colspan="2">&#160;</td></tr>
67 <tr class="memitem:aa646c287a6a46e09da6c7457c981a359"><td class="memItemLeft" align="right" valign="top"><a class="el" href="linkhash_8h.html#a91fd85fc81b0c7c83c62f00e84729091">lh_equal_fn</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structlh__table.html#aa646c287a6a46e09da6c7457c981a359">equal_fn</a></td></tr>
68 <tr class="separator:aa646c287a6a46e09da6c7457c981a359"><td class="memSeparator" colspan="2">&#160;</td></tr>
69 </table>
70 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
71 <div class="textblock"><p>The hash table structure. </p>
72 </div><h2 class="groupheader">Field Documentation</h2>
73 <a class="anchor" id="aa172ed8fe205367b54e0e2cdf9ea8c6c"></a>
74 <div class="memitem">
75 <div class="memproto">
76 <table class="memname">
77 <tr>
78 <td class="memname">int lh_table::count</td>
79 </tr>
80 </table>
81 </div><div class="memdoc">
82 <p>Numbers of entries. </p>
83
84 </div>
85 </div>
86 <a class="anchor" id="aa646c287a6a46e09da6c7457c981a359"></a>
87 <div class="memitem">
88 <div class="memproto">
89 <table class="memname">
90 <tr>
91 <td class="memname"><a class="el" href="linkhash_8h.html#a91fd85fc81b0c7c83c62f00e84729091">lh_equal_fn</a>* lh_table::equal_fn</td>
92 </tr>
93 </table>
94 </div><div class="memdoc">
95
96 </div>
97 </div>
98 <a class="anchor" id="a30ea5903f4f8126abd6aa489ffe14737"></a>
99 <div class="memitem">
100 <div class="memproto">
101 <table class="memname">
102 <tr>
103 <td class="memname"><a class="el" href="linkhash_8h.html#a671553d0ee3c2a123190ba0f8ed2b635">lh_entry_free_fn</a>* lh_table::free_fn</td>
104 </tr>
105 </table>
106 </div><div class="memdoc">
107 <p>A pointer onto the function responsible for freeing an entry. </p>
108
109 </div>
110 </div>
111 <a class="anchor" id="a1488d1a4a320b1a9bb2f441859544be1"></a>
112 <div class="memitem">
113 <div class="memproto">
114 <table class="memname">
115 <tr>
116 <td class="memname"><a class="el" href="linkhash_8h.html#a38bae27995dcfb6ee3fb109a9be229b2">lh_hash_fn</a>* lh_table::hash_fn</td>
117 </tr>
118 </table>
119 </div><div class="memdoc">
120
121 </div>
122 </div>
123 <a class="anchor" id="aa7d986a3b12a9fa47e349713794c30fb"></a>
124 <div class="memitem">
125 <div class="memproto">
126 <table class="memname">
127 <tr>
128 <td class="memname">struct <a class="el" href="structlh__entry.html">lh_entry</a>* lh_table::head</td>
129 </tr>
130 </table>
131 </div><div class="memdoc">
132 <p>The first entry. </p>
133
134 </div>
135 </div>
136 <a class="anchor" id="ae251575ec2935bcb0e0589ca8e243839"></a>
137 <div class="memitem">
138 <div class="memproto">
139 <table class="memname">
140 <tr>
141 <td class="memname">int lh_table::size</td>
142 </tr>
143 </table>
144 </div><div class="memdoc">
145 <p>Size of our hash. </p>
146
147 </div>
148 </div>
149 <a class="anchor" id="a4fd9c5aba38791b26ab0ec614a5caf8f"></a>
150 <div class="memitem">
151 <div class="memproto">
152 <table class="memname">
153 <tr>
154 <td class="memname">struct <a class="el" href="structlh__entry.html">lh_entry</a>* lh_table::table</td>
155 </tr>
156 </table>
157 </div><div class="memdoc">
158
159 </div>
160 </div>
161 <a class="anchor" id="a479895e45db2bdf9bf5d173fa4b7e277"></a>
162 <div class="memitem">
163 <div class="memproto">
164 <table class="memname">
165 <tr>
166 <td class="memname">struct <a class="el" href="structlh__entry.html">lh_entry</a>* lh_table::tail</td>
167 </tr>
168 </table>
169 </div><div class="memdoc">
170 <p>The last entry. </p>
171
172 </div>
173 </div>
174 <hr/>The documentation for this struct was generated from the following file:<ul>
175 <li><a class="el" href="linkhash_8h.html">linkhash.h</a></li>
176 </ul>
177 </div><!-- contents -->
178 <!-- start footer part -->
179 <hr class="footer"/><address class="footer"><small>
180 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
181 <img class="footer" src="doxygen.png" alt="doxygen"/>
182 </a> 1.8.2
183 </small></address>
184 </body>
185 </html>
+0
-109
doc/html/structprintbuf.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: printbuf Struct Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
39 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="summary">
45 <a href="#pub-attribs">Data Fields</a> </div>
46 <div class="headertitle">
47 <div class="title">printbuf Struct Reference</div> </div>
48 </div><!--header-->
49 <div class="contents">
50 <table class="memberdecls">
51 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
52 Data Fields</h2></td></tr>
53 <tr class="memitem:a5d7cf8ac260f1f7c50fecaf9bd7bc651"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structprintbuf.html#a5d7cf8ac260f1f7c50fecaf9bd7bc651">buf</a></td></tr>
54 <tr class="separator:a5d7cf8ac260f1f7c50fecaf9bd7bc651"><td class="memSeparator" colspan="2">&#160;</td></tr>
55 <tr class="memitem:aba980ad7406329e32f557dfa0eb7b1b2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structprintbuf.html#aba980ad7406329e32f557dfa0eb7b1b2">bpos</a></td></tr>
56 <tr class="separator:aba980ad7406329e32f557dfa0eb7b1b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
57 <tr class="memitem:a12ce6440eaa06a55b96ebdc5a9778dd5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structprintbuf.html#a12ce6440eaa06a55b96ebdc5a9778dd5">size</a></td></tr>
58 <tr class="separator:a12ce6440eaa06a55b96ebdc5a9778dd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
59 </table>
60 <h2 class="groupheader">Field Documentation</h2>
61 <a class="anchor" id="aba980ad7406329e32f557dfa0eb7b1b2"></a>
62 <div class="memitem">
63 <div class="memproto">
64 <table class="memname">
65 <tr>
66 <td class="memname">int printbuf::bpos</td>
67 </tr>
68 </table>
69 </div><div class="memdoc">
70
71 </div>
72 </div>
73 <a class="anchor" id="a5d7cf8ac260f1f7c50fecaf9bd7bc651"></a>
74 <div class="memitem">
75 <div class="memproto">
76 <table class="memname">
77 <tr>
78 <td class="memname">char* printbuf::buf</td>
79 </tr>
80 </table>
81 </div><div class="memdoc">
82
83 </div>
84 </div>
85 <a class="anchor" id="a12ce6440eaa06a55b96ebdc5a9778dd5"></a>
86 <div class="memitem">
87 <div class="memproto">
88 <table class="memname">
89 <tr>
90 <td class="memname">int printbuf::size</td>
91 </tr>
92 </table>
93 </div><div class="memdoc">
94
95 </div>
96 </div>
97 <hr/>The documentation for this struct was generated from the following file:<ul>
98 <li><a class="el" href="printbuf_8h.html">printbuf.h</a></li>
99 </ul>
100 </div><!-- contents -->
101 <!-- start footer part -->
102 <hr class="footer"/><address class="footer"><small>
103 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
104 <img class="footer" src="doxygen.png" alt="doxygen"/>
105 </a> 1.8.2
106 </small></address>
107 </body>
108 </html>
doc/html/sync_off.png less more
Binary diff not shown
doc/html/sync_on.png less more
Binary diff not shown
doc/html/tab_a.png less more
Binary diff not shown
doc/html/tab_b.png less more
Binary diff not shown
doc/html/tab_h.png less more
Binary diff not shown
doc/html/tab_s.png less more
Binary diff not shown
+0
-60
doc/html/tabs.css less more
0 .tabs, .tabs2, .tabs3 {
1 background-image: url('tab_b.png');
2 width: 100%;
3 z-index: 101;
4 font-size: 13px;
5 font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
6 }
7
8 .tabs2 {
9 font-size: 10px;
10 }
11 .tabs3 {
12 font-size: 9px;
13 }
14
15 .tablist {
16 margin: 0;
17 padding: 0;
18 display: table;
19 }
20
21 .tablist li {
22 float: left;
23 display: table-cell;
24 background-image: url('tab_b.png');
25 line-height: 36px;
26 list-style: none;
27 }
28
29 .tablist a {
30 display: block;
31 padding: 0 20px;
32 font-weight: bold;
33 background-image:url('tab_s.png');
34 background-repeat:no-repeat;
35 background-position:right;
36 color: #283A5D;
37 text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
38 text-decoration: none;
39 outline: none;
40 }
41
42 .tabs3 .tablist a {
43 padding: 0 10px;
44 }
45
46 .tablist a:hover {
47 background-image: url('tab_h.png');
48 background-repeat:repeat-x;
49 color: #fff;
50 text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
51 text-decoration: none;
52 }
53
54 .tablist li.current a {
55 background-image: url('tab_a.png');
56 background-repeat:repeat-x;
57 color: #fff;
58 text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
59 }
+0
-271
doc/html/unionjson__object_1_1data.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: json_object::data Union Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
39 <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
40 </ul>
41 </div>
42 <div id="nav-path" class="navpath">
43 <ul>
44 <li class="navelem"><a class="el" href="structjson__object.html">json_object</a></li><li class="navelem"><a class="el" href="unionjson__object_1_1data.html">data</a></li> </ul>
45 </div>
46 </div><!-- top -->
47 <div class="header">
48 <div class="summary">
49 <a href="#pub-attribs">Data Fields</a> </div>
50 <div class="headertitle">
51 <div class="title">json_object::data Union Reference</div> </div>
52 </div><!--header-->
53 <div class="contents">
54 <table class="memberdecls">
55 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
56 Data Fields</h2></td></tr>
57 <tr class="memitem:a98a3964e5fb0b3a0e9d8786b8facde5c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="json__types_8h.html#a81f02022906fafc71eb9197049f07f73">json_bool</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionjson__object_1_1data.html#a98a3964e5fb0b3a0e9d8786b8facde5c">c_boolean</a></td></tr>
58 <tr class="separator:a98a3964e5fb0b3a0e9d8786b8facde5c"><td class="memSeparator" colspan="2">&#160;</td></tr>
59 <tr class="memitem:a9cc4abdb21302913701ac0c8dc75e55a"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionjson__object_1_1data.html#a9cc4abdb21302913701ac0c8dc75e55a">c_double</a></td></tr>
60 <tr class="separator:a9cc4abdb21302913701ac0c8dc75e55a"><td class="memSeparator" colspan="2">&#160;</td></tr>
61 <tr class="memitem:a8464f75e1afbf640def14dde10fe88c7"><td class="memItemLeft" >struct {</td></tr>
62 <tr class="memitem:a4ea04b16fdfa15518f89f4db1a30c2eb"><td class="memItemLeft" >&#160;&#160;&#160;union {</td></tr>
63 <tr class="memitem:afeecce8b59efcadb68603db21ffcbe9f"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;int64_t&#160;&#160;&#160;<a class="el" href="unionjson__object_1_1data.html#a7733181cdb631570913e3a2abfd6937c">c_int64</a></td></tr>
64 <tr class="separator:afeecce8b59efcadb68603db21ffcbe9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
65 <tr class="memitem:ab7be8e8b216c607ae153325a67bb5730"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;uint64_t&#160;&#160;&#160;<a class="el" href="unionjson__object_1_1data.html#a578e0b55e16f2963e0ba5362929ae9f3">c_uint64</a></td></tr>
66 <tr class="separator:ab7be8e8b216c607ae153325a67bb5730"><td class="memSeparator" colspan="2">&#160;</td></tr>
67 <tr class="memitem:a4ea04b16fdfa15518f89f4db1a30c2eb"><td class="memItemLeft" valign="top">&#160;&#160;&#160;}&#160;&#160;&#160;<a class="el" href="unionjson__object_1_1data.html#a10f396f4e5a54d7add5d7afe43270292">cint</a></td></tr>
68 <tr class="separator:a4ea04b16fdfa15518f89f4db1a30c2eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
69 <tr class="memitem:ab37f0649987a21f7800c573e5b7905b9"><td class="memItemLeft" >&#160;&#160;&#160;enum <a class="el" href="json__object__private_8h.html#a2c399964853692c47023a88167f551ff">json_object_int_type</a>&#160;&#160;&#160;<a class="el" href="unionjson__object_1_1data.html#ab4ebc744a20ba74ea55b7fd97ce11bfa">cint_type</a></td></tr>
70 <tr class="separator:ab37f0649987a21f7800c573e5b7905b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
71 <tr class="memitem:a8464f75e1afbf640def14dde10fe88c7"><td class="memItemLeft" valign="top">}&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionjson__object_1_1data.html#a8464f75e1afbf640def14dde10fe88c7">c_int</a></td></tr>
72 <tr class="separator:a8464f75e1afbf640def14dde10fe88c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
73 <tr class="memitem:a68089c942f154d4df590d8ecb476a69b"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structlh__table.html">lh_table</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionjson__object_1_1data.html#a68089c942f154d4df590d8ecb476a69b">c_object</a></td></tr>
74 <tr class="separator:a68089c942f154d4df590d8ecb476a69b"><td class="memSeparator" colspan="2">&#160;</td></tr>
75 <tr class="memitem:a4ad6bf2fd6d8718f55850509edfe2e45"><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="unionjson__object_1_1data.html#a4ad6bf2fd6d8718f55850509edfe2e45">c_array</a></td></tr>
76 <tr class="separator:a4ad6bf2fd6d8718f55850509edfe2e45"><td class="memSeparator" colspan="2">&#160;</td></tr>
77 <tr class="memitem:a13ffed7c115784eac4dbc95696bd25cf"><td class="memItemLeft" >struct {</td></tr>
78 <tr class="memitem:a7ea46f9e6c5331d67a10dc94e07da510"><td class="memItemLeft" >&#160;&#160;&#160;union {</td></tr>
79 <tr class="memitem:ad4bc0f685c71f90b34a97470dca8cc1b"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;char *&#160;&#160;&#160;<a class="el" href="unionjson__object_1_1data.html#ad3f2798f4679c5a3cc7f67a42365b71f">ptr</a></td></tr>
80 <tr class="separator:ad4bc0f685c71f90b34a97470dca8cc1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
81 <tr class="memitem:ae87476c676dc61eac2f2f31078e36c6f"><td class="memItemLeft" >&#160;&#160;&#160;&#160;&#160;&#160;char&#160;&#160;&#160;<a class="el" href="unionjson__object_1_1data.html#aaa742eb1b88b4b25ec4c27431d1576d7">data</a> [<a class="el" href="json__object__private_8h.html#a227adaf0073e17006f614190d414fa1a">LEN_DIRECT_STRING_DATA</a>]</td></tr>
82 <tr class="separator:ae87476c676dc61eac2f2f31078e36c6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
83 <tr class="memitem:a7ea46f9e6c5331d67a10dc94e07da510"><td class="memItemLeft" valign="top">&#160;&#160;&#160;}&#160;&#160;&#160;<a class="el" href="unionjson__object_1_1data.html#a2a16be02b4be645069ed4ee34f2b8d3e">str</a></td></tr>
84 <tr class="separator:a7ea46f9e6c5331d67a10dc94e07da510"><td class="memSeparator" colspan="2">&#160;</td></tr>
85 <tr class="memitem:a1a79dfb83fa2fc2a2871ccf77a0bd80f"><td class="memItemLeft" >&#160;&#160;&#160;int&#160;&#160;&#160;<a class="el" href="unionjson__object_1_1data.html#ac2386853b8a4e7d0b28a27ed599ccef7">len</a></td></tr>
86 <tr class="separator:a1a79dfb83fa2fc2a2871ccf77a0bd80f"><td class="memSeparator" colspan="2">&#160;</td></tr>
87 <tr class="memitem:a13ffed7c115784eac4dbc95696bd25cf"><td class="memItemLeft" valign="top">}&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="unionjson__object_1_1data.html#a13ffed7c115784eac4dbc95696bd25cf">c_string</a></td></tr>
88 <tr class="separator:a13ffed7c115784eac4dbc95696bd25cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
89 </table>
90 <h2 class="groupheader">Field Documentation</h2>
91 <a class="anchor" id="a4ad6bf2fd6d8718f55850509edfe2e45"></a>
92 <div class="memitem">
93 <div class="memproto">
94 <table class="memname">
95 <tr>
96 <td class="memname">struct <a class="el" href="structarray__list.html">array_list</a>* json_object::data::c_array</td>
97 </tr>
98 </table>
99 </div><div class="memdoc">
100
101 </div>
102 </div>
103 <a class="anchor" id="a98a3964e5fb0b3a0e9d8786b8facde5c"></a>
104 <div class="memitem">
105 <div class="memproto">
106 <table class="memname">
107 <tr>
108 <td class="memname"><a class="el" href="json__types_8h.html#a81f02022906fafc71eb9197049f07f73">json_bool</a> json_object::data::c_boolean</td>
109 </tr>
110 </table>
111 </div><div class="memdoc">
112
113 </div>
114 </div>
115 <a class="anchor" id="a9cc4abdb21302913701ac0c8dc75e55a"></a>
116 <div class="memitem">
117 <div class="memproto">
118 <table class="memname">
119 <tr>
120 <td class="memname">double json_object::data::c_double</td>
121 </tr>
122 </table>
123 </div><div class="memdoc">
124
125 </div>
126 </div>
127 <a class="anchor" id="a8464f75e1afbf640def14dde10fe88c7"></a>
128 <div class="memitem">
129 <div class="memproto">
130 <table class="memname">
131 <tr>
132 <td class="memname">struct { ... } json_object::data::c_int</td>
133 </tr>
134 </table>
135 </div><div class="memdoc">
136
137 </div>
138 </div>
139 <a class="anchor" id="a7733181cdb631570913e3a2abfd6937c"></a>
140 <div class="memitem">
141 <div class="memproto">
142 <table class="memname">
143 <tr>
144 <td class="memname">int64_t json_object::data::c_int64</td>
145 </tr>
146 </table>
147 </div><div class="memdoc">
148
149 </div>
150 </div>
151 <a class="anchor" id="a68089c942f154d4df590d8ecb476a69b"></a>
152 <div class="memitem">
153 <div class="memproto">
154 <table class="memname">
155 <tr>
156 <td class="memname">struct <a class="el" href="structlh__table.html">lh_table</a>* json_object::data::c_object</td>
157 </tr>
158 </table>
159 </div><div class="memdoc">
160
161 </div>
162 </div>
163 <a class="anchor" id="a13ffed7c115784eac4dbc95696bd25cf"></a>
164 <div class="memitem">
165 <div class="memproto">
166 <table class="memname">
167 <tr>
168 <td class="memname">struct { ... } json_object::data::c_string</td>
169 </tr>
170 </table>
171 </div><div class="memdoc">
172
173 </div>
174 </div>
175 <a class="anchor" id="a578e0b55e16f2963e0ba5362929ae9f3"></a>
176 <div class="memitem">
177 <div class="memproto">
178 <table class="memname">
179 <tr>
180 <td class="memname">uint64_t json_object::data::c_uint64</td>
181 </tr>
182 </table>
183 </div><div class="memdoc">
184
185 </div>
186 </div>
187 <a class="anchor" id="a10f396f4e5a54d7add5d7afe43270292"></a>
188 <div class="memitem">
189 <div class="memproto">
190 <table class="memname">
191 <tr>
192 <td class="memname">union { ... } json_object::data::cint</td>
193 </tr>
194 </table>
195 </div><div class="memdoc">
196
197 </div>
198 </div>
199 <a class="anchor" id="ab4ebc744a20ba74ea55b7fd97ce11bfa"></a>
200 <div class="memitem">
201 <div class="memproto">
202 <table class="memname">
203 <tr>
204 <td class="memname">enum <a class="el" href="json__object__private_8h.html#a2c399964853692c47023a88167f551ff">json_object_int_type</a> json_object::data::cint_type</td>
205 </tr>
206 </table>
207 </div><div class="memdoc">
208
209 </div>
210 </div>
211 <a class="anchor" id="aaa742eb1b88b4b25ec4c27431d1576d7"></a>
212 <div class="memitem">
213 <div class="memproto">
214 <table class="memname">
215 <tr>
216 <td class="memname">char <a class="el" href="unionjson__object_1_1data.html">json_object::data::data</a>[<a class="el" href="json__object__private_8h.html#a227adaf0073e17006f614190d414fa1a">LEN_DIRECT_STRING_DATA</a>]</td>
217 </tr>
218 </table>
219 </div><div class="memdoc">
220
221 </div>
222 </div>
223 <a class="anchor" id="ac2386853b8a4e7d0b28a27ed599ccef7"></a>
224 <div class="memitem">
225 <div class="memproto">
226 <table class="memname">
227 <tr>
228 <td class="memname">int json_object::data::len</td>
229 </tr>
230 </table>
231 </div><div class="memdoc">
232
233 </div>
234 </div>
235 <a class="anchor" id="ad3f2798f4679c5a3cc7f67a42365b71f"></a>
236 <div class="memitem">
237 <div class="memproto">
238 <table class="memname">
239 <tr>
240 <td class="memname">char* json_object::data::ptr</td>
241 </tr>
242 </table>
243 </div><div class="memdoc">
244
245 </div>
246 </div>
247 <a class="anchor" id="a2a16be02b4be645069ed4ee34f2b8d3e"></a>
248 <div class="memitem">
249 <div class="memproto">
250 <table class="memname">
251 <tr>
252 <td class="memname">union { ... } json_object::data::str</td>
253 </tr>
254 </table>
255 </div><div class="memdoc">
256
257 </div>
258 </div>
259 <hr/>The documentation for this union was generated from the following file:<ul>
260 <li><a class="el" href="json__object__private_8h.html">json_object_private.h</a></li>
261 </ul>
262 </div><!-- contents -->
263 <!-- start footer part -->
264 <hr class="footer"/><address class="footer"><small>
265 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
266 <img class="footer" src="doxygen.png" alt="doxygen"/>
267 </a> 1.8.2
268 </small></address>
269 </body>
270 </html>
+0
-62
doc/html/vasprintf__compat_8h.html less more
0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1 <html xmlns="http://www.w3.org/1999/xhtml">
2 <head>
3 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
5 <title>json-c: vasprintf_compat.h File Reference</title>
6 <link href="tabs.css" rel="stylesheet" type="text/css"/>
7 <script type="text/javascript" src="jquery.js"></script>
8 <script type="text/javascript" src="dynsections.js"></script>
9 <link href="doxygen.css" rel="stylesheet" type="text/css" />
10 </head>
11 <body>
12 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
13 <div id="titlearea">
14 <table cellspacing="0" cellpadding="0">
15 <tbody>
16 <tr style="height: 56px;">
17 <td style="padding-left: 0.5em;">
18 <div id="projectname">json-c
19 &#160;<span id="projectnumber">0.14</span>
20 </div>
21 </td>
22 </tr>
23 </tbody>
24 </table>
25 </div>
26 <!-- end header part -->
27 <!-- Generated by Doxygen 1.8.2 -->
28 <div id="navrow1" class="tabs">
29 <ul class="tablist">
30 <li><a href="index.html"><span>Main&#160;Page</span></a></li>
31 <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
32 <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
33 <li class="current"><a href="files.html"><span>Files</span></a></li>
34 </ul>
35 </div>
36 <div id="navrow2" class="tabs2">
37 <ul class="tablist">
38 <li><a href="files.html"><span>File&#160;List</span></a></li>
39 <li><a href="globals.html"><span>Globals</span></a></li>
40 </ul>
41 </div>
42 </div><!-- top -->
43 <div class="header">
44 <div class="headertitle">
45 <div class="title">vasprintf_compat.h File Reference</div> </div>
46 </div><!--header-->
47 <div class="contents">
48
49 <p>Do not use, json-c internal, may be changed or removed at any time.
50 <a href="#details">More...</a></p>
51 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
52 <div class="textblock"><p>Do not use, json-c internal, may be changed or removed at any time. </p>
53 </div></div><!-- contents -->
54 <!-- start footer part -->
55 <hr class="footer"/><address class="footer"><small>
56 Generated on Sun Apr 19 2020 03:40:44 for json-c by &#160;<a href="http://www.doxygen.org/index.html">
57 <img class="footer" src="doxygen.png" alt="doxygen"/>
58 </a> 1.8.2
59 </small></address>
60 </body>
61 </html>
1515 (since commit f84d9c, the 0.12 branch point, 2014-04-10)
1616
1717
18 [Issue #61](https://github.com/json-c/json-c/issues/61) - Make json_object_object_add() indicate success or failure, test fix \
19 [Issue #113](https://github.com/json-c/json-c/issues/113) - Build fixes (make dist and make distcheck) \
20 [Issue #124](https://github.com/json-c/json-c/issues/124) - Fixing build \
21 [Issue #125](https://github.com/json-c/json-c/issues/125) - Fix compile error(variable size set but not used) on g++4.6 \
22 [Issue #126](https://github.com/json-c/json-c/issues/126) - Removed unused size variable. \
23 [Issue #127](https://github.com/json-c/json-c/issues/127) - remove unused `size` variable \
24 [Issue #128](https://github.com/json-c/json-c/issues/128) - Remove unused variable from json_tokenizer.c \
25 [Issue #130](https://github.com/json-c/json-c/issues/130) - Failed to compile under Ubuntu 13.10 32bit \
26 [Issue #131](https://github.com/json-c/json-c/issues/131) - undefined symbol: __sync_val_compare_and_swap_4 \
27 [Issue #132](https://github.com/json-c/json-c/issues/132) - Remove unused variable 'size' \
28 [Issue #133](https://github.com/json-c/json-c/issues/133) - Update and rename README to README.md \
29 [Issue #134](https://github.com/json-c/json-c/issues/134) - Must remove variable size... \
30 [Issue #135](https://github.com/json-c/json-c/issues/135) - bits.h uses removed json_tokener_errors\[error\] \
31 [Issue #136](https://github.com/json-c/json-c/issues/136) - Error when running make check \
32 [Issue #137](https://github.com/json-c/json-c/issues/137) - config.h.in should not be in git \
33 [Issue #138](https://github.com/json-c/json-c/issues/138) - Can't build on RHEL 6.5 due to dependency on automake-1.14 \
34 [Issue #140](https://github.com/json-c/json-c/issues/140) - Code bug in random_test.c evaluating same expression twice \
35 [Issue #141](https://github.com/json-c/json-c/issues/141) - Removed duplicate check in random_seed test - bug #140 \
36 [Issue #142](https://github.com/json-c/json-c/issues/142) - Please undeprecate json_object_object_get \
37 [Issue #144](https://github.com/json-c/json-c/issues/144) - Introduce json_object_from_fd \
38 [Issue #145](https://github.com/json-c/json-c/issues/145) - Handle % character properly \
39 [Issue #146](https://github.com/json-c/json-c/issues/146) - TAGS rename \
40 [Issue #148](https://github.com/json-c/json-c/issues/148) - Bump the soname \
41 [Issue #149](https://github.com/json-c/json-c/issues/149) - SONAME bump \
42 [Issue #150](https://github.com/json-c/json-c/issues/150) - Fix build using MinGW. \
43 [Issue #151](https://github.com/json-c/json-c/issues/151) - Remove json_type enum trailing comma \
44 [Issue #152](https://github.com/json-c/json-c/issues/152) - error while compiling json-c library version 0.11 \
45 [Issue #153](https://github.com/json-c/json-c/issues/153) - improve doc for json_object_to_json_string() \
46 [Issue #154](https://github.com/json-c/json-c/issues/154) - double precision \
47 [Issue #155](https://github.com/json-c/json-c/issues/155) - add bsearch for arrays \
48 [Issue #156](https://github.com/json-c/json-c/issues/156) - Remove trailing whitespaces \
49 [Issue #157](https://github.com/json-c/json-c/issues/157) - JSON-C shall not exit on calloc fail. \
50 [Issue #158](https://github.com/json-c/json-c/issues/158) - while using json-c 0.11, I am facing strange crash issue in json_object_put. \
51 [Issue #159](https://github.com/json-c/json-c/issues/159) - json_tokener.c compile error \
52 [Issue #160](https://github.com/json-c/json-c/issues/160) - missing header file on windows?? \
53 [Issue #161](https://github.com/json-c/json-c/issues/161) - Is there a way to append to file? \
54 [Issue #162](https://github.com/json-c/json-c/issues/162) - json_util: add directory check for POSIX distros \
55 [Issue #163](https://github.com/json-c/json-c/issues/163) - Fix Win32 build problems \
56 [Issue #164](https://github.com/json-c/json-c/issues/164) - made it compile and link on Widnows (as static library) \
57 [Issue #165](https://github.com/json-c/json-c/issues/165) - json_object_to_json_string_ext length \
58 [Issue #167](https://github.com/json-c/json-c/issues/167) - Can't build on Windows with Visual Studio 2010 \
59 [Issue #168](https://github.com/json-c/json-c/issues/168) - Tightening the number parsing algorithm \
60 [Issue #169](https://github.com/json-c/json-c/issues/169) - Doesn't compile on ubuntu 14.04, 64bit \
61 [Issue #170](https://github.com/json-c/json-c/issues/170) - Generated files in repository \
62 [Issue #171](https://github.com/json-c/json-c/issues/171) - Update configuration for VS2010 and win64 \
63 [Issue #172](https://github.com/json-c/json-c/issues/172) - Adding support for parsing octal numbers \
64 [Issue #173](https://github.com/json-c/json-c/issues/173) - json_parse_int64 doesn't work correctly at illumos \
65 [Issue #174](https://github.com/json-c/json-c/issues/174) - Adding JSON_C_TO_STRING_PRETTY_TAB flag \
66 [Issue #175](https://github.com/json-c/json-c/issues/175) - make check fails 4 tests with overflows when built with ASAN \
67 [Issue #176](https://github.com/json-c/json-c/issues/176) - Possible to delete an array element at a given idx ? \
68 [Issue #177](https://github.com/json-c/json-c/issues/177) - Fix compiler warnings \
69 [Issue #178](https://github.com/json-c/json-c/issues/178) - Unable to compile on CentOS5 \
70 [Issue #179](https://github.com/json-c/json-c/issues/179) - Added array_list_del_idx and json_object_array_del_idx \
71 [Issue #180](https://github.com/json-c/json-c/issues/180) - Enable silent build by default \
72 [Issue #181](https://github.com/json-c/json-c/issues/181) - json_tokener_parse_ex accepts invalid JSON \
73 [Issue #182](https://github.com/json-c/json-c/issues/182) - Link against libm when needed \
74 [Issue #183](https://github.com/json-c/json-c/issues/183) - Apply compile warning fix to master branch \
75 [Issue #184](https://github.com/json-c/json-c/issues/184) - Use only GCC-specific flags when compiling with GCC \
76 [Issue #185](https://github.com/json-c/json-c/issues/185) - compile error \
77 [Issue #186](https://github.com/json-c/json-c/issues/186) - Syntax error \
78 [Issue #187](https://github.com/json-c/json-c/issues/187) - array_list_get_idx and negative indexes. \
79 [Issue #188](https://github.com/json-c/json-c/issues/188) - json_object_object_foreach warnings \
80 [Issue #189](https://github.com/json-c/json-c/issues/189) - noisy json_object_from_file: error opening file \
81 [Issue #190](https://github.com/json-c/json-c/issues/190) - warning: initialization discards const qualifier from pointer target type \[enabled by default\] \
82 [Issue #192](https://github.com/json-c/json-c/issues/192) - json_tokener_parse accepts invalid JSON {"key": "value" , } \
83 [Issue #193](https://github.com/json-c/json-c/issues/193) - Make serialization format of doubles configurable \
84 [Issue #194](https://github.com/json-c/json-c/issues/194) - Add utility function for comparing json_objects \
85 [Issue #195](https://github.com/json-c/json-c/issues/195) - Call uselocale instead of setlocale \
86 [Issue #196](https://github.com/json-c/json-c/issues/196) - Performance improvements \
87 [Issue #197](https://github.com/json-c/json-c/issues/197) - Time for a new release? \
88 [Issue #198](https://github.com/json-c/json-c/issues/198) - Fix possible memory leak and remove superfluous NULL checks before free() \
89 [Issue #199](https://github.com/json-c/json-c/issues/199) - Fix build in Visual Studio \
90 [Issue #200](https://github.com/json-c/json-c/issues/200) - Add build scripts for CI platforms \
91 [Issue #201](https://github.com/json-c/json-c/issues/201) - disable forward-slash escaping? \
92 [Issue #202](https://github.com/json-c/json-c/issues/202) - Array with objects support \
93 [Issue #203](https://github.com/json-c/json-c/issues/203) - Add source position/coordinates to API \
94 [Issue #204](https://github.com/json-c/json-c/issues/204) - json-c/json.h not found \
95 [Issue #205](https://github.com/json-c/json-c/issues/205) - json-c Compiled with Visual Studios \
96 [Issue #206](https://github.com/json-c/json-c/issues/206) - what do i use in place of json_object_object_get? \
97 [Issue #207](https://github.com/json-c/json-c/issues/207) - Add support for property pairs directly added to arrays \
98 [Issue #208](https://github.com/json-c/json-c/issues/208) - Performance enhancements (mainly) to json_object_to_json_string() \
99 [Issue #209](https://github.com/json-c/json-c/issues/209) - fix regression from 2d549662be832da838aa063da2efa78ee3b99668 \
100 [Issue #210](https://github.com/json-c/json-c/issues/210) - Use size_t for arrays \
101 [Issue #211](https://github.com/json-c/json-c/issues/211) - Atomic updates for the refcount \
102 [Issue #212](https://github.com/json-c/json-c/issues/212) - Refcount doesn't work between threads \
103 [Issue #213](https://github.com/json-c/json-c/issues/213) - fix to compile with microsoft visual c++ 2010 \
104 [Issue #214](https://github.com/json-c/json-c/issues/214) - Some non-GNU systems support __sync_val_compare_and_swap \
105 [Issue #215](https://github.com/json-c/json-c/issues/215) - Build json-c for window 64 bit. \
106 [Issue #216](https://github.com/json-c/json-c/issues/216) - configure: check realloc with AC_CHECK_FUNCS() to fix cross-compilation. \
107 [Issue #217](https://github.com/json-c/json-c/issues/217) - Checking for functions in float.h \
108 [Issue #218](https://github.com/json-c/json-c/issues/218) - Use a macro to indicate C99 to the compiler \
109 [Issue #219](https://github.com/json-c/json-c/issues/219) - Fix various potential null ptr deref and int32 overflows \
110 [Issue #220](https://github.com/json-c/json-c/issues/220) - Add utility function for comparing json_objects \
111 [Issue #221](https://github.com/json-c/json-c/issues/221) - JSON_C_TO_STRING_NOSLASHESCAPE works incorrectly \
112 [Issue #222](https://github.com/json-c/json-c/issues/222) - Fix issue #221: JSON_C_TO_STRING_NOSLASHESCAPE works incorrectly \
113 [Issue #223](https://github.com/json-c/json-c/issues/223) - Clarify json_object_get_string documentation of NULL handling & return \
114 [Issue #224](https://github.com/json-c/json-c/issues/224) - json_tokener.c - all warnings being treated as errors \
115 [Issue #225](https://github.com/json-c/json-c/issues/225) - Hi, will you support clib as a "registry"? \
116 [Issue #227](https://github.com/json-c/json-c/issues/227) - Bump SOVERSION to 3 \
117 [Issue #228](https://github.com/json-c/json-c/issues/228) - avoid double slashes from json \
118 [Issue #229](https://github.com/json-c/json-c/issues/229) - configure fails: checking size of size_t... configure: error: cannot determine a size for size_t \
119 [Issue #230](https://github.com/json-c/json-c/issues/230) - Use stdint.h to check for size_t size \
120 [Issue #231](https://github.com/json-c/json-c/issues/231) - Fix size_t size check for first-time builds \
121 [Issue #232](https://github.com/json-c/json-c/issues/232) - tests/tests1: fix printf format for size_t arguments \
122 [Issue #233](https://github.com/json-c/json-c/issues/233) - Include stddef.h in json_object.h \
123 [Issue #234](https://github.com/json-c/json-c/issues/234) - Add public API to use userdata independently of custom serializer \
124 [Issue #235](https://github.com/json-c/json-c/issues/235) - Undefined symbols Error for architecture x86_64 on Mac \
125 [Issue #236](https://github.com/json-c/json-c/issues/236) - Building a project which uses json-c with flag -Wcast-qual causes compilation errors \
126 [Issue #237](https://github.com/json-c/json-c/issues/237) - handle escaped utf-8 \
127 [Issue #238](https://github.com/json-c/json-c/issues/238) - linkhash.c: optimised the table_free path \
128 [Issue #239](https://github.com/json-c/json-c/issues/239) - initialize null terminator of new printbuf \
129 [Issue #240](https://github.com/json-c/json-c/issues/240) - Compile error: Variable set but not used \
130 [Issue #241](https://github.com/json-c/json-c/issues/241) - getting error in date string 19\/07\/2016, fixed for error 19/07/2016 \
131 [Issue #242](https://github.com/json-c/json-c/issues/242) - json_tokener_parse error \
132 [Issue #243](https://github.com/json-c/json-c/issues/243) - Fix #165 \
133 [Issue #244](https://github.com/json-c/json-c/issues/244) - Error while compiling source from RHEL5, could you please help me to fix this \
134 [Issue #245](https://github.com/json-c/json-c/issues/245) - json-c compile in window xp \
135 [Issue #246](https://github.com/json-c/json-c/issues/246) - Mac: uselocale failed to build \
136 [Issue #247](https://github.com/json-c/json-c/issues/247) - json_object_array_del_idx function has segment fault error? \
137 [Issue #248](https://github.com/json-c/json-c/issues/248) - Minor changes in C source code \
138 [Issue #249](https://github.com/json-c/json-c/issues/249) - Improving README \
139 [Issue #250](https://github.com/json-c/json-c/issues/250) - Improving .gitignore \
140 [Issue #251](https://github.com/json-c/json-c/issues/251) - Adding a file for EditorConfig \
141 [Issue #252](https://github.com/json-c/json-c/issues/252) - Very minor changes not related to C source code \
142 [Issue #253](https://github.com/json-c/json-c/issues/253) - Adding a test with cppcheck for Travis CI \
143 [Issue #254](https://github.com/json-c/json-c/issues/254) - Very minor changes to some tests \
144 [Issue #255](https://github.com/json-c/json-c/issues/255) - Minor changes in C source code \
145 [Issue #256](https://github.com/json-c/json-c/issues/256) - Mailing list dead? \
146 [Issue #257](https://github.com/json-c/json-c/issues/257) - Defining a coding style \
147 [Issue #258](https://github.com/json-c/json-c/issues/258) - Enable CI services \
148 [Issue #259](https://github.com/json-c/json-c/issues/259) - Fails to parse valid json \
149 [Issue #260](https://github.com/json-c/json-c/issues/260) - Adding an object to itself \
150 [Issue #261](https://github.com/json-c/json-c/issues/261) - Lack of proper documentation \
151 [Issue #262](https://github.com/json-c/json-c/issues/262) - Add Cmakefile and fix compiler warning. \
152 [Issue #263](https://github.com/json-c/json-c/issues/263) - Compiler Warnings with VS2015 \
153 [Issue #264](https://github.com/json-c/json-c/issues/264) - successed in simple test while failed in my project \
154 [Issue #265](https://github.com/json-c/json-c/issues/265) - Conformance report for reference \
155 [Issue #266](https://github.com/json-c/json-c/issues/266) - crash perhaps related to reference counting \
156 [Issue #267](https://github.com/json-c/json-c/issues/267) - Removes me as Win32 maintainer, because I'm not. \
157 [Issue #268](https://github.com/json-c/json-c/issues/268) - Documentation of json_object_to_json_string gives no information about memory management \
158 [Issue #269](https://github.com/json-c/json-c/issues/269) - json_object_<type>_set(json_object *o,<type> value) API for value setting in json object private structure \
159 [Issue #270](https://github.com/json-c/json-c/issues/270) - new API json_object_new_double_f(doubel d,const char * fmt); \
160 [Issue #271](https://github.com/json-c/json-c/issues/271) - Cannot compile using CMake on macOS \
161 [Issue #273](https://github.com/json-c/json-c/issues/273) - fixed wrong object name in json_object_all_values_equal \
162 [Issue #274](https://github.com/json-c/json-c/issues/274) - Support for 64 bit pointers on Windows \
163 [Issue #275](https://github.com/json-c/json-c/issues/275) - Out-of-bounds read in json_tokener_parse_ex \
164 [Issue #276](https://github.com/json-c/json-c/issues/276) - ./configure for centos release 6.7(final) failure \
165 [Issue #277](https://github.com/json-c/json-c/issues/277) - Json object set xxx \
166 [Issue #278](https://github.com/json-c/json-c/issues/278) - Serialization of double with no fractional component drops trailing zero \
167 [Issue #279](https://github.com/json-c/json-c/issues/279) - Segmentation fault in array_list_length() \
168 [Issue #280](https://github.com/json-c/json-c/issues/280) - Should json_object_array_get_idx check whether input obj is array? \
169 [Issue #281](https://github.com/json-c/json-c/issues/281) - how to pretty print json-c? \
170 [Issue #282](https://github.com/json-c/json-c/issues/282) - ignore temporary files \
171 [Issue #283](https://github.com/json-c/json-c/issues/283) - json_pointer: add first revision based on RFC 6901 \
172 [Issue #284](https://github.com/json-c/json-c/issues/284) - Resusing json_tokener object \
173 [Issue #285](https://github.com/json-c/json-c/issues/285) - Revert "compat/strdup.h: move common compat check for strdup() to own \
174 [Issue #286](https://github.com/json-c/json-c/issues/286) - json_tokener_parse_ex() returns json_tokener_continue on zero-length string \
175 [Issue #287](https://github.com/json-c/json-c/issues/287) - json_pointer: extend setter & getter with printf() style arguments \
176 [Issue #288](https://github.com/json-c/json-c/issues/288) - Fix _GNU_SOURCE define for vasprintf \
177 [Issue #289](https://github.com/json-c/json-c/issues/289) - bugfix: floating point representaion without fractional part \
178 [Issue #290](https://github.com/json-c/json-c/issues/290) - duplicate an json_object \
179 [Issue #291](https://github.com/json-c/json-c/issues/291) - isspace assert error \
180 [Issue #292](https://github.com/json-c/json-c/issues/292) - configure error "./configure: line 13121: syntax error near unexpected token `-Wall'" \
181 [Issue #293](https://github.com/json-c/json-c/issues/293) - how to make with bitcode for ios \
182 [Issue #294](https://github.com/json-c/json-c/issues/294) - Adding UTF-8 validation. Fixes #122 \
183 [Issue #295](https://github.com/json-c/json-c/issues/295) - cross compile w/ mingw \
184 [Issue #296](https://github.com/json-c/json-c/issues/296) - Missing functions header in json_object.h \
185 [Issue #297](https://github.com/json-c/json-c/issues/297) - could not parse string to Json object? Like string str=\"helloworld;E\\test\\log\\;end\" \
186 [Issue #298](https://github.com/json-c/json-c/issues/298) - Building using CMake doesn't work \
187 [Issue #299](https://github.com/json-c/json-c/issues/299) - Improve json_object -> string performance \
188 [Issue #300](https://github.com/json-c/json-c/issues/300) - Running tests with MinGW build \
189 [Issue #301](https://github.com/json-c/json-c/issues/301) - How to deep copy json_object in C++ ? \
190 [Issue #302](https://github.com/json-c/json-c/issues/302) - json_tokener_parse_ex doesn't parse JSON values \
191 [Issue #303](https://github.com/json-c/json-c/issues/303) - fix doc in tokener header file \
192 [Issue #304](https://github.com/json-c/json-c/issues/304) - (.text+0x72846): undefined reference to `is_error' \
193 [Issue #305](https://github.com/json-c/json-c/issues/305) - Fix compilation without C-99 option \
194 [Issue #306](https://github.com/json-c/json-c/issues/306) - ./configure: line 12748 -error=deprecated-declarations \
195 [Issue #307](https://github.com/json-c/json-c/issues/307) - Memory leak in json_tokener_parse \
196 [Issue #308](https://github.com/json-c/json-c/issues/308) - AM_PROG_LIBTOOL not found on Linux \
197 [Issue #309](https://github.com/json-c/json-c/issues/309) - GCC 7 reports various -Wimplicit-fallthrough= errors \
198 [Issue #310](https://github.com/json-c/json-c/issues/310) - Add FALLTHRU comment to handle GCC7 warnings. \
199 [Issue #311](https://github.com/json-c/json-c/issues/311) - Fix error C3688 when compiling on Visual Studio 2015 \
200 [Issue #312](https://github.com/json-c/json-c/issues/312) - Fix CMake Build process improved for MinGW and MSYS2 \
201 [Issue #313](https://github.com/json-c/json-c/issues/313) - VERBOSE=1 make check; tests/test_util_file.test.c and tests/test_util_file.expected out of sync \
202 [Issue #315](https://github.com/json-c/json-c/issues/315) - Passing -1 to json_tokener_parse_ex is possibly unsafe \
203 [Issue #316](https://github.com/json-c/json-c/issues/316) - Memory Returned by json_object_to_json_string not freed \
204 [Issue #317](https://github.com/json-c/json-c/issues/317) - json_object_get_string gives segmentation error \
205 [Issue #318](https://github.com/json-c/json-c/issues/318) - PVS-Studio static analyzer analyze results \
206 [Issue #319](https://github.com/json-c/json-c/issues/319) - Windows: Fix dynamic library build with Visual Studio \
207 [Issue #320](https://github.com/json-c/json-c/issues/320) - Can't compile in Mac OS X El Capitan \
208 [Issue #321](https://github.com/json-c/json-c/issues/321) - build,cmake: fix vasprintf implicit definition and generate both static & shared libs \
209 [Issue #322](https://github.com/json-c/json-c/issues/322) - can not link with libjson-c.a \
210 [Issue #323](https://github.com/json-c/json-c/issues/323) - implicit fallthrough detected by gcc 7.1 \
211 [Issue #324](https://github.com/json-c/json-c/issues/324) - JsonPath like function? \
212 [Issue #325](https://github.com/json-c/json-c/issues/325) - Fix stack buffer overflow in json_object_double_to_json_string_format() \
213 [Issue #327](https://github.com/json-c/json-c/issues/327) - why json-c so hard to compile \
214 [Issue #328](https://github.com/json-c/json-c/issues/328) - json_object: implement json_object_deep_copy() function \
215 [Issue #329](https://github.com/json-c/json-c/issues/329) - build,cmake: build,cmake: rename libjson-c-static.a to libjson-c.a \
216 [Issue #330](https://github.com/json-c/json-c/issues/330) - tests: symlink basic tests to a single file that has the common code \
217 [Issue #331](https://github.com/json-c/json-c/issues/331) - Safe use of snprintf() / vsnprintf() for Visual studio, and thread-safety fix \
218 [Issue #332](https://github.com/json-c/json-c/issues/332) - Valgrind: invalid read after json_object_array_del_idx. \
219 [Issue #333](https://github.com/json-c/json-c/issues/333) - Replace obsolete AM_PROG_LIBTOOL \
220 [Issue #335](https://github.com/json-c/json-c/issues/335) - README.md: show build status tag from travis-ci.org \
221 [Issue #336](https://github.com/json-c/json-c/issues/336) - tests: fix tests in travis-ci.org \
222 [Issue #337](https://github.com/json-c/json-c/issues/337) - Synchronize "potentially racy" random seed in lh_char_hash() \
223 [Issue #338](https://github.com/json-c/json-c/issues/338) - implement json_object_int_inc(json_object *, int64_t) \
224 [Issue #339](https://github.com/json-c/json-c/issues/339) - Json schema validation \
225 [Issue #340](https://github.com/json-c/json-c/issues/340) - strerror_override: add extern "C" and JSON_EXPORT specifiers for Visual C++ compilers \
226 [Issue #341](https://github.com/json-c/json-c/issues/341) - character "/" parse as "\/" \
227 [Issue #342](https://github.com/json-c/json-c/issues/342) - No such file or directory "/usr/include/json.h" \
228 [Issue #343](https://github.com/json-c/json-c/issues/343) - Can't parse json \
229 [Issue #344](https://github.com/json-c/json-c/issues/344) - Fix Mingw build \
230 [Issue #345](https://github.com/json-c/json-c/issues/345) - Fix make dist and make distcheck \
231 [Issue #346](https://github.com/json-c/json-c/issues/346) - Clamp double to int32 when narrowing in json_object_get_int. \
232 [Issue #347](https://github.com/json-c/json-c/issues/347) - MSVC linker error json_c_strerror \
233 [Issue #348](https://github.com/json-c/json-c/issues/348) - why \
234 [Issue #349](https://github.com/json-c/json-c/issues/349) - `missing` is missing? \
235 [Issue #350](https://github.com/json-c/json-c/issues/350) - stderror-override and disable-shared \
236 [Issue #351](https://github.com/json-c/json-c/issues/351) - SIZE_T_MAX redefined from limits.h \
237 [Issue #352](https://github.com/json-c/json-c/issues/352) - `INSTALL` overrides an automake script. \
238 [Issue #353](https://github.com/json-c/json-c/issues/353) - Documentation issues \
239 [Issue #354](https://github.com/json-c/json-c/issues/354) - Fixes #351 #352 #353 \
240 [Issue #355](https://github.com/json-c/json-c/issues/355) - 1.make it can been compiled with Visual Studio 2010 by modify the CMakeList.txt and others \
241 [Issue #356](https://github.com/json-c/json-c/issues/356) - VS2008 test test_util_file.cpp err! \
242 [Issue #357](https://github.com/json-c/json-c/issues/357) - __json_c_strerror incompatibility with link-time optimization \
243 [Issue #358](https://github.com/json-c/json-c/issues/358) - make issue \
244 [Issue #359](https://github.com/json-c/json-c/issues/359) - update CMakeLists.txt for compile with visual studio at least 2010 \
245 [Issue #360](https://github.com/json-c/json-c/issues/360) - Use strtoll() to parse ints \
246 [Issue #361](https://github.com/json-c/json-c/issues/361) - Fix double to int cast overflow in json_object_get_int64. \
247 [Issue #362](https://github.com/json-c/json-c/issues/362) - CMake Package Config \
248 [Issue #363](https://github.com/json-c/json-c/issues/363) - Issue #338, add json_object_add_int functions \
249 [Issue #364](https://github.com/json-c/json-c/issues/364) - Cmake is Errir \
250 [Issue #365](https://github.com/json-c/json-c/issues/365) - added fallthrough for gcc7 \
251 [Issue #366](https://github.com/json-c/json-c/issues/366) - how to check the json string,crash! \
252 [Issue #367](https://github.com/json-c/json-c/issues/367) - Is json-c support "redirect" semantic? \
253 [Issue #368](https://github.com/json-c/json-c/issues/368) - Add examples \
254 [Issue #369](https://github.com/json-c/json-c/issues/369) - How to build json-c library for android? \
255 [Issue #370](https://github.com/json-c/json-c/issues/370) - Compiling using clang-cl \
256 [Issue #371](https://github.com/json-c/json-c/issues/371) - Invalid parsing for Infinity with json-c 0.12 \
257 [Issue #372](https://github.com/json-c/json-c/issues/372) - Json-c 0.12: Fixed Infinity bug \
258 [Issue #373](https://github.com/json-c/json-c/issues/373) - build: fix build on appveyor CI \
259 [Issue #374](https://github.com/json-c/json-c/issues/374) - Undefined symbols for architecture x86_64: \
260 [Issue #375](https://github.com/json-c/json-c/issues/375) - what would happened when json_object_object_add add the same key \
261 [Issue #376](https://github.com/json-c/json-c/issues/376) - Eclipse error \
262 [Issue #377](https://github.com/json-c/json-c/issues/377) - on gcc 7.2.0 on my linux distribution with json-c 2013-04-02 source \
263 [Issue #378](https://github.com/json-c/json-c/issues/378) - Eclipse: library (libjson-c) not found, but configured \
264 [Issue #379](https://github.com/json-c/json-c/issues/379) - error: this statement may fall through \[-Werror=implicit-fallthrough=\] \
265 [Issue #380](https://github.com/json-c/json-c/issues/380) - Build on Windows \
266 [Issue #381](https://github.com/json-c/json-c/issues/381) - Fix makedist \
267 [Issue #382](https://github.com/json-c/json-c/issues/382) - Memory leak for json_tokener_parse_ex for version 0.12.1 \
268 [Issue #383](https://github.com/json-c/json-c/issues/383) - Fix a compiler warning. \
269 [Issue #384](https://github.com/json-c/json-c/issues/384) - Fix a VS 2015 compiler warnings. \
18 * [Issue #61](https://github.com/json-c/json-c/issues/61) - Make json_object_object_add() indicate success or failure, test fix \
19 * [Issue #113](https://github.com/json-c/json-c/issues/113) - Build fixes (make dist and make distcheck) \
20 * [Issue #124](https://github.com/json-c/json-c/issues/124) - Fixing build \
21 * [Issue #125](https://github.com/json-c/json-c/issues/125) - Fix compile error(variable size set but not used) on g++4.6 \
22 * [Issue #126](https://github.com/json-c/json-c/issues/126) - Removed unused size variable. \
23 * [Issue #127](https://github.com/json-c/json-c/issues/127) - remove unused `size` variable \
24 * [Issue #128](https://github.com/json-c/json-c/issues/128) - Remove unused variable from json_tokenizer.c \
25 * [Issue #130](https://github.com/json-c/json-c/issues/130) - Failed to compile under Ubuntu 13.10 32bit \
26 * [Issue #131](https://github.com/json-c/json-c/issues/131) - undefined symbol: __sync_val_compare_and_swap_4 \
27 * [Issue #132](https://github.com/json-c/json-c/issues/132) - Remove unused variable 'size' \
28 * [Issue #133](https://github.com/json-c/json-c/issues/133) - Update and rename README to README.md \
29 * [Issue #134](https://github.com/json-c/json-c/issues/134) - Must remove variable size... \
30 * [Issue #135](https://github.com/json-c/json-c/issues/135) - bits.h uses removed json_tokener_errors\[error\] \
31 * [Issue #136](https://github.com/json-c/json-c/issues/136) - Error when running make check \
32 * [Issue #137](https://github.com/json-c/json-c/issues/137) - config.h.in should not be in git \
33 * [Issue #138](https://github.com/json-c/json-c/issues/138) - Can't build on RHEL 6.5 due to dependency on automake-1.14 \
34 * [Issue #140](https://github.com/json-c/json-c/issues/140) - Code bug in random_test.c evaluating same expression twice \
35 * [Issue #141](https://github.com/json-c/json-c/issues/141) - Removed duplicate check in random_seed test - bug #140 \
36 * [Issue #142](https://github.com/json-c/json-c/issues/142) - Please undeprecate json_object_object_get \
37 * [Issue #144](https://github.com/json-c/json-c/issues/144) - Introduce json_object_from_fd \
38 * [Issue #145](https://github.com/json-c/json-c/issues/145) - Handle % character properly \
39 * [Issue #146](https://github.com/json-c/json-c/issues/146) - TAGS rename \
40 * [Issue #148](https://github.com/json-c/json-c/issues/148) - Bump the soname \
41 * [Issue #149](https://github.com/json-c/json-c/issues/149) - SONAME bump \
42 * [Issue #150](https://github.com/json-c/json-c/issues/150) - Fix build using MinGW. \
43 * [Issue #151](https://github.com/json-c/json-c/issues/151) - Remove json_type enum trailing comma \
44 * [Issue #152](https://github.com/json-c/json-c/issues/152) - error while compiling json-c library version 0.11 \
45 * [Issue #153](https://github.com/json-c/json-c/issues/153) - improve doc for json_object_to_json_string() \
46 * [Issue #154](https://github.com/json-c/json-c/issues/154) - double precision \
47 * [Issue #155](https://github.com/json-c/json-c/issues/155) - add bsearch for arrays \
48 * [Issue #156](https://github.com/json-c/json-c/issues/156) - Remove trailing whitespaces \
49 * [Issue #157](https://github.com/json-c/json-c/issues/157) - JSON-C shall not exit on calloc fail. \
50 * [Issue #158](https://github.com/json-c/json-c/issues/158) - while using json-c 0.11, I am facing strange crash issue in json_object_put. \
51 * [Issue #159](https://github.com/json-c/json-c/issues/159) - json_tokener.c compile error \
52 * [Issue #160](https://github.com/json-c/json-c/issues/160) - missing header file on windows?? \
53 * [Issue #161](https://github.com/json-c/json-c/issues/161) - Is there a way to append to file? \
54 * [Issue #162](https://github.com/json-c/json-c/issues/162) - json_util: add directory check for POSIX distros \
55 * [Issue #163](https://github.com/json-c/json-c/issues/163) - Fix Win32 build problems \
56 * [Issue #164](https://github.com/json-c/json-c/issues/164) - made it compile and link on Widnows (as static library) \
57 * [Issue #165](https://github.com/json-c/json-c/issues/165) - json_object_to_json_string_ext length \
58 * [Issue #167](https://github.com/json-c/json-c/issues/167) - Can't build on Windows with Visual Studio 2010 \
59 * [Issue #168](https://github.com/json-c/json-c/issues/168) - Tightening the number parsing algorithm \
60 * [Issue #169](https://github.com/json-c/json-c/issues/169) - Doesn't compile on ubuntu 14.04, 64bit \
61 * [Issue #170](https://github.com/json-c/json-c/issues/170) - Generated files in repository \
62 * [Issue #171](https://github.com/json-c/json-c/issues/171) - Update configuration for VS2010 and win64 \
63 * [Issue #172](https://github.com/json-c/json-c/issues/172) - Adding support for parsing octal numbers \
64 * [Issue #173](https://github.com/json-c/json-c/issues/173) - json_parse_int64 doesn't work correctly at illumos \
65 * [Issue #174](https://github.com/json-c/json-c/issues/174) - Adding JSON_C_TO_STRING_PRETTY_TAB flag \
66 * [Issue #175](https://github.com/json-c/json-c/issues/175) - make check fails 4 tests with overflows when built with ASAN \
67 * [Issue #176](https://github.com/json-c/json-c/issues/176) - Possible to delete an array element at a given idx ? \
68 * [Issue #177](https://github.com/json-c/json-c/issues/177) - Fix compiler warnings \
69 * [Issue #178](https://github.com/json-c/json-c/issues/178) - Unable to compile on CentOS5 \
70 * [Issue #179](https://github.com/json-c/json-c/issues/179) - Added array_list_del_idx and json_object_array_del_idx \
71 * [Issue #180](https://github.com/json-c/json-c/issues/180) - Enable silent build by default \
72 * [Issue #181](https://github.com/json-c/json-c/issues/181) - json_tokener_parse_ex accepts invalid JSON \
73 * [Issue #182](https://github.com/json-c/json-c/issues/182) - Link against libm when needed \
74 * [Issue #183](https://github.com/json-c/json-c/issues/183) - Apply compile warning fix to master branch \
75 * [Issue #184](https://github.com/json-c/json-c/issues/184) - Use only GCC-specific flags when compiling with GCC \
76 * [Issue #185](https://github.com/json-c/json-c/issues/185) - compile error \
77 * [Issue #186](https://github.com/json-c/json-c/issues/186) - Syntax error \
78 * [Issue #187](https://github.com/json-c/json-c/issues/187) - array_list_get_idx and negative indexes. \
79 * [Issue #188](https://github.com/json-c/json-c/issues/188) - json_object_object_foreach warnings \
80 * [Issue #189](https://github.com/json-c/json-c/issues/189) - noisy json_object_from_file: error opening file \
81 * [Issue #190](https://github.com/json-c/json-c/issues/190) - warning: initialization discards const qualifier from pointer target type \[enabled by default\] \
82 * [Issue #192](https://github.com/json-c/json-c/issues/192) - json_tokener_parse accepts invalid JSON {"key": "value" , } \
83 * [Issue #193](https://github.com/json-c/json-c/issues/193) - Make serialization format of doubles configurable \
84 * [Issue #194](https://github.com/json-c/json-c/issues/194) - Add utility function for comparing json_objects \
85 * [Issue #195](https://github.com/json-c/json-c/issues/195) - Call uselocale instead of setlocale \
86 * [Issue #196](https://github.com/json-c/json-c/issues/196) - Performance improvements \
87 * [Issue #197](https://github.com/json-c/json-c/issues/197) - Time for a new release? \
88 * [Issue #198](https://github.com/json-c/json-c/issues/198) - Fix possible memory leak and remove superfluous NULL checks before free() \
89 * [Issue #199](https://github.com/json-c/json-c/issues/199) - Fix build in Visual Studio \
90 * [Issue #200](https://github.com/json-c/json-c/issues/200) - Add build scripts for CI platforms \
91 * [Issue #201](https://github.com/json-c/json-c/issues/201) - disable forward-slash escaping? \
92 * [Issue #202](https://github.com/json-c/json-c/issues/202) - Array with objects support \
93 * [Issue #203](https://github.com/json-c/json-c/issues/203) - Add source position/coordinates to API \
94 * [Issue #204](https://github.com/json-c/json-c/issues/204) - json-c/json.h not found \
95 * [Issue #205](https://github.com/json-c/json-c/issues/205) - json-c Compiled with Visual Studios \
96 * [Issue #206](https://github.com/json-c/json-c/issues/206) - what do i use in place of json_object_object_get? \
97 * [Issue #207](https://github.com/json-c/json-c/issues/207) - Add support for property pairs directly added to arrays \
98 * [Issue #208](https://github.com/json-c/json-c/issues/208) - Performance enhancements (mainly) to json_object_to_json_string() \
99 * [Issue #209](https://github.com/json-c/json-c/issues/209) - fix regression from 2d549662be832da838aa063da2efa78ee3b99668 \
100 * [Issue #210](https://github.com/json-c/json-c/issues/210) - Use size_t for arrays \
101 * [Issue #211](https://github.com/json-c/json-c/issues/211) - Atomic updates for the refcount \
102 * [Issue #212](https://github.com/json-c/json-c/issues/212) - Refcount doesn't work between threads \
103 * [Issue #213](https://github.com/json-c/json-c/issues/213) - fix to compile with microsoft visual c++ 2010 \
104 * [Issue #214](https://github.com/json-c/json-c/issues/214) - Some non-GNU systems support __sync_val_compare_and_swap \
105 * [Issue #215](https://github.com/json-c/json-c/issues/215) - Build json-c for window 64 bit. \
106 * [Issue #216](https://github.com/json-c/json-c/issues/216) - configure: check realloc with AC_CHECK_FUNCS() to fix cross-compilation. \
107 * [Issue #217](https://github.com/json-c/json-c/issues/217) - Checking for functions in float.h \
108 * [Issue #218](https://github.com/json-c/json-c/issues/218) - Use a macro to indicate C99 to the compiler \
109 * [Issue #219](https://github.com/json-c/json-c/issues/219) - Fix various potential null ptr deref and int32 overflows \
110 * [Issue #220](https://github.com/json-c/json-c/issues/220) - Add utility function for comparing json_objects \
111 * [Issue #221](https://github.com/json-c/json-c/issues/221) - JSON_C_TO_STRING_NOSLASHESCAPE works incorrectly \
112 * [Issue #222](https://github.com/json-c/json-c/issues/222) - Fix issue #221: JSON_C_TO_STRING_NOSLASHESCAPE works incorrectly \
113 * [Issue #223](https://github.com/json-c/json-c/issues/223) - Clarify json_object_get_string documentation of NULL handling & return \
114 * [Issue #224](https://github.com/json-c/json-c/issues/224) - json_tokener.c - all warnings being treated as errors \
115 * [Issue #225](https://github.com/json-c/json-c/issues/225) - Hi, will you support clib as a "registry"? \
116 * [Issue #227](https://github.com/json-c/json-c/issues/227) - Bump SOVERSION to 3 \
117 * [Issue #228](https://github.com/json-c/json-c/issues/228) - avoid double slashes from json \
118 * [Issue #229](https://github.com/json-c/json-c/issues/229) - configure fails: checking size of size_t... configure: error: cannot determine a size for size_t \
119 * [Issue #230](https://github.com/json-c/json-c/issues/230) - Use stdint.h to check for size_t size \
120 * [Issue #231](https://github.com/json-c/json-c/issues/231) - Fix size_t size check for first-time builds \
121 * [Issue #232](https://github.com/json-c/json-c/issues/232) - tests/tests1: fix printf format for size_t arguments \
122 * [Issue #233](https://github.com/json-c/json-c/issues/233) - Include stddef.h in json_object.h \
123 * [Issue #234](https://github.com/json-c/json-c/issues/234) - Add public API to use userdata independently of custom serializer \
124 * [Issue #235](https://github.com/json-c/json-c/issues/235) - Undefined symbols Error for architecture x86_64 on Mac \
125 * [Issue #236](https://github.com/json-c/json-c/issues/236) - Building a project which uses json-c with flag -Wcast-qual causes compilation errors \
126 * [Issue #237](https://github.com/json-c/json-c/issues/237) - handle escaped utf-8 \
127 * [Issue #238](https://github.com/json-c/json-c/issues/238) - linkhash.c: optimised the table_free path \
128 * [Issue #239](https://github.com/json-c/json-c/issues/239) - initialize null terminator of new printbuf \
129 * [Issue #240](https://github.com/json-c/json-c/issues/240) - Compile error: Variable set but not used \
130 * [Issue #241](https://github.com/json-c/json-c/issues/241) - getting error in date string 19\/07\/2016, fixed for error 19/07/2016 \
131 * [Issue #242](https://github.com/json-c/json-c/issues/242) - json_tokener_parse error \
132 * [Issue #243](https://github.com/json-c/json-c/issues/243) - Fix #165 \
133 * [Issue #244](https://github.com/json-c/json-c/issues/244) - Error while compiling source from RHEL5, could you please help me to fix this \
134 * [Issue #245](https://github.com/json-c/json-c/issues/245) - json-c compile in window xp \
135 * [Issue #246](https://github.com/json-c/json-c/issues/246) - Mac: uselocale failed to build \
136 * [Issue #247](https://github.com/json-c/json-c/issues/247) - json_object_array_del_idx function has segment fault error? \
137 * [Issue #248](https://github.com/json-c/json-c/issues/248) - Minor changes in C source code \
138 * [Issue #249](https://github.com/json-c/json-c/issues/249) - Improving README \
139 * [Issue #250](https://github.com/json-c/json-c/issues/250) - Improving .gitignore \
140 * [Issue #251](https://github.com/json-c/json-c/issues/251) - Adding a file for EditorConfig \
141 * [Issue #252](https://github.com/json-c/json-c/issues/252) - Very minor changes not related to C source code \
142 * [Issue #253](https://github.com/json-c/json-c/issues/253) - Adding a test with cppcheck for Travis CI \
143 * [Issue #254](https://github.com/json-c/json-c/issues/254) - Very minor changes to some tests \
144 * [Issue #255](https://github.com/json-c/json-c/issues/255) - Minor changes in C source code \
145 * [Issue #256](https://github.com/json-c/json-c/issues/256) - Mailing list dead? \
146 * [Issue #257](https://github.com/json-c/json-c/issues/257) - Defining a coding style \
147 * [Issue #258](https://github.com/json-c/json-c/issues/258) - Enable CI services \
148 * [Issue #259](https://github.com/json-c/json-c/issues/259) - Fails to parse valid json \
149 * [Issue #260](https://github.com/json-c/json-c/issues/260) - Adding an object to itself \
150 * [Issue #261](https://github.com/json-c/json-c/issues/261) - Lack of proper documentation \
151 * [Issue #262](https://github.com/json-c/json-c/issues/262) - Add Cmakefile and fix compiler warning. \
152 * [Issue #263](https://github.com/json-c/json-c/issues/263) - Compiler Warnings with VS2015 \
153 * [Issue #264](https://github.com/json-c/json-c/issues/264) - successed in simple test while failed in my project \
154 * [Issue #265](https://github.com/json-c/json-c/issues/265) - Conformance report for reference \
155 * [Issue #266](https://github.com/json-c/json-c/issues/266) - crash perhaps related to reference counting \
156 * [Issue #267](https://github.com/json-c/json-c/issues/267) - Removes me as Win32 maintainer, because I'm not. \
157 * [Issue #268](https://github.com/json-c/json-c/issues/268) - Documentation of json_object_to_json_string gives no information about memory management \
158 * [Issue #269](https://github.com/json-c/json-c/issues/269) - json_object_<type>_set(json_object *o,<type> value) API for value setting in json object private structure \
159 * [Issue #270](https://github.com/json-c/json-c/issues/270) - new API json_object_new_double_f(doubel d,const char * fmt); \
160 * [Issue #271](https://github.com/json-c/json-c/issues/271) - Cannot compile using CMake on macOS \
161 * [Issue #273](https://github.com/json-c/json-c/issues/273) - fixed wrong object name in json_object_all_values_equal \
162 * [Issue #274](https://github.com/json-c/json-c/issues/274) - Support for 64 bit pointers on Windows \
163 * [Issue #275](https://github.com/json-c/json-c/issues/275) - Out-of-bounds read in json_tokener_parse_ex \
164 * [Issue #276](https://github.com/json-c/json-c/issues/276) - ./configure for centos release 6.7(final) failure \
165 * [Issue #277](https://github.com/json-c/json-c/issues/277) - Json object set xxx \
166 * [Issue #278](https://github.com/json-c/json-c/issues/278) - Serialization of double with no fractional component drops trailing zero \
167 * [Issue #279](https://github.com/json-c/json-c/issues/279) - Segmentation fault in array_list_length() \
168 * [Issue #280](https://github.com/json-c/json-c/issues/280) - Should json_object_array_get_idx check whether input obj is array? \
169 * [Issue #281](https://github.com/json-c/json-c/issues/281) - how to pretty print json-c? \
170 * [Issue #282](https://github.com/json-c/json-c/issues/282) - ignore temporary files \
171 * [Issue #283](https://github.com/json-c/json-c/issues/283) - json_pointer: add first revision based on RFC 6901 \
172 * [Issue #284](https://github.com/json-c/json-c/issues/284) - Resusing json_tokener object \
173 * [Issue #285](https://github.com/json-c/json-c/issues/285) - Revert "compat/strdup.h: move common compat check for strdup() to own \
174 * [Issue #286](https://github.com/json-c/json-c/issues/286) - json_tokener_parse_ex() returns json_tokener_continue on zero-length string \
175 * [Issue #287](https://github.com/json-c/json-c/issues/287) - json_pointer: extend setter & getter with printf() style arguments \
176 * [Issue #288](https://github.com/json-c/json-c/issues/288) - Fix _GNU_SOURCE define for vasprintf \
177 * [Issue #289](https://github.com/json-c/json-c/issues/289) - bugfix: floating point representaion without fractional part \
178 * [Issue #290](https://github.com/json-c/json-c/issues/290) - duplicate an json_object \
179 * [Issue #291](https://github.com/json-c/json-c/issues/291) - isspace assert error \
180 * [Issue #292](https://github.com/json-c/json-c/issues/292) - configure error "./configure: line 13121: syntax error near unexpected token `-Wall'" \
181 * [Issue #293](https://github.com/json-c/json-c/issues/293) - how to make with bitcode for ios \
182 * [Issue #294](https://github.com/json-c/json-c/issues/294) - Adding UTF-8 validation. Fixes #122 \
183 * [Issue #295](https://github.com/json-c/json-c/issues/295) - cross compile w/ mingw \
184 * [Issue #296](https://github.com/json-c/json-c/issues/296) - Missing functions header in json_object.h \
185 * [Issue #297](https://github.com/json-c/json-c/issues/297) - could not parse string to Json object? Like string str=\"helloworld;E\\test\\log\\;end\" \
186 * [Issue #298](https://github.com/json-c/json-c/issues/298) - Building using CMake doesn't work \
187 * [Issue #299](https://github.com/json-c/json-c/issues/299) - Improve json_object -> string performance \
188 * [Issue #300](https://github.com/json-c/json-c/issues/300) - Running tests with MinGW build \
189 * [Issue #301](https://github.com/json-c/json-c/issues/301) - How to deep copy json_object in C++ ? \
190 * [Issue #302](https://github.com/json-c/json-c/issues/302) - json_tokener_parse_ex doesn't parse JSON values \
191 * [Issue #303](https://github.com/json-c/json-c/issues/303) - fix doc in tokener header file \
192 * [Issue #304](https://github.com/json-c/json-c/issues/304) - (.text+0x72846): undefined reference to `is_error' \
193 * [Issue #305](https://github.com/json-c/json-c/issues/305) - Fix compilation without C-99 option \
194 * [Issue #306](https://github.com/json-c/json-c/issues/306) - ./configure: line 12748 -error=deprecated-declarations \
195 * [Issue #307](https://github.com/json-c/json-c/issues/307) - Memory leak in json_tokener_parse \
196 * [Issue #308](https://github.com/json-c/json-c/issues/308) - AM_PROG_LIBTOOL not found on Linux \
197 * [Issue #309](https://github.com/json-c/json-c/issues/309) - GCC 7 reports various -Wimplicit-fallthrough= errors \
198 * [Issue #310](https://github.com/json-c/json-c/issues/310) - Add FALLTHRU comment to handle GCC7 warnings. \
199 * [Issue #311](https://github.com/json-c/json-c/issues/311) - Fix error C3688 when compiling on Visual Studio 2015 \
200 * [Issue #312](https://github.com/json-c/json-c/issues/312) - Fix CMake Build process improved for MinGW and MSYS2 \
201 * [Issue #313](https://github.com/json-c/json-c/issues/313) - VERBOSE=1 make check; tests/test_util_file.test.c and tests/test_util_file.expected out of sync \
202 * [Issue #315](https://github.com/json-c/json-c/issues/315) - Passing -1 to json_tokener_parse_ex is possibly unsafe \
203 * [Issue #316](https://github.com/json-c/json-c/issues/316) - Memory Returned by json_object_to_json_string not freed \
204 * [Issue #317](https://github.com/json-c/json-c/issues/317) - json_object_get_string gives segmentation error \
205 * [Issue #318](https://github.com/json-c/json-c/issues/318) - PVS-Studio static analyzer analyze results \
206 * [Issue #319](https://github.com/json-c/json-c/issues/319) - Windows: Fix dynamic library build with Visual Studio \
207 * [Issue #320](https://github.com/json-c/json-c/issues/320) - Can't compile in Mac OS X El Capitan \
208 * [Issue #321](https://github.com/json-c/json-c/issues/321) - build,cmake: fix vasprintf implicit definition and generate both static & shared libs \
209 * [Issue #322](https://github.com/json-c/json-c/issues/322) - can not link with libjson-c.a \
210 * [Issue #323](https://github.com/json-c/json-c/issues/323) - implicit fallthrough detected by gcc 7.1 \
211 * [Issue #324](https://github.com/json-c/json-c/issues/324) - JsonPath like function? \
212 * [Issue #325](https://github.com/json-c/json-c/issues/325) - Fix stack buffer overflow in json_object_double_to_json_string_format() \
213 * [Issue #327](https://github.com/json-c/json-c/issues/327) - why json-c so hard to compile \
214 * [Issue #328](https://github.com/json-c/json-c/issues/328) - json_object: implement json_object_deep_copy() function \
215 * [Issue #329](https://github.com/json-c/json-c/issues/329) - build,cmake: build,cmake: rename libjson-c-static.a to libjson-c.a \
216 * [Issue #330](https://github.com/json-c/json-c/issues/330) - tests: symlink basic tests to a single file that has the common code \
217 * [Issue #331](https://github.com/json-c/json-c/issues/331) - Safe use of snprintf() / vsnprintf() for Visual studio, and thread-safety fix \
218 * [Issue #332](https://github.com/json-c/json-c/issues/332) - Valgrind: invalid read after json_object_array_del_idx. \
219 * [Issue #333](https://github.com/json-c/json-c/issues/333) - Replace obsolete AM_PROG_LIBTOOL \
220 * [Issue #335](https://github.com/json-c/json-c/issues/335) - README.md: show build status tag from travis-ci.org \
221 * [Issue #336](https://github.com/json-c/json-c/issues/336) - tests: fix tests in travis-ci.org \
222 * [Issue #337](https://github.com/json-c/json-c/issues/337) - Synchronize "potentially racy" random seed in lh_char_hash() \
223 * [Issue #338](https://github.com/json-c/json-c/issues/338) - implement json_object_int_inc(json_object *, int64_t) \
224 * [Issue #339](https://github.com/json-c/json-c/issues/339) - Json schema validation \
225 * [Issue #340](https://github.com/json-c/json-c/issues/340) - strerror_override: add extern "C" and JSON_EXPORT specifiers for Visual C++ compilers \
226 * [Issue #341](https://github.com/json-c/json-c/issues/341) - character "/" parse as "\/" \
227 * [Issue #342](https://github.com/json-c/json-c/issues/342) - No such file or directory "/usr/include/json.h" \
228 * [Issue #343](https://github.com/json-c/json-c/issues/343) - Can't parse json \
229 * [Issue #344](https://github.com/json-c/json-c/issues/344) - Fix Mingw build \
230 * [Issue #345](https://github.com/json-c/json-c/issues/345) - Fix make dist and make distcheck \
231 * [Issue #346](https://github.com/json-c/json-c/issues/346) - Clamp double to int32 when narrowing in json_object_get_int. \
232 * [Issue #347](https://github.com/json-c/json-c/issues/347) - MSVC linker error json_c_strerror \
233 * [Issue #348](https://github.com/json-c/json-c/issues/348) - why \
234 * [Issue #349](https://github.com/json-c/json-c/issues/349) - `missing` is missing? \
235 * [Issue #350](https://github.com/json-c/json-c/issues/350) - stderror-override and disable-shared \
236 * [Issue #351](https://github.com/json-c/json-c/issues/351) - SIZE_T_MAX redefined from limits.h \
237 * [Issue #352](https://github.com/json-c/json-c/issues/352) - `INSTALL` overrides an automake script. \
238 * [Issue #353](https://github.com/json-c/json-c/issues/353) - Documentation issues \
239 * [Issue #354](https://github.com/json-c/json-c/issues/354) - Fixes #351 #352 #353 \
240 * [Issue #355](https://github.com/json-c/json-c/issues/355) - 1.make it can been compiled with Visual Studio 2010 by modify the CMakeList.txt and others \
241 * [Issue #356](https://github.com/json-c/json-c/issues/356) - VS2008 test test_util_file.cpp err! \
242 * [Issue #357](https://github.com/json-c/json-c/issues/357) - __json_c_strerror incompatibility with link-time optimization \
243 * [Issue #358](https://github.com/json-c/json-c/issues/358) - make issue \
244 * [Issue #359](https://github.com/json-c/json-c/issues/359) - update CMakeLists.txt for compile with visual studio at least 2010 \
245 * [Issue #360](https://github.com/json-c/json-c/issues/360) - Use strtoll() to parse ints \
246 * [Issue #361](https://github.com/json-c/json-c/issues/361) - Fix double to int cast overflow in json_object_get_int64. \
247 * [Issue #362](https://github.com/json-c/json-c/issues/362) - CMake Package Config \
248 * [Issue #363](https://github.com/json-c/json-c/issues/363) - Issue #338, add json_object_add_int functions \
249 * [Issue #364](https://github.com/json-c/json-c/issues/364) - Cmake is Errir \
250 * [Issue #365](https://github.com/json-c/json-c/issues/365) - added fallthrough for gcc7 \
251 * [Issue #366](https://github.com/json-c/json-c/issues/366) - how to check the json string,crash! \
252 * [Issue #367](https://github.com/json-c/json-c/issues/367) - Is json-c support "redirect" semantic? \
253 * [Issue #368](https://github.com/json-c/json-c/issues/368) - Add examples \
254 * [Issue #369](https://github.com/json-c/json-c/issues/369) - How to build json-c library for android? \
255 * [Issue #370](https://github.com/json-c/json-c/issues/370) - Compiling using clang-cl \
256 * [Issue #371](https://github.com/json-c/json-c/issues/371) - Invalid parsing for Infinity with json-c 0.12 \
257 * [Issue #372](https://github.com/json-c/json-c/issues/372) - Json-c 0.12: Fixed Infinity bug \
258 * [Issue #373](https://github.com/json-c/json-c/issues/373) - build: fix build on appveyor CI \
259 * [Issue #374](https://github.com/json-c/json-c/issues/374) - Undefined symbols for architecture x86_64: \
260 * [Issue #375](https://github.com/json-c/json-c/issues/375) - what would happened when json_object_object_add add the same key \
261 * [Issue #376](https://github.com/json-c/json-c/issues/376) - Eclipse error \
262 * [Issue #377](https://github.com/json-c/json-c/issues/377) - on gcc 7.2.0 on my linux distribution with json-c 2013-04-02 source \
263 * [Issue #378](https://github.com/json-c/json-c/issues/378) - Eclipse: library (libjson-c) not found, but configured \
264 * [Issue #379](https://github.com/json-c/json-c/issues/379) - error: this statement may fall through \[-Werror=implicit-fallthrough=\] \
265 * [Issue #380](https://github.com/json-c/json-c/issues/380) - Build on Windows \
266 * [Issue #381](https://github.com/json-c/json-c/issues/381) - Fix makedist \
267 * [Issue #382](https://github.com/json-c/json-c/issues/382) - Memory leak for json_tokener_parse_ex for version 0.12.1 \
268 * [Issue #383](https://github.com/json-c/json-c/issues/383) - Fix a compiler warning. \
269 * [Issue #384](https://github.com/json-c/json-c/issues/384) - Fix a VS 2015 compiler warnings. \
1313 Issues and Pull Requests closed for the 0.14 release (since commit d582d3a(2017-12-07) to a911439(2020-04-17))
1414
1515
16 [Issue #122](https://github.com/json-c/json-c/issues/122) - Add utf-8 validation when parsing strings. \
17 [Issue #139](https://github.com/json-c/json-c/issues/139) - json_object_from_file cannot accept max_depth \
18 [Issue #143](https://github.com/json-c/json-c/issues/143) - RFE / enhancement for full 64-bit signed/unsigned support \
19 [Issue #147](https://github.com/json-c/json-c/issues/147) - Please introduce soname bump if API changed \
20 [Issue #166](https://github.com/json-c/json-c/issues/166) - Need a way to specify nesting depth when opening JSON file \
21 [Issue #226](https://github.com/json-c/json-c/issues/226) - There is no json_object_new_null() \
22 [Issue #314](https://github.com/json-c/json-c/issues/314) - new release ? \
23 [Issue #326](https://github.com/json-c/json-c/issues/326) - Please extend api json_object_get_uint64 \
24 [Issue #334](https://github.com/json-c/json-c/issues/334) - Switch json-c builds to use CMake \
25 [Issue #386](https://github.com/json-c/json-c/issues/386) - Makefile: Add ACLOCAL_AMFLAGS \
26 [Issue #387](https://github.com/json-c/json-c/issues/387) - doc: Use other doxygen feature to specify mainpage \
27 [Issue #388](https://github.com/json-c/json-c/issues/388) - json_object: Add size_t json_object_sizeof() \
28 [Issue #389](https://github.com/json-c/json-c/issues/389) - json_object: Avoid double free (and thus a segfault) when ref_count gets < 0 \
29 [Issue #390](https://github.com/json-c/json-c/issues/390) - json_object: Add const size_t json_c_object_sizeof() \
30 [Issue #391](https://github.com/json-c/json-c/issues/391) - Fix non-GNUC define for JSON_C_CONST_FUNCTION \
31 [Issue #392](https://github.com/json-c/json-c/issues/392) - json_object: Avoid invalid free (and thus a segfault) when ref_count gets < 0 \
32 [Issue #393](https://github.com/json-c/json-c/issues/393) - json_object_private: Use unsigned 32-bit integer type for refcount \
33 [Issue #394](https://github.com/json-c/json-c/issues/394) - Problem serializing double \
34 [Issue #395](https://github.com/json-c/json-c/issues/395) - Key gets modified if it contains "\" \
35 [Issue #396](https://github.com/json-c/json-c/issues/396) - Build failure with no threads uClibc toolchain \
36 [Issue #397](https://github.com/json-c/json-c/issues/397) - update json object with key. \
37 [Issue #398](https://github.com/json-c/json-c/issues/398) - Build failed. \
38 [Issue #399](https://github.com/json-c/json-c/issues/399) - Avoid uninitialized variable warnings \
39 [Issue #400](https://github.com/json-c/json-c/issues/400) - How to generate static lib (.a) \
40 [Issue #401](https://github.com/json-c/json-c/issues/401) - Warnings with Valgrind \
41 [Issue #402](https://github.com/json-c/json-c/issues/402) - Add fuzzers from OSS-Fuzz \
42 [Issue #403](https://github.com/json-c/json-c/issues/403) - Segmentation fault when double quotes is used \
43 [Issue #404](https://github.com/json-c/json-c/issues/404) - valgrind: memory leak \
44 [Issue #405](https://github.com/json-c/json-c/issues/405) - Missing API to determine an object is empty \
45 [Issue #406](https://github.com/json-c/json-c/issues/406) - Undefine NDEBUG for tests \
46 [Issue #407](https://github.com/json-c/json-c/issues/407) - json_tokener_parse is crash \
47 [Issue #408](https://github.com/json-c/json-c/issues/408) - bug in array_list_del_idx when array_list_length()==1 \
48 [Issue #410](https://github.com/json-c/json-c/issues/410) - Fixed typos \
49 [Issue #411](https://github.com/json-c/json-c/issues/411) - Crash- signal SIGSEGV, Segmentation fault. ../sysdeps/x86_64/strlen.S: No such file or directory. \
50 [Issue #412](https://github.com/json-c/json-c/issues/412) - json_type changes during inter process communication. \
51 [Issue #413](https://github.com/json-c/json-c/issues/413) - how to read object of type `json_object *` in c++ \
52 [Issue #414](https://github.com/json-c/json-c/issues/414) - [Question] How JSON-c stores the serialized data in memory? \
53 [Issue #415](https://github.com/json-c/json-c/issues/415) - Resolve windows name conflict \
54 [Issue #416](https://github.com/json-c/json-c/issues/416) - segmentation fault in json_tokener_parse \
55 [Issue #417](https://github.com/json-c/json-c/issues/417) - json_tokener_parse json_object_object_get_ex with string value which is json string \
56 [Issue #418](https://github.com/json-c/json-c/issues/418) - json_object_from_* return value documented incorrectly \
57 [Issue #419](https://github.com/json-c/json-c/issues/419) - Suggestion: document (and define) that json_object_put() accepts NULL pointer to object \
58 [Issue #420](https://github.com/json-c/json-c/issues/420) - arraylist: Fixed names of parameters for callback function \
59 [Issue #421](https://github.com/json-c/json-c/issues/421) - install json_object_iterator.h header file \
60 [Issue #422](https://github.com/json-c/json-c/issues/422) - json_object_get_double() does not set errno when there is no valid conversion \
61 [Issue #423](https://github.com/json-c/json-c/issues/423) - memory leak \
62 [Issue #424](https://github.com/json-c/json-c/issues/424) - Parse string contains "\" or "/" errors \
63 [Issue #425](https://github.com/json-c/json-c/issues/425) - what this is? \
64 [Issue #426](https://github.com/json-c/json-c/issues/426) - __deprecated not supported on clang. \
65 [Issue #427](https://github.com/json-c/json-c/issues/427) - CMake: builds involving this target will not be correct \
66 [Issue #430](https://github.com/json-c/json-c/issues/430) - json_object_object_del() and Segmentation fault \
67 [Issue #431](https://github.com/json-c/json-c/issues/431) - cmake: Bump required version \
68 [Issue #432](https://github.com/json-c/json-c/issues/432) - The real CMake support. \
69 [Issue #433](https://github.com/json-c/json-c/issues/433) - The real CMake support. \
70 [Issue #434](https://github.com/json-c/json-c/issues/434) - The real CMake support \
71 [Issue #435](https://github.com/json-c/json-c/issues/435) - json_object_object_del() segmentation fault \
72 [Issue #436](https://github.com/json-c/json-c/issues/436) - Improve pkgconfig setting \
73 [Issue #437](https://github.com/json-c/json-c/issues/437) - Bad link in README.md \
74 [Issue #438](https://github.com/json-c/json-c/issues/438) - Bad link in README.html \
75 [Issue #439](https://github.com/json-c/json-c/issues/439) - reserved identifier violation \
76 [Issue #440](https://github.com/json-c/json-c/issues/440) - Use of angle brackets around file names for include statements \
77 [Issue #441](https://github.com/json-c/json-c/issues/441) - fix c flag loss during cmake building \
78 [Issue #442](https://github.com/json-c/json-c/issues/442) - error in configure file \
79 [Issue #443](https://github.com/json-c/json-c/issues/443) - remove pretty spaces when using pretty tabs \
80 [Issue #444](https://github.com/json-c/json-c/issues/444) - Document refcount of json_tokener_parse_ex return \
81 [Issue #445](https://github.com/json-c/json-c/issues/445) - Add missing "make check" target to cmake config \
82 [Issue #446](https://github.com/json-c/json-c/issues/446) - Forward slashes get escaped \
83 [Issue #448](https://github.com/json-c/json-c/issues/448) - Buffer overflow in json-c \
84 [Issue #449](https://github.com/json-c/json-c/issues/449) - Need of json_type_int64 returned by json_object_get_type() \
85 [Issue #450](https://github.com/json-c/json-c/issues/450) - Allow use json-c cmake as subproject \
86 [Issue #452](https://github.com/json-c/json-c/issues/452) - Update README.md \
87 [Issue #453](https://github.com/json-c/json-c/issues/453) - Fixed misalignment in JSON string due to space after \n being printed... \
88 [Issue #454](https://github.com/json-c/json-c/issues/454) - json_object_private: save 8 bytes in struct json_object in 64-bit arc… \
89 [Issue #455](https://github.com/json-c/json-c/issues/455) - index.html:fix dead link \
90 [Issue #456](https://github.com/json-c/json-c/issues/456) - STYLE.txt:remove executable permissions \
91 [Issue #457](https://github.com/json-c/json-c/issues/457) - .gitignore:add build directory \
92 [Issue #458](https://github.com/json-c/json-c/issues/458) - README.md:fix dead "file.html" link \
93 [Issue #459](https://github.com/json-c/json-c/issues/459) - README.html:fix link to Doxygen docs, remove WIN32 link \
94 [Issue #460](https://github.com/json-c/json-c/issues/460) - No docs for json_object_new_string_len() \
95 [Issue #461](https://github.com/json-c/json-c/issues/461) - json_object.c:set errno in json_object_get_double() \
96 [Issue #462](https://github.com/json-c/json-c/issues/462) - json_object.h:document json_object_new_string_len() \
97 [Issue #463](https://github.com/json-c/json-c/issues/463) - please check newlocale api first argument valuse. \
98 [Issue #465](https://github.com/json-c/json-c/issues/465) - CMakeLists.txt doesn't contain json_object_iterator.h which json.h includes \
99 [Issue #466](https://github.com/json-c/json-c/issues/466) - configure:3610: error: C compiler cannot create executables \
100 [Issue #467](https://github.com/json-c/json-c/issues/467) - Fix compiler warnings \
101 [Issue #468](https://github.com/json-c/json-c/issues/468) - Fix compiler warnings \
102 [Issue #469](https://github.com/json-c/json-c/issues/469) - Build under alpine with pecl install & docker-php-ext-enable? \
103 [Issue #470](https://github.com/json-c/json-c/issues/470) - cfuhash_foreach_remove doesn't upate cfuhash_num_entries \
104 [Issue #472](https://github.com/json-c/json-c/issues/472) - Segmentation fault in json_object_iter_begin \
105 [Issue #473](https://github.com/json-c/json-c/issues/473) - Convert ChangeLog to valid UTF-8 encoding. \
106 [Issue #474](https://github.com/json-c/json-c/issues/474) - Installation directories empty with CMake in pkg-config. \
107 [Issue #475](https://github.com/json-c/json-c/issues/475) - improvement proposal for json_object_object_foreach \
108 [Issue #477](https://github.com/json-c/json-c/issues/477) - Hang/Crash with large strings \
109 [Issue #478](https://github.com/json-c/json-c/issues/478) - json_object_get_string_len returns 0 when value is number \
110 [Issue #479](https://github.com/json-c/json-c/issues/479) - I want to use it in iOS or Android but I can't compile \
111 [Issue #480](https://github.com/json-c/json-c/issues/480) - json-c-0.12.1 failed making from source code \
112 [Issue #481](https://github.com/json-c/json-c/issues/481) - error while loading shared libraries: libjson-c.so.4 \
113 [Issue #482](https://github.com/json-c/json-c/issues/482) - Error "double free or corruption" after free() \
114 [Issue #483](https://github.com/json-c/json-c/issues/483) - compatible with rarely-used Chinese characters in GBK charset \
115 [Issue #485](https://github.com/json-c/json-c/issues/485) - Install CMake module files \
116 [Issue #486](https://github.com/json-c/json-c/issues/486) - In the case of negative double value, it is formatted without including ".0" \
117 [Issue #488](https://github.com/json-c/json-c/issues/488) - Some APIs are not exported when built as shared lib on Win32 \
118 [Issue #489](https://github.com/json-c/json-c/issues/489) - Don't use -Werror by default \
119 [Issue #490](https://github.com/json-c/json-c/issues/490) - do not compile with -Werror by default \
120 [Issue #491](https://github.com/json-c/json-c/issues/491) - build: add option --disable-werror to configure \
121 [Issue #492](https://github.com/json-c/json-c/issues/492) - lack some quick usage in readme \
122 [Issue #494](https://github.com/json-c/json-c/issues/494) - Code generator? \
123 [Issue #495](https://github.com/json-c/json-c/issues/495) - README.md:fix 2 typos \
124 [Issue #496](https://github.com/json-c/json-c/issues/496) - json_pointer.h:suggest minor grammar improvement for pointer doc \
125 [Issue #497](https://github.com/json-c/json-c/issues/497) - add common header for all tests \
126 [Issue #498](https://github.com/json-c/json-c/issues/498) - double_serializer_test fails (with valgrind) \
127 [Issue #499](https://github.com/json-c/json-c/issues/499) - .travis.yml:test on more recent clang and gcc versions \
128 [Issue #500](https://github.com/json-c/json-c/issues/500) - test/Makefile.am:add missing deps for test1 and test2 \
129 [Issue #501](https://github.com/json-c/json-c/issues/501) - undefine NDEBUG for tests \
130 [Issue #502](https://github.com/json-c/json-c/issues/502) - configure error \
131 [Issue #503](https://github.com/json-c/json-c/issues/503) - json-c retuns OK when Invalid json string is passed \
132 [Issue #504](https://github.com/json-c/json-c/issues/504) - json_object_put coredump \
133 [Issue #505](https://github.com/json-c/json-c/issues/505) - Add vcpkg installation instructions \
134 [Issue #506](https://github.com/json-c/json-c/issues/506) - Cannot parse more than one object \
135 [Issue #509](https://github.com/json-c/json-c/issues/509) - Sometimes a double value is not serialized \
136 [Issue #510](https://github.com/json-c/json-c/issues/510) - Bump so-name and improve CMake \
137 [Issue #511](https://github.com/json-c/json-c/issues/511) - Reduce lines for better optimization \
138 [Issue #512](https://github.com/json-c/json-c/issues/512) - Properly append to CMAKE_C_FLAGS string \
139 [Issue #513](https://github.com/json-c/json-c/issues/513) - What does `userdata` means?And what is the case we can use it? \
140 [Issue #514](https://github.com/json-c/json-c/issues/514) - Json c 0.13 \
141 [Issue #515](https://github.com/json-c/json-c/issues/515) - Mies suomesta fixes segfaults and logic errors \
142 [Issue #516](https://github.com/json-c/json-c/issues/516) - Lja slight mods \
143 [Issue #518](https://github.com/json-c/json-c/issues/518) - Escape character "\\003\", get unexpected value \
144 [Issue #519](https://github.com/json-c/json-c/issues/519) - Add test case obj token \
145 [Issue #520](https://github.com/json-c/json-c/issues/520) - Adding type uint64 \
146 [Issue #521](https://github.com/json-c/json-c/issues/521) - build cmake windows 10 \
147 [Issue #522](https://github.com/json-c/json-c/issues/522) - update json_visit testcase \
148 [Issue #523](https://github.com/json-c/json-c/issues/523) - update tsetcase for tokener_c \
149 [Issue #524](https://github.com/json-c/json-c/issues/524) - Increase coverage \
150 [Issue #525](https://github.com/json-c/json-c/issues/525) - update pointer test case \
151 [Issue #526](https://github.com/json-c/json-c/issues/526) - Increased the test coverage of printbuf.c 82% to 92%. \
152 [Issue #527](https://github.com/json-c/json-c/issues/527) - Arraylist testcase \
153 [Issue #528](https://github.com/json-c/json-c/issues/528) - Solve issue #108. Skip \u0000 while parsing. \
154 [Issue #529](https://github.com/json-c/json-c/issues/529) - Increased the test coverage of json_c_version.c 0% to 100%. \
155 [Issue #530](https://github.com/json-c/json-c/issues/530) - validate utf-8 string before parse \
156 [Issue #531](https://github.com/json-c/json-c/issues/531) - validate utf-8 string \
157 [Issue #532](https://github.com/json-c/json-c/issues/532) - json_object_object_get_ex returning the original object \
158 [Issue #533](https://github.com/json-c/json-c/issues/533) - Fix "make check" \
159 [Issue #535](https://github.com/json-c/json-c/issues/535) - short string optimization: excessive array length \
160 [Issue #536](https://github.com/json-c/json-c/issues/536) - add json_object_new_null() \
161 [Issue #538](https://github.com/json-c/json-c/issues/538) - update shortstring and arraylist parameters \
162 [Issue #539](https://github.com/json-c/json-c/issues/539) - double serializes to the old value after set_double \
163 [Issue #541](https://github.com/json-c/json-c/issues/541) - add coveralls auto tool to json-c \
164 [Issue #542](https://github.com/json-c/json-c/issues/542) - add uint64 data to json-c \
165 [Issue #543](https://github.com/json-c/json-c/issues/543) - Readme \
166 [Issue #544](https://github.com/json-c/json-c/issues/544) - Increase distcheck target in cmake \
167 [Issue #545](https://github.com/json-c/json-c/issues/545) - add doc target in cmake \
168 [Issue #546](https://github.com/json-c/json-c/issues/546) - Add uninstall target in cmake \
169 [Issue #547](https://github.com/json-c/json-c/issues/547) - modify json-c default build type, and fix up the assert() errors in t… \
170 [Issue #548](https://github.com/json-c/json-c/issues/548) - Solve some problems about cmake build type (debug/release) \
171 [Issue #549](https://github.com/json-c/json-c/issues/549) - lib installation issues \
172 [Issue #550](https://github.com/json-c/json-c/issues/550) - Format codes with clang-format tool? \
173 [Issue #551](https://github.com/json-c/json-c/issues/551) - Allow hexadecimal number format convention parsing \
174 [Issue #553](https://github.com/json-c/json-c/issues/553) - Fix/clang ubsan \
175 [Issue #554](https://github.com/json-c/json-c/issues/554) - RFC 8259 compatibility mode \
176 [Issue #555](https://github.com/json-c/json-c/issues/555) - Format json-c with clang-format tool \
177 [Issue #556](https://github.com/json-c/json-c/issues/556) - Fixes various Wreturn-type and Wimplicit-fallthrough errors on Mingw-w64 \
178 [Issue #557](https://github.com/json-c/json-c/issues/557) - Add option in CMAKE to not build documentation \
179 [Issue #558](https://github.com/json-c/json-c/issues/558) - modify the doc target message \
180 [Issue #559](https://github.com/json-c/json-c/issues/559) - json_c_visit() not exported on Windows \
181 [Issue #560](https://github.com/json-c/json-c/issues/560) - error: implicit declaration of function '_strtoi64' \
182 [Issue #561](https://github.com/json-c/json-c/issues/561) - add the badge in README.md and test the coveralls \
183 [Issue #562](https://github.com/json-c/json-c/issues/562) - Bugfix and testcases supplements \
184 [Issue #563](https://github.com/json-c/json-c/issues/563) - Changed order of calloc args to match stdlib \
185 [Issue #564](https://github.com/json-c/json-c/issues/564) - Remove autogenerated files \
186 [Issue #565](https://github.com/json-c/json-c/issues/565) - test the CI and ignore this PR \
187 [Issue #566](https://github.com/json-c/json-c/issues/566) - add the json_types.h to Makefile.am \
188 [Issue #567](https://github.com/json-c/json-c/issues/567) - Install json_types.h with autotools build as well. \
189 [Issue #568](https://github.com/json-c/json-c/issues/568) - Adding better support to MinGW \
190 [Issue #569](https://github.com/json-c/json-c/issues/569) - Handling of -Bsymbolic-function in CMakeLists.txt is deficient \
191 [Issue #571](https://github.com/json-c/json-c/issues/571) - CMake: Bump SONAME to 5. \
192 [Issue #572](https://github.com/json-c/json-c/issues/572) - Small fixes to CMakeLists \
193 [Issue #573](https://github.com/json-c/json-c/issues/573) - Fix coveralls submission. \
194 [Issue #574](https://github.com/json-c/json-c/issues/574) - autogen.sh missing from repository \
195 [Issue #575](https://github.com/json-c/json-c/issues/575) - Small cosmetics. \
196 [Issue #576](https://github.com/json-c/json-c/issues/576) - Test coverage for json_c_version. \
197 [Issue #577](https://github.com/json-c/json-c/issues/577) - Be verbose on failing json_c_version test. \
198 [Issue #578](https://github.com/json-c/json-c/issues/578) - CMake: Install pkgconfig file in proper location by default \
199 [Issue #579](https://github.com/json-c/json-c/issues/579) - Enforce strict prototypes. \
200 [Issue #580](https://github.com/json-c/json-c/issues/580) - Fix CMake tests for enforced strict prototypes. \
201 [Issue #581](https://github.com/json-c/json-c/issues/581) - CMakeLists: do not enforce strict prototypes on Windows. \
16 * [Issue #122](https://github.com/json-c/json-c/issues/122) - Add utf-8 validation when parsing strings. \
17 * [Issue #139](https://github.com/json-c/json-c/issues/139) - json_object_from_file cannot accept max_depth \
18 * [Issue #143](https://github.com/json-c/json-c/issues/143) - RFE / enhancement for full 64-bit signed/unsigned support \
19 * [Issue #147](https://github.com/json-c/json-c/issues/147) - Please introduce soname bump if API changed \
20 * [Issue #166](https://github.com/json-c/json-c/issues/166) - Need a way to specify nesting depth when opening JSON file \
21 * [Issue #226](https://github.com/json-c/json-c/issues/226) - There is no json_object_new_null() \
22 * [Issue #314](https://github.com/json-c/json-c/issues/314) - new release ? \
23 * [Issue #326](https://github.com/json-c/json-c/issues/326) - Please extend api json_object_get_uint64 \
24 * [Issue #334](https://github.com/json-c/json-c/issues/334) - Switch json-c builds to use CMake \
25 * [Issue #386](https://github.com/json-c/json-c/issues/386) - Makefile: Add ACLOCAL_AMFLAGS \
26 * [Issue #387](https://github.com/json-c/json-c/issues/387) - doc: Use other doxygen feature to specify mainpage \
27 * [Issue #388](https://github.com/json-c/json-c/issues/388) - json_object: Add size_t json_object_sizeof() \
28 * [Issue #389](https://github.com/json-c/json-c/issues/389) - json_object: Avoid double free (and thus a segfault) when ref_count gets < 0 \
29 * [Issue #390](https://github.com/json-c/json-c/issues/390) - json_object: Add const size_t json_c_object_sizeof() \
30 * [Issue #391](https://github.com/json-c/json-c/issues/391) - Fix non-GNUC define for JSON_C_CONST_FUNCTION \
31 * [Issue #392](https://github.com/json-c/json-c/issues/392) - json_object: Avoid invalid free (and thus a segfault) when ref_count gets < 0 \
32 * [Issue #393](https://github.com/json-c/json-c/issues/393) - json_object_private: Use unsigned 32-bit integer type for refcount \
33 * [Issue #394](https://github.com/json-c/json-c/issues/394) - Problem serializing double \
34 * [Issue #395](https://github.com/json-c/json-c/issues/395) - Key gets modified if it contains "\" \
35 * [Issue #396](https://github.com/json-c/json-c/issues/396) - Build failure with no threads uClibc toolchain \
36 * [Issue #397](https://github.com/json-c/json-c/issues/397) - update json object with key. \
37 * [Issue #398](https://github.com/json-c/json-c/issues/398) - Build failed. \
38 * [Issue #399](https://github.com/json-c/json-c/issues/399) - Avoid uninitialized variable warnings \
39 * [Issue #400](https://github.com/json-c/json-c/issues/400) - How to generate static lib (.a) \
40 * [Issue #401](https://github.com/json-c/json-c/issues/401) - Warnings with Valgrind \
41 * [Issue #402](https://github.com/json-c/json-c/issues/402) - Add fuzzers from OSS-Fuzz \
42 * [Issue #403](https://github.com/json-c/json-c/issues/403) - Segmentation fault when double quotes is used \
43 * [Issue #404](https://github.com/json-c/json-c/issues/404) - valgrind: memory leak \
44 * [Issue #405](https://github.com/json-c/json-c/issues/405) - Missing API to determine an object is empty \
45 * [Issue #406](https://github.com/json-c/json-c/issues/406) - Undefine NDEBUG for tests \
46 * [Issue #407](https://github.com/json-c/json-c/issues/407) - json_tokener_parse is crash \
47 * [Issue #408](https://github.com/json-c/json-c/issues/408) - bug in array_list_del_idx when array_list_length()==1 \
48 * [Issue #410](https://github.com/json-c/json-c/issues/410) - Fixed typos \
49 * [Issue #411](https://github.com/json-c/json-c/issues/411) - Crash- signal SIGSEGV, Segmentation fault. ../sysdeps/x86_64/strlen.S: No such file or directory. \
50 * [Issue #412](https://github.com/json-c/json-c/issues/412) - json_type changes during inter process communication. \
51 * [Issue #413](https://github.com/json-c/json-c/issues/413) - how to read object of type `json_object *` in c++ \
52 * [Issue #414](https://github.com/json-c/json-c/issues/414) - [Question] How JSON-c stores the serialized data in memory? \
53 * [Issue #415](https://github.com/json-c/json-c/issues/415) - Resolve windows name conflict \
54 * [Issue #416](https://github.com/json-c/json-c/issues/416) - segmentation fault in json_tokener_parse \
55 * [Issue #417](https://github.com/json-c/json-c/issues/417) - json_tokener_parse json_object_object_get_ex with string value which is json string \
56 * [Issue #418](https://github.com/json-c/json-c/issues/418) - json_object_from_* return value documented incorrectly \
57 * [Issue #419](https://github.com/json-c/json-c/issues/419) - Suggestion: document (and define) that json_object_put() accepts NULL pointer to object \
58 * [Issue #420](https://github.com/json-c/json-c/issues/420) - arraylist: Fixed names of parameters for callback function \
59 * [Issue #421](https://github.com/json-c/json-c/issues/421) - install json_object_iterator.h header file \
60 * [Issue #422](https://github.com/json-c/json-c/issues/422) - json_object_get_double() does not set errno when there is no valid conversion \
61 * [Issue #423](https://github.com/json-c/json-c/issues/423) - memory leak \
62 * [Issue #424](https://github.com/json-c/json-c/issues/424) - Parse string contains "\" or "/" errors \
63 * [Issue #425](https://github.com/json-c/json-c/issues/425) - what this is? \
64 * [Issue #426](https://github.com/json-c/json-c/issues/426) - __deprecated not supported on clang. \
65 * [Issue #427](https://github.com/json-c/json-c/issues/427) - CMake: builds involving this target will not be correct \
66 * [Issue #430](https://github.com/json-c/json-c/issues/430) - json_object_object_del() and Segmentation fault \
67 * [Issue #431](https://github.com/json-c/json-c/issues/431) - cmake: Bump required version \
68 * [Issue #432](https://github.com/json-c/json-c/issues/432) - The real CMake support. \
69 * [Issue #433](https://github.com/json-c/json-c/issues/433) - The real CMake support. \
70 * [Issue #434](https://github.com/json-c/json-c/issues/434) - The real CMake support \
71 * [Issue #435](https://github.com/json-c/json-c/issues/435) - json_object_object_del() segmentation fault \
72 * [Issue #436](https://github.com/json-c/json-c/issues/436) - Improve pkgconfig setting \
73 * [Issue #437](https://github.com/json-c/json-c/issues/437) - Bad link in README.md \
74 * [Issue #438](https://github.com/json-c/json-c/issues/438) - Bad link in README.html \
75 * [Issue #439](https://github.com/json-c/json-c/issues/439) - reserved identifier violation \
76 * [Issue #440](https://github.com/json-c/json-c/issues/440) - Use of angle brackets around file names for include statements \
77 * [Issue #441](https://github.com/json-c/json-c/issues/441) - fix c flag loss during cmake building \
78 * [Issue #442](https://github.com/json-c/json-c/issues/442) - error in configure file \
79 * [Issue #443](https://github.com/json-c/json-c/issues/443) - remove pretty spaces when using pretty tabs \
80 * [Issue #444](https://github.com/json-c/json-c/issues/444) - Document refcount of json_tokener_parse_ex return \
81 * [Issue #445](https://github.com/json-c/json-c/issues/445) - Add missing "make check" target to cmake config \
82 * [Issue #446](https://github.com/json-c/json-c/issues/446) - Forward slashes get escaped \
83 * [Issue #448](https://github.com/json-c/json-c/issues/448) - Buffer overflow in json-c \
84 * [Issue #449](https://github.com/json-c/json-c/issues/449) - Need of json_type_int64 returned by json_object_get_type() \
85 * [Issue #450](https://github.com/json-c/json-c/issues/450) - Allow use json-c cmake as subproject \
86 * [Issue #452](https://github.com/json-c/json-c/issues/452) - Update README.md \
87 * [Issue #453](https://github.com/json-c/json-c/issues/453) - Fixed misalignment in JSON string due to space after \n being printed... \
88 * [Issue #454](https://github.com/json-c/json-c/issues/454) - json_object_private: save 8 bytes in struct json_object in 64-bit arc… \
89 * [Issue #455](https://github.com/json-c/json-c/issues/455) - index.html:fix dead link \
90 * [Issue #456](https://github.com/json-c/json-c/issues/456) - STYLE.txt:remove executable permissions \
91 * [Issue #457](https://github.com/json-c/json-c/issues/457) - .gitignore:add build directory \
92 * [Issue #458](https://github.com/json-c/json-c/issues/458) - README.md:fix dead "file.html" link \
93 * [Issue #459](https://github.com/json-c/json-c/issues/459) - README.html:fix link to Doxygen docs, remove WIN32 link \
94 * [Issue #460](https://github.com/json-c/json-c/issues/460) - No docs for json_object_new_string_len() \
95 * [Issue #461](https://github.com/json-c/json-c/issues/461) - json_object.c:set errno in json_object_get_double() \
96 * [Issue #462](https://github.com/json-c/json-c/issues/462) - json_object.h:document json_object_new_string_len() \
97 * [Issue #463](https://github.com/json-c/json-c/issues/463) - please check newlocale api first argument valuse. \
98 * [Issue #465](https://github.com/json-c/json-c/issues/465) - CMakeLists.txt doesn't contain json_object_iterator.h which json.h includes \
99 * [Issue #466](https://github.com/json-c/json-c/issues/466) - configure:3610: error: C compiler cannot create executables \
100 * [Issue #467](https://github.com/json-c/json-c/issues/467) - Fix compiler warnings \
101 * [Issue #468](https://github.com/json-c/json-c/issues/468) - Fix compiler warnings \
102 * [Issue #469](https://github.com/json-c/json-c/issues/469) - Build under alpine with pecl install & docker-php-ext-enable? \
103 * [Issue #470](https://github.com/json-c/json-c/issues/470) - cfuhash_foreach_remove doesn't upate cfuhash_num_entries \
104 * [Issue #472](https://github.com/json-c/json-c/issues/472) - Segmentation fault in json_object_iter_begin \
105 * [Issue #473](https://github.com/json-c/json-c/issues/473) - Convert ChangeLog to valid UTF-8 encoding. \
106 * [Issue #474](https://github.com/json-c/json-c/issues/474) - Installation directories empty with CMake in pkg-config. \
107 * [Issue #475](https://github.com/json-c/json-c/issues/475) - improvement proposal for json_object_object_foreach \
108 * [Issue #477](https://github.com/json-c/json-c/issues/477) - Hang/Crash with large strings \
109 * [Issue #478](https://github.com/json-c/json-c/issues/478) - json_object_get_string_len returns 0 when value is number \
110 * [Issue #479](https://github.com/json-c/json-c/issues/479) - I want to use it in iOS or Android but I can't compile \
111 * [Issue #480](https://github.com/json-c/json-c/issues/480) - json-c-0.12.1 failed making from source code \
112 * [Issue #481](https://github.com/json-c/json-c/issues/481) - error while loading shared libraries: libjson-c.so.4 \
113 * [Issue #482](https://github.com/json-c/json-c/issues/482) - Error "double free or corruption" after free() \
114 * [Issue #483](https://github.com/json-c/json-c/issues/483) - compatible with rarely-used Chinese characters in GBK charset \
115 * [Issue #485](https://github.com/json-c/json-c/issues/485) - Install CMake module files \
116 * [Issue #486](https://github.com/json-c/json-c/issues/486) - In the case of negative double value, it is formatted without including ".0" \
117 * [Issue #488](https://github.com/json-c/json-c/issues/488) - Some APIs are not exported when built as shared lib on Win32 \
118 * [Issue #489](https://github.com/json-c/json-c/issues/489) - Don't use -Werror by default \
119 * [Issue #490](https://github.com/json-c/json-c/issues/490) - do not compile with -Werror by default \
120 * [Issue #491](https://github.com/json-c/json-c/issues/491) - build: add option --disable-werror to configure \
121 * [Issue #492](https://github.com/json-c/json-c/issues/492) - lack some quick usage in readme \
122 * [Issue #494](https://github.com/json-c/json-c/issues/494) - Code generator? \
123 * [Issue #495](https://github.com/json-c/json-c/issues/495) - README.md:fix 2 typos \
124 * [Issue #496](https://github.com/json-c/json-c/issues/496) - json_pointer.h:suggest minor grammar improvement for pointer doc \
125 * [Issue #497](https://github.com/json-c/json-c/issues/497) - add common header for all tests \
126 * [Issue #498](https://github.com/json-c/json-c/issues/498) - double_serializer_test fails (with valgrind) \
127 * [Issue #499](https://github.com/json-c/json-c/issues/499) - .travis.yml:test on more recent clang and gcc versions \
128 * [Issue #500](https://github.com/json-c/json-c/issues/500) - test/Makefile.am:add missing deps for test1 and test2 \
129 * [Issue #501](https://github.com/json-c/json-c/issues/501) - undefine NDEBUG for tests \
130 * [Issue #502](https://github.com/json-c/json-c/issues/502) - configure error \
131 * [Issue #503](https://github.com/json-c/json-c/issues/503) - json-c retuns OK when Invalid json string is passed \
132 * [Issue #504](https://github.com/json-c/json-c/issues/504) - json_object_put coredump \
133 * [Issue #505](https://github.com/json-c/json-c/issues/505) - Add vcpkg installation instructions \
134 * [Issue #506](https://github.com/json-c/json-c/issues/506) - Cannot parse more than one object \
135 * [Issue #509](https://github.com/json-c/json-c/issues/509) - Sometimes a double value is not serialized \
136 * [Issue #510](https://github.com/json-c/json-c/issues/510) - Bump so-name and improve CMake \
137 * [Issue #511](https://github.com/json-c/json-c/issues/511) - Reduce lines for better optimization \
138 * [Issue #512](https://github.com/json-c/json-c/issues/512) - Properly append to CMAKE_C_FLAGS string \
139 * [Issue #513](https://github.com/json-c/json-c/issues/513) - What does `userdata` means?And what is the case we can use it? \
140 * [Issue #514](https://github.com/json-c/json-c/issues/514) - Json c 0.13 \
141 * [Issue #515](https://github.com/json-c/json-c/issues/515) - Mies suomesta fixes segfaults and logic errors \
142 * [Issue #516](https://github.com/json-c/json-c/issues/516) - Lja slight mods \
143 * [Issue #518](https://github.com/json-c/json-c/issues/518) - Escape character "\\003\", get unexpected value \
144 * [Issue #519](https://github.com/json-c/json-c/issues/519) - Add test case obj token \
145 * [Issue #520](https://github.com/json-c/json-c/issues/520) - Adding type uint64 \
146 * [Issue #521](https://github.com/json-c/json-c/issues/521) - build cmake windows 10 \
147 * [Issue #522](https://github.com/json-c/json-c/issues/522) - update json_visit testcase \
148 * [Issue #523](https://github.com/json-c/json-c/issues/523) - update tsetcase for tokener_c \
149 * [Issue #524](https://github.com/json-c/json-c/issues/524) - Increase coverage \
150 * [Issue #525](https://github.com/json-c/json-c/issues/525) - update pointer test case \
151 * [Issue #526](https://github.com/json-c/json-c/issues/526) - Increased the test coverage of printbuf.c 82% to 92%. \
152 * [Issue #527](https://github.com/json-c/json-c/issues/527) - Arraylist testcase \
153 * [Issue #528](https://github.com/json-c/json-c/issues/528) - Solve issue #108. Skip \u0000 while parsing. \
154 * [Issue #529](https://github.com/json-c/json-c/issues/529) - Increased the test coverage of json_c_version.c 0% to 100%. \
155 * [Issue #530](https://github.com/json-c/json-c/issues/530) - validate utf-8 string before parse \
156 * [Issue #531](https://github.com/json-c/json-c/issues/531) - validate utf-8 string \
157 * [Issue #532](https://github.com/json-c/json-c/issues/532) - json_object_object_get_ex returning the original object \
158 * [Issue #533](https://github.com/json-c/json-c/issues/533) - Fix "make check" \
159 * [Issue #535](https://github.com/json-c/json-c/issues/535) - short string optimization: excessive array length \
160 * [Issue #536](https://github.com/json-c/json-c/issues/536) - add json_object_new_null() \
161 * [Issue #538](https://github.com/json-c/json-c/issues/538) - update shortstring and arraylist parameters \
162 * [Issue #539](https://github.com/json-c/json-c/issues/539) - double serializes to the old value after set_double \
163 * [Issue #541](https://github.com/json-c/json-c/issues/541) - add coveralls auto tool to json-c \
164 * [Issue #542](https://github.com/json-c/json-c/issues/542) - add uint64 data to json-c \
165 * [Issue #543](https://github.com/json-c/json-c/issues/543) - Readme \
166 * [Issue #544](https://github.com/json-c/json-c/issues/544) - Increase distcheck target in cmake \
167 * [Issue #545](https://github.com/json-c/json-c/issues/545) - add doc target in cmake \
168 * [Issue #546](https://github.com/json-c/json-c/issues/546) - Add uninstall target in cmake \
169 * [Issue #547](https://github.com/json-c/json-c/issues/547) - modify json-c default build type, and fix up the assert() errors in t… \
170 * [Issue #548](https://github.com/json-c/json-c/issues/548) - Solve some problems about cmake build type (debug/release) \
171 * [Issue #549](https://github.com/json-c/json-c/issues/549) - lib installation issues \
172 * [Issue #550](https://github.com/json-c/json-c/issues/550) - Format codes with clang-format tool? \
173 * [Issue #551](https://github.com/json-c/json-c/issues/551) - Allow hexadecimal number format convention parsing \
174 * [Issue #553](https://github.com/json-c/json-c/issues/553) - Fix/clang ubsan \
175 * [Issue #554](https://github.com/json-c/json-c/issues/554) - RFC 8259 compatibility mode \
176 * [Issue #555](https://github.com/json-c/json-c/issues/555) - Format json-c with clang-format tool \
177 * [Issue #556](https://github.com/json-c/json-c/issues/556) - Fixes various Wreturn-type and Wimplicit-fallthrough errors on Mingw-w64 \
178 * [Issue #557](https://github.com/json-c/json-c/issues/557) - Add option in CMAKE to not build documentation \
179 * [Issue #558](https://github.com/json-c/json-c/issues/558) - modify the doc target message \
180 * [Issue #559](https://github.com/json-c/json-c/issues/559) - json_c_visit() not exported on Windows \
181 * [Issue #560](https://github.com/json-c/json-c/issues/560) - error: implicit declaration of function '_strtoi64' \
182 * [Issue #561](https://github.com/json-c/json-c/issues/561) - add the badge in README.md and test the coveralls \
183 * [Issue #562](https://github.com/json-c/json-c/issues/562) - Bugfix and testcases supplements \
184 * [Issue #563](https://github.com/json-c/json-c/issues/563) - Changed order of calloc args to match stdlib \
185 * [Issue #564](https://github.com/json-c/json-c/issues/564) - Remove autogenerated files \
186 * [Issue #565](https://github.com/json-c/json-c/issues/565) - test the CI and ignore this PR \
187 * [Issue #566](https://github.com/json-c/json-c/issues/566) - add the json_types.h to Makefile.am \
188 * [Issue #567](https://github.com/json-c/json-c/issues/567) - Install json_types.h with autotools build as well. \
189 * [Issue #568](https://github.com/json-c/json-c/issues/568) - Adding better support to MinGW \
190 * [Issue #569](https://github.com/json-c/json-c/issues/569) - Handling of -Bsymbolic-function in CMakeLists.txt is deficient \
191 * [Issue #571](https://github.com/json-c/json-c/issues/571) - CMake: Bump SONAME to 5. \
192 * [Issue #572](https://github.com/json-c/json-c/issues/572) - Small fixes to CMakeLists \
193 * [Issue #573](https://github.com/json-c/json-c/issues/573) - Fix coveralls submission. \
194 * [Issue #574](https://github.com/json-c/json-c/issues/574) - autogen.sh missing from repository \
195 * [Issue #575](https://github.com/json-c/json-c/issues/575) - Small cosmetics. \
196 * [Issue #576](https://github.com/json-c/json-c/issues/576) - Test coverage for json_c_version. \
197 * [Issue #577](https://github.com/json-c/json-c/issues/577) - Be verbose on failing json_c_version test. \
198 * [Issue #578](https://github.com/json-c/json-c/issues/578) - CMake: Install pkgconfig file in proper location by default \
199 * [Issue #579](https://github.com/json-c/json-c/issues/579) - Enforce strict prototypes. \
200 * [Issue #580](https://github.com/json-c/json-c/issues/580) - Fix CMake tests for enforced strict prototypes. \
201 * [Issue #581](https://github.com/json-c/json-c/issues/581) - CMakeLists: do not enforce strict prototypes on Windows. \
0
1 /*
2 * Symbol versioning for libjson-c.
3 * All exported symbols must be listed here.
4 *
5 * See
6 * https://software.intel.com/sites/default/files/m/a/1/e/dsohowto.pdf
7 */
8
9 /*
10 * Symbols in JSONC_PRIVATE are exported for historical
11 * reasons, but should not be used outside of json-c.
12 */
13 JSONC_PRIVATE {
14 array_list_add;
15 array_list_del_idx;
16 array_list_free;
17 array_list_new;
18 array_list_put_idx;
19 array_list_sort;
20 json_hex_chars;
21 json_parse_double;
22 json_parse_int64;
23 json_parse_uint64;
24 lh_table_delete;
25 lh_table_delete_entry;
26 lh_table_free;
27 lh_table_insert;
28 lh_table_insert_w_hash;
29 lh_table_new;
30 lh_table_resize;
31 mc_debug;
32 mc_error;
33 mc_get_debug;
34 mc_info;
35 mc_set_debug;
36 mc_set_syslog;
37 printbuf_free;
38 printbuf_memappend;
39 printbuf_memset;
40 printbuf_new;
41 printbuf_reset;
42 sprintbuf;
43 };
44
45 JSONC_0.14 {
46 global:
47 array_list_bsearch;
48 array_list_get_idx;
49 array_list_length;
50 json_c_get_random_seed;
51 json_c_object_sizeof;
52 json_c_set_serialization_double_format;
53 json_c_shallow_copy_default;
54 json_c_version;
55 json_c_version_num;
56 json_c_visit;
57 json_global_set_string_hash;
58 json_number_chars;
59 json_object_array_add;
60 json_object_array_bsearch;
61 json_object_array_del_idx;
62 json_object_array_get_idx;
63 json_object_array_length;
64 json_object_array_put_idx;
65 json_object_array_sort;
66 json_object_deep_copy;
67 json_object_double_to_json_string;
68 json_object_equal;
69 json_object_free_userdata;
70 json_object_from_fd;
71 json_object_from_fd_ex;
72 json_object_from_file;
73 json_object_get;
74 json_object_get_array;
75 json_object_get_boolean;
76 json_object_get_double;
77 json_object_get_int64;
78 json_object_get_int;
79 json_object_get_object;
80 json_object_get_string;
81 json_object_get_string_len;
82 json_object_get_type;
83 json_object_get_uint64;
84 json_object_get_userdata;
85 json_object_int_inc;
86 json_object_is_type;
87 json_object_iter_begin;
88 json_object_iter_end;
89 json_object_iter_equal;
90 json_object_iter_init_default;
91 json_object_iter_next;
92 json_object_iter_peek_name;
93 json_object_iter_peek_value;
94 json_object_new_array;
95 json_object_new_boolean;
96 json_object_new_double;
97 json_object_new_double_s;
98 json_object_new_int64;
99 json_object_new_int;
100 json_object_new_null;
101 json_object_new_object;
102 json_object_new_string;
103 json_object_new_string_len;
104 json_object_new_uint64;
105 json_object_object_add;
106 json_object_object_add_ex;
107 json_object_object_del;
108 json_object_object_get;
109 json_object_object_get_ex;
110 json_object_object_length;
111 json_object_put;
112 json_object_set_boolean;
113 json_object_set_double;
114 json_object_set_int64;
115 json_object_set_int;
116 json_object_set_serializer;
117 json_object_set_string;
118 json_object_set_string_len;
119 json_object_set_uint64;
120 json_object_set_userdata;
121 json_object_to_fd;
122 json_object_to_file;
123 json_object_to_file_ext;
124 json_object_to_json_string;
125 json_object_to_json_string_ext;
126 json_object_to_json_string_length;
127 json_object_userdata_to_json_string;
128 json_pointer_get;
129 json_pointer_getf;
130 json_pointer_set;
131 json_pointer_setf;
132 json_tokener_error_desc;
133 json_tokener_free;
134 json_tokener_get_error;
135 json_tokener_get_parse_end;
136 json_tokener_new;
137 json_tokener_new_ex;
138 json_tokener_parse;
139 json_tokener_parse_ex;
140 json_tokener_parse_verbose;
141 json_tokener_reset;
142 json_tokener_set_flags;
143 json_type_to_name;
144 json_util_get_last_err;
145 lh_char_equal;
146 lh_kchar_table_new;
147 lh_kptr_table_new;
148 lh_ptr_equal;
149 lh_table_length;
150 lh_table_lookup_entry;
151 lh_table_lookup_entry_w_hash;
152 lh_table_lookup_ex;
153
154 local:
155 *;
156 };
157
158 JSONC_0.15 {
159 global:
160 array_list_new2;
161 array_list_shrink;
162 json_object_array_shrink;
163 json_object_new_array_ext;
164 } JSONC_0.14;
00 /*
1 * Copyright (c) 2012,2017 Eric Haszlakiewicz
1 * Copyright (c) 2012,2017,2019,2020 Eric Hawicz
22 *
33 * This library is free software; you can redistribute it and/or modify
44 * it under the terms of the MIT license. See COPYING for details.
1111 #ifndef _json_c_version_h_
1212 #define _json_c_version_h_
1313
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17
1418 #define JSON_C_MAJOR_VERSION 0
15 #define JSON_C_MINOR_VERSION 14
19 #define JSON_C_MINOR_VERSION 15
1620 #define JSON_C_MICRO_VERSION 0
1721 #define JSON_C_VERSION_NUM \
1822 ((JSON_C_MAJOR_VERSION << 16) | (JSON_C_MINOR_VERSION << 8) | JSON_C_MICRO_VERSION)
19 #define JSON_C_VERSION "0.14"
23 #define JSON_C_VERSION "0.15"
2024
2125 #ifndef JSON_EXPORT
2226 #if defined(_MSC_VER)
4347 */
4448 JSON_EXPORT int json_c_version_num(void); /* Returns JSON_C_VERSION_NUM */
4549
50 #ifdef __cplusplus
51 }
4652 #endif
53
54 #endif
00 /*
1 * $Id: json_object.c,v 1.17 2006/07/25 03:24:50 mclark Exp $
2 *
31 * Copyright (c) 2004, 2005 Metaparadigm Pte. Ltd.
42 * Michael Clark <michael@metaparadigm.com>
53 * Copyright (c) 2009 Hewlett-Packard Development Company, L.P.
1513
1614 #include <assert.h>
1715 #include <ctype.h>
16 #ifdef HAVE_LIMITS_H
17 #include <limits.h>
18 #endif
1819 #include <math.h>
1920 #include <stddef.h>
2021 #include <stdio.h>
3738 #error "The long long type isn't 64-bits"
3839 #endif
3940
41 #ifndef SSIZE_T_MAX
42 #if SIZEOF_SSIZE_T == SIZEOF_INT
43 #define SSIZE_T_MAX INT_MAX
44 #elif SIZEOF_SSIZE_T == SIZEOF_LONG
45 #define SSIZE_T_MAX LONG_MAX
46 #elif SIZEOF_SSIZE_T == SIZEOF_LONG_LONG
47 #define SSIZE_T_MAX LLONG_MAX
48 #else
49 #error Unable to determine size of ssize_t
50 #endif
51 #endif
52
4053 // Don't define this. It's not thread-safe.
4154 /* #define REFCOUNT_DEBUG 1 */
4255
43 const char *json_number_chars = "0123456789.+-eE";
4456 const char *json_hex_chars = "0123456789abcdefABCDEF";
4557
4658 static void json_object_generic_delete(struct json_object *jso);
47 static struct json_object *json_object_new(enum json_type o_type);
59
60 #if defined(_MSC_VER) && (_MSC_VER <= 1800)
61 /* VS2013 doesn't know about "inline" */
62 #define inline __inline
63 #elif defined(AIX_CC)
64 #define inline
65 #endif
66
67 /*
68 * Helper functions to more safely cast to a particular type of json_object
69 */
70 static inline struct json_object_object *JC_OBJECT(struct json_object *jso)
71 {
72 return (void *)jso;
73 }
74 static inline const struct json_object_object *JC_OBJECT_C(const struct json_object *jso)
75 {
76 return (const void *)jso;
77 }
78 static inline struct json_object_array *JC_ARRAY(struct json_object *jso)
79 {
80 return (void *)jso;
81 }
82 static inline const struct json_object_array *JC_ARRAY_C(const struct json_object *jso)
83 {
84 return (const void *)jso;
85 }
86 static inline struct json_object_boolean *JC_BOOL(struct json_object *jso)
87 {
88 return (void *)jso;
89 }
90 static inline const struct json_object_boolean *JC_BOOL_C(const struct json_object *jso)
91 {
92 return (const void *)jso;
93 }
94 static inline struct json_object_double *JC_DOUBLE(struct json_object *jso)
95 {
96 return (void *)jso;
97 }
98 static inline const struct json_object_double *JC_DOUBLE_C(const struct json_object *jso)
99 {
100 return (const void *)jso;
101 }
102 static inline struct json_object_int *JC_INT(struct json_object *jso)
103 {
104 return (void *)jso;
105 }
106 static inline const struct json_object_int *JC_INT_C(const struct json_object *jso)
107 {
108 return (const void *)jso;
109 }
110 static inline struct json_object_string *JC_STRING(struct json_object *jso)
111 {
112 return (void *)jso;
113 }
114 static inline const struct json_object_string *JC_STRING_C(const struct json_object *jso)
115 {
116 return (const void *)jso;
117 }
118
119 #define JC_CONCAT(a, b) a##b
120 #define JC_CONCAT3(a, b, c) a##b##c
121
122 #define JSON_OBJECT_NEW(jtype) \
123 (struct JC_CONCAT(json_object_, jtype) *)json_object_new( \
124 JC_CONCAT(json_type_, jtype), sizeof(struct JC_CONCAT(json_object_, jtype)), \
125 &JC_CONCAT3(json_object_, jtype, _to_json_string))
126
127 static inline struct json_object *json_object_new(enum json_type o_type, size_t alloc_size,
128 json_object_to_json_string_fn *to_json_string);
129
130 static void json_object_object_delete(struct json_object *jso_base);
131 static void json_object_string_delete(struct json_object *jso);
132 static void json_object_array_delete(struct json_object *jso);
48133
49134 static json_object_to_json_string_fn json_object_object_to_json_string;
50135 static json_object_to_json_string_fn json_object_boolean_to_json_string;
57142 #ifndef JSON_NORETURN
58143 #if defined(_MSC_VER)
59144 #define JSON_NORETURN __declspec(noreturn)
145 #elif defined(__OS400__)
146 #define JSON_NORETURN
60147 #else
61148 /* 'cold' attribute is for optimization, telling the computer this code
62149 * path is unlikely.
108195
109196 /* helper for accessing the optimized string data component in json_object
110197 */
111 static const char *get_string_component(const struct json_object *jso)
112 {
113 return (jso->o.c_string.len < LEN_DIRECT_STRING_DATA) ? jso->o.c_string.str.data
114 : jso->o.c_string.str.ptr;
198 static inline char *get_string_component_mutable(struct json_object *jso)
199 {
200 if (JC_STRING_C(jso)->len < 0)
201 {
202 /* Due to json_object_set_string(), we might have a pointer */
203 return JC_STRING(jso)->c_string.pdata;
204 }
205 return JC_STRING(jso)->c_string.idata;
206 }
207 static inline const char *get_string_component(const struct json_object *jso)
208 {
209 return get_string_component_mutable((void *)(uintptr_t)(const void *)jso);
115210 }
116211
117212 /* string escaping */
118213
119 static int json_escape_str(struct printbuf *pb, const char *str, int len, int flags)
214 static int json_escape_str(struct printbuf *pb, const char *str, size_t len, int flags)
120215 {
121216 int pos = 0, start_offset = 0;
122217 unsigned char c;
227322
228323 if (jso->_user_delete)
229324 jso->_user_delete(jso, jso->_userdata);
230 jso->_delete(jso);
325 switch (jso->o_type)
326 {
327 case json_type_object: json_object_object_delete(jso); break;
328 case json_type_array: json_object_array_delete(jso); break;
329 case json_type_string: json_object_string_delete(jso); break;
330 default: json_object_generic_delete(jso); break;
331 }
231332 return 1;
232333 }
233334
243344 free(jso);
244345 }
245346
246 static struct json_object *json_object_new(enum json_type o_type)
347 static inline struct json_object *json_object_new(enum json_type o_type, size_t alloc_size,
348 json_object_to_json_string_fn *to_json_string)
247349 {
248350 struct json_object *jso;
249351
250 jso = (struct json_object *)calloc(1, sizeof(struct json_object));
352 jso = (struct json_object *)malloc(alloc_size);
251353 if (!jso)
252354 return NULL;
355
253356 jso->o_type = o_type;
254357 jso->_ref_count = 1;
255 jso->_delete = &json_object_generic_delete;
358 jso->_to_json_string = to_json_string;
359 jso->_pb = NULL;
360 jso->_user_delete = NULL;
361 jso->_userdata = NULL;
362 //jso->... // Type-specific fields must be set by caller
363
256364 #ifdef REFCOUNT_DEBUG
257365 lh_table_insert(json_object_table, jso, jso);
258366 MC_DEBUG("json_object_new_%s: %p\n", json_type_to_name(jso->o_type), jso);
438546 json_object_put((struct json_object *)lh_entry_v(ent));
439547 }
440548
441 static void json_object_object_delete(struct json_object *jso)
442 {
443 lh_table_free(jso->o.c_object);
444 json_object_generic_delete(jso);
549 static void json_object_object_delete(struct json_object *jso_base)
550 {
551 lh_table_free(JC_OBJECT(jso_base)->c_object);
552 json_object_generic_delete(jso_base);
445553 }
446554
447555 struct json_object *json_object_new_object(void)
448556 {
449 struct json_object *jso = json_object_new(json_type_object);
557 struct json_object_object *jso = JSON_OBJECT_NEW(object);
450558 if (!jso)
451559 return NULL;
452 jso->_delete = &json_object_object_delete;
453 jso->_to_json_string = &json_object_object_to_json_string;
454 jso->o.c_object =
560 jso->c_object =
455561 lh_kchar_table_new(JSON_OBJECT_DEF_HASH_ENTRIES, &json_object_lh_entry_free);
456 if (!jso->o.c_object)
457 {
458 json_object_generic_delete(jso);
562 if (!jso->c_object)
563 {
564 json_object_generic_delete(&jso->base);
459565 errno = ENOMEM;
460566 return NULL;
461567 }
462 return jso;
568 return &jso->base;
463569 }
464570
465571 struct lh_table *json_object_get_object(const struct json_object *jso)
468574 return NULL;
469575 switch (jso->o_type)
470576 {
471 case json_type_object: return jso->o.c_object;
577 case json_type_object: return JC_OBJECT_C(jso)->c_object;
472578 default: return NULL;
473579 }
474580 }
484590
485591 // We lookup the entry and replace the value, rather than just deleting
486592 // and re-adding it, so the existing key remains valid.
487 hash = lh_get_hash(jso->o.c_object, (const void *)key);
593 hash = lh_get_hash(JC_OBJECT(jso)->c_object, (const void *)key);
488594 existing_entry =
489595 (opts & JSON_C_OBJECT_ADD_KEY_IS_NEW)
490596 ? NULL
491 : lh_table_lookup_entry_w_hash(jso->o.c_object, (const void *)key, hash);
597 : lh_table_lookup_entry_w_hash(JC_OBJECT(jso)->c_object, (const void *)key, hash);
492598
493599 // The caller must avoid creating loops in the object tree, but do a
494600 // quick check anyway to make sure we're not creating a trivial loop.
501607 (opts & JSON_C_OBJECT_KEY_IS_CONSTANT) ? (const void *)key : strdup(key);
502608 if (k == NULL)
503609 return -1;
504 return lh_table_insert_w_hash(jso->o.c_object, k, val, hash, opts);
610 return lh_table_insert_w_hash(JC_OBJECT(jso)->c_object, k, val, hash, opts);
505611 }
506612 existing_value = (json_object *)lh_entry_v(existing_entry);
507613 if (existing_value)
518624 int json_object_object_length(const struct json_object *jso)
519625 {
520626 assert(json_object_get_type(jso) == json_type_object);
521 return lh_table_length(jso->o.c_object);
627 return lh_table_length(JC_OBJECT_C(jso)->c_object);
522628 }
523629
524630 size_t json_c_object_sizeof(void)
545651 switch (jso->o_type)
546652 {
547653 case json_type_object:
548 return lh_table_lookup_ex(jso->o.c_object, (const void *)key, (void **)value);
654 return lh_table_lookup_ex(JC_OBJECT_C(jso)->c_object, (const void *)key,
655 (void **)value);
549656 default:
550657 if (value != NULL)
551658 *value = NULL;
556663 void json_object_object_del(struct json_object *jso, const char *key)
557664 {
558665 assert(json_object_get_type(jso) == json_type_object);
559 lh_table_delete(jso->o.c_object, key);
666 lh_table_delete(JC_OBJECT(jso)->c_object, key);
560667 }
561668
562669 /* json_object_boolean */
564671 static int json_object_boolean_to_json_string(struct json_object *jso, struct printbuf *pb,
565672 int level, int flags)
566673 {
567 if (jso->o.c_boolean)
674 if (JC_BOOL(jso)->c_boolean)
568675 return printbuf_strappend(pb, "true");
569676 return printbuf_strappend(pb, "false");
570677 }
571678
572679 struct json_object *json_object_new_boolean(json_bool b)
573680 {
574 struct json_object *jso = json_object_new(json_type_boolean);
681 struct json_object_boolean *jso = JSON_OBJECT_NEW(boolean);
575682 if (!jso)
576683 return NULL;
577 jso->_to_json_string = &json_object_boolean_to_json_string;
578 jso->o.c_boolean = b;
579 return jso;
684 jso->c_boolean = b;
685 return &jso->base;
580686 }
581687
582688 json_bool json_object_get_boolean(const struct json_object *jso)
585691 return 0;
586692 switch (jso->o_type)
587693 {
588 case json_type_boolean: return jso->o.c_boolean;
694 case json_type_boolean: return JC_BOOL_C(jso)->c_boolean;
589695 case json_type_int:
590 switch (jso->o.c_int.cint_type)
591 {
592 case json_object_int_type_int64: return (jso->o.c_int.cint.c_int64 != 0);
593 case json_object_int_type_uint64: return (jso->o.c_int.cint.c_uint64 != 0);
696 switch (JC_INT_C(jso)->cint_type)
697 {
698 case json_object_int_type_int64: return (JC_INT_C(jso)->cint.c_int64 != 0);
699 case json_object_int_type_uint64: return (JC_INT_C(jso)->cint.c_uint64 != 0);
594700 default: json_abort("invalid cint_type");
595701 }
596 case json_type_double: return (jso->o.c_double != 0);
597 case json_type_string: return (jso->o.c_string.len != 0);
702 case json_type_double: return (JC_DOUBLE_C(jso)->c_double != 0);
703 case json_type_string: return (JC_STRING_C(jso)->len != 0);
598704 default: return 0;
599705 }
600706 }
603709 {
604710 if (!jso || jso->o_type != json_type_boolean)
605711 return 0;
606 jso->o.c_boolean = new_value;
712 JC_BOOL(jso)->c_boolean = new_value;
607713 return 1;
608714 }
609715
614720 {
615721 /* room for 19 digits, the sign char, and a null term */
616722 char sbuf[21];
617 if (jso->o.c_int.cint_type == json_object_int_type_int64)
618 snprintf(sbuf, sizeof(sbuf), "%" PRId64, jso->o.c_int.cint.c_int64);
723 if (JC_INT(jso)->cint_type == json_object_int_type_int64)
724 snprintf(sbuf, sizeof(sbuf), "%" PRId64, JC_INT(jso)->cint.c_int64);
619725 else
620 snprintf(sbuf, sizeof(sbuf), "%" PRIu64, jso->o.c_int.cint.c_uint64);
726 snprintf(sbuf, sizeof(sbuf), "%" PRIu64, JC_INT(jso)->cint.c_uint64);
621727 return printbuf_memappend(pb, sbuf, strlen(sbuf));
622728 }
623729
624730 struct json_object *json_object_new_int(int32_t i)
625731 {
626 struct json_object *jso = json_object_new(json_type_int);
627 if (!jso)
628 return NULL;
629 jso->_to_json_string = &json_object_int_to_json_string;
630 jso->o.c_int.cint.c_int64 = i;
631 jso->o.c_int.cint_type = json_object_int_type_int64;
632 return jso;
732 return json_object_new_int64(i);
633733 }
634734
635735 int32_t json_object_get_int(const struct json_object *jso)
636736 {
637 int64_t cint64;
737 int64_t cint64=0;
738 double cdouble;
638739 enum json_type o_type;
639740
640741 if (!jso)
641742 return 0;
642743
643744 o_type = jso->o_type;
644 if (jso->o.c_int.cint_type == json_object_int_type_int64)
645 {
646 cint64 = jso->o.c_int.cint.c_int64;
647 }
648 else
649 {
650 if (jso->o.c_int.cint.c_uint64 >= INT64_MAX)
651 cint64 = INT64_MAX;
745 if (o_type == json_type_int)
746 {
747 const struct json_object_int *jsoint = JC_INT_C(jso);
748 if (jsoint->cint_type == json_object_int_type_int64)
749 {
750 cint64 = jsoint->cint.c_int64;
751 }
652752 else
653 cint64 = (int64_t)jso->o.c_int.cint.c_uint64;
654 }
655
656 if (o_type == json_type_string)
753 {
754 if (jsoint->cint.c_uint64 >= INT64_MAX)
755 cint64 = INT64_MAX;
756 else
757 cint64 = (int64_t)jsoint->cint.c_uint64;
758 }
759 }
760 else if (o_type == json_type_string)
657761 {
658762 /*
659763 * Parse strings into 64-bit numbers, then use the
674778 return INT32_MAX;
675779 return (int32_t)cint64;
676780 case json_type_double:
677 if (jso->o.c_double <= INT32_MIN)
781 cdouble = JC_DOUBLE_C(jso)->c_double;
782 if (cdouble <= INT32_MIN)
678783 return INT32_MIN;
679 if (jso->o.c_double >= INT32_MAX)
784 if (cdouble >= INT32_MAX)
680785 return INT32_MAX;
681 return (int32_t)jso->o.c_double;
682 case json_type_boolean: return jso->o.c_boolean;
786 return (int32_t)cdouble;
787 case json_type_boolean: return JC_BOOL_C(jso)->c_boolean;
683788 default: return 0;
684789 }
685790 }
691796
692797 struct json_object *json_object_new_int64(int64_t i)
693798 {
694 struct json_object *jso = json_object_new(json_type_int);
799 struct json_object_int *jso = JSON_OBJECT_NEW(int);
695800 if (!jso)
696801 return NULL;
697 jso->_to_json_string = &json_object_int_to_json_string;
698 jso->o.c_int.cint.c_int64 = i;
699 jso->o.c_int.cint_type = json_object_int_type_int64;
700 return jso;
802 jso->cint.c_int64 = i;
803 jso->cint_type = json_object_int_type_int64;
804 return &jso->base;
701805 }
702806
703807 struct json_object *json_object_new_uint64(uint64_t i)
704808 {
705 struct json_object *jso = json_object_new(json_type_int);
809 struct json_object_int *jso = JSON_OBJECT_NEW(int);
706810 if (!jso)
707811 return NULL;
708 jso->_to_json_string = &json_object_int_to_json_string;
709 jso->o.c_int.cint.c_uint64 = i;
710 jso->o.c_int.cint_type = json_object_int_type_uint64;
711 return jso;
812 jso->cint.c_uint64 = i;
813 jso->cint_type = json_object_int_type_uint64;
814 return &jso->base;
712815 }
713816
714817 int64_t json_object_get_int64(const struct json_object *jso)
720823 switch (jso->o_type)
721824 {
722825 case json_type_int:
723 switch (jso->o.c_int.cint_type)
724 {
725 case json_object_int_type_int64: return jso->o.c_int.cint.c_int64;
826 {
827 const struct json_object_int *jsoint = JC_INT_C(jso);
828 switch (jsoint->cint_type)
829 {
830 case json_object_int_type_int64: return jsoint->cint.c_int64;
726831 case json_object_int_type_uint64:
727 if (jso->o.c_int.cint.c_uint64 >= INT64_MAX)
832 if (jsoint->cint.c_uint64 >= INT64_MAX)
728833 return INT64_MAX;
729 return (int64_t)jso->o.c_int.cint.c_uint64;
834 return (int64_t)jsoint->cint.c_uint64;
730835 default: json_abort("invalid cint_type");
731836 }
837 }
732838 case json_type_double:
733839 // INT64_MAX can't be exactly represented as a double
734840 // so cast to tell the compiler it's ok to round up.
735 if (jso->o.c_double >= (double)INT64_MAX)
841 if (JC_DOUBLE_C(jso)->c_double >= (double)INT64_MAX)
736842 return INT64_MAX;
737 if (jso->o.c_double <= INT64_MIN)
843 if (JC_DOUBLE_C(jso)->c_double <= INT64_MIN)
738844 return INT64_MIN;
739 return (int64_t)jso->o.c_double;
740 case json_type_boolean: return jso->o.c_boolean;
845 return (int64_t)JC_DOUBLE_C(jso)->c_double;
846 case json_type_boolean: return JC_BOOL_C(jso)->c_boolean;
741847 case json_type_string:
742848 if (json_parse_int64(get_string_component(jso), &cint) == 0)
743849 return cint;
755861 switch (jso->o_type)
756862 {
757863 case json_type_int:
758 switch (jso->o.c_int.cint_type)
864 {
865 const struct json_object_int *jsoint = JC_INT_C(jso);
866 switch (jsoint->cint_type)
759867 {
760868 case json_object_int_type_int64:
761 if (jso->o.c_int.cint.c_int64 < 0)
869 if (jsoint->cint.c_int64 < 0)
762870 return 0;
763 return (uint64_t)jso->o.c_int.cint.c_int64;
764 case json_object_int_type_uint64: return jso->o.c_int.cint.c_uint64;
871 return (uint64_t)jsoint->cint.c_int64;
872 case json_object_int_type_uint64: return jsoint->cint.c_uint64;
765873 default: json_abort("invalid cint_type");
766874 }
875 }
767876 case json_type_double:
768877 // UINT64_MAX can't be exactly represented as a double
769878 // so cast to tell the compiler it's ok to round up.
770 if (jso->o.c_double >= (double)UINT64_MAX)
879 if (JC_DOUBLE_C(jso)->c_double >= (double)UINT64_MAX)
771880 return UINT64_MAX;
772 if (jso->o.c_double < 0)
881 if (JC_DOUBLE_C(jso)->c_double < 0)
773882 return 0;
774 return (uint64_t)jso->o.c_double;
775 case json_type_boolean: return jso->o.c_boolean;
883 return (uint64_t)JC_DOUBLE_C(jso)->c_double;
884 case json_type_boolean: return JC_BOOL_C(jso)->c_boolean;
776885 case json_type_string:
777886 if (json_parse_uint64(get_string_component(jso), &cuint) == 0)
778887 return cuint;
785894 {
786895 if (!jso || jso->o_type != json_type_int)
787896 return 0;
788 jso->o.c_int.cint.c_int64 = new_value;
789 jso->o.c_int.cint_type = json_object_int_type_int64;
897 JC_INT(jso)->cint.c_int64 = new_value;
898 JC_INT(jso)->cint_type = json_object_int_type_int64;
790899 return 1;
791900 }
792901
794903 {
795904 if (!jso || jso->o_type != json_type_int)
796905 return 0;
797 jso->o.c_int.cint.c_uint64 = new_value;
798 jso->o.c_int.cint_type = json_object_int_type_uint64;
906 JC_INT(jso)->cint.c_uint64 = new_value;
907 JC_INT(jso)->cint_type = json_object_int_type_uint64;
799908 return 1;
800909 }
801910
802911 int json_object_int_inc(struct json_object *jso, int64_t val)
803912 {
913 struct json_object_int *jsoint;
804914 if (!jso || jso->o_type != json_type_int)
805915 return 0;
806 switch (jso->o.c_int.cint_type)
916 jsoint = JC_INT(jso);
917 switch (jsoint->cint_type)
807918 {
808919 case json_object_int_type_int64:
809 if (val > 0 && jso->o.c_int.cint.c_int64 > INT64_MAX - val)
810 {
811 jso->o.c_int.cint.c_uint64 =
812 (uint64_t)jso->o.c_int.cint.c_int64 + (uint64_t)val;
813 jso->o.c_int.cint_type = json_object_int_type_uint64;
814 }
815 else if (val < 0 && jso->o.c_int.cint.c_int64 < INT64_MIN - val)
816 {
817 jso->o.c_int.cint.c_int64 = INT64_MIN;
920 if (val > 0 && jsoint->cint.c_int64 > INT64_MAX - val)
921 {
922 jsoint->cint.c_uint64 = (uint64_t)jsoint->cint.c_int64 + (uint64_t)val;
923 jsoint->cint_type = json_object_int_type_uint64;
924 }
925 else if (val < 0 && jsoint->cint.c_int64 < INT64_MIN - val)
926 {
927 jsoint->cint.c_int64 = INT64_MIN;
818928 }
819929 else
820930 {
821 jso->o.c_int.cint.c_int64 += val;
931 jsoint->cint.c_int64 += val;
822932 }
823933 return 1;
824934 case json_object_int_type_uint64:
825 if (val > 0 && jso->o.c_int.cint.c_uint64 > UINT64_MAX - (uint64_t)val)
826 {
827 jso->o.c_int.cint.c_uint64 = UINT64_MAX;
828 }
829 else if (val < 0 && jso->o.c_int.cint.c_uint64 < (uint64_t)(-val))
830 {
831 jso->o.c_int.cint.c_int64 = (int64_t)jso->o.c_int.cint.c_uint64 + val;
832 jso->o.c_int.cint_type = json_object_int_type_int64;
833 }
834 else if (val < 0 && jso->o.c_int.cint.c_uint64 >= (uint64_t)(-val))
835 {
836 jso->o.c_int.cint.c_uint64 -= (uint64_t)(-val);
935 if (val > 0 && jsoint->cint.c_uint64 > UINT64_MAX - (uint64_t)val)
936 {
937 jsoint->cint.c_uint64 = UINT64_MAX;
938 }
939 else if (val < 0 && jsoint->cint.c_uint64 < (uint64_t)(-val))
940 {
941 jsoint->cint.c_int64 = (int64_t)jsoint->cint.c_uint64 + val;
942 jsoint->cint_type = json_object_int_type_int64;
943 }
944 else if (val < 0 && jsoint->cint.c_uint64 >= (uint64_t)(-val))
945 {
946 jsoint->cint.c_uint64 -= (uint64_t)(-val);
837947 }
838948 else
839949 {
840 jso->o.c_int.cint.c_uint64 += val;
950 jsoint->cint.c_uint64 += val;
841951 }
842952 return 1;
843953 default: json_abort("invalid cint_type");
8931003 static int json_object_double_to_json_string_format(struct json_object *jso, struct printbuf *pb,
8941004 int level, int flags, const char *format)
8951005 {
1006 struct json_object_double *jsodbl = JC_DOUBLE(jso);
8961007 char buf[128], *p, *q;
8971008 int size;
8981009 /* Although JSON RFC does not support
9001011 * ECMA 262 section 9.8.1 defines
9011012 * how to handle these cases as strings
9021013 */
903 if (isnan(jso->o.c_double))
1014 if (isnan(jsodbl->c_double))
9041015 {
9051016 size = snprintf(buf, sizeof(buf), "NaN");
9061017 }
907 else if (isinf(jso->o.c_double))
908 {
909 if (jso->o.c_double > 0)
1018 else if (isinf(jsodbl->c_double))
1019 {
1020 if (jsodbl->c_double > 0)
9101021 size = snprintf(buf, sizeof(buf), "Infinity");
9111022 else
9121023 size = snprintf(buf, sizeof(buf), "-Infinity");
9291040 else
9301041 format = std_format;
9311042 }
932 size = snprintf(buf, sizeof(buf), format, jso->o.c_double);
1043 size = snprintf(buf, sizeof(buf), format, jsodbl->c_double);
9331044
9341045 if (size < 0)
9351046 return -1;
9661077 p = q;
9671078 }
9681079 /* drop trailing zeroes */
969 *(++p) = 0;
1080 if (*p != 0)
1081 *(++p) = 0;
9701082 size = p - buf;
9711083 }
9721084 }
9971109
9981110 struct json_object *json_object_new_double(double d)
9991111 {
1000 struct json_object *jso = json_object_new(json_type_double);
1112 struct json_object_double *jso = JSON_OBJECT_NEW(double);
10011113 if (!jso)
10021114 return NULL;
1003 jso->_to_json_string = &json_object_double_to_json_string_default;
1004 jso->o.c_double = d;
1005 return jso;
1115 jso->base._to_json_string = &json_object_double_to_json_string_default;
1116 jso->c_double = d;
1117 return &jso->base;
10061118 }
10071119
10081120 struct json_object *json_object_new_double_s(double d, const char *ds)
10571169 return 0.0;
10581170 switch (jso->o_type)
10591171 {
1060 case json_type_double: return jso->o.c_double;
1172 case json_type_double: return JC_DOUBLE_C(jso)->c_double;
10611173 case json_type_int:
1062 switch (jso->o.c_int.cint_type)
1063 {
1064 case json_object_int_type_int64: return jso->o.c_int.cint.c_int64;
1065 case json_object_int_type_uint64: return jso->o.c_int.cint.c_uint64;
1174 switch (JC_INT_C(jso)->cint_type)
1175 {
1176 case json_object_int_type_int64: return JC_INT_C(jso)->cint.c_int64;
1177 case json_object_int_type_uint64: return JC_INT_C(jso)->cint.c_uint64;
10661178 default: json_abort("invalid cint_type");
10671179 }
1068 case json_type_boolean: return jso->o.c_boolean;
1180 case json_type_boolean: return JC_BOOL_C(jso)->c_boolean;
10691181 case json_type_string:
10701182 errno = 0;
10711183 cdouble = strtod(get_string_component(jso), &errPtr);
11101222 {
11111223 if (!jso || jso->o_type != json_type_double)
11121224 return 0;
1113 jso->o.c_double = new_value;
1225 JC_DOUBLE(jso)->c_double = new_value;
11141226 if (jso->_to_json_string == &_json_object_userdata_to_json_string)
11151227 json_object_set_serializer(jso, NULL, NULL, NULL);
11161228 return 1;
11211233 static int json_object_string_to_json_string(struct json_object *jso, struct printbuf *pb,
11221234 int level, int flags)
11231235 {
1236 ssize_t len = JC_STRING(jso)->len;
11241237 printbuf_strappend(pb, "\"");
1125 json_escape_str(pb, get_string_component(jso), jso->o.c_string.len, flags);
1238 json_escape_str(pb, get_string_component(jso), len < 0 ? -(ssize_t)len : len, flags);
11261239 printbuf_strappend(pb, "\"");
11271240 return 0;
11281241 }
11291242
11301243 static void json_object_string_delete(struct json_object *jso)
11311244 {
1132 if (jso->o.c_string.len >= LEN_DIRECT_STRING_DATA)
1133 free(jso->o.c_string.str.ptr);
1245 if (JC_STRING(jso)->len < 0)
1246 free(JC_STRING(jso)->c_string.pdata);
11341247 json_object_generic_delete(jso);
11351248 }
11361249
1250 static struct json_object *_json_object_new_string(const char *s, const size_t len)
1251 {
1252 size_t objsize;
1253 struct json_object_string *jso;
1254
1255 /*
1256 * Structures Actual memory layout
1257 * ------------------- --------------------
1258 * [json_object_string [json_object_string
1259 * [json_object] [json_object]
1260 * ...other fields... ...other fields...
1261 * c_string] len
1262 * bytes
1263 * of
1264 * string
1265 * data
1266 * \0]
1267 */
1268 if (len > (SSIZE_T_MAX - (sizeof(*jso) - sizeof(jso->c_string)) - 1))
1269 return NULL;
1270 objsize = (sizeof(*jso) - sizeof(jso->c_string)) + len + 1;
1271 if (len < sizeof(void *))
1272 // We need a minimum size to support json_object_set_string() mutability
1273 // so we can stuff a pointer into pdata :(
1274 objsize += sizeof(void *) - len;
1275
1276 jso = (struct json_object_string *)json_object_new(json_type_string, objsize,
1277 &json_object_string_to_json_string);
1278
1279 if (!jso)
1280 return NULL;
1281 jso->len = len;
1282 memcpy(jso->c_string.idata, s, len);
1283 jso->c_string.idata[len] = '\0';
1284 return &jso->base;
1285 }
1286
11371287 struct json_object *json_object_new_string(const char *s)
11381288 {
1139 struct json_object *jso = json_object_new(json_type_string);
1140 if (!jso)
1141 return NULL;
1142 jso->_delete = &json_object_string_delete;
1143 jso->_to_json_string = &json_object_string_to_json_string;
1144 jso->o.c_string.len = strlen(s);
1145 if (jso->o.c_string.len < LEN_DIRECT_STRING_DATA)
1146 {
1147 memcpy(jso->o.c_string.str.data, s, jso->o.c_string.len);
1148 }
1149 else
1150 {
1151 jso->o.c_string.str.ptr = strdup(s);
1152 if (!jso->o.c_string.str.ptr)
1153 {
1154 json_object_generic_delete(jso);
1155 errno = ENOMEM;
1156 return NULL;
1157 }
1158 }
1159 return jso;
1289 return _json_object_new_string(s, strlen(s));
11601290 }
11611291
11621292 struct json_object *json_object_new_string_len(const char *s, const int len)
11631293 {
1164 char *dstbuf;
1165 struct json_object *jso = json_object_new(json_type_string);
1166 if (!jso)
1167 return NULL;
1168 jso->_delete = &json_object_string_delete;
1169 jso->_to_json_string = &json_object_string_to_json_string;
1170 if (len < LEN_DIRECT_STRING_DATA)
1171 {
1172 dstbuf = jso->o.c_string.str.data;
1173 }
1174 else
1175 {
1176 jso->o.c_string.str.ptr = (char *)malloc(len + 1);
1177 if (!jso->o.c_string.str.ptr)
1178 {
1179 json_object_generic_delete(jso);
1180 errno = ENOMEM;
1181 return NULL;
1182 }
1183 dstbuf = jso->o.c_string.str.ptr;
1184 }
1185 memcpy(dstbuf, (const void *)s, len);
1186 dstbuf[len] = '\0';
1187 jso->o.c_string.len = len;
1188 return jso;
1294 return _json_object_new_string(s, len);
11891295 }
11901296
11911297 const char *json_object_get_string(struct json_object *jso)
11981304 default: return json_object_to_json_string(jso);
11991305 }
12001306 }
1201
12021307 int json_object_get_string_len(const struct json_object *jso)
12031308 {
1309 ssize_t len;
12041310 if (!jso)
12051311 return 0;
12061312 switch (jso->o_type)
12071313 {
1208 case json_type_string: return jso->o.c_string.len;
1314 case json_type_string:
1315 {
1316 len = JC_STRING_C(jso)->len;
1317 return (len < 0) ? -(ssize_t)len : len;
1318 }
12091319 default: return 0;
12101320 }
12111321 }
12121322
1213 int json_object_set_string(json_object *jso, const char *s)
1214 {
1215 return json_object_set_string_len(jso, s, (int)(strlen(s)));
1216 }
1217
1218 int json_object_set_string_len(json_object *jso, const char *s, int len)
1323 static int _json_object_set_string_len(json_object *jso, const char *s, size_t len)
12191324 {
12201325 char *dstbuf;
1326 ssize_t curlen;
1327 ssize_t newlen;
12211328 if (jso == NULL || jso->o_type != json_type_string)
12221329 return 0;
1223 if (len < LEN_DIRECT_STRING_DATA)
1224 {
1225 dstbuf = jso->o.c_string.str.data;
1226 if (jso->o.c_string.len >= LEN_DIRECT_STRING_DATA)
1227 free(jso->o.c_string.str.ptr);
1228 }
1229 else
1230 {
1330
1331 if (len >= SSIZE_T_MAX - 1)
1332 // jso->len is a signed ssize_t, so it can't hold the
1333 // full size_t range.
1334 return 0;
1335
1336 dstbuf = get_string_component_mutable(jso);
1337 curlen = JC_STRING(jso)->len;
1338 if (curlen < 0)
1339 curlen = -curlen;
1340 newlen = len;
1341
1342 if ((ssize_t)len > curlen)
1343 {
1344 // We have no way to return the new ptr from realloc(jso, newlen)
1345 // and we have no way of knowing whether there's extra room available
1346 // so we need to stuff a pointer in to pdata :(
12311347 dstbuf = (char *)malloc(len + 1);
12321348 if (dstbuf == NULL)
12331349 return 0;
1234 if (jso->o.c_string.len >= LEN_DIRECT_STRING_DATA)
1235 free(jso->o.c_string.str.ptr);
1236 jso->o.c_string.str.ptr = dstbuf;
1237 }
1238 jso->o.c_string.len = len;
1350 if (JC_STRING(jso)->len < 0)
1351 free(JC_STRING(jso)->c_string.pdata);
1352 JC_STRING(jso)->c_string.pdata = dstbuf;
1353 newlen = -(ssize_t)len;
1354 }
1355 else if (JC_STRING(jso)->len < 0)
1356 {
1357 // We've got enough room in the separate allocated buffer,
1358 // so use it as-is and continue to indicate that pdata is used.
1359 newlen = -(ssize_t)len;
1360 }
1361
12391362 memcpy(dstbuf, (const void *)s, len);
12401363 dstbuf[len] = '\0';
1364 JC_STRING(jso)->len = newlen;
12411365 return 1;
1366 }
1367
1368 int json_object_set_string(json_object *jso, const char *s)
1369 {
1370 return _json_object_set_string_len(jso, s, strlen(s));
1371 }
1372
1373 int json_object_set_string_len(json_object *jso, const char *s, int len)
1374 {
1375 return _json_object_set_string_len(jso, s, len);
12421376 }
12431377
12441378 /* json_object_array */
12901424
12911425 static void json_object_array_delete(struct json_object *jso)
12921426 {
1293 array_list_free(jso->o.c_array);
1427 array_list_free(JC_ARRAY(jso)->c_array);
12941428 json_object_generic_delete(jso);
12951429 }
12961430
12971431 struct json_object *json_object_new_array(void)
12981432 {
1299 struct json_object *jso = json_object_new(json_type_array);
1433 return json_object_new_array_ext(ARRAY_LIST_DEFAULT_SIZE);
1434 }
1435 struct json_object *json_object_new_array_ext(int initial_size)
1436 {
1437 struct json_object_array *jso = JSON_OBJECT_NEW(array);
13001438 if (!jso)
13011439 return NULL;
1302 jso->_delete = &json_object_array_delete;
1303 jso->_to_json_string = &json_object_array_to_json_string;
1304 jso->o.c_array = array_list_new(&json_object_array_entry_free);
1305 if (jso->o.c_array == NULL)
1440 jso->c_array = array_list_new2(&json_object_array_entry_free, initial_size);
1441 if (jso->c_array == NULL)
13061442 {
13071443 free(jso);
13081444 return NULL;
13091445 }
1310 return jso;
1446 return &jso->base;
13111447 }
13121448
13131449 struct array_list *json_object_get_array(const struct json_object *jso)
13161452 return NULL;
13171453 switch (jso->o_type)
13181454 {
1319 case json_type_array: return jso->o.c_array;
1455 case json_type_array: return JC_ARRAY_C(jso)->c_array;
13201456 default: return NULL;
13211457 }
13221458 }
13241460 void json_object_array_sort(struct json_object *jso, int (*sort_fn)(const void *, const void *))
13251461 {
13261462 assert(json_object_get_type(jso) == json_type_array);
1327 array_list_sort(jso->o.c_array, sort_fn);
1463 array_list_sort(JC_ARRAY(jso)->c_array, sort_fn);
13281464 }
13291465
13301466 struct json_object *json_object_array_bsearch(const struct json_object *key,
13351471
13361472 assert(json_object_get_type(jso) == json_type_array);
13371473 result = (struct json_object **)array_list_bsearch((const void **)(void *)&key,
1338 jso->o.c_array, sort_fn);
1474 JC_ARRAY_C(jso)->c_array, sort_fn);
13391475
13401476 if (!result)
13411477 return NULL;
13451481 size_t json_object_array_length(const struct json_object *jso)
13461482 {
13471483 assert(json_object_get_type(jso) == json_type_array);
1348 return array_list_length(jso->o.c_array);
1484 return array_list_length(JC_ARRAY_C(jso)->c_array);
13491485 }
13501486
13511487 int json_object_array_add(struct json_object *jso, struct json_object *val)
13521488 {
13531489 assert(json_object_get_type(jso) == json_type_array);
1354 return array_list_add(jso->o.c_array, val);
1490 return array_list_add(JC_ARRAY(jso)->c_array, val);
13551491 }
13561492
13571493 int json_object_array_put_idx(struct json_object *jso, size_t idx, struct json_object *val)
13581494 {
13591495 assert(json_object_get_type(jso) == json_type_array);
1360 return array_list_put_idx(jso->o.c_array, idx, val);
1496 return array_list_put_idx(JC_ARRAY(jso)->c_array, idx, val);
13611497 }
13621498
13631499 int json_object_array_del_idx(struct json_object *jso, size_t idx, size_t count)
13641500 {
13651501 assert(json_object_get_type(jso) == json_type_array);
1366 return array_list_del_idx(jso->o.c_array, idx, count);
1502 return array_list_del_idx(JC_ARRAY(jso)->c_array, idx, count);
13671503 }
13681504
13691505 struct json_object *json_object_array_get_idx(const struct json_object *jso, size_t idx)
13701506 {
13711507 assert(json_object_get_type(jso) == json_type_array);
1372 return (struct json_object *)array_list_get_idx(jso->o.c_array, idx);
1508 return (struct json_object *)array_list_get_idx(JC_ARRAY_C(jso)->c_array, idx);
13731509 }
13741510
13751511 static int json_array_equal(struct json_object *jso1, struct json_object *jso2)
13871523 return 0;
13881524 }
13891525 return 1;
1526 }
1527
1528 int json_object_array_shrink(struct json_object *jso, int empty_slots)
1529 {
1530 if (empty_slots < 0)
1531 json_abort("json_object_array_shrink called with negative empty_slots");
1532 return array_list_shrink(JC_ARRAY(jso)->c_array, empty_slots);
13901533 }
13911534
13921535 struct json_object *json_object_new_null(void)
14041547 /* Iterate over jso1 keys and see if they exist and are equal in jso2 */
14051548 json_object_object_foreachC(jso1, iter)
14061549 {
1407 if (!lh_table_lookup_ex(jso2->o.c_object, (void *)iter.key, (void **)(void *)&sub))
1550 if (!lh_table_lookup_ex(JC_OBJECT(jso2)->c_object, (void *)iter.key,
1551 (void **)(void *)&sub))
14081552 return 0;
14091553 if (!json_object_equal(iter.val, sub))
14101554 return 0;
14131557 /* Iterate over jso2 keys to see if any exist that are not in jso1 */
14141558 json_object_object_foreachC(jso2, iter)
14151559 {
1416 if (!lh_table_lookup_ex(jso1->o.c_object, (void *)iter.key, (void **)(void *)&sub))
1560 if (!lh_table_lookup_ex(JC_OBJECT(jso1)->c_object, (void *)iter.key,
1561 (void **)(void *)&sub))
14171562 return 0;
14181563 }
14191564
14331578
14341579 switch (jso1->o_type)
14351580 {
1436 case json_type_boolean: return (jso1->o.c_boolean == jso2->o.c_boolean);
1437
1438 case json_type_double: return (jso1->o.c_double == jso2->o.c_double);
1581 case json_type_boolean: return (JC_BOOL(jso1)->c_boolean == JC_BOOL(jso2)->c_boolean);
1582
1583 case json_type_double: return (JC_DOUBLE(jso1)->c_double == JC_DOUBLE(jso2)->c_double);
14391584
14401585 case json_type_int:
1441 if (jso1->o.c_int.cint_type == json_object_int_type_int64)
1442 {
1443 if (jso2->o.c_int.cint_type == json_object_int_type_int64)
1444 return (jso1->o.c_int.cint.c_int64 == jso2->o.c_int.cint.c_int64);
1445 if (jso1->o.c_int.cint.c_int64 < 0)
1586 {
1587 struct json_object_int *int1 = JC_INT(jso1);
1588 struct json_object_int *int2 = JC_INT(jso2);
1589 if (int1->cint_type == json_object_int_type_int64)
1590 {
1591 if (int2->cint_type == json_object_int_type_int64)
1592 return (int1->cint.c_int64 == int2->cint.c_int64);
1593 if (int1->cint.c_int64 < 0)
14461594 return 0;
1447 return ((uint64_t)jso1->o.c_int.cint.c_int64 ==
1448 jso2->o.c_int.cint.c_uint64);
1595 return ((uint64_t)int1->cint.c_int64 == int2->cint.c_uint64);
14491596 }
14501597 // else jso1 is a uint64
1451 if (jso2->o.c_int.cint_type == json_object_int_type_uint64)
1452 return (jso1->o.c_int.cint.c_uint64 == jso2->o.c_int.cint.c_uint64);
1453 if (jso2->o.c_int.cint.c_int64 < 0)
1598 if (int2->cint_type == json_object_int_type_uint64)
1599 return (int1->cint.c_uint64 == int2->cint.c_uint64);
1600 if (int2->cint.c_int64 < 0)
14541601 return 0;
1455 return (jso1->o.c_int.cint.c_uint64 == (uint64_t)jso2->o.c_int.cint.c_int64);
1602 return (int1->cint.c_uint64 == (uint64_t)int2->cint.c_int64);
1603 }
14561604
14571605 case json_type_string:
1458 return (jso1->o.c_string.len == jso2->o.c_string.len &&
1606 {
1607 return (json_object_get_string_len(jso1) == json_object_get_string_len(jso2) &&
14591608 memcmp(get_string_component(jso1), get_string_component(jso2),
1460 jso1->o.c_string.len) == 0);
1609 json_object_get_string_len(jso1)) == 0);
1610 }
14611611
14621612 case json_type_object: return json_object_all_values_equal(jso1, jso2);
14631613
14841634 {
14851635 _json_c_set_last_err(
14861636 "json_object_deep_copy: unable to copy unknown serializer data: %p\n",
1487 dst->_to_json_string);
1637 (void *)dst->_to_json_string);
14881638 return -1;
14891639 }
14901640 dst->_user_delete = src->_user_delete;
15041654 {
15051655 switch (src->o_type)
15061656 {
1507 case json_type_boolean: *dst = json_object_new_boolean(src->o.c_boolean); break;
1508
1509 case json_type_double: *dst = json_object_new_double(src->o.c_double); break;
1657 case json_type_boolean: *dst = json_object_new_boolean(JC_BOOL(src)->c_boolean); break;
1658
1659 case json_type_double: *dst = json_object_new_double(JC_DOUBLE(src)->c_double); break;
15101660
15111661 case json_type_int:
1512 switch (src->o.c_int.cint_type)
1662 switch (JC_INT(src)->cint_type)
15131663 {
15141664 case json_object_int_type_int64:
1515 *dst = json_object_new_int64(src->o.c_int.cint.c_int64);
1665 *dst = json_object_new_int64(JC_INT(src)->cint.c_int64);
15161666 break;
15171667 case json_object_int_type_uint64:
1518 *dst = json_object_new_uint64(src->o.c_int.cint.c_uint64);
1668 *dst = json_object_new_uint64(JC_INT(src)->cint.c_uint64);
15191669 break;
15201670 default: json_abort("invalid cint_type");
15211671 }
1515 */
1616 #ifndef _json_object_h_
1717 #define _json_object_h_
18
19 #ifdef __GNUC__
20 #define THIS_FUNCTION_IS_DEPRECATED(func) func __attribute__((deprecated))
21 #elif defined(_MSC_VER)
22 #define THIS_FUNCTION_IS_DEPRECATED(func) __declspec(deprecated) func
23 #elif defined(__clang__)
24 #define THIS_FUNCTION_IS_DEPRECATED(func) func __deprecated
25 #else
26 #define THIS_FUNCTION_IS_DEPRECATED(func) func
27 #endif
2818
2919 #ifdef __GNUC__
3020 #define JSON_C_CONST_FUNCTION(func) func __attribute__((const))
132122 /* reference counting functions */
133123
134124 /**
135 * Increment the reference count of json_object, thereby grabbing shared
136 * ownership of obj.
137 *
138 * @param obj the json_object instance
125 * Increment the reference count of json_object, thereby taking ownership of it.
126 *
127 * Cases where you might need to increase the refcount include:
128 * - Using an object field or array index (retrieved through
129 * `json_object_object_get()` or `json_object_array_get_idx()`)
130 * beyond the lifetime of the parent object.
131 * - Detaching an object field or array index from its parent object
132 * (using `json_object_object_del()` or `json_object_array_del_idx()`)
133 * - Sharing a json_object with multiple (not necesarily parallel) threads
134 * of execution that all expect to free it (with `json_object_put()`) when
135 * they're done.
136 *
137 * @param obj the json_object instance
138 * @see json_object_put()
139 * @see json_object_object_get()
140 * @see json_object_array_get_idx()
139141 */
140142 JSON_EXPORT struct json_object *json_object_get(struct json_object *obj);
141143
142144 /**
143145 * Decrement the reference count of json_object and free if it reaches zero.
146 *
144147 * You must have ownership of obj prior to doing this or you will cause an
145 * imbalance in the reference count.
146 * An obj of NULL may be passed; in that case this call is a no-op.
148 * imbalance in the reference count, leading to a classic use-after-free bug.
149 * In particular, you normally do not need to call `json_object_put()` on the
150 * json_object returned by `json_object_object_get()` or `json_object_array_get_idx()`.
151 *
152 * Just like after calling `free()` on a block of memory, you must not use
153 * `obj` after calling `json_object_put()` on it or any object that it
154 * is a member of (unless you know you've called `json_object_get(obj)` to
155 * explicitly increment the refcount).
156 *
157 * NULL may be passed, which which case this is a no-op.
147158 *
148159 * @param obj the json_object instance
149160 * @returns 1 if the object was freed.
161 * @see json_object_get()
150162 */
151163 JSON_EXPORT int json_object_put(struct json_object *obj);
152164
346358
347359 /** Add an object field to a json_object of type json_type_object
348360 *
349 * The reference count will *not* be incremented. This is to make adding
350 * fields to objects in code more compact. If you want to retain a reference
351 * to an added object, independent of the lifetime of obj, you must wrap the
352 * passed object with json_object_get.
353 *
354 * Upon calling this, the ownership of val transfers to obj. Thus you must
355 * make sure that you do in fact have ownership over this object. For instance,
356 * json_object_new_object will give you ownership until you transfer it,
357 * whereas json_object_object_get does not.
361 * The reference count of `val` will *not* be incremented, in effect
362 * transferring ownership that object to `obj`, and thus `val` will be
363 * freed when `obj` is. (i.e. through `json_object_put(obj)`)
364 *
365 * If you want to retain a reference to the added object, independent
366 * of the lifetime of obj, you must increment the refcount with
367 * `json_object_get(val)` (and later release it with json_object_put()).
368 *
369 * Since ownership transfers to `obj`, you must make sure
370 * that you do in fact have ownership over `val`. For instance,
371 * json_object_new_object() will give you ownership until you transfer it,
372 * whereas json_object_object_get() does not.
373 *
374 * Any previous object stored under `key` in `obj` will have its refcount
375 * decremented, and be freed normally if that drops to zero.
358376 *
359377 * @param obj the json_object instance
360378 * @param key the object field name (a private copy will be duplicated)
377395 * @param key the object field name (a private copy will be duplicated)
378396 * @param val a json_object or NULL member to associate with the given field
379397 * @param opts process-modifying options. To specify multiple options, use
380 * arithmetic or (OPT1|OPT2)
398 * (OPT1|OPT2)
381399 */
382400 JSON_EXPORT int json_object_object_add_ex(struct json_object *obj, const char *const key,
383401 struct json_object *const val, const unsigned opts);
499517 /* Array type methods */
500518
501519 /** Create a new empty json_object of type json_type_array
520 * with 32 slots allocated.
521 * If you know the array size you'll need ahead of time, use
522 * json_object_new_array_ext() instead.
523 * @see json_object_new_array_ext()
524 * @see json_object_array_shrink()
502525 * @returns a json_object of type json_type_array
503526 */
504527 JSON_EXPORT struct json_object *json_object_new_array(void);
528
529 /** Create a new empty json_object of type json_type_array
530 * with the desired number of slots allocated.
531 * @see json_object_array_shrink()
532 * @param initial_size the number of slots to allocate
533 * @returns a json_object of type json_type_array
534 */
535 JSON_EXPORT struct json_object *json_object_new_array_ext(int initial_size);
505536
506537 /** Get the arraylist of a json_object of type json_type_array
507538 * @param obj the json_object instance
573604 JSON_EXPORT int json_object_array_put_idx(struct json_object *obj, size_t idx,
574605 struct json_object *val);
575606
576 /** Get the element at specified index of the array (a json_object of type json_type_array)
607 /** Get the element at specified index of array `obj` (which must be a json_object of type json_type_array)
608 *
609 * *No* reference counts will be changed, and ownership of the returned
610 * object remains with `obj`. See json_object_object_get() for additional
611 * implications of this behavior.
612 *
613 * Calling this with anything other than a json_type_array will trigger
614 * an assert.
615 *
577616 * @param obj the json_object instance
578617 * @param idx the index to get the element at
579618 * @returns the json_object at the specified index (or NULL)
593632 * @returns 0 if the elements were successfully deleted
594633 */
595634 JSON_EXPORT int json_object_array_del_idx(struct json_object *obj, size_t idx, size_t count);
635
636 /**
637 * Shrink the internal memory allocation of the array to just
638 * enough to fit the number of elements in it, plus empty_slots.
639 *
640 * @param jso the json_object instance, must be json_type_array
641 * @param empty_slots the number of empty slots to leave allocated
642 */
643 JSON_EXPORT int json_object_array_shrink(struct json_object *jso, int empty_slots);
596644
597645 /* json_bool type methods */
598646
88 *
99 *******************************************************************************
1010 */
11 #include "config.h"
1112
1213 #include <stddef.h>
1314
1919 extern "C" {
2020 #endif
2121
22 /**< how many bytes are directly stored in json_object for strings? */
23 #define LEN_DIRECT_STRING_DATA 32
24
2522 struct json_object;
2623 #include "json_inttypes.h"
2724 #include "json_types.h"
2825
29 typedef void(json_object_private_delete_fn)(struct json_object *o);
26 #ifdef HAVE_UNISTD_H
27 #include <unistd.h>
28 #endif /* HAVE_UNISTD_H */
29
30 #ifdef _MSC_VER
31 #include <BaseTsd.h>
32 typedef SSIZE_T ssize_t;
33 #endif
3034
3135 /* json object int type, support extension*/
3236 typedef enum json_object_int_type
3943 {
4044 enum json_type o_type;
4145 uint32_t _ref_count;
42 json_object_private_delete_fn *_delete;
4346 json_object_to_json_string_fn *_to_json_string;
4447 struct printbuf *_pb;
45 union data
46 {
47 json_bool c_boolean;
48 double c_double;
49 struct
50 {
51 union
52 {
53 int64_t c_int64;
54 uint64_t c_uint64;
55 } cint;
56 enum json_object_int_type cint_type;
57 } c_int;
58 struct lh_table *c_object;
59 struct array_list *c_array;
60 struct
61 {
62 union
63 {
64 /* optimize: if we have small strings, we can store them
65 * directly. This saves considerable CPU cycles AND memory.
66 */
67 char *ptr;
68 char data[LEN_DIRECT_STRING_DATA];
69 } str;
70 int len;
71 } c_string;
72 } o;
7348 json_object_delete_fn *_user_delete;
7449 void *_userdata;
50 // Actually longer, always malloc'd as some more-specific type.
51 // The rest of a struct json_object_${o_type} follows
52 };
53
54 struct json_object_object
55 {
56 struct json_object base;
57 struct lh_table *c_object;
58 };
59 struct json_object_array
60 {
61 struct json_object base;
62 struct array_list *c_array;
63 };
64
65 struct json_object_boolean
66 {
67 struct json_object base;
68 json_bool c_boolean;
69 };
70 struct json_object_double
71 {
72 struct json_object base;
73 double c_double;
74 };
75 struct json_object_int
76 {
77 struct json_object base;
78 enum json_object_int_type cint_type;
79 union
80 {
81 int64_t c_int64;
82 uint64_t c_uint64;
83 } cint;
84 };
85 struct json_object_string
86 {
87 struct json_object base;
88 ssize_t len; // Signed b/c negative lengths indicate data is a pointer
89 // Consider adding an "alloc" field here, if json_object_set_string calls
90 // to expand the length of a string are common operations to perform.
91 union
92 {
93 char idata[1]; // Immediate data. Actually longer
94 char *pdata; // Only when len < 0
95 } c_string;
7596 };
7697
7798 void _json_c_set_last_err(const char *err_fmt, ...);
7899
79 extern const char *json_number_chars;
80100 extern const char *json_hex_chars;
81101
82102 #ifdef __cplusplus
2424 #include <stdlib.h>
2525 #include <string.h>
2626
27 #include "arraylist.h"
2827 #include "debug.h"
2928 #include "json_inttypes.h"
3029 #include "json_object.h"
4039 #ifdef HAVE_XLOCALE_H
4140 #include <xlocale.h>
4241 #endif
42 #ifdef HAVE_STRINGS_H
43 #include <strings.h>
44 #endif /* HAVE_STRINGS_H */
4345
4446 #define jt_hexdigit(x) (((x) <= '9') ? (x) - '0' : ((x)&7) + 9)
4547
9496 */
9597 static json_bool json_tokener_validate_utf8(const char c, unsigned int *nBytes);
9698
99 static int json_tokener_parse_double(const char *buf, int len, double *retval);
100
97101 const char *json_tokener_error_desc(enum json_tokener_error jerr)
98102 {
99103 int jerr_int = (int)jerr;
188192 return NULL;
189193 obj = json_tokener_parse_ex(tok, str, -1);
190194 *error = tok->err;
191 if (tok->err != json_tokener_success)
195 if (tok->err != json_tokener_success
196 #if 0
197 /* This would be a more sensible default, and cause parsing
198 * things like "null123" to fail when the caller can't know
199 * where the parsing left off, but starting to fail would
200 * be a notable behaviour change. Save for a 1.0 release.
201 */
202 || json_tokener_get_parse_end(tok) != strlen(str)
203 #endif
204 )
205
192206 {
193207 if (obj != NULL)
194208 json_object_put(obj);
220234 /* PEEK_CHAR(dest, tok) macro:
221235 * Peeks at the current char and stores it in dest.
222236 * Returns 1 on success, sets tok->err and returns 0 if no more chars.
223 * Implicit inputs: str, len vars
237 * Implicit inputs: str, len, nBytesp vars
224238 */
225239 #define PEEK_CHAR(dest, tok) \
226240 (((tok)->char_offset == len) \
292306 }
293307 #endif
294308
295 while (PEEK_CHAR(c, tok))
309 while (PEEK_CHAR(c, tok)) // Note: c might be '\0' !
296310 {
297311
298312 redo_char:
415429 {
416430 char inf_char = *str;
417431 if (!(tok->flags & JSON_TOKENER_STRICT))
418 inf_char = tolower((int)*str);
432 inf_char = tolower((unsigned char)*str);
419433 if (inf_char != _json_inf_str[tok->st_pos])
420434 {
421435 tok->err = json_tokener_error_parse_unexpected;
625639 }
626640 break;
627641
642 // ===================================================
643
628644 case json_tokener_state_escape_unicode:
629645 {
630 unsigned int got_hi_surrogate = 0;
631
632 /* Handle a 4-byte sequence, or two sequences if a surrogate pair */
646 /* Handle a 4-byte \uNNNN sequence, or two sequences if a surrogate pair */
633647 while (1)
634648 {
635 if (c && strchr(json_hex_chars, c))
636 {
637 tok->ucs_char += ((unsigned int)jt_hexdigit(c)
638 << ((3 - tok->st_pos++) * 4));
639 if (tok->st_pos == 4)
640 {
641 unsigned char unescaped_utf[4];
642
643 if (got_hi_surrogate)
644 {
645 if (IS_LOW_SURROGATE(tok->ucs_char))
646 {
647 /* Recalculate the ucs_char, then fall thru to process normally */
648 tok->ucs_char =
649 DECODE_SURROGATE_PAIR(
650 got_hi_surrogate,
651 tok->ucs_char);
652 }
653 else
654 {
655 /* Hi surrogate was not followed by a low surrogate */
656 /* Replace the hi and process the rest normally */
657 printbuf_memappend_fast(
658 tok->pb,
659 (char *)utf8_replacement_char,
660 3);
661 }
662 got_hi_surrogate = 0;
663 }
664
665 if (tok->ucs_char < 0x80)
666 {
667 unescaped_utf[0] = tok->ucs_char;
668 printbuf_memappend_fast(
669 tok->pb, (char *)unescaped_utf, 1);
670 }
671 else if (tok->ucs_char < 0x800)
672 {
673 unescaped_utf[0] =
674 0xc0 | (tok->ucs_char >> 6);
675 unescaped_utf[1] =
676 0x80 | (tok->ucs_char & 0x3f);
677 printbuf_memappend_fast(
678 tok->pb, (char *)unescaped_utf, 2);
679 }
680 else if (IS_HIGH_SURROGATE(tok->ucs_char))
681 {
682 /* Got a high surrogate. Remember it and look for
683 * the beginning of another sequence, which
684 * should be the low surrogate.
685 */
686 got_hi_surrogate = tok->ucs_char;
687 /* Not at end, and the next two chars should be "\u" */
688 if ((len == -1 ||
689 len > (tok->char_offset + 2)) &&
690 // str[0] != '0' && // implied by json_hex_chars, above.
691 (str[1] == '\\') && (str[2] == 'u'))
692 {
693 /* Advance through the 16 bit surrogate, and move
694 * on to the next sequence. The next step is to
695 * process the following characters.
696 */
697 if (!ADVANCE_CHAR(str, tok) ||
698 !ADVANCE_CHAR(str, tok))
699 {
700 printbuf_memappend_fast(
701 tok->pb,
702 (char *)
703 utf8_replacement_char,
704 3);
705 }
706 /* Advance to the first char of the next sequence and
707 * continue processing with the next sequence.
708 */
709 if (!ADVANCE_CHAR(str, tok) ||
710 !PEEK_CHAR(c, tok))
711 {
712 printbuf_memappend_fast(
713 tok->pb,
714 (char *)
715 utf8_replacement_char,
716 3);
717 goto out;
718 }
719 tok->ucs_char = 0;
720 tok->st_pos = 0;
721 /* other json_tokener_state_escape_unicode */
722 continue;
723 }
724 else
725 {
726 /* Got a high surrogate without another sequence following
727 * it. Put a replacement char in for the hi surrogate
728 * and pretend we finished.
729 */
730 printbuf_memappend_fast(
731 tok->pb,
732 (char *)utf8_replacement_char,
733 3);
734 }
735 }
736 else if (IS_LOW_SURROGATE(tok->ucs_char))
737 {
738 /* Got a low surrogate not preceded by a high */
739 printbuf_memappend_fast(
740 tok->pb, (char *)utf8_replacement_char,
741 3);
742 }
743 else if (tok->ucs_char < 0x10000)
744 {
745 unescaped_utf[0] =
746 0xe0 | (tok->ucs_char >> 12);
747 unescaped_utf[1] =
748 0x80 | ((tok->ucs_char >> 6) & 0x3f);
749 unescaped_utf[2] =
750 0x80 | (tok->ucs_char & 0x3f);
751 printbuf_memappend_fast(
752 tok->pb, (char *)unescaped_utf, 3);
753 }
754 else if (tok->ucs_char < 0x110000)
755 {
756 unescaped_utf[0] =
757 0xf0 | ((tok->ucs_char >> 18) & 0x07);
758 unescaped_utf[1] =
759 0x80 | ((tok->ucs_char >> 12) & 0x3f);
760 unescaped_utf[2] =
761 0x80 | ((tok->ucs_char >> 6) & 0x3f);
762 unescaped_utf[3] =
763 0x80 | (tok->ucs_char & 0x3f);
764 printbuf_memappend_fast(
765 tok->pb, (char *)unescaped_utf, 4);
766 }
767 else
768 {
769 /* Don't know what we got--insert the replacement char */
770 printbuf_memappend_fast(
771 tok->pb, (char *)utf8_replacement_char,
772 3);
773 }
774 state = saved_state;
775 break;
776 }
649 if (!c || !strchr(json_hex_chars, c))
650 {
651 tok->err = json_tokener_error_parse_string;
652 goto out;
653 }
654 tok->ucs_char |=
655 ((unsigned int)jt_hexdigit(c) << ((3 - tok->st_pos) * 4));
656 tok->st_pos++;
657 if (tok->st_pos >= 4)
658 break;
659
660 (void)ADVANCE_CHAR(str, tok);
661 if (!PEEK_CHAR(c, tok))
662 {
663 /*
664 * We're out of characters in the current call to
665 * json_tokener_parse(), but a subsequent call might
666 * provide us with more, so leave our current state
667 * as-is (including tok->high_surrogate) and return.
668 */
669 goto out;
670 }
671 }
672 tok->st_pos = 0;
673
674 /* Now, we have a full \uNNNN sequence in tok->ucs_char */
675
676 /* If the *previous* sequence was a high surrogate ... */
677 if (tok->high_surrogate)
678 {
679 if (IS_LOW_SURROGATE(tok->ucs_char))
680 {
681 /* Recalculate the ucs_char, then fall thru to process normally */
682 tok->ucs_char = DECODE_SURROGATE_PAIR(tok->high_surrogate,
683 tok->ucs_char);
777684 }
778685 else
779686 {
780 tok->err = json_tokener_error_parse_string;
781 goto out;
782 }
783 if (!ADVANCE_CHAR(str, tok) || !PEEK_CHAR(c, tok))
784 {
785 /* Clean up any pending chars */
786 if (got_hi_surrogate)
787 printbuf_memappend_fast(
788 tok->pb, (char *)utf8_replacement_char, 3);
789 goto out;
790 }
791 }
687 /* High surrogate was not followed by a low surrogate
688 * Replace the high and process the rest normally
689 */
690 printbuf_memappend_fast(tok->pb,
691 (char *)utf8_replacement_char, 3);
692 }
693 tok->high_surrogate = 0;
694 }
695
696 if (tok->ucs_char < 0x80)
697 {
698 unsigned char unescaped_utf[1];
699 unescaped_utf[0] = tok->ucs_char;
700 printbuf_memappend_fast(tok->pb, (char *)unescaped_utf, 1);
701 }
702 else if (tok->ucs_char < 0x800)
703 {
704 unsigned char unescaped_utf[2];
705 unescaped_utf[0] = 0xc0 | (tok->ucs_char >> 6);
706 unescaped_utf[1] = 0x80 | (tok->ucs_char & 0x3f);
707 printbuf_memappend_fast(tok->pb, (char *)unescaped_utf, 2);
708 }
709 else if (IS_HIGH_SURROGATE(tok->ucs_char))
710 {
711 /*
712 * The next two characters should be \u, HOWEVER,
713 * we can't simply peek ahead here, because the
714 * characters we need might not be passed to us
715 * until a subsequent call to json_tokener_parse.
716 * Instead, transition throug a couple of states.
717 * (now):
718 * _escape_unicode => _unicode_need_escape
719 * (see a '\\' char):
720 * _unicode_need_escape => _unicode_need_u
721 * (see a 'u' char):
722 * _unicode_need_u => _escape_unicode
723 * ...and we'll end up back around here.
724 */
725 tok->high_surrogate = tok->ucs_char;
726 tok->ucs_char = 0;
727 state = json_tokener_state_escape_unicode_need_escape;
728 break;
729 }
730 else if (IS_LOW_SURROGATE(tok->ucs_char))
731 {
732 /* Got a low surrogate not preceded by a high */
733 printbuf_memappend_fast(tok->pb, (char *)utf8_replacement_char, 3);
734 }
735 else if (tok->ucs_char < 0x10000)
736 {
737 unsigned char unescaped_utf[3];
738 unescaped_utf[0] = 0xe0 | (tok->ucs_char >> 12);
739 unescaped_utf[1] = 0x80 | ((tok->ucs_char >> 6) & 0x3f);
740 unescaped_utf[2] = 0x80 | (tok->ucs_char & 0x3f);
741 printbuf_memappend_fast(tok->pb, (char *)unescaped_utf, 3);
742 }
743 else if (tok->ucs_char < 0x110000)
744 {
745 unsigned char unescaped_utf[4];
746 unescaped_utf[0] = 0xf0 | ((tok->ucs_char >> 18) & 0x07);
747 unescaped_utf[1] = 0x80 | ((tok->ucs_char >> 12) & 0x3f);
748 unescaped_utf[2] = 0x80 | ((tok->ucs_char >> 6) & 0x3f);
749 unescaped_utf[3] = 0x80 | (tok->ucs_char & 0x3f);
750 printbuf_memappend_fast(tok->pb, (char *)unescaped_utf, 4);
751 }
752 else
753 {
754 /* Don't know what we got--insert the replacement char */
755 printbuf_memappend_fast(tok->pb, (char *)utf8_replacement_char, 3);
756 }
757 state = saved_state; // i.e. _state_string or _state_object_field
792758 }
793759 break;
760
761 case json_tokener_state_escape_unicode_need_escape:
762 // We get here after processing a high_surrogate
763 // require a '\\' char
764 if (!c || c != '\\')
765 {
766 /* Got a high surrogate without another sequence following
767 * it. Put a replacement char in for the high surrogate
768 * and pop back up to _state_string or _state_object_field.
769 */
770 printbuf_memappend_fast(tok->pb, (char *)utf8_replacement_char, 3);
771 tok->high_surrogate = 0;
772 tok->ucs_char = 0;
773 tok->st_pos = 0;
774 state = saved_state;
775 goto redo_char;
776 }
777 state = json_tokener_state_escape_unicode_need_u;
778 break;
779
780 case json_tokener_state_escape_unicode_need_u:
781 /* We already had a \ char, check that it's \u */
782 if (!c || c != 'u')
783 {
784 /* Got a high surrogate with some non-unicode escape
785 * sequence following it.
786 * Put a replacement char in for the high surrogate
787 * and handle the escape sequence normally.
788 */
789 printbuf_memappend_fast(tok->pb, (char *)utf8_replacement_char, 3);
790 tok->high_surrogate = 0;
791 tok->ucs_char = 0;
792 tok->st_pos = 0;
793 state = json_tokener_state_string_escape;
794 goto redo_char;
795 }
796 state = json_tokener_state_escape_unicode;
797 break;
798
799 // ===================================================
794800
795801 case json_tokener_state_boolean:
796802 {
841847 const char *case_start = str;
842848 int case_len = 0;
843849 int is_exponent = 0;
844 int negativesign_next_possible_location = 1;
845 while (c && strchr(json_number_chars, c))
846 {
850 int neg_sign_ok = 1;
851 int pos_sign_ok = 0;
852 if (printbuf_length(tok->pb) > 0)
853 {
854 /* We don't save all state from the previous incremental parse
855 so we need to re-generate it based on the saved string so far.
856 */
857 char *e_loc = strchr(tok->pb->buf, 'e');
858 if (!e_loc)
859 e_loc = strchr(tok->pb->buf, 'E');
860 if (e_loc)
861 {
862 char *last_saved_char =
863 &tok->pb->buf[printbuf_length(tok->pb) - 1];
864 is_exponent = 1;
865 pos_sign_ok = neg_sign_ok = 1;
866 /* If the "e" isn't at the end, we can't start with a '-' */
867 if (e_loc != last_saved_char)
868 {
869 neg_sign_ok = 0;
870 pos_sign_ok = 0;
871 }
872 // else leave it set to 1, i.e. start of the new input
873 }
874 }
875
876 while (c && ((c >= '0' && c <= '9') ||
877 (!is_exponent && (c == 'e' || c == 'E')) ||
878 (neg_sign_ok && c == '-') || (pos_sign_ok && c == '+') ||
879 (!tok->is_double && c == '.')))
880 {
881 pos_sign_ok = neg_sign_ok = 0;
847882 ++case_len;
848883
849884 /* non-digit characters checks */
852887 * protected from input starting with '.' or
853888 * e/E.
854889 */
855 if (c == '.')
856 {
857 if (tok->is_double != 0)
858 {
859 /* '.' can only be found once, and out of the exponent part.
860 * Thus, if the input is already flagged as double, it
861 * is invalid.
862 */
863 tok->err = json_tokener_error_parse_number;
864 goto out;
865 }
890 switch (c)
891 {
892 case '.':
866893 tok->is_double = 1;
867 }
868 if (c == 'e' || c == 'E')
869 {
870 if (is_exponent != 0)
871 {
872 /* only one exponent possible */
873 tok->err = json_tokener_error_parse_number;
874 goto out;
875 }
894 pos_sign_ok = 1;
895 neg_sign_ok = 1;
896 break;
897 case 'e': /* FALLTHRU */
898 case 'E':
876899 is_exponent = 1;
877900 tok->is_double = 1;
878901 /* the exponent part can begin with a negative sign */
879 negativesign_next_possible_location = case_len + 1;
880 }
881 if (c == '-' && case_len != negativesign_next_possible_location)
882 {
883 /* If the negative sign is not where expected (ie
884 * start of input or start of exponent part), the
885 * input is invalid.
886 */
887 tok->err = json_tokener_error_parse_number;
888 goto out;
902 pos_sign_ok = neg_sign_ok = 1;
903 break;
904 default: break;
889905 }
890906
891907 if (!ADVANCE_CHAR(str, tok) || !PEEK_CHAR(c, tok))
893909 printbuf_memappend_fast(tok->pb, case_start, case_len);
894910 goto out;
895911 }
912 }
913 /*
914 Now we know c isn't a valid number char, but check whether
915 it might have been intended to be, and return a potentially
916 more understandable error right away.
917 However, if we're at the top-level, use the number as-is
918 because c can be part of a new object to parse on the
919 next call to json_tokener_parse().
920 */
921 if (tok->depth > 0 && c != ',' && c != ']' && c != '}' && c != '/' &&
922 c != 'I' && c != 'i' && !isspace((unsigned char)c))
923 {
924 tok->err = json_tokener_error_parse_number;
925 goto out;
896926 }
897927 if (case_len > 0)
898928 printbuf_memappend_fast(tok->pb, case_start, case_len);
903933 state = json_tokener_state_inf;
904934 tok->st_pos = 0;
905935 goto redo_char;
936 }
937 if (tok->is_double && !(tok->flags & JSON_TOKENER_STRICT))
938 {
939 /* Trim some chars off the end, to allow things
940 like "123e+" to parse ok. */
941 while (printbuf_length(tok->pb) > 1)
942 {
943 char last_char = tok->pb->buf[printbuf_length(tok->pb) - 1];
944 if (last_char != 'e' && last_char != 'E' &&
945 last_char != '-' && last_char != '+')
946 {
947 break;
948 }
949 tok->pb->buf[printbuf_length(tok->pb) - 1] = '\0';
950 printbuf_length(tok->pb)--;
951 }
906952 }
907953 }
908954 {
940986 }
941987 }
942988 else if (tok->is_double &&
943 json_parse_double(tok->pb->buf, &numd) == 0)
989 json_tokener_parse_double(
990 tok->pb->buf, printbuf_length(tok->pb), &numd) == 0)
944991 {
945992 current = json_object_new_double_s(numd, tok->pb->buf);
946993 if (current == NULL)
9611008 case json_tokener_state_array:
9621009 if (c == ']')
9631010 {
1011 // Minimize memory usage; assume parsed objs are unlikely to be changed
1012 json_object_array_shrink(current, 0);
1013
9641014 if (state == json_tokener_state_array_after_sep &&
9651015 (tok->flags & JSON_TOKENER_STRICT))
9661016 {
9941044 case json_tokener_state_array_sep:
9951045 if (c == ']')
9961046 {
1047 // Minimize memory usage; assume parsed objs are unlikely to be changed
1048 json_object_array_shrink(current, 0);
1049
9971050 saved_state = json_tokener_state_finish;
9981051 state = json_tokener_state_eatws;
9991052 }
11191172 }
11201173 break;
11211174 }
1122 if (!ADVANCE_CHAR(str, tok))
1123 goto out;
1175 (void)ADVANCE_CHAR(str, tok);
1176 if (!c) // This is the char *before* advancing
1177 break;
11241178 } /* while(PEEK_CHAR) */
11251179
11261180 out:
11291183 tok->err = json_tokener_error_parse_utf8_string;
11301184 }
11311185 if (c && (state == json_tokener_state_finish) && (tok->depth == 0) &&
1132 (tok->flags & JSON_TOKENER_STRICT))
1186 (tok->flags & (JSON_TOKENER_STRICT | JSON_TOKENER_ALLOW_TRAILING_CHARS)) ==
1187 JSON_TOKENER_STRICT)
11331188 {
11341189 /* unexpected char after JSON data */
11351190 tok->err = json_tokener_error_parse_unexpected;
12011256 assert(tok->char_offset >= 0); /* Drop this line when char_offset becomes a size_t */
12021257 return (size_t)tok->char_offset;
12031258 }
1259
1260 static int json_tokener_parse_double(const char *buf, int len, double *retval)
1261 {
1262 char *end;
1263 *retval = strtod(buf, &end);
1264 if (buf + len == end)
1265 return 0; // It worked
1266 return 1;
1267 }
5858 json_tokener_state_string,
5959 json_tokener_state_string_escape,
6060 json_tokener_state_escape_unicode,
61 json_tokener_state_escape_unicode_need_escape,
62 json_tokener_state_escape_unicode_need_u,
6163 json_tokener_state_boolean,
6264 json_tokener_state_number,
6365 json_tokener_state_array,
110112 * @deprecated See json_tokener_get_error() instead.
111113 */
112114 enum json_tokener_error err;
113 unsigned int ucs_char;
115 unsigned int ucs_char, high_surrogate;
114116 char quote_char;
115117 struct json_tokener_srec *stack;
116118 int flags;
143145 * restrictive from one release to the next, causing your
144146 * code to fail on previously working input.
145147 *
148 * Note that setting this will also effectively disable parsing
149 * of multiple json objects in a single character stream
150 * (e.g. {"foo":123}{"bar":234}); if you want to allow that
151 * also set JSON_TOKENER_ALLOW_TRAILING_CHARS
152 *
146153 * This flag is not set by default.
147154 *
148155 * @see json_tokener_set_flags()
149156 */
150157 #define JSON_TOKENER_STRICT 0x01
158
159 /**
160 * Use with JSON_TOKENER_STRICT to allow trailing characters after the
161 * first parsed object.
162 *
163 * @see json_tokener_set_flags()
164 */
165 #define JSON_TOKENER_ALLOW_TRAILING_CHARS 0x02
151166
152167 /**
153168 * Cause json_tokener_parse_ex() to validate that input is UTF8.
180195 */
181196 JSON_EXPORT enum json_tokener_error json_tokener_get_error(struct json_tokener *tok);
182197
198 /**
199 * Allocate a new json_tokener.
200 * When done using that to parse objects, free it with json_tokener_free().
201 * See json_tokener_parse_ex() for usage details.
202 */
183203 JSON_EXPORT struct json_tokener *json_tokener_new(void);
204
205 /**
206 * Allocate a new json_tokener with a custom max nesting depth.
207 * @see JSON_TOKENER_DEFAULT_DEPTH
208 */
184209 JSON_EXPORT struct json_tokener *json_tokener_new_ex(int depth);
210
211 /**
212 * Free a json_tokener previously allocated with json_tokener_new().
213 */
185214 JSON_EXPORT void json_tokener_free(struct json_tokener *tok);
215
216 /**
217 * Reset the state of a json_tokener, to prepare to parse a
218 * brand new JSON object.
219 */
186220 JSON_EXPORT void json_tokener_reset(struct json_tokener *tok);
221
222 /**
223 * Parse a json_object out of the string `str`.
224 *
225 * If you need more control over how the parsing occurs,
226 * see json_tokener_parse_ex().
227 */
187228 JSON_EXPORT struct json_object *json_tokener_parse(const char *str);
229
230 /**
231 * Parser a json_object out of the string `str`, but if it fails
232 * return the error in `*error`.
233 * @see json_tokener_parse()
234 * @see json_tokener_parse_ex()
235 */
188236 JSON_EXPORT struct json_object *json_tokener_parse_verbose(const char *str,
189237 enum json_tokener_error *error);
190238
206254 *
207255 * If json_tokener_parse_ex() returns NULL and the error is anything other than
208256 * json_tokener_continue, a fatal error has occurred and parsing must be
209 * halted. Then, the tok object must not be reused until json_tokener_reset() is
210 * called.
257 * halted. Then, the tok object must not be reused until json_tokener_reset()
258 * is called.
211259 *
212260 * When a valid JSON value is parsed, a non-NULL json_object will be
213261 * returned, with a reference count of one which belongs to the caller. Also,
220268 * error or to handle the additional characters, perhaps by parsing another
221269 * json value starting from that point.
222270 *
271 * If the caller knows that they are at the end of their input, the length
272 * passed MUST include the final '\0' character, so values with no inherent
273 * end (i.e. numbers) can be properly parsed, rather than just returning
274 * json_tokener_continue.
275 *
223276 * Extra characters can be detected by comparing the value returned by
224277 * json_tokener_get_parse_end() against
225278 * the length of the last len parameter passed in.
226279 *
227280 * The tokener does \b not maintain an internal buffer so the caller is
228 * responsible for calling json_tokener_parse_ex with an appropriate str
229 * parameter starting with the extra characters.
281 * responsible for a subsequent call to json_tokener_parse_ex with an
282 * appropriate str parameter starting with the extra characters.
230283 *
231284 * This interface is presently not 64-bit clean due to the int len argument
232285 * so the function limits the maximum string size to INT32_MAX (2GB).
242295 do {
243296 mystring = ... // get JSON string, e.g. read from file, etc...
244297 stringlen = strlen(mystring);
298 if (end_of_input)
299 stringlen++; // Include the '\0' if we know we're at the end of input
245300 jobj = json_tokener_parse_ex(tok, mystring, stringlen);
246301 } while ((jerr = json_tokener_get_error(tok)) == json_tokener_continue);
247302 if (jerr != json_tokener_success)
221221 return json_object_to_file_ext(filename, obj, JSON_C_TO_STRING_PLAIN);
222222 }
223223
224 // Deprecated json_parse_double function. See json_tokener_parse_double instead.
224225 int json_parse_double(const char *buf, double *retval)
225226 {
226227 char *end;
244245 {
245246 char *end = NULL;
246247 uint64_t val;
247 errno = 1;
248
248
249 errno = 0;
249250 while (*buf == ' ')
250 {
251251 buf++;
252 }
253252 if (*buf == '-')
254 errno = 0;
253 return 1; /* error: uint cannot be negative */
255254
256255 val = strtoull(buf, &end, 10);
257256 if (end != buf)
258257 *retval = val;
259 return ((errno == 0) || (end == buf)) ? 1 : 0;
258 return ((val == 0 && errno != 0) || (end == buf)) ? 1 : 0;
260259 }
261260
262261 #ifndef HAVE_REALLOC
9999 */
100100 JSON_EXPORT const char *json_util_get_last_err(void);
101101
102 /* these parsing helpers return zero on success */
102103 JSON_EXPORT int json_parse_int64(const char *buf, int64_t *retval);
103104 JSON_EXPORT int json_parse_uint64(const char *buf, uint64_t *retval);
105 /**
106 * @deprecated
107 */
104108 JSON_EXPORT int json_parse_double(const char *buf, double *retval);
105109
106110 /**
66 * @brief Methods for walking a tree of objects.
77 */
88 #include "json_object.h"
9
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
913
1014 typedef int(json_c_visit_userfunc)(json_object *jso, int flags, json_object *parent_jso,
1115 const char *jso_key, size_t *jso_index, void *userarg);
8993 */
9094 #define JSON_C_VISIT_RETURN_ERROR -1
9195
96 #ifdef __cplusplus
97 }
98 #endif
99
92100 #endif /* _json_c_json_visit_h_ */
1111
1212 #include "config.h"
1313
14 #include <assert.h>
1415 #include <limits.h>
1516 #include <stdarg.h>
1617 #include <stddef.h>
498499 int i;
499500 struct lh_table *t;
500501
502 /* Allocate space for elements to avoid divisions by zero. */
503 assert(size > 0);
501504 t = (struct lh_table *)calloc(1, sizeof(struct lh_table));
502505 if (!t)
503506 return NULL;
577580 unsigned long n;
578581
579582 if (t->count >= t->size * LH_LOAD_FACTOR)
580 if (lh_table_resize(t, t->size * 2) != 0)
583 {
584 /* Avoid signed integer overflow with large tables. */
585 int new_size = (t->size > INT_MAX / 2) ? INT_MAX : (t->size * 2);
586 if (t->size == INT_MAX || lh_table_resize(t, new_size) != 0)
581587 return -1;
588 }
582589
583590 n = h % t->size;
584591
310310 /**
311311 * @deprecated Don't use this outside of linkhash.h:
312312 */
313 #if !defined(_MSC_VER) || (_MSC_VER > 1800)
313 #if (defined(AIX_CC) || (defined(_MSC_VER) && (_MSC_VER <= 1800)) )
314314 /* VS2010 can't handle inline funcs, so skip it there */
315 #define _LH_INLINE
316 #else
315317 #define _LH_INLINE inline
316 #else
317 #define _LH_INLINE
318318 #endif
319319
320320 /**
1111 #ifdef HAVE_DECL__ISNAN
1212 #include <float.h>
1313 #define isnan(x) _isnan(x)
14 #else
15 /* On platforms like AIX and "IBM i" we need to provide our own isnan */
16 #define isnan(x) ((x) != (x))
1417 #endif
1518 #endif
1619
1821 #ifdef HAVE_DECL__FINITE
1922 #include <float.h>
2023 #define isinf(x) (!_finite(x))
24 #else
25 #include <float.h>
26 /* On platforms like AIX and "IBM i" we need to provide our own isinf */
27 #define isinf(x) ((x) < -DBL_MAX || (x) > DBL_MAX)
2128 #endif
2229 #endif
2330
1414
1515 #include "config.h"
1616
17 #include <limits.h>
1718 #include <stdio.h>
1819 #include <stdlib.h>
1920 #include <string.h>
6465
6566 if (p->size >= min_size)
6667 return 0;
67
68 new_size = p->size * 2;
69 if (new_size < min_size + 8)
68 /* Prevent signed integer overflows with large buffers. */
69 if (min_size > INT_MAX - 8)
70 return -1;
71 if (p->size > INT_MAX / 2)
7072 new_size = min_size + 8;
73 else {
74 new_size = p->size * 2;
75 if (new_size < min_size + 8)
76 new_size = min_size + 8;
77 }
7178 #ifdef PRINTBUF_DEBUG
7279 MC_DEBUG("printbuf_memappend: realloc "
7380 "bpos=%d min_size=%d old_size=%d new_size=%d\n",
8289
8390 int printbuf_memappend(struct printbuf *p, const char *buf, int size)
8491 {
92 /* Prevent signed integer overflows with large buffers. */
93 if (size > INT_MAX - p->bpos - 1)
94 return -1;
8595 if (p->size <= p->bpos + size + 1)
8696 {
8797 if (printbuf_extend(p, p->bpos + size + 1) < 0)
99109
100110 if (offset == -1)
101111 offset = pb->bpos;
112 /* Prevent signed integer overflows with large buffers. */
113 if (len > INT_MAX - offset)
114 return -1;
102115 size_needed = offset + len;
103116 if (pb->size < size_needed)
104117 {
2525 static void do_cpuid(int regs[], int h)
2626 {
2727 /* clang-format off */
28 __asm__ __volatile__(
29 #if defined __x86_64__
30 "pushq %%rbx;\n"
31 #else
32 "pushl %%ebx;\n"
33 #endif
34 "cpuid;\n"
35 #if defined __x86_64__
36 "popq %%rbx;\n"
37 #else
38 "popl %%ebx;\n"
39 #endif
40 : "=a"(regs[0]), [ebx] "=r"(regs[1]), "=c"(regs[2]), "=d"(regs[3])
28 __asm__ __volatile__("cpuid"
29 : "=a"(regs[0]), "=b"(regs[1]), "=c"(regs[2]), "=d"(regs[3])
4130 : "a"(h));
4231 /* clang-format on */
4332 }
5342
5443 #if HAS_X86_CPUID
5544
45 static int get_rdrand_seed(void);
46
47 /* Valid values are -1 (haven't tested), 0 (no), and 1 (yes). */
48 static int _has_rdrand = -1;
49
5650 static int has_rdrand(void)
5751 {
58 // CPUID.01H:ECX.RDRAND[bit 30] == 1
52 if (_has_rdrand != -1)
53 {
54 return _has_rdrand;
55 }
56
57 /* CPUID.01H:ECX.RDRAND[bit 30] == 1 */
5958 int regs[4];
6059 do_cpuid(regs, 1);
61 return (regs[2] & (1 << 30)) != 0;
60 if (!(regs[2] & (1 << 30)))
61 {
62 _has_rdrand = 0;
63 return 0;
64 }
65
66 /*
67 * Some CPUs advertise RDRAND in CPUID, but return 0xFFFFFFFF
68 * unconditionally. To avoid locking up later, test RDRAND here. If over
69 * 3 trials RDRAND has returned the same value, declare it broken.
70 * Example CPUs are AMD Ryzen 3000 series
71 * and much older AMD APUs, such as the E1-1500
72 * https://github.com/systemd/systemd/issues/11810
73 * https://linuxreviews.org/RDRAND_stops_returning_random_values_on_older_AMD_CPUs_after_suspend
74 */
75 _has_rdrand = 0;
76 int prev = get_rdrand_seed();
77 for (int i = 0; i < 3; i++)
78 {
79 int temp = get_rdrand_seed();
80 if (temp != prev)
81 {
82 _has_rdrand = 1;
83 break;
84 }
85
86 prev = temp;
87 }
88
89 return _has_rdrand;
6290 }
6391
6492 #endif
73101 {
74102 DEBUG_SEED("get_rdrand_seed");
75103 int _eax;
76 // rdrand eax
104 /* rdrand eax */
77105 /* clang-format off */
78106 __asm__ __volatile__("1: .byte 0x0F\n"
79107 " .byte 0xC7\n"
113141 DEBUG_SEED("get_rdrand_seed");
114142 int _eax;
115143 retry:
116 // rdrand eax
144 /* rdrand eax */
117145 __asm _emit 0x0F __asm _emit 0xC7 __asm _emit 0xF0
118146 __asm jnc retry
119147 __asm mov _eax, eax
187215
188216 /* clang-format off */
189217 #include <windows.h>
218
219 /* Caution: these blank lines must remain so clang-format doesn't reorder
220 includes to put windows.h after wincrypt.h */
221
190222 #include <wincrypt.h>
191223 /* clang-format on */
192224 #ifndef __GNUC__
193225 #pragma comment(lib, "advapi32.lib")
194226 #endif
195227
228 static int get_time_seed(void);
229
196230 static int get_cryptgenrandom_seed(void)
197231 {
198232 HCRYPTPROV hProvider = 0;
233 DWORD dwFlags = CRYPT_VERIFYCONTEXT;
199234 int r;
200235
201236 DEBUG_SEED("get_cryptgenrandom_seed");
202237
203 if (!CryptAcquireContextW(&hProvider, 0, 0, PROV_RSA_FULL,
204 CRYPT_VERIFYCONTEXT | CRYPT_SILENT))
205 {
206 fprintf(stderr, "error CryptAcquireContextW");
207 exit(1);
208 }
209
210 if (!CryptGenRandom(hProvider, sizeof(r), (BYTE *)&r))
211 {
212 fprintf(stderr, "error CryptGenRandom");
213 exit(1);
214 }
215
216 CryptReleaseContext(hProvider, 0);
238 /* WinNT 4 and Win98 do no support CRYPT_SILENT */
239 if (LOBYTE(LOWORD(GetVersion())) > 4)
240 dwFlags |= CRYPT_SILENT;
241
242 if (!CryptAcquireContextA(&hProvider, 0, 0, PROV_RSA_FULL, dwFlags))
243 {
244 fprintf(stderr, "error CryptAcquireContextA 0x%08lx", GetLastError());
245 r = get_time_seed();
246 }
247 else
248 {
249 BOOL ret = CryptGenRandom(hProvider, sizeof(r), (BYTE*)&r);
250 CryptReleaseContext(hProvider, 0);
251 if (!ret)
252 {
253 fprintf(stderr, "error CryptGenRandom 0x%08lx", GetLastError());
254 r = get_time_seed();
255 }
256 }
217257
218258 return r;
219259 }
235275
236276 int json_c_get_random_seed(void)
237277 {
278 #ifdef OVERRIDE_GET_RANDOM_SEED
279 OVERRIDE_GET_RANDOM_SEED;
280 #endif
238281 #if defined HAVE_RDRAND && HAVE_RDRAND
239282 if (has_rdrand())
240283 return get_rdrand_seed();
1212
1313 #include <stdarg.h>
1414
15 #if !defined(HAVE_SNPRINTF) && defined(_MSC_VER)
15 #if !defined(HAVE_SNPRINTF) && (defined(_MSC_VER) || defined(__MINGW32__))
1616 static int json_c_vsnprintf(char *str, size_t size, const char *format, va_list ap)
1717 {
1818 int ret;
1919 ENTRY(EIO),
2020 ENTRY(ENXIO),
2121 ENTRY(E2BIG),
22 #ifdef ENOEXEC
2223 ENTRY(ENOEXEC),
24 #endif
2325 ENTRY(EBADF),
2426 ENTRY(ECHILD),
2527 ENTRY(EDEADLK),
5658 /* clang-format on */
5759
5860 // Enabled during tests
59 int _json_c_strerror_enable = 0;
61 static int _json_c_strerror_enable = 0;
62 extern char *getenv(const char *name); // Avoid including stdlib.h
6063
6164 #define PREFIX "ERRNO="
6265 static char errno_buf[128] = PREFIX;
6770 int ii, jj;
6871
6972 if (!_json_c_strerror_enable)
73 _json_c_strerror_enable = (getenv("_JSON_C_STRERROR_ENABLE") == NULL) ? -1 : 1;
74 if (_json_c_strerror_enable == -1)
7075 return strerror(errno_in);
7176
7277 // Avoid standard functions, so we don't need to include any
3636 test_object_iterator)
3737
3838 add_executable(${TESTNAME} ${TESTNAME}.c)
39 if(${TESTNAME} STREQUAL test_util_file)
40 # For output consistency, we need _json_c_strerror() in some tests:
41 target_sources(${TESTNAME} PRIVATE ../strerror_override.c)
42 endif()
3943 add_test(NAME ${TESTNAME} COMMAND ${PROJECT_SOURCE_DIR}/tests/${TESTNAME}.test)
4044
4145 # XXX using the non-target_ versions of these doesn't work :(
249249 test_array_del_idx();
250250 test_array_list_expand_internal();
251251
252 my_array = json_object_new_array();
252 my_array = json_object_new_array_ext(5);
253253 json_object_array_add(my_array, json_object_new_int(3));
254254 json_object_array_add(my_array, json_object_new_int(1));
255255 json_object_array_add(my_array, json_object_new_int(2));
22 */
33
44 #include "config.h"
5 #include <assert.h>
56 #include <stdio.h>
7 #include <stdlib.h>
68 #include <string.h>
79
810 #include "json_inttypes.h"
911 #include "json_object.h"
1012 #include "json_tokener.h"
13 #include "snprintf_compat.h"
1114
1215 void print_hex(const char *s)
1316 {
2124 printf(",");
2225 }
2326 putchar('\n');
27 }
28
29 static void test_lot_of_adds(void);
30 static void test_lot_of_adds()
31 {
32 int ii;
33 char key[50];
34 json_object *jobj = json_object_new_object();
35 assert(jobj != NULL);
36 for (ii = 0; ii < 500; ii++)
37 {
38 snprintf(key, sizeof(key), "k%d", ii);
39 json_object *iobj = json_object_new_int(ii);
40 assert(iobj != NULL);
41 if (json_object_object_add(jobj, key, iobj))
42 {
43 fprintf(stderr, "FAILED to add object #%d\n", ii);
44 abort();
45 }
46 }
47 printf("%s\n", json_object_to_json_string(jobj));
48 assert(json_object_object_length(jobj) == 500);
49 json_object_put(jobj);
2450 }
2551
2652 int main(void)
5177 retval = 1;
5278 }
5379 json_object_put(parse_result);
80
81 test_lot_of_adds();
82
5483 return retval;
5584 }
00 input: "\ud840\udd26,\ud840\udd27,\ud800\udd26,\ud800\udd27"
11 JSON parse result is correct: 𠄦,𠄧,𐄦,𐄧
22 PASS
3 { "k0": 0, "k1": 1, "k2": 2, "k3": 3, "k4": 4, "k5": 5, "k6": 6, "k7": 7, "k8": 8, "k9": 9, "k10": 10, "k11": 11, "k12": 12, "k13": 13, "k14": 14, "k15": 15, "k16": 16, "k17": 17, "k18": 18, "k19": 19, "k20": 20, "k21": 21, "k22": 22, "k23": 23, "k24": 24, "k25": 25, "k26": 26, "k27": 27, "k28": 28, "k29": 29, "k30": 30, "k31": 31, "k32": 32, "k33": 33, "k34": 34, "k35": 35, "k36": 36, "k37": 37, "k38": 38, "k39": 39, "k40": 40, "k41": 41, "k42": 42, "k43": 43, "k44": 44, "k45": 45, "k46": 46, "k47": 47, "k48": 48, "k49": 49, "k50": 50, "k51": 51, "k52": 52, "k53": 53, "k54": 54, "k55": 55, "k56": 56, "k57": 57, "k58": 58, "k59": 59, "k60": 60, "k61": 61, "k62": 62, "k63": 63, "k64": 64, "k65": 65, "k66": 66, "k67": 67, "k68": 68, "k69": 69, "k70": 70, "k71": 71, "k72": 72, "k73": 73, "k74": 74, "k75": 75, "k76": 76, "k77": 77, "k78": 78, "k79": 79, "k80": 80, "k81": 81, "k82": 82, "k83": 83, "k84": 84, "k85": 85, "k86": 86, "k87": 87, "k88": 88, "k89": 89, "k90": 90, "k91": 91, "k92": 92, "k93": 93, "k94": 94, "k95": 95, "k96": 96, "k97": 97, "k98": 98, "k99": 99, "k100": 100, "k101": 101, "k102": 102, "k103": 103, "k104": 104, "k105": 105, "k106": 106, "k107": 107, "k108": 108, "k109": 109, "k110": 110, "k111": 111, "k112": 112, "k113": 113, "k114": 114, "k115": 115, "k116": 116, "k117": 117, "k118": 118, "k119": 119, "k120": 120, "k121": 121, "k122": 122, "k123": 123, "k124": 124, "k125": 125, "k126": 126, "k127": 127, "k128": 128, "k129": 129, "k130": 130, "k131": 131, "k132": 132, "k133": 133, "k134": 134, "k135": 135, "k136": 136, "k137": 137, "k138": 138, "k139": 139, "k140": 140, "k141": 141, "k142": 142, "k143": 143, "k144": 144, "k145": 145, "k146": 146, "k147": 147, "k148": 148, "k149": 149, "k150": 150, "k151": 151, "k152": 152, "k153": 153, "k154": 154, "k155": 155, "k156": 156, "k157": 157, "k158": 158, "k159": 159, "k160": 160, "k161": 161, "k162": 162, "k163": 163, "k164": 164, "k165": 165, "k166": 166, "k167": 167, "k168": 168, "k169": 169, "k170": 170, "k171": 171, "k172": 172, "k173": 173, "k174": 174, "k175": 175, "k176": 176, "k177": 177, "k178": 178, "k179": 179, "k180": 180, "k181": 181, "k182": 182, "k183": 183, "k184": 184, "k185": 185, "k186": 186, "k187": 187, "k188": 188, "k189": 189, "k190": 190, "k191": 191, "k192": 192, "k193": 193, "k194": 194, "k195": 195, "k196": 196, "k197": 197, "k198": 198, "k199": 199, "k200": 200, "k201": 201, "k202": 202, "k203": 203, "k204": 204, "k205": 205, "k206": 206, "k207": 207, "k208": 208, "k209": 209, "k210": 210, "k211": 211, "k212": 212, "k213": 213, "k214": 214, "k215": 215, "k216": 216, "k217": 217, "k218": 218, "k219": 219, "k220": 220, "k221": 221, "k222": 222, "k223": 223, "k224": 224, "k225": 225, "k226": 226, "k227": 227, "k228": 228, "k229": 229, "k230": 230, "k231": 231, "k232": 232, "k233": 233, "k234": 234, "k235": 235, "k236": 236, "k237": 237, "k238": 238, "k239": 239, "k240": 240, "k241": 241, "k242": 242, "k243": 243, "k244": 244, "k245": 245, "k246": 246, "k247": 247, "k248": 248, "k249": 249, "k250": 250, "k251": 251, "k252": 252, "k253": 253, "k254": 254, "k255": 255, "k256": 256, "k257": 257, "k258": 258, "k259": 259, "k260": 260, "k261": 261, "k262": 262, "k263": 263, "k264": 264, "k265": 265, "k266": 266, "k267": 267, "k268": 268, "k269": 269, "k270": 270, "k271": 271, "k272": 272, "k273": 273, "k274": 274, "k275": 275, "k276": 276, "k277": 277, "k278": 278, "k279": 279, "k280": 280, "k281": 281, "k282": 282, "k283": 283, "k284": 284, "k285": 285, "k286": 286, "k287": 287, "k288": 288, "k289": 289, "k290": 290, "k291": 291, "k292": 292, "k293": 293, "k294": 294, "k295": 295, "k296": 296, "k297": 297, "k298": 298, "k299": 299, "k300": 300, "k301": 301, "k302": 302, "k303": 303, "k304": 304, "k305": 305, "k306": 306, "k307": 307, "k308": 308, "k309": 309, "k310": 310, "k311": 311, "k312": 312, "k313": 313, "k314": 314, "k315": 315, "k316": 316, "k317": 317, "k318": 318, "k319": 319, "k320": 320, "k321": 321, "k322": 322, "k323": 323, "k324": 324, "k325": 325, "k326": 326, "k327": 327, "k328": 328, "k329": 329, "k330": 330, "k331": 331, "k332": 332, "k333": 333, "k334": 334, "k335": 335, "k336": 336, "k337": 337, "k338": 338, "k339": 339, "k340": 340, "k341": 341, "k342": 342, "k343": 343, "k344": 344, "k345": 345, "k346": 346, "k347": 347, "k348": 348, "k349": 349, "k350": 350, "k351": 351, "k352": 352, "k353": 353, "k354": 354, "k355": 355, "k356": 356, "k357": 357, "k358": 358, "k359": 359, "k360": 360, "k361": 361, "k362": 362, "k363": 363, "k364": 364, "k365": 365, "k366": 366, "k367": 367, "k368": 368, "k369": 369, "k370": 370, "k371": 371, "k372": 372, "k373": 373, "k374": 374, "k375": 375, "k376": 376, "k377": 377, "k378": 378, "k379": 379, "k380": 380, "k381": 381, "k382": 382, "k383": 383, "k384": 384, "k385": 385, "k386": 386, "k387": 387, "k388": 388, "k389": 389, "k390": 390, "k391": 391, "k392": 392, "k393": 393, "k394": 394, "k395": 395, "k396": 396, "k397": 397, "k398": 398, "k399": 399, "k400": 400, "k401": 401, "k402": 402, "k403": 403, "k404": 404, "k405": 405, "k406": 406, "k407": 407, "k408": 408, "k409": 409, "k410": 410, "k411": 411, "k412": 412, "k413": 413, "k414": 414, "k415": 415, "k416": 416, "k417": 417, "k418": 418, "k419": 419, "k420": 420, "k421": 421, "k422": 422, "k423": 423, "k424": 424, "k425": 425, "k426": 426, "k427": 427, "k428": 428, "k429": 429, "k430": 430, "k431": 431, "k432": 432, "k433": 433, "k434": 434, "k435": 435, "k436": 436, "k437": 437, "k438": 438, "k439": 439, "k440": 440, "k441": 441, "k442": 442, "k443": 443, "k444": 444, "k445": 445, "k446": 446, "k447": 447, "k448": 448, "k449": 449, "k450": 450, "k451": 451, "k452": 452, "k453": 453, "k454": 454, "k455": 455, "k456": 456, "k457": 457, "k458": 458, "k459": 459, "k460": 460, "k461": 461, "k462": 462, "k463": 463, "k464": 464, "k465": 465, "k466": 466, "k467": 467, "k468": 468, "k469": 469, "k470": 470, "k471": 471, "k472": 472, "k473": 473, "k474": 474, "k475": 475, "k476": 476, "k477": 477, "k478": 478, "k479": 479, "k480": 480, "k481": 481, "k482": 482, "k483": 483, "k484": 484, "k485": 485, "k486": 486, "k487": 487, "k488": 488, "k489": 489, "k490": 490, "k491": 491, "k492": 492, "k493": 493, "k494": 494, "k495": 495, "k496": 496, "k497": 497, "k498": 498, "k499": 499 }
00 #!/bin/sh
1
2 export _JSON_C_STRERROR_ENABLE=1
13
24 # Common definitions
35 if test -z "$srcdir"; then
125125 src3 = json_tokener_parse(json_str3);
126126
127127 assert(src1 != NULL);
128 assert(src1 != NULL);
128 assert(src2 != NULL);
129129 assert(src3 != NULL);
130130
131131 printf("PASSED - loaded input data\n");
5858 #else
5959 // Just fake it up, so the output matches.
6060 printf("obj.to_string(with thread format)=%s\n", "T0.52X");
61 printf("obj.to_string(long thread format)=%s\n", "Ttttttttttttt0.52xxxxxxxxxxxxxxxxxxX");
6162 printf("obj.to_string(back to global format)=%s\n", "x0.524y");
6263 #endif
6364 if (json_c_set_serialization_double_format(NULL, JSON_C_OPTION_GLOBAL) < 0)
0 #include "strerror_override.h"
1 #include "strerror_override_private.h"
20 #ifdef NDEBUG
31 #undef NDEBUG
42 #endif
53 #include <assert.h>
4 #include <errno.h>
65 #include <stdio.h>
76 #include <string.h>
87
5958 /* clang-format on */
6059
6160 /* Example from RFC */
62 static void test_example_get()
61 static void test_example_get(void)
6362 {
6463 int i;
6564 struct json_object *jo1, *jo2, *jo3;
125124 }
126125
127126 /* I'm not too happy with the RFC example to test the recusion of the json_pointer_get() function */
128 static void test_recursion_get()
127 static void test_recursion_get(void)
129128 {
130129 struct json_object *jo2, *jo1 = json_tokener_parse(rec_input_json_str);
131130
160159 json_object_put(jo1);
161160 }
162161
163 static void test_wrong_inputs_get()
162 static void test_wrong_inputs_get(void)
164163 {
165164 struct json_object *jo2, *jo1 = json_tokener_parse(input_json_str);
166165
230229 json_object_put(jo1);
231230 }
232231
233 static void test_example_set()
232 static void test_example_set(void)
234233 {
235234 struct json_object *jo2, *jo1 = json_tokener_parse(input_json_str);
236235
271270 json_object_put(jo1);
272271 }
273272
274 static void test_wrong_inputs_set()
273 static void test_wrong_inputs_set(void)
275274 {
276275 struct json_object *jo2, *jo1 = json_tokener_parse(input_json_str);
277276
319318
320319 int main(int argc, char **argv)
321320 {
322 _json_c_strerror_enable = 1;
323
324321 test_example_get();
325322 test_recursion_get();
326323 test_wrong_inputs_get();
3232 static json_c_visit_userfunc clear_serializer;
3333 static void do_clear_serializer(json_object *jso);
3434
35 static void single_incremental_parse(const char *test_string, int clear_serializer)
36 {
37 int ii;
38 int chunksize = atoi(getenv("TEST_PARSE_CHUNKSIZE"));
39 struct json_tokener *tok;
40 enum json_tokener_error jerr;
41 json_object *all_at_once_obj, *new_obj;
42 const char *all_at_once_str, *new_str;
43
44 assert(chunksize > 0);
45 all_at_once_obj = json_tokener_parse(test_string);
46 if (clear_serializer)
47 do_clear_serializer(all_at_once_obj);
48 all_at_once_str = json_object_to_json_string(all_at_once_obj);
49
50 tok = json_tokener_new();
51 int test_string_len = strlen(test_string) + 1; // Including '\0' !
52 for (ii = 0; ii < test_string_len; ii += chunksize)
53 {
54 int len_to_parse = chunksize;
55 if (ii + chunksize > test_string_len)
56 len_to_parse = test_string_len - ii;
57
58 if (getenv("TEST_PARSE_DEBUG") != NULL)
59 printf(" chunk: %.*s\n", len_to_parse, &test_string[ii]);
60 new_obj = json_tokener_parse_ex(tok, &test_string[ii], len_to_parse);
61 jerr = json_tokener_get_error(tok);
62 if (jerr != json_tokener_continue || new_obj)
63 break;
64 }
65 if (clear_serializer && new_obj)
66 do_clear_serializer(new_obj);
67 new_str = json_object_to_json_string(new_obj);
68
69 if (strcmp(all_at_once_str, new_str) != 0)
70 {
71 printf("ERROR: failed to parse (%s) in %d byte chunks: %s != %s\n", test_string,
72 chunksize, all_at_once_str, new_str);
73 }
74 json_tokener_free(tok);
75 if (all_at_once_obj)
76 json_object_put(all_at_once_obj);
77 if (new_obj)
78 json_object_put(new_obj);
79 }
80
3581 static void single_basic_parse(const char *test_string, int clear_serializer)
3682 {
3783 json_object *new_obj;
4187 do_clear_serializer(new_obj);
4288 printf("new_obj.to_string(%s)=%s\n", test_string, json_object_to_json_string(new_obj));
4389 json_object_put(new_obj);
90
91 if (getenv("TEST_PARSE_CHUNKSIZE") != NULL)
92 single_incremental_parse(test_string, clear_serializer);
4493 }
4594 static void test_basic_parse()
4695 {
92141
93142 single_basic_parse("12", 0);
94143 single_basic_parse("12.3", 0);
95 single_basic_parse("12.3.4", 0); /* non-sensical, returns null */
96 /* was returning (int)2015 before patch, should return null */
144
145 /* Even though, when using json_tokener_parse() there's no way to
146 * know when there is more data after the parsed object,
147 * an object is successfully returned anyway (in some cases)
148 */
149
150 single_basic_parse("12.3.4", 0);
97151 single_basic_parse("2015-01-15", 0);
98
99 /* ...but this works. It's rather inconsistent, and a future major release
100 * should change the behavior so it either always returns null when extra
101 * bytes are present (preferred), or always return object created from as much
102 * as was able to be parsed.
103 */
104152 single_basic_parse("12.3xxx", 0);
153 single_basic_parse("12.3{\"a\":123}", 0);
154 single_basic_parse("12.3\n", 0);
155 single_basic_parse("12.3 ", 0);
105156
106157 single_basic_parse("{\"FoO\" : -12.3E512}", 0);
107158 single_basic_parse("{\"FoO\" : -12.3e512}", 0);
148199 // json_tokener_parse doesn't support checking for byte order marks.
149200 // It's the responsibility of the caller to detect and skip a BOM.
150201 // Both of these checks return null.
151 char utf8_bom[] = {0xEF, 0xBB, 0xBF, 0x00};
152 char utf8_bom_and_chars[] = {0xEF, 0xBB, 0xBF, '{', '}', 0x00};
202 char *utf8_bom = "\xEF\xBB\xBF";
203 char *utf8_bom_and_chars = "\xEF\xBB\xBF{}";
153204 single_basic_parse(utf8_bom, 0);
154205 single_basic_parse(utf8_bom_and_chars, 0);
155206 }
199250 int length;
200251 int char_offset;
201252 enum json_tokener_error expected_error;
202 int reset_tokener;
253 int reset_tokener; /* Set to 1 to call json_tokener_reset() after parsing */
254 int tok_flags; /* JSON_TOKENER_* flags to pass to json_tokener_set_flags() */
203255 } incremental_steps[] = {
204256
205257 /* Check that full json messages can be parsed, both w/ and w/o a reset */
222274 {"\": {\"bar", -1, -1, json_tokener_continue, 0},
223275 {"\":13}}", -1, -1, json_tokener_success, 1},
224276
277 /* Check the UTF-16 surrogate pair handling in various ways.
278 * Note: \ud843\udd1e is u+1D11E, Musical Symbol G Clef
279 * Your terminal may not display these correctly, in particular
280 * PuTTY doesn't currently show this character.
281 */
282 /* parse one char at every time */
283 {"\"\\", -1, -1, json_tokener_continue, 0},
284 {"u", -1, -1, json_tokener_continue, 0},
285 {"d", -1, -1, json_tokener_continue, 0},
286 {"8", -1, -1, json_tokener_continue, 0},
287 {"3", -1, -1, json_tokener_continue, 0},
288 {"4", -1, -1, json_tokener_continue, 0},
289 {"\\", -1, -1, json_tokener_continue, 0},
290 {"u", -1, -1, json_tokener_continue, 0},
291 {"d", -1, -1, json_tokener_continue, 0},
292 {"d", -1, -1, json_tokener_continue, 0},
293 {"1", -1, -1, json_tokener_continue, 0},
294 {"e\"", -1, -1, json_tokener_success, 1},
295 /* parse two char at every time */
296 {"\"\\u", -1, -1, json_tokener_continue, 0},
297 {"d8", -1, -1, json_tokener_continue, 0},
298 {"34", -1, -1, json_tokener_continue, 0},
299 {"\\u", -1, -1, json_tokener_continue, 0},
300 {"dd", -1, -1, json_tokener_continue, 0},
301 {"1e\"", -1, -1, json_tokener_success, 1},
302 /* check the low surrogate pair */
303 {"\"\\ud834", -1, -1, json_tokener_continue, 0},
304 {"\\udd1e\"", -1, -1, json_tokener_success, 1},
305 {"\"\\ud834\\", -1, -1, json_tokener_continue, 0},
306 {"udd1e\"", -1, -1, json_tokener_success, 1},
307 {"\"\\ud834\\u", -1, -1, json_tokener_continue, 0},
308 {"dd1e\"", -1, -1, json_tokener_success, 1},
309 {"\"fff \\ud834\\ud", -1, -1, json_tokener_continue, 0},
310 {"d1e bar\"", -1, -1, json_tokener_success, 1},
311 {"\"fff \\ud834\\udd", -1, -1, json_tokener_continue, 0},
312 {"1e bar\"", -1, -1, json_tokener_success, 1},
313
314 /* \ud83d\ude00 is U+1F600, Grinning Face
315 * Displays fine in PuTTY, though you may need "less -r"
316 */
317 {"\"fff \\ud83d\\ude", -1, -1, json_tokener_continue, 0},
318 {"00 bar\"", -1, -1, json_tokener_success, 1},
319
225320 /* Check that json_tokener_reset actually resets */
226321 {"{ \"foo", -1, -1, json_tokener_continue, 1},
227322 {": \"bar\"}", -1, 0, json_tokener_error_parse_unexpected, 1},
236331 {"{\"x\": 123 }\"X\"", -1, 11, json_tokener_success, 0},
237332 {"\"Y\"", -1, -1, json_tokener_success, 1},
238333
334 /* Trailing characters should cause a failure in strict mode */
335 {"{\"foo\":9}{\"bar\":8}", -1, 9, json_tokener_error_parse_unexpected, 1, JSON_TOKENER_STRICT},
336
337 /* ... unless explicitly allowed. */
338 {"{\"foo\":9}{\"bar\":8}", -1, 9, json_tokener_success, 0,
339 JSON_TOKENER_STRICT | JSON_TOKENER_ALLOW_TRAILING_CHARS},
340 {"{\"b\":8}ignored garbage", -1, 7, json_tokener_success, 1,
341 JSON_TOKENER_STRICT | JSON_TOKENER_ALLOW_TRAILING_CHARS},
342
239343 /* To stop parsing a number we need to reach a non-digit, e.g. a \0 */
240344 {"1", 1, 1, json_tokener_continue, 0},
241345 /* This should parse as the number 12, since it continues the "1" */
242346 {"2", 2, 1, json_tokener_success, 0},
243347 {"12{", 3, 2, json_tokener_success, 1},
244 /* Parse number in strict model */
245 {"[02]", -1, 3, json_tokener_error_parse_number, 3},
348 /* Parse number in strict mode */
349 {"[02]", -1, 3, json_tokener_error_parse_number, 1, JSON_TOKENER_STRICT},
350
351 {"0e+0", 5, 4, json_tokener_success, 1},
352 {"[0e+0]", -1, -1, json_tokener_success, 1},
353
354 /* The behavior when missing the exponent varies slightly */
355 {"0e", 2, 2, json_tokener_continue, 1},
356 {"0e", 3, 2, json_tokener_success, 1},
357 {"0e", 3, 2, json_tokener_error_parse_eof, 1, JSON_TOKENER_STRICT},
358 {"[0e]", -1, -1, json_tokener_success, 1},
359 {"[0e]", -1, 3, json_tokener_error_parse_number, 1, JSON_TOKENER_STRICT},
360
361 {"0e+", 3, 3, json_tokener_continue, 1},
362 {"0e+", 4, 3, json_tokener_success, 1},
363 {"0e+", 4, 3, json_tokener_error_parse_eof, 1, JSON_TOKENER_STRICT},
364 {"[0e+]", -1, -1, json_tokener_success, 1},
365 {"[0e+]", -1, 4, json_tokener_error_parse_number, 1, JSON_TOKENER_STRICT},
366
367 {"0e-", 3, 3, json_tokener_continue, 1},
368 {"0e-", 4, 3, json_tokener_success, 1},
369 {"0e-", 4, 3, json_tokener_error_parse_eof, 1, JSON_TOKENER_STRICT},
370 {"[0e-]", -1, -1, json_tokener_success, 1},
371 {"[0e-]", -1, 4, json_tokener_error_parse_number, 1, JSON_TOKENER_STRICT},
372
373 /* You might expect this to fail, but it won't because
374 it's a valid partial parse; note the char_offset: */
375 {"0e+-", 5, 3, json_tokener_success, 1},
376 {"0e+-", 5, 3, json_tokener_error_parse_number, 1, JSON_TOKENER_STRICT},
377 {"[0e+-]", -1, 4, json_tokener_error_parse_number, 1},
246378
247379 /* Similar tests for other kinds of objects: */
248380 /* These could all return success immediately, since regardless of
258390 {"Infinity", 9, 8, json_tokener_success, 1},
259391 {"infinity", 9, 8, json_tokener_success, 1},
260392 {"-infinity", 10, 9, json_tokener_success, 1},
261 {"infinity", 9, 0, json_tokener_error_parse_unexpected, 3},
262 {"-infinity", 10, 1, json_tokener_error_parse_unexpected, 3},
393 {"infinity", 9, 0, json_tokener_error_parse_unexpected, 1, JSON_TOKENER_STRICT},
394 {"-infinity", 10, 1, json_tokener_error_parse_unexpected, 1, JSON_TOKENER_STRICT},
263395
264396 {"inf", 3, 3, json_tokener_continue, 0},
265397 {"inity", 6, 5, json_tokener_success, 1},
313445 * the next few tests check that parsing multiple sequential
314446 * json objects in the input works as expected
315447 */
316 {"null123", 9, 4, json_tokener_success, 0},
448 {"null123", 8, 4, json_tokener_success, 0},
317449 {&"null123"[4], 4, 3, json_tokener_success, 1},
318 {"nullx", 5, 4, json_tokener_success, 0},
450 {"nullx", 6, 4, json_tokener_success, 0},
319451 {&"nullx"[4], 2, 0, json_tokener_error_parse_unexpected, 1},
320452 {"{\"a\":1}{\"b\":2}", 15, 7, json_tokener_success, 0},
321453 {&"{\"a\":1}{\"b\":2}"[7], 8, 7, json_tokener_success, 1},
322454
323 /* Some bad formatting. Check we get the correct error status */
324 {"2015-01-15", 10, 4, json_tokener_error_parse_number, 1},
455 /*
456 * Though this may seem invalid at first glance, it
457 * parses as three separate numbers, 2015, -1 and -15
458 * Of course, simply pasting together a stream of arbitrary
459 * positive numbers won't work, since there'll be no way to
460 * tell where in e.g. "2015015" the next number stats, so
461 * a reliably parsable stream must not include json_type_int
462 * or json_type_double objects without some other delimiter.
463 * e.g. whitespace
464 */
465 {&"2015-01-15"[0], 11, 4, json_tokener_success, 1},
466 {&"2015-01-15"[4], 7, 3, json_tokener_success, 1},
467 {&"2015-01-15"[7], 4, 3, json_tokener_success, 1},
468 {&"2015 01 15"[0], 11, 5, json_tokener_success, 1},
469 {&"2015 01 15"[4], 7, 4, json_tokener_success, 1},
470 {&"2015 01 15"[7], 4, 3, json_tokener_success, 1},
325471
326472 /* Strings have a well defined end point, so we can stop at the quote */
327473 {"\"blue\"", -1, -1, json_tokener_success, 0},
341487 {"\"\\a\"", -1, 2, json_tokener_error_parse_string, 1},
342488
343489 /* Check '\'' in strict model */
344 {"\'foo\'", -1, 0, json_tokener_error_parse_unexpected, 3},
490 {"\'foo\'", -1, 0, json_tokener_error_parse_unexpected, 1, JSON_TOKENER_STRICT},
345491
346492 /* Parse array/object */
347493 {"[1,2,3]", -1, -1, json_tokener_success, 0},
363509 {"[1,2,3,]", -1, -1, json_tokener_success, 0},
364510 {"[1,2,,3,]", -1, 5, json_tokener_error_parse_unexpected, 0},
365511
366 {"[1,2,3,]", -1, 7, json_tokener_error_parse_unexpected, 3},
367 {"{\"a\":1,}", -1, 7, json_tokener_error_parse_unexpected, 3},
512 {"[1,2,3,]", -1, 7, json_tokener_error_parse_unexpected, 1, JSON_TOKENER_STRICT},
513 {"{\"a\":1,}", -1, 7, json_tokener_error_parse_unexpected, 1, JSON_TOKENER_STRICT},
368514
369515 // utf-8 test
370516 // acsll encoding
371 {"\x22\x31\x32\x33\x61\x73\x63\x24\x25\x26\x22", -1, -1, json_tokener_success, 5},
517 {"\x22\x31\x32\x33\x61\x73\x63\x24\x25\x26\x22", -1, -1, json_tokener_success, 1,
518 JSON_TOKENER_VALIDATE_UTF8},
372519 {"\x22\x31\x32\x33\x61\x73\x63\x24\x25\x26\x22", -1, -1, json_tokener_success, 1},
373520 // utf-8 encoding
374 {"\x22\xe4\xb8\x96\xe7\x95\x8c\x22", -1, -1, json_tokener_success, 5},
375 {"\x22\xe4\xb8", -1, 3, json_tokener_error_parse_utf8_string, 4},
376 {"\x96\xe7\x95\x8c\x22", -1, 0, json_tokener_error_parse_utf8_string, 5},
521 {"\x22\xe4\xb8\x96\xe7\x95\x8c\x22", -1, -1, json_tokener_success, 1,
522 JSON_TOKENER_VALIDATE_UTF8},
523 {"\x22\xe4\xb8", -1, 3, json_tokener_error_parse_utf8_string, 0, JSON_TOKENER_VALIDATE_UTF8},
524 {"\x96\xe7\x95\x8c\x22", -1, 0, json_tokener_error_parse_utf8_string, 1,
525 JSON_TOKENER_VALIDATE_UTF8},
377526 {"\x22\xe4\xb8\x96\xe7\x95\x8c\x22", -1, -1, json_tokener_success, 1},
378 {"\x22\xcf\x80\xcf\x86\x22", -1, -1, json_tokener_success, 5},
379 {"\x22\xf0\xa5\x91\x95\x22", -1, -1, json_tokener_success, 5},
527 {"\x22\xcf\x80\xcf\x86\x22", -1, -1, json_tokener_success, 1, JSON_TOKENER_VALIDATE_UTF8},
528 {"\x22\xf0\xa5\x91\x95\x22", -1, -1, json_tokener_success, 1, JSON_TOKENER_VALIDATE_UTF8},
380529 // wrong utf-8 encoding
381 {"\x22\xe6\x9d\x4e\x22", -1, 3, json_tokener_error_parse_utf8_string, 5},
530 {"\x22\xe6\x9d\x4e\x22", -1, 3, json_tokener_error_parse_utf8_string, 1,
531 JSON_TOKENER_VALIDATE_UTF8},
382532 {"\x22\xe6\x9d\x4e\x22", -1, 5, json_tokener_success, 1},
383533 // GBK encoding
384 {"\x22\xc0\xee\xc5\xf4\x22", -1, 2, json_tokener_error_parse_utf8_string, 5},
534 {"\x22\xc0\xee\xc5\xf4\x22", -1, 2, json_tokener_error_parse_utf8_string, 1,
535 JSON_TOKENER_VALIDATE_UTF8},
385536 {"\x22\xc0\xee\xc5\xf4\x22", -1, 6, json_tokener_success, 1},
386537 // char after space
387 {"\x20\x20\x22\xe4\xb8\x96\x22", -1, -1, json_tokener_success, 5},
388 {"\x20\x20\x81\x22\xe4\xb8\x96\x22", -1, 2, json_tokener_error_parse_utf8_string, 5},
389 {"\x5b\x20\x81\x31\x5d", -1, 2, json_tokener_error_parse_utf8_string, 5},
538 {"\x20\x20\x22\xe4\xb8\x96\x22", -1, -1, json_tokener_success, 1, JSON_TOKENER_VALIDATE_UTF8},
539 {"\x20\x20\x81\x22\xe4\xb8\x96\x22", -1, 2, json_tokener_error_parse_utf8_string, 1,
540 JSON_TOKENER_VALIDATE_UTF8},
541 {"\x5b\x20\x81\x31\x5d", -1, 2, json_tokener_error_parse_utf8_string, 1,
542 JSON_TOKENER_VALIDATE_UTF8},
390543 // char in state inf
391544 {"\x49\x6e\x66\x69\x6e\x69\x74\x79", 9, 8, json_tokener_success, 1},
392 {"\x49\x6e\x66\x81\x6e\x69\x74\x79", -1, 3, json_tokener_error_parse_utf8_string, 5},
545 {"\x49\x6e\x66\x81\x6e\x69\x74\x79", -1, 3, json_tokener_error_parse_utf8_string, 1,
546 JSON_TOKENER_VALIDATE_UTF8},
393547 // char in escape unicode
394 {"\x22\x5c\x75\x64\x38\x35\x35\x5c\x75\x64\x63\x35\x35\x22", 15, 14, json_tokener_success, 5},
548 {"\x22\x5c\x75\x64\x38\x35\x35\x5c\x75\x64\x63\x35\x35\x22", 15, 14, json_tokener_success, 1,
549 JSON_TOKENER_VALIDATE_UTF8},
395550 {"\x22\x5c\x75\x64\x38\x35\x35\xc0\x75\x64\x63\x35\x35\x22", -1, 8,
396 json_tokener_error_parse_utf8_string, 5},
397 {"\x22\x5c\x75\x64\x30\x30\x33\x31\xc0\x22", -1, 9, json_tokener_error_parse_utf8_string, 5},
551 json_tokener_error_parse_utf8_string, 1, JSON_TOKENER_VALIDATE_UTF8},
552 {"\x22\x5c\x75\x64\x30\x30\x33\x31\xc0\x22", -1, 9, json_tokener_error_parse_utf8_string, 1,
553 JSON_TOKENER_VALIDATE_UTF8},
398554 // char in number
399 {"\x31\x31\x81\x31\x31", -1, 2, json_tokener_error_parse_utf8_string, 5},
555 {"\x31\x31\x81\x31\x31", -1, 2, json_tokener_error_parse_utf8_string, 1,
556 JSON_TOKENER_VALIDATE_UTF8},
400557 // char in object
401 {"\x7b\x22\x31\x81\x22\x3a\x31\x7d", -1, 3, json_tokener_error_parse_utf8_string, 5},
558 {"\x7b\x22\x31\x81\x22\x3a\x31\x7d", -1, 3, json_tokener_error_parse_utf8_string, 1,
559 JSON_TOKENER_VALIDATE_UTF8},
402560
403561 {NULL, -1, -1, json_tokener_success, 0},
404562 };
434592 int length = step->length;
435593 size_t expected_char_offset;
436594
437 if (step->reset_tokener & 2)
438 {
439 if (step->reset_tokener & 4)
440 json_tokener_set_flags(tok, 3);
441 else
442 json_tokener_set_flags(tok, JSON_TOKENER_STRICT);
443 }
444 else
445 {
446 if (step->reset_tokener & 4)
447 json_tokener_set_flags(tok, JSON_TOKENER_VALIDATE_UTF8);
448 else
449 json_tokener_set_flags(tok, 0);
450 }
595 json_tokener_set_flags(tok, step->tok_flags);
451596
452597 if (length == -1)
453 length = strlen(step->string_to_parse);
598 length = (int)strlen(step->string_to_parse);
454599 if (step->char_offset == -1)
455600 expected_char_offset = length;
456601 else
3939 new_obj.to_string(iNfinity)=Infinity
4040 new_obj.to_string(12)=12
4141 new_obj.to_string(12.3)=12.3
42 new_obj.to_string(12.3.4)=null
43 new_obj.to_string(2015-01-15)=null
42 new_obj.to_string(12.3.4)=12.3
43 new_obj.to_string(2015-01-15)=2015
4444 new_obj.to_string(12.3xxx)=12.3
45 new_obj.to_string(12.3{"a":123})=12.3
46 new_obj.to_string(12.3
47 )=12.3
48 new_obj.to_string(12.3 )=12.3
4549 new_obj.to_string({"FoO" : -12.3E512})={ "FoO": -12.3E512 }
4650 new_obj.to_string({"FoO" : -12.3e512})={ "FoO": -12.3e512 }
4751 new_obj.to_string({"FoO" : -12.3E51.2})=null
99103 json_tokener_parse_ex(tok, { "foo , 6) ... OK: got correct error: continue
100104 json_tokener_parse_ex(tok, ": {"bar , 8) ... OK: got correct error: continue
101105 json_tokener_parse_ex(tok, ":13}} , 6) ... OK: got object of type [object]: { "foo": { "bar": 13 } }
106 json_tokener_parse_ex(tok, "\ , 2) ... OK: got correct error: continue
107 json_tokener_parse_ex(tok, u , 1) ... OK: got correct error: continue
108 json_tokener_parse_ex(tok, d , 1) ... OK: got correct error: continue
109 json_tokener_parse_ex(tok, 8 , 1) ... OK: got correct error: continue
110 json_tokener_parse_ex(tok, 3 , 1) ... OK: got correct error: continue
111 json_tokener_parse_ex(tok, 4 , 1) ... OK: got correct error: continue
112 json_tokener_parse_ex(tok, \ , 1) ... OK: got correct error: continue
113 json_tokener_parse_ex(tok, u , 1) ... OK: got correct error: continue
114 json_tokener_parse_ex(tok, d , 1) ... OK: got correct error: continue
115 json_tokener_parse_ex(tok, d , 1) ... OK: got correct error: continue
116 json_tokener_parse_ex(tok, 1 , 1) ... OK: got correct error: continue
117 json_tokener_parse_ex(tok, e" , 2) ... OK: got object of type [string]: "𝄞"
118 json_tokener_parse_ex(tok, "\u , 3) ... OK: got correct error: continue
119 json_tokener_parse_ex(tok, d8 , 2) ... OK: got correct error: continue
120 json_tokener_parse_ex(tok, 34 , 2) ... OK: got correct error: continue
121 json_tokener_parse_ex(tok, \u , 2) ... OK: got correct error: continue
122 json_tokener_parse_ex(tok, dd , 2) ... OK: got correct error: continue
123 json_tokener_parse_ex(tok, 1e" , 3) ... OK: got object of type [string]: "𝄞"
124 json_tokener_parse_ex(tok, "\ud834 , 7) ... OK: got correct error: continue
125 json_tokener_parse_ex(tok, \udd1e" , 7) ... OK: got object of type [string]: "𝄞"
126 json_tokener_parse_ex(tok, "\ud834\ , 8) ... OK: got correct error: continue
127 json_tokener_parse_ex(tok, udd1e" , 6) ... OK: got object of type [string]: "𝄞"
128 json_tokener_parse_ex(tok, "\ud834\u , 9) ... OK: got correct error: continue
129 json_tokener_parse_ex(tok, dd1e" , 5) ... OK: got object of type [string]: "𝄞"
130 json_tokener_parse_ex(tok, "fff \ud834\ud, 14) ... OK: got correct error: continue
131 json_tokener_parse_ex(tok, d1e bar" , 8) ... OK: got object of type [string]: "fff 𝄞 bar"
132 json_tokener_parse_ex(tok, "fff \ud834\udd, 15) ... OK: got correct error: continue
133 json_tokener_parse_ex(tok, 1e bar" , 7) ... OK: got object of type [string]: "fff 𝄞 bar"
134 json_tokener_parse_ex(tok, "fff \ud83d\ude, 15) ... OK: got correct error: continue
135 json_tokener_parse_ex(tok, 00 bar" , 7) ... OK: got object of type [string]: "fff 😀 bar"
102136 json_tokener_parse_ex(tok, { "foo , 6) ... OK: got correct error: continue
103137 json_tokener_parse_ex(tok, : "bar"} , 8) ... OK: got correct error: unexpected character
104138 json_tokener_parse_ex(tok, { "foo , 6) ... OK: got correct error: continue
107141 json_tokener_parse_ex(tok, XXXX , 4) ... OK: got correct error: unexpected character
108142 json_tokener_parse_ex(tok, {"x": 123 }"X", 14) ... OK: got object of type [object]: { "x": 123 }
109143 json_tokener_parse_ex(tok, "Y" , 3) ... OK: got object of type [string]: "Y"
144 json_tokener_parse_ex(tok, {"foo":9}{"bar":8}, 18) ... OK: got correct error: unexpected character
145 json_tokener_parse_ex(tok, {"foo":9}{"bar":8}, 18) ... OK: got object of type [object]: { "foo": 9 }
146 json_tokener_parse_ex(tok, {"b":8}ignored garbage, 22) ... OK: got object of type [object]: { "b": 8 }
110147 json_tokener_parse_ex(tok, 1 , 1) ... OK: got correct error: continue
111148 json_tokener_parse_ex(tok, 2 , 2) ... OK: got object of type [int]: 12
112149 json_tokener_parse_ex(tok, 12{ , 3) ... OK: got object of type [int]: 12
113150 json_tokener_parse_ex(tok, [02] , 4) ... OK: got correct error: number expected
151 json_tokener_parse_ex(tok, 0e+0 , 5) ... OK: got object of type [double]: 0e+0
152 json_tokener_parse_ex(tok, [0e+0] , 6) ... OK: got object of type [array]: [ 0e+0 ]
153 json_tokener_parse_ex(tok, 0e , 2) ... OK: got correct error: continue
154 json_tokener_parse_ex(tok, 0e , 3) ... OK: got object of type [double]: 0
155 json_tokener_parse_ex(tok, 0e , 3) ... OK: got correct error: unexpected end of data
156 json_tokener_parse_ex(tok, [0e] , 4) ... OK: got object of type [array]: [ 0 ]
157 json_tokener_parse_ex(tok, [0e] , 4) ... OK: got correct error: number expected
158 json_tokener_parse_ex(tok, 0e+ , 3) ... OK: got correct error: continue
159 json_tokener_parse_ex(tok, 0e+ , 4) ... OK: got object of type [double]: 0
160 json_tokener_parse_ex(tok, 0e+ , 4) ... OK: got correct error: unexpected end of data
161 json_tokener_parse_ex(tok, [0e+] , 5) ... OK: got object of type [array]: [ 0 ]
162 json_tokener_parse_ex(tok, [0e+] , 5) ... OK: got correct error: number expected
163 json_tokener_parse_ex(tok, 0e- , 3) ... OK: got correct error: continue
164 json_tokener_parse_ex(tok, 0e- , 4) ... OK: got object of type [double]: 0
165 json_tokener_parse_ex(tok, 0e- , 4) ... OK: got correct error: unexpected end of data
166 json_tokener_parse_ex(tok, [0e-] , 5) ... OK: got object of type [array]: [ 0 ]
167 json_tokener_parse_ex(tok, [0e-] , 5) ... OK: got correct error: number expected
168 json_tokener_parse_ex(tok, 0e+- , 5) ... OK: got object of type [double]: 0
169 json_tokener_parse_ex(tok, 0e+- , 5) ... OK: got correct error: number expected
170 json_tokener_parse_ex(tok, [0e+-] , 6) ... OK: got correct error: number expected
114171 json_tokener_parse_ex(tok, false , 5) ... OK: got correct error: continue
115172 json_tokener_parse_ex(tok, false , 6) ... OK: got object of type [boolean]: false
116173 json_tokener_parse_ex(tok, true , 4) ... OK: got correct error: continue
156213 json_tokener_parse_ex(tok, naodle , 7) ... OK: got correct error: null expected
157214 json_tokener_parse_ex(tok, track , 6) ... OK: got correct error: boolean expected
158215 json_tokener_parse_ex(tok, fail , 5) ... OK: got correct error: boolean expected
159 json_tokener_parse_ex(tok, null123 , 9) ... OK: got object of type [null]: null
216 json_tokener_parse_ex(tok, null123 , 8) ... OK: got object of type [null]: null
160217 json_tokener_parse_ex(tok, 123 , 4) ... OK: got object of type [int]: 123
161 json_tokener_parse_ex(tok, nullx , 5) ... OK: got object of type [null]: null
218 json_tokener_parse_ex(tok, nullx , 6) ... OK: got object of type [null]: null
162219 json_tokener_parse_ex(tok, x , 2) ... OK: got correct error: unexpected character
163220 json_tokener_parse_ex(tok, {"a":1}{"b":2}, 15) ... OK: got object of type [object]: { "a": 1 }
164221 json_tokener_parse_ex(tok, {"b":2} , 8) ... OK: got object of type [object]: { "b": 2 }
165 json_tokener_parse_ex(tok, 2015-01-15 , 10) ... OK: got correct error: number expected
222 json_tokener_parse_ex(tok, 2015-01-15 , 11) ... OK: got object of type [int]: 2015
223 json_tokener_parse_ex(tok, -01-15 , 7) ... OK: got object of type [int]: -1
224 json_tokener_parse_ex(tok, -15 , 4) ... OK: got object of type [int]: -15
225 json_tokener_parse_ex(tok, 2015 01 15 , 11) ... OK: got object of type [int]: 2015
226 json_tokener_parse_ex(tok, 01 15 , 7) ... OK: got object of type [int]: 1
227 json_tokener_parse_ex(tok, 15 , 4) ... OK: got object of type [int]: 15
166228 json_tokener_parse_ex(tok, "blue" , 6) ... OK: got object of type [string]: "blue"
167229 json_tokener_parse_ex(tok, "\"" , 4) ... OK: got object of type [string]: "\""
168230 json_tokener_parse_ex(tok, "\\" , 4) ... OK: got object of type [string]: "\\"
212274 json_tokener_parse_ex(tok, "\ud0031À" , 10) ... OK: got correct error: invalid utf-8 string
213275 json_tokener_parse_ex(tok, 11Å11 , 5) ... OK: got correct error: invalid utf-8 string
214276 json_tokener_parse_ex(tok, {"1Å":1} , 8) ... OK: got correct error: invalid utf-8 string
215 End Incremental Tests OK=127 ERROR=0
216 ==================================
277 End Incremental Tests OK=185 ERROR=0
278 ==================================
3333 ==========json_parse_uint64() test===========
3434 buf=x parseit=1, value=666
3535 buf=0 parseit=0, value=0
36 buf=-0 parseit=1, value=0
36 buf=-0 parseit=1, value=666
3737 buf=00000000 parseit=0, value=0
38 buf=-00000000 parseit=1, value=0
38 buf=-00000000 parseit=1, value=666
3939 buf=1 parseit=0, value=1
4040 buf=2147483647 parseit=0, value=2147483647
41 buf=-1 parseit=1, value=18446744073709551615
42 buf=-9223372036854775808 parseit=1, value=9223372036854775808
41 buf=-1 parseit=1, value=666
42 buf=-9223372036854775808 parseit=1, value=666
4343 buf= 1 parseit=0, value=1
4444 buf=00001234 parseit=0, value=1234
4545 buf=0001234x parseit=0, value=1234
2525
2626 int main(int argc, char **argv)
2727 {
28 json_object *my_object;
28 json_object *my_object, *my_sub_object;
2929
3030 MC_SET_DEBUG(1);
3131
6666 json_object_put(my_object);
6767 assert(freeit_was_called);
6868
69 // ============================================
70
71 my_object = json_object_new_object();
72 my_sub_object = json_object_new_double(1.0);
73 json_object_object_add(my_object, "double", my_sub_object);
74 printf("Check that the custom serializer does not include nul byte:\n");
75 json_object_set_serializer(my_sub_object, json_object_double_to_json_string, "%125.0f,", NULL);
76 printf("my_object.to_string(custom serializer)=%s\n",
77 json_object_to_json_string_ext(my_object, JSON_C_TO_STRING_NOZERO));
78
79 json_object_put(my_object);
80
6981 return 0;
7082 }
77 my_object.to_string(custom serializer)=Custom Output
88 Next line of output should be from the custom freeit function:
99 freeit, value=123
10 Check that the custom serializer does not include nul byte:
11 my_object.to_string(custom serializer)={"double": 1.}
5555 #define MID "A MID STRING"
5656 // 12345678901234567890123456789012....
5757 #define HUGE "A string longer than 32 chars as to check non local buf codepath"
58 tmp = json_object_new_string(SHORT);
58 tmp = json_object_new_string(MID);
59 assert(strcmp(json_object_get_string(tmp), MID) == 0);
60 assert(strcmp(json_object_to_json_string(tmp), "\"" MID "\"") == 0);
61 json_object_set_string(tmp, SHORT);
5962 assert(strcmp(json_object_get_string(tmp), SHORT) == 0);
60 json_object_set_string(tmp, MID);
61 assert(strcmp(json_object_get_string(tmp), MID) == 0);
63 assert(strcmp(json_object_to_json_string(tmp), "\"" SHORT "\"") == 0);
6264 json_object_set_string(tmp, HUGE);
6365 assert(strcmp(json_object_get_string(tmp), HUGE) == 0);
66 assert(strcmp(json_object_to_json_string(tmp), "\"" HUGE "\"") == 0);
6467 json_object_set_string(tmp, SHORT);
6568 assert(strcmp(json_object_get_string(tmp), SHORT) == 0);
69 assert(strcmp(json_object_to_json_string(tmp), "\"" SHORT "\"") == 0);
6670 json_object_put(tmp);
6771 printf("STRING PASSED\n");
6872
2323
2424 static void test_read_valid_with_fd(const char *testdir);
2525 static void test_read_valid_nested_with_fd(const char *testdir);
26 static void test_read_nonexistant();
26 static void test_read_nonexistant(void);
2727 static void test_read_closed(void);
2828
29 static void test_write_to_file();
29 static void test_write_to_file(void);
3030 static void stat_and_cat(const char *file);
3131 static void test_read_fd_equal(const char *testdir);
3232
126126 // json_object_to_file(file, obj);
127127 // json_object_to_file_ext(file, obj, flags);
128128
129 _json_c_strerror_enable = 1;
130
131129 const char *testdir;
132130 if (argc < 2)
133131 {