Compare commits
3 Commits
disallow-c
...
json-c-0.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5ec26015b8 | ||
|
|
3c94cdd1af | ||
|
|
b623741e3d |
@@ -1,55 +0,0 @@
|
|||||||
BasedOnStyle: LLVM
|
|
||||||
# If true, clang-format will attempt to re-flow comments
|
|
||||||
ReflowComments: false
|
|
||||||
# The column limit.
|
|
||||||
ColumnLimit: 100
|
|
||||||
# Indent width for line continuations.
|
|
||||||
ContinuationIndentWidth: 4
|
|
||||||
# The number of columns to use for indentation.
|
|
||||||
IndentWidth: 8
|
|
||||||
# The number of columns used for tab stops.
|
|
||||||
TabWidth: 8
|
|
||||||
UseTab: ForIndentation
|
|
||||||
|
|
||||||
# Options for aligning backslashes in escaped newlines.
|
|
||||||
AlignEscapedNewlines: Left
|
|
||||||
# Short Block Style
|
|
||||||
AllowShortBlocksOnASingleLine: true
|
|
||||||
# If true, short case labels will be contracted to a single line.
|
|
||||||
AllowShortCaseLabelsOnASingleLine: true
|
|
||||||
# Dependent on the value, int f() { return 0; } can be put on a single line.
|
|
||||||
AllowShortFunctionsOnASingleLine: Empty
|
|
||||||
# The brace breaking style to use.
|
|
||||||
BreakBeforeBraces: Custom
|
|
||||||
# Control of individual brace wrapping cases.
|
|
||||||
BraceWrapping:
|
|
||||||
# Wrap brackets inside of a case
|
|
||||||
AfterCaseLabel: true
|
|
||||||
# Wrap class definition.
|
|
||||||
AfterClass: true
|
|
||||||
# Wrap control statements
|
|
||||||
AfterControlStatement: true
|
|
||||||
# Wrap enum definitions.
|
|
||||||
AfterEnum: true
|
|
||||||
# Wrap function definitions.
|
|
||||||
AfterFunction: true
|
|
||||||
# Wrap namespace definitions.
|
|
||||||
AfterNamespace: true
|
|
||||||
# Wrap struct definitions.
|
|
||||||
AfterStruct: true
|
|
||||||
# Wrap union definitions.
|
|
||||||
AfterUnion: true
|
|
||||||
# Wrap extern blocks.
|
|
||||||
AfterExternBlock: false
|
|
||||||
# Wrap before catch.
|
|
||||||
BeforeCatch: true
|
|
||||||
# Wrap before else.
|
|
||||||
BeforeElse: true
|
|
||||||
# Indent the wrapped braces themselves.
|
|
||||||
IndentBraces: false
|
|
||||||
# If false, empty function body can be put on a single line.
|
|
||||||
SplitEmptyFunction: false
|
|
||||||
# If false, empty record (e.g. class, struct or union) body can be put on a single line.
|
|
||||||
SplitEmptyRecord: false
|
|
||||||
# If false, empty namespace body can be put on a single line.
|
|
||||||
SplitEmptyNamespace: false
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
# EditorConfig
|
|
||||||
# https://EditorConfig.org
|
|
||||||
|
|
||||||
# top-most EditorConfig file
|
|
||||||
root = true
|
|
||||||
|
|
||||||
# LF end-of-line, insert an empty new line and UTF-8
|
|
||||||
[*]
|
|
||||||
end_of_line = lf
|
|
||||||
insert_final_newline = true
|
|
||||||
charset = utf-8
|
|
||||||
|
|
||||||
# Tab indentation
|
|
||||||
[makefile,Makefile]
|
|
||||||
indent_style = tab
|
|
||||||
23
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -1,23 +0,0 @@
|
|||||||
---
|
|
||||||
name: Bug report
|
|
||||||
about: Create a report to help us improve
|
|
||||||
title: ''
|
|
||||||
labels: ''
|
|
||||||
assignees: ''
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Note: for general questions and comments, please use the forums at:
|
|
||||||
https://groups.google.com/g/json-c
|
|
||||||
|
|
||||||
**Describe the bug**
|
|
||||||
A clear and concise description of what the bug is, and any information about where you're running into the bug that you feel might be relevant.
|
|
||||||
|
|
||||||
**Steps To Reproduce**
|
|
||||||
List the steps to reproduce the behavior.
|
|
||||||
If possible, please attach a sample json file and/or a minimal code example.
|
|
||||||
|
|
||||||
**Version and Platform**
|
|
||||||
- json-c version: [e.g. json-c-0.14, or a specific commit hash]
|
|
||||||
- OS: [e.g. Ubuntu 20.04, Debian Buster, NetBSD 9, etc...]
|
|
||||||
- Custom cmake/build flags, if any
|
|
||||||
108
.gitignore
vendored
@@ -1,18 +1,34 @@
|
|||||||
# Temp files
|
|
||||||
*~
|
*~
|
||||||
*.swp
|
*.swp
|
||||||
*.bak
|
/INSTALL
|
||||||
*.backup
|
.deps/
|
||||||
\#*
|
.libs/
|
||||||
.\#*
|
/aclocal.m4
|
||||||
*\#
|
/autom4te.cache
|
||||||
*.sav
|
/config.guess
|
||||||
*.save
|
/json_config.h
|
||||||
*.autosav
|
/compile
|
||||||
*.autosave
|
/config.h
|
||||||
|
/config.log
|
||||||
# Tests
|
/config.status
|
||||||
|
/config.sub
|
||||||
|
/configure
|
||||||
|
/depcomp
|
||||||
|
/doc
|
||||||
|
/install-sh
|
||||||
|
/json.pc
|
||||||
|
/json-c.pc
|
||||||
|
/json-c-uninstalled.pc
|
||||||
|
/libtool
|
||||||
|
/ltmain.sh
|
||||||
|
/Makefile
|
||||||
|
/Makefile.in
|
||||||
|
/missing
|
||||||
|
/stamp-h1
|
||||||
|
/stamp-h2
|
||||||
|
/test-driver
|
||||||
/tests/Makefile
|
/tests/Makefile
|
||||||
|
/tests/Makefile.in
|
||||||
/tests/test1
|
/tests/test1
|
||||||
/tests/test1Formatted
|
/tests/test1Formatted
|
||||||
/tests/test2
|
/tests/test2
|
||||||
@@ -20,76 +36,20 @@
|
|||||||
/tests/test4
|
/tests/test4
|
||||||
/tests/testReplaceExisting
|
/tests/testReplaceExisting
|
||||||
/tests/testSubDir
|
/tests/testSubDir
|
||||||
|
/tests/test_parse_int64
|
||||||
|
/tests/test_parse
|
||||||
/tests/test_cast
|
/tests/test_cast
|
||||||
/tests/test_charcase
|
/tests/test_charcase
|
||||||
/tests/test_compare
|
|
||||||
/tests/test_deep_copy
|
|
||||||
/tests/test_double_serializer
|
|
||||||
/tests/test_float
|
|
||||||
/tests/test_int_add
|
|
||||||
/tests/test_int_get
|
|
||||||
/tests/test_json_pointer
|
|
||||||
/tests/test_locale
|
/tests/test_locale
|
||||||
/tests/test_null
|
/tests/test_null
|
||||||
/tests/test_parse
|
|
||||||
/tests/test_parse_int64
|
|
||||||
/tests/test_printbuf
|
/tests/test_printbuf
|
||||||
/tests/test_set_serializer
|
/tests/test_set_serializer
|
||||||
/tests/test_set_value
|
|
||||||
/tests/test_util_file
|
|
||||||
/tests/test_visit
|
|
||||||
/tests/*.vg.out
|
/tests/*.vg.out
|
||||||
/tests/*.log
|
/tests/*.log
|
||||||
/tests/*.trs
|
/tests/*.trs
|
||||||
|
|
||||||
# Generated folders
|
|
||||||
/build
|
|
||||||
/Debug
|
/Debug
|
||||||
/Release
|
/Release
|
||||||
/*/Debug
|
*.lo
|
||||||
/*/Release
|
*.o
|
||||||
|
/libjson-c.la
|
||||||
# Archives
|
/libjson.la
|
||||||
*.zip
|
|
||||||
*.tar.*
|
|
||||||
*.tgz
|
|
||||||
*.gz
|
|
||||||
*.bz2
|
|
||||||
*.xz
|
|
||||||
*.lz
|
|
||||||
*.lzma
|
|
||||||
*.7z
|
|
||||||
*.dll
|
|
||||||
*.deb
|
|
||||||
*.rpm
|
|
||||||
*.apk
|
|
||||||
*.exe
|
|
||||||
*.msi
|
|
||||||
*.dmg
|
|
||||||
*.ipa
|
|
||||||
|
|
||||||
# It's not good practice to build directly in the source tree
|
|
||||||
# but ignore cmake auto-generated files anyway:
|
|
||||||
/json_config.h
|
|
||||||
/json.h
|
|
||||||
/config.h
|
|
||||||
/json-c.pc
|
|
||||||
/Makefile
|
|
||||||
/CMakeCache.txt
|
|
||||||
/CMakeFiles
|
|
||||||
/CMakeDoxyfile.in
|
|
||||||
/*.cmake
|
|
||||||
/DartConfiguration.tcl
|
|
||||||
/tests/CMakeFiles/
|
|
||||||
/tests/*.cmake
|
|
||||||
/Testing/
|
|
||||||
|
|
||||||
# ...and build artifacts.
|
|
||||||
/doc/html
|
|
||||||
/libjson-c.a
|
|
||||||
/libjson-c.so
|
|
||||||
/libjson-c.so.*
|
|
||||||
|
|
||||||
# Benchmarking input and output
|
|
||||||
/bench/data
|
|
||||||
/bench/work
|
|
||||||
|
|||||||
147
.travis.yml
@@ -1,147 +0,0 @@
|
|||||||
language: cpp
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
|
|
||||||
# ubuntu xenial 16.04
|
|
||||||
# gcc 5 is the default on xenial
|
|
||||||
- os: linux
|
|
||||||
dist: xenial
|
|
||||||
compiler: gcc
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- valgrind
|
|
||||||
- cppcheck
|
|
||||||
- doxygen
|
|
||||||
- cmake
|
|
||||||
env: CHECK="true"
|
|
||||||
|
|
||||||
# ubuntu bionic 18.04
|
|
||||||
# gcc 7 is the default on bionic
|
|
||||||
- os: linux
|
|
||||||
dist: bionic
|
|
||||||
compiler: gcc
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- valgrind
|
|
||||||
- cppcheck
|
|
||||||
- doxygen
|
|
||||||
- cmake
|
|
||||||
env: CHECK="true"
|
|
||||||
|
|
||||||
# ubuntu focal fossa 20.04
|
|
||||||
# gcc 9 is the default on bionic
|
|
||||||
- os: linux
|
|
||||||
dist: focal
|
|
||||||
compiler: gcc
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- valgrind
|
|
||||||
- cppcheck
|
|
||||||
- doxygen
|
|
||||||
- cmake
|
|
||||||
env: CHECK="true"
|
|
||||||
|
|
||||||
# clang
|
|
||||||
# xenial
|
|
||||||
- os: linux
|
|
||||||
dist: xenial
|
|
||||||
compiler: clang
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
sources:
|
|
||||||
- llvm-toolchain-xenial-6.0
|
|
||||||
packages:
|
|
||||||
- clang-6.0
|
|
||||||
- cmake
|
|
||||||
env: MATRIX_EVAL="CC=clang-6.0 && CXX=clang++-6.0"
|
|
||||||
|
|
||||||
# clang-7 is the default on focal, xenial and bionic
|
|
||||||
- os: linux
|
|
||||||
dist: focal
|
|
||||||
compiler: clang
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- valgrind
|
|
||||||
- cppcheck
|
|
||||||
- doxygen
|
|
||||||
- cmake
|
|
||||||
env: CHECK="true"
|
|
||||||
|
|
||||||
# osx
|
|
||||||
- os: osx
|
|
||||||
osx_image: xcode13.4
|
|
||||||
env: XCODE="true" CHECK="true"
|
|
||||||
|
|
||||||
# run coveralls
|
|
||||||
- os: linux
|
|
||||||
dist: xenial
|
|
||||||
compiler: gcc
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- lcov
|
|
||||||
env: CHECK="true"
|
|
||||||
before_install:
|
|
||||||
- sudo gem install coveralls-lcov
|
|
||||||
- echo $CC
|
|
||||||
- echo $LANG
|
|
||||||
- echo $LC_ALL
|
|
||||||
- set -e
|
|
||||||
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then
|
|
||||||
eval "${MATRIX_EVAL}";
|
|
||||||
if [ -n "$MATRIX_EVAL" ] && [ "$TRAVIS_COMPILER" != "clang" ]; then
|
|
||||||
sudo apt-get install -y $CC;
|
|
||||||
fi;
|
|
||||||
fi
|
|
||||||
before_script:
|
|
||||||
- export CFLAGS="-fprofile-arcs -ftest-coverage"
|
|
||||||
- mkdir build && cd build && cmake ..
|
|
||||||
script:
|
|
||||||
- make
|
|
||||||
- make test
|
|
||||||
after_success:
|
|
||||||
- cd ..
|
|
||||||
- lcov -d build/ -b . -c -o build/all_coverage.info
|
|
||||||
- lcov -r build/all_coverage.info '/usr/*' '*CMakeFiles*' '*fuzz*' '*test*' -o build/coverage.info
|
|
||||||
- coveralls-lcov --verbose build/coverage.info
|
|
||||||
|
|
||||||
# allow_failures:
|
|
||||||
# - os: osx
|
|
||||||
|
|
||||||
before_install:
|
|
||||||
- echo $CC
|
|
||||||
- echo $LANG
|
|
||||||
- echo $LC_ALL
|
|
||||||
- set -e
|
|
||||||
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then
|
|
||||||
eval "${MATRIX_EVAL}";
|
|
||||||
if [ -n "$MATRIX_EVAL" ] && [ "$TRAVIS_COMPILER" != "clang" ]; then
|
|
||||||
sudo apt-get install -y $CC;
|
|
||||||
fi;
|
|
||||||
fi
|
|
||||||
|
|
||||||
before_script:
|
|
||||||
# XXX osx on travis doesn't work w/ set -e, so turn it off :(
|
|
||||||
- set +e
|
|
||||||
- mkdir -p build || echo "Failed to mkdir build"
|
|
||||||
- cd build || echo "Failed to cd build"
|
|
||||||
- cmake .. || echo "Failed to run cmake"
|
|
||||||
|
|
||||||
script:
|
|
||||||
- make
|
|
||||||
# when using bionic, Travis seems to ignore the "addons" section, so installing the packages with apt-get...
|
|
||||||
- if [ -n "$CHECK" ]; then
|
|
||||||
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
|
||||||
brew install doxygen;
|
|
||||||
else
|
|
||||||
if [ "$TRAVIS_DIST" = "bionic" ]; then
|
|
||||||
sudo apt-get install -y valgrind cppcheck doxygen;
|
|
||||||
fi;
|
|
||||||
fi;
|
|
||||||
make distcheck;
|
|
||||||
if type cppcheck &> /dev/null ; then cppcheck --error-exitcode=1 --quiet *.h *.c tests/ ; fi;
|
|
||||||
fi
|
|
||||||
74
AUTHORS
@@ -1,71 +1,5 @@
|
|||||||
Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
||||||
Alexander Dahl <post@lespocky.de>
|
|
||||||
Alexandru Ardelean <ardeleanalex@gmail.com>
|
|
||||||
An7ar35 <eadavison@protonmail.com>
|
|
||||||
andy5995 <andy400-dev@yahoo.com>
|
|
||||||
Aram Poghosyan <Aram.Poghosyan@teamviewer.com>
|
|
||||||
Björn Esser <besser82@fedoraproject.org>
|
|
||||||
BonsaY <bonsay@posteo.de>
|
|
||||||
changyong guo <guo1487@163.com>
|
|
||||||
chenguoping <chenguopingdota@163.com>
|
|
||||||
Chris Lamb <lamby@debian.org>
|
|
||||||
Christopher Head <chead@chead.ca>
|
|
||||||
Chris Wolfe <chriswwolfe@gmail.com>
|
|
||||||
C. Watford (christopher.watford@gmail.com)
|
|
||||||
Daniel Danzberger <daniel@dd-wrt.com>
|
|
||||||
Darjan Krijan <darjan_krijan@gmx.de>
|
|
||||||
David McCann <mccannd@uk.ibm.com>
|
|
||||||
DeX77 <dex@dragonslave.de>
|
|
||||||
Dimitri Papadopoulos <3234522+DimitriPapadopoulos@users.noreply.github.com>
|
|
||||||
dota17 <chenguopingdota@163.com>
|
|
||||||
Eric Haszlakiewicz <erh+git@nimenees.com>
|
|
||||||
Eric Hawicz <erh+git@nimenees.com>
|
|
||||||
Even Rouault <even.rouault@spatialys.com>
|
|
||||||
Federico Francescon <federico.francescon@higeco.com>
|
|
||||||
Gianluigi Tiesi <sherpya@netfarm.it>
|
|
||||||
grdowns <grdowns@microsoft.com>
|
|
||||||
Hex052 <elijahiff@gmail.com>
|
|
||||||
hofnarr <hofnarr@hofnarr.fi>
|
|
||||||
ihsinme <61293369+ihsinme@users.noreply.github.com>
|
|
||||||
Ivan Romanov <drizt@land.ru>
|
|
||||||
Jaap Keuter <jaap.keuter@xs4all.nl>
|
|
||||||
Jakov Smolic <jakov.smolic@sartura.hr>
|
|
||||||
janczer <menshikov.ivn@gmail.com>
|
|
||||||
JC (Jonathan Chen) <jc@dijonkitchen.org>
|
|
||||||
Jehan <jehan@girinstud.io>
|
|
||||||
Jehiah Czebotar <jehiah@gmail.com>
|
|
||||||
Jonathan Wiens <j.wiens@teles.com>
|
|
||||||
Jose Bollo <jose.bollo@iot.bzh>
|
|
||||||
José Bollo <jose.bollo@iot.bzh>
|
|
||||||
Juuso Alasuutari <juuso.alasuutari@gmail.com>
|
|
||||||
Keith Holman <keith.holman@windriver.com>
|
|
||||||
Khem Raj <raj.khem@gmail.com>
|
|
||||||
Kizuna-Meraki <z9@kizunameraki.de>
|
|
||||||
Leon Gross <leon.gross@rub.de>
|
|
||||||
Liang, Gao <liang.gao@intel.com>
|
|
||||||
Luca Mannella <luca.mannella@studenti.polito.it>
|
|
||||||
Marc <34656315+MarcT512@users.noreply.github.com>
|
|
||||||
Matthias Gatto <matthias.gatto@protonmail.com>
|
|
||||||
max <mpano91@gmail.com>
|
|
||||||
Micah Snyder <micasnyd@cisco.com>
|
|
||||||
Michael Clark <michael@metaparadigm.com>
|
Michael Clark <michael@metaparadigm.com>
|
||||||
myd7349 <myd7349@gmail.com>
|
Jehiah Czebotar <jehiah@gmail.com>
|
||||||
Pascal Cuoq <cuoq@trust-in-soft.com>
|
Eric Haszlakiewicz <hawicz+json-c@gmail.com>
|
||||||
Pawday <pawday@mail.ru>
|
C. Watford (christopher.watford@gmail.com)
|
||||||
Philosoph228 <philosoph228@gmail.com>
|
|
||||||
Pierce Lopez <pierce.lopez@gmail.com>
|
|
||||||
Po-Chuan Hsieh <sunpoet@sunpoet.net>
|
|
||||||
Ramiro Polla <ramiro.polla@gmail.com>
|
|
||||||
Rikard Falkeborn <rikard.falkeborn@gmail.com>
|
|
||||||
Robert Bielik <robert.bielik@dirac.com>
|
|
||||||
Robert <roby_p97@yahoo.com>
|
|
||||||
Rosen Penev <rosenp@gmail.com>
|
|
||||||
Rubasri Kalidas <rubasri.kalidas@intel.com>
|
|
||||||
Sergey Sharshunov <s.sharshunov@gmail.com>
|
|
||||||
Simon McVittie <smcv@collabora.com>
|
|
||||||
ssrlive <30760636+ssrlive@users.noreply.github.com>
|
|
||||||
Tobias Nießen <tniessen@users.noreply.github.com>
|
|
||||||
Tobias Stoeckmann <tobias@stoeckmann.org>
|
|
||||||
Tudor Brindus <me@tbrindus.ca>
|
|
||||||
Unmanned Player <36690541+unmanned-player@users.noreply.github.com>
|
|
||||||
Yurii Rashkovskii <yrashk@gmail.com>
|
|
||||||
|
|||||||
@@ -1,14 +1,4 @@
|
|||||||
# This file is the top android makefile for all sub-modules.
|
# This file is the top android makefile for all sub-modules.
|
||||||
#
|
|
||||||
# Suggested settings to build for Android:
|
|
||||||
#
|
|
||||||
# export PATH=$PATH:/opt/android-ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/
|
|
||||||
# export SYSROOT=/opt/android-ndk/platforms/android-9/arch-arm/usr/
|
|
||||||
# export LD=arm-linux-androideabi-ld
|
|
||||||
# export CC="arm-linux-androideabi-gcc --sysroot=/opt/android-ndk/platforms/android-9/arch-arm"
|
|
||||||
#
|
|
||||||
# Then run autogen.sh, configure and make.
|
|
||||||
#
|
|
||||||
|
|
||||||
LOCAL_PATH := $(call my-dir)
|
LOCAL_PATH := $(call my-dir)
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
|
|||||||
587
CMakeLists.txt
@@ -1,587 +0,0 @@
|
|||||||
# CMake 3.9 was released in 2017/07
|
|
||||||
# As of 2023, many versions of Linux, NetBSD and FreeBSD provide,
|
|
||||||
# and many OpenWRT packages require, much newer CMake packages.
|
|
||||||
# We're stopping before 3.10 because that version starts requiring
|
|
||||||
# c++11, which isn't available on e.g HPUX.
|
|
||||||
cmake_minimum_required(VERSION 3.9...3.12)
|
|
||||||
|
|
||||||
# JSON-C library is C only project.
|
|
||||||
# PROJECT_VERSION{,_MAJOR,_MINOR,_PATCH} set by project():
|
|
||||||
project(json-c LANGUAGES C VERSION 0.17.99)
|
|
||||||
|
|
||||||
# set default build type if not specified by user
|
|
||||||
if(NOT CMAKE_BUILD_TYPE)
|
|
||||||
set(CMAKE_BUILD_TYPE debug)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O2")
|
|
||||||
|
|
||||||
include(CTest)
|
|
||||||
|
|
||||||
# Set some packaging variables.
|
|
||||||
set(CPACK_PACKAGE_NAME "${PROJECT_NAME}")
|
|
||||||
set(CPACK_PACKAGE_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}")
|
|
||||||
set(CPACK_PACKAGE_VERSION_MINOR "${PROJECT_VERSION_MINOR}")
|
|
||||||
set(CPACK_PACKAGE_VERSION_PATCH "${PROJECT_VERSION_PATCH}")
|
|
||||||
set(JSON_C_BUGREPORT "json-c@googlegroups.com")
|
|
||||||
set(CPACK_SOURCE_IGNORE_FILES
|
|
||||||
${PROJECT_SOURCE_DIR}/build
|
|
||||||
${PROJECT_SOURCE_DIR}/cmake-build-debug
|
|
||||||
${PROJECT_SOURCE_DIR}/pack
|
|
||||||
${PROJECT_SOURCE_DIR}/.idea
|
|
||||||
${PROJECT_SOURCE_DIR}/.DS_Store
|
|
||||||
${PROJECT_SOURCE_DIR}/.git
|
|
||||||
${PROJECT_SOURCE_DIR}/.vscode)
|
|
||||||
|
|
||||||
include(CheckSymbolExists)
|
|
||||||
include(CheckIncludeFile)
|
|
||||||
include(CheckIncludeFiles)
|
|
||||||
include(CheckCSourceCompiles)
|
|
||||||
include(CheckTypeSize)
|
|
||||||
include(CPack)
|
|
||||||
include(GNUInstallDirs)
|
|
||||||
include(CMakePackageConfigHelpers)
|
|
||||||
|
|
||||||
option(BUILD_SHARED_LIBS "Default to building shared libraries" ON)
|
|
||||||
option(BUILD_STATIC_LIBS "Default to building static libraries" ON)
|
|
||||||
|
|
||||||
if (BUILD_SHARED_LIBS)
|
|
||||||
add_definitions(-D JSON_C_DLL)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Generate a release merge and test it to verify the correctness of republishing the package.
|
|
||||||
ADD_CUSTOM_TARGET(distcheck
|
|
||||||
COMMAND make package_source
|
|
||||||
COMMAND tar -xvf "${PROJECT_NAME}-${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}-Source.tar.gz"
|
|
||||||
COMMAND mkdir "${PROJECT_NAME}-${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}-Source/build"
|
|
||||||
COMMAND cmake "${PROJECT_NAME}-${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}-Source/" -B"./${PROJECT_NAME}-${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}-Source/build/"
|
|
||||||
COMMAND make -C "${PROJECT_NAME}-${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}-Source/build"
|
|
||||||
COMMAND make test -C "${PROJECT_NAME}-${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}-Source/build"
|
|
||||||
COMMAND rm -rf "${PROJECT_NAME}-${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}-Source"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Enable or disable features. By default, all features are turned off.
|
|
||||||
option(DISABLE_BSYMBOLIC "Avoid linking with -Bsymbolic-function." OFF)
|
|
||||||
option(DISABLE_THREAD_LOCAL_STORAGE "Disable using Thread-Local Storage (HAVE___THREAD)." OFF)
|
|
||||||
option(DISABLE_WERROR "Avoid treating compiler warnings as fatal errors." OFF)
|
|
||||||
option(ENABLE_RDRAND "Enable RDRAND Hardware RNG Hash Seed." OFF)
|
|
||||||
option(ENABLE_THREADING "Enable partial threading support." OFF)
|
|
||||||
option(OVERRIDE_GET_RANDOM_SEED "Override json_c_get_random_seed() with custom code." OFF)
|
|
||||||
option(DISABLE_EXTRA_LIBS "Avoid linking against extra libraries, such as libbsd." OFF)
|
|
||||||
option(DISABLE_JSON_POINTER "Disable JSON pointer (RFC6901) and JSON patch support." OFF)
|
|
||||||
option(DISABLE_JSON_PATCH "Disable JSON patch (RFC6902) support." OFF)
|
|
||||||
option(NEWLOCALE_NEEDS_FREELOCALE "Work around newlocale bugs in old FreeBSD by calling freelocale" OFF)
|
|
||||||
option(BUILD_APPS "Default to building apps" ON)
|
|
||||||
|
|
||||||
|
|
||||||
if (UNIX OR MINGW OR CYGWIN)
|
|
||||||
list(APPEND CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (UNIX)
|
|
||||||
list(APPEND CMAKE_REQUIRED_LIBRARIES m)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (MSVC)
|
|
||||||
list(APPEND CMAKE_REQUIRED_DEFINITIONS /D_CRT_SECURE_NO_DEPRECATE)
|
|
||||||
list(APPEND CMAKE_REQUIRED_FLAGS /wd4996)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (NOT DISABLE_STATIC_FPIC)
|
|
||||||
# Use '-fPIC'/'-fPIE' option.
|
|
||||||
# This will allow other libraries to statically link in libjson-c.a
|
|
||||||
# which in turn prevents crashes in downstream apps that may use
|
|
||||||
# a different JSON library with identical symbol names.
|
|
||||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
check_include_file("fcntl.h" HAVE_FCNTL_H)
|
|
||||||
check_include_file("inttypes.h" HAVE_INTTYPES_H)
|
|
||||||
check_include_file(stdarg.h HAVE_STDARG_H)
|
|
||||||
check_include_file(strings.h HAVE_STRINGS_H)
|
|
||||||
check_include_file(string.h HAVE_STRING_H)
|
|
||||||
check_include_file(syslog.h HAVE_SYSLOG_H)
|
|
||||||
|
|
||||||
|
|
||||||
check_include_files("stdlib.h;stdarg.h;string.h;float.h" STDC_HEADERS)
|
|
||||||
|
|
||||||
check_include_file(unistd.h HAVE_UNISTD_H)
|
|
||||||
check_include_file(sys/types.h HAVE_SYS_TYPES_H)
|
|
||||||
check_include_file(sys/resource.h HAVE_SYS_RESOURCE_H) # for getrusage
|
|
||||||
|
|
||||||
check_include_file("dlfcn.h" HAVE_DLFCN_H)
|
|
||||||
check_include_file("endian.h" HAVE_ENDIAN_H)
|
|
||||||
check_include_file("limits.h" HAVE_LIMITS_H)
|
|
||||||
check_include_file("locale.h" HAVE_LOCALE_H)
|
|
||||||
check_include_file("memory.h" HAVE_MEMORY_H)
|
|
||||||
|
|
||||||
check_include_file(stdint.h HAVE_STDINT_H)
|
|
||||||
check_include_file(stdlib.h HAVE_STDLIB_H)
|
|
||||||
check_include_file(sys/cdefs.h HAVE_SYS_CDEFS_H)
|
|
||||||
check_include_file(sys/param.h HAVE_SYS_PARAM_H)
|
|
||||||
check_include_file(sys/random.h HAVE_SYS_RANDOM_H)
|
|
||||||
check_include_file(sys/stat.h HAVE_SYS_STAT_H)
|
|
||||||
check_include_file(xlocale.h HAVE_XLOCALE_H)
|
|
||||||
|
|
||||||
# Set json-c specific vars to stamp into json_config.h
|
|
||||||
# in a way that hopefully won't conflict with other
|
|
||||||
# projects that use json-c.
|
|
||||||
if (HAVE_INTTYPES_H)
|
|
||||||
set(JSON_C_HAVE_INTTYPES_H 1)
|
|
||||||
endif()
|
|
||||||
if (HAVE_STDINT_H)
|
|
||||||
set(JSON_C_HAVE_STDINT_H 1)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
check_symbol_exists(_isnan "float.h" HAVE_DECL__ISNAN)
|
|
||||||
check_symbol_exists(_finite "float.h" HAVE_DECL__FINITE)
|
|
||||||
|
|
||||||
if ((MSVC AND NOT (MSVC_VERSION LESS 1800)) OR MINGW OR CYGWIN OR UNIX)
|
|
||||||
check_symbol_exists(INFINITY "math.h" HAVE_DECL_INFINITY)
|
|
||||||
check_symbol_exists(isinf "math.h" HAVE_DECL_ISINF)
|
|
||||||
check_symbol_exists(isnan "math.h" HAVE_DECL_ISNAN)
|
|
||||||
check_symbol_exists(nan "math.h" HAVE_DECL_NAN)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
check_symbol_exists(_doprnt "stdio.h" HAVE_DOPRNT)
|
|
||||||
if (UNIX OR MINGW OR CYGWIN)
|
|
||||||
check_symbol_exists(snprintf "stdio.h" HAVE_SNPRINTF)
|
|
||||||
endif()
|
|
||||||
check_symbol_exists(vasprintf "stdio.h" HAVE_VASPRINTF)
|
|
||||||
check_symbol_exists(vsnprintf "stdio.h" HAVE_VSNPRINTF)
|
|
||||||
check_symbol_exists(vprintf "stdio.h" HAVE_VPRINTF)
|
|
||||||
|
|
||||||
check_symbol_exists(arc4random "stdlib.h" HAVE_ARC4RANDOM)
|
|
||||||
if (NOT HAVE_ARC4RANDOM AND DISABLE_EXTRA_LIBS STREQUAL "OFF")
|
|
||||||
check_include_file(bsd/stdlib.h HAVE_BSD_STDLIB_H)
|
|
||||||
if (HAVE_BSD_STDLIB_H)
|
|
||||||
list(APPEND CMAKE_REQUIRED_LIBRARIES "bsd")
|
|
||||||
unset(HAVE_ARC4RANDOM CACHE)
|
|
||||||
check_symbol_exists(arc4random "bsd/stdlib.h" HAVE_ARC4RANDOM)
|
|
||||||
if (NOT HAVE_ARC4RANDOM)
|
|
||||||
list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "bsd")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (HAVE_FCNTL_H)
|
|
||||||
check_symbol_exists(open "fcntl.h" HAVE_OPEN)
|
|
||||||
endif()
|
|
||||||
if (HAVE_STDLIB_H)
|
|
||||||
check_symbol_exists(realloc "stdlib.h" HAVE_REALLOC)
|
|
||||||
endif()
|
|
||||||
if (HAVE_LOCALE_H)
|
|
||||||
check_symbol_exists(setlocale "locale.h" HAVE_SETLOCALE)
|
|
||||||
check_symbol_exists(uselocale "locale.h" HAVE_USELOCALE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# uClibc *intentionally* crashes in duplocale(), at least as of:
|
|
||||||
# https://github.com/ffainelli/uClibc/blob/266bdc1/libc/misc/locale/locale.c#L1322
|
|
||||||
# So, if it looks like we're compiling for a system like that just disable
|
|
||||||
# locale handling entirely.
|
|
||||||
execute_process (COMMAND ${CMAKE_C_COMPILER} -dumpmachine ERROR_QUIET OUTPUT_VARIABLE CMAKE_GNU_C_MACHINE)
|
|
||||||
|
|
||||||
if (CMAKE_GNU_C_MACHINE MATCHES "uclibc")
|
|
||||||
message(STATUS "Detected uClibc compiler, disabling locale handling")
|
|
||||||
set(HAVE_SETLOCALE 0)
|
|
||||||
set(HAVE_USELOCALE 0)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (HAVE_STRINGS_H)
|
|
||||||
check_symbol_exists(strcasecmp "strings.h" HAVE_STRCASECMP)
|
|
||||||
check_symbol_exists(strncasecmp "strings.h" HAVE_STRNCASECMP)
|
|
||||||
endif()
|
|
||||||
if (HAVE_STRING_H)
|
|
||||||
check_symbol_exists(strdup "string.h" HAVE_STRDUP)
|
|
||||||
check_symbol_exists(strerror "string.h" HAVE_STRERROR)
|
|
||||||
endif()
|
|
||||||
if (HAVE_SYSLOG_H)
|
|
||||||
check_symbol_exists(vsyslog "syslog.h" HAVE_VSYSLOG)
|
|
||||||
endif()
|
|
||||||
if (HAVE_SYS_RANDOM_H)
|
|
||||||
check_symbol_exists(getrandom "sys/random.h" HAVE_GETRANDOM)
|
|
||||||
endif()
|
|
||||||
if (HAVE_SYS_RESOURCE_H)
|
|
||||||
check_symbol_exists(getrusage "sys/resource.h" HAVE_GETRUSAGE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
check_symbol_exists(strtoll "stdlib.h" HAVE_STRTOLL)
|
|
||||||
check_symbol_exists(strtoull "stdlib.h" HAVE_STRTOULL)
|
|
||||||
|
|
||||||
set(json_c_strtoll "strtoll")
|
|
||||||
if (NOT HAVE_STRTOLL)
|
|
||||||
# Use _strtoi64 if strtoll is not available.
|
|
||||||
check_symbol_exists(_strtoi64 "stdlib.h" __have_strtoi64)
|
|
||||||
if (__have_strtoi64)
|
|
||||||
#set(HAVE_STRTOLL 1)
|
|
||||||
set(json_c_strtoll "_strtoi64")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(json_c_strtoull "strtoull")
|
|
||||||
if (NOT HAVE_STRTOULL)
|
|
||||||
# Use _strtoui64 if strtoull is not available.
|
|
||||||
check_symbol_exists(_strtoui64 "stdlib.h" __have_strtoui64)
|
|
||||||
if (__have_strtoui64)
|
|
||||||
#set(HAVE_STRTOULL 1)
|
|
||||||
set(json_c_strtoull "_strtoui64")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
check_type_size(int SIZEOF_INT)
|
|
||||||
check_type_size(int64_t SIZEOF_INT64_T)
|
|
||||||
check_type_size(long SIZEOF_LONG)
|
|
||||||
check_type_size("long long" SIZEOF_LONG_LONG)
|
|
||||||
check_type_size("size_t" SIZEOF_SIZE_T)
|
|
||||||
if (MSVC)
|
|
||||||
list(APPEND CMAKE_EXTRA_INCLUDE_FILES BaseTsd.h)
|
|
||||||
check_type_size("SSIZE_T" SIZEOF_SSIZE_T)
|
|
||||||
else()
|
|
||||||
check_type_size("ssize_t" SIZEOF_SSIZE_T)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
check_c_source_compiles(
|
|
||||||
"
|
|
||||||
extern void json_object_get();
|
|
||||||
__asm__(\".section .gnu.json_object_get\\n\\t.ascii \\\"Please link against libjson-c instead of libjson\\\"\\n\\t.text\");
|
|
||||||
int main(int c, char *v) { return 0;}
|
|
||||||
"
|
|
||||||
HAS_GNU_WARNING_LONG)
|
|
||||||
|
|
||||||
check_c_source_compiles(
|
|
||||||
"int main() { int i, x = 0; i = __sync_add_and_fetch(&x,1); return x; }"
|
|
||||||
HAVE_ATOMIC_BUILTINS)
|
|
||||||
|
|
||||||
if (NOT DISABLE_THREAD_LOCAL_STORAGE)
|
|
||||||
check_c_source_compiles(
|
|
||||||
"__thread int x = 0; int main() { return 0; }"
|
|
||||||
HAVE___THREAD)
|
|
||||||
|
|
||||||
if (HAVE___THREAD)
|
|
||||||
set(SPEC___THREAD __thread)
|
|
||||||
elseif (MSVC)
|
|
||||||
set(SPEC___THREAD __declspec(thread))
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Hardware random number is not available on Windows? Says, config.h.win32. Best to preserve compatibility.
|
|
||||||
if (WIN32)
|
|
||||||
set(ENABLE_RDRAND 0)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Once we've done basic symbol/header searches let's add them in.
|
|
||||||
configure_file(${PROJECT_SOURCE_DIR}/cmake/config.h.in ${PROJECT_BINARY_DIR}/config.h)
|
|
||||||
message(STATUS "Wrote ${PROJECT_BINARY_DIR}/config.h")
|
|
||||||
configure_file(${PROJECT_SOURCE_DIR}/cmake/json_config.h.in ${PROJECT_BINARY_DIR}/json_config.h)
|
|
||||||
message(STATUS "Wrote ${PROJECT_BINARY_DIR}/json_config.h")
|
|
||||||
|
|
||||||
if (NOT DEFINED CMAKE_C_COMPILER_FRONTEND_VARIANT OR "${CMAKE_C_COMPILER_FRONTEND_VARIANT}" STREQUAL "") # only available in cmake 3.14+
|
|
||||||
if ("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC")
|
|
||||||
set(CMAKE_C_COMPILER_FRONTEND_VARIANT "MSVC")
|
|
||||||
elseif ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
|
|
||||||
set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU")
|
|
||||||
elseif ("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")
|
|
||||||
# Detect clang-cl.exe, it is Clang but with MSVC compatible command line arguments
|
|
||||||
execute_process (COMMAND ${CMAKE_C_COMPILER} -? ERROR_QUIET OUTPUT_QUIET RESULT_VARIABLE _clang_result)
|
|
||||||
if (_clang_result EQUAL 0)
|
|
||||||
set(CMAKE_C_COMPILER_FRONTEND_VARIANT "MSVC")
|
|
||||||
else()
|
|
||||||
set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU")
|
|
||||||
message(STATUS, "clang result is NOT 0")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if ("${CMAKE_C_COMPILER_FRONTEND_VARIANT}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_FRONTEND_VARIANT}" STREQUAL "Clang")
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ffunction-sections -fdata-sections")
|
|
||||||
if ("${DISABLE_WERROR}" STREQUAL "OFF")
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
|
|
||||||
endif()
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wcast-qual")
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=deprecated-declarations")
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wextra")
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wwrite-strings")
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-parameter")
|
|
||||||
if (NOT WIN32)
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wstrict-prototypes")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
add_definitions(-D_GNU_SOURCE)
|
|
||||||
|
|
||||||
if ("${CMAKE_C_COMPILER_FRONTEND_VARIANT}" STREQUAL "Clang")
|
|
||||||
# Remove this for 1.0 when we can bump the ABI and actually fix these warnings.
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-shorten-64-to-32")
|
|
||||||
endif()
|
|
||||||
elseif ("${CMAKE_C_COMPILER_FRONTEND_VARIANT}" STREQUAL "MSVC")
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /DEBUG")
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4100")
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4996")
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4244")
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4706")
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4702")
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4127")
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4701")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (NOT ("${CMAKE_C_COMPILER_FRONTEND_VARIANT}" STREQUAL "MSVC"))
|
|
||||||
check_c_source_compiles(
|
|
||||||
"
|
|
||||||
/* uClibc toolchains without threading barf when _REENTRANT is defined */
|
|
||||||
#define _REENTRANT 1
|
|
||||||
#include <sys/types.h>
|
|
||||||
int main (void)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
"
|
|
||||||
REENTRANT_WORKS
|
|
||||||
)
|
|
||||||
if (REENTRANT_WORKS)
|
|
||||||
add_compile_options("-D_REENTRANT")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# OSX Mach-O doesn't support linking with '-Bsymbolic-functions'.
|
|
||||||
# Others may not support it, too.
|
|
||||||
list(APPEND CMAKE_REQUIRED_LIBRARIES "-Wl,-Bsymbolic-functions")
|
|
||||||
check_c_source_compiles(
|
|
||||||
"
|
|
||||||
int main (void)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
"
|
|
||||||
BSYMBOLIC_WORKS
|
|
||||||
)
|
|
||||||
list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "-Wl,-Bsymbolic-functions")
|
|
||||||
if (DISABLE_BSYMBOLIC STREQUAL "OFF" AND BSYMBOLIC_WORKS)
|
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-Bsymbolic-functions")
|
|
||||||
# XXX need cmake>=3.13 for this:
|
|
||||||
#add_link_options("-Wl,-Bsymbolic-functions")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/check-version-script.sym" "TEST { global: *; };")
|
|
||||||
list(APPEND CMAKE_REQUIRED_LIBRARIES "-Wl,--version-script,${CMAKE_CURRENT_BINARY_DIR}/check-version-script.sym")
|
|
||||||
check_c_source_compiles(
|
|
||||||
"
|
|
||||||
int main (void)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
"
|
|
||||||
VERSION_SCRIPT_WORKS
|
|
||||||
)
|
|
||||||
list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES "-Wl,--version-script,${CMAKE_CURRENT_BINARY_DIR}/check-version-script.sym")
|
|
||||||
if (VERSION_SCRIPT_WORKS)
|
|
||||||
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--version-script,${CMAKE_CURRENT_SOURCE_DIR}/json-c.sym")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if ($ENV{VALGRIND})
|
|
||||||
# Build so that valgrind doesn't complain about linkhash.c
|
|
||||||
add_definitions(-DVALGRIND=1)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(JSON_C_PUBLIC_HEADERS
|
|
||||||
# Note: config.h is _not_ included here
|
|
||||||
${PROJECT_BINARY_DIR}/json_config.h
|
|
||||||
|
|
||||||
${PROJECT_BINARY_DIR}/json.h
|
|
||||||
${PROJECT_SOURCE_DIR}/arraylist.h
|
|
||||||
${PROJECT_SOURCE_DIR}/debug.h
|
|
||||||
${PROJECT_SOURCE_DIR}/json_c_version.h
|
|
||||||
${PROJECT_SOURCE_DIR}/json_inttypes.h
|
|
||||||
${PROJECT_SOURCE_DIR}/json_object.h
|
|
||||||
${PROJECT_SOURCE_DIR}/json_object_iterator.h
|
|
||||||
${PROJECT_SOURCE_DIR}/json_tokener.h
|
|
||||||
${PROJECT_SOURCE_DIR}/json_types.h
|
|
||||||
${PROJECT_SOURCE_DIR}/json_util.h
|
|
||||||
${PROJECT_SOURCE_DIR}/json_visit.h
|
|
||||||
${PROJECT_SOURCE_DIR}/linkhash.h
|
|
||||||
${PROJECT_SOURCE_DIR}/printbuf.h
|
|
||||||
)
|
|
||||||
|
|
||||||
set(JSON_C_HEADERS
|
|
||||||
${JSON_C_PUBLIC_HEADERS}
|
|
||||||
${PROJECT_SOURCE_DIR}/json_object_private.h
|
|
||||||
${PROJECT_SOURCE_DIR}/json_pointer_private.h
|
|
||||||
${PROJECT_SOURCE_DIR}/random_seed.h
|
|
||||||
${PROJECT_SOURCE_DIR}/strerror_override.h
|
|
||||||
${PROJECT_SOURCE_DIR}/math_compat.h
|
|
||||||
${PROJECT_SOURCE_DIR}/snprintf_compat.h
|
|
||||||
${PROJECT_SOURCE_DIR}/strdup_compat.h
|
|
||||||
${PROJECT_SOURCE_DIR}/vasprintf_compat.h
|
|
||||||
)
|
|
||||||
|
|
||||||
set(JSON_C_SOURCES
|
|
||||||
${PROJECT_SOURCE_DIR}/arraylist.c
|
|
||||||
${PROJECT_SOURCE_DIR}/debug.c
|
|
||||||
${PROJECT_SOURCE_DIR}/json_c_version.c
|
|
||||||
${PROJECT_SOURCE_DIR}/json_object.c
|
|
||||||
${PROJECT_SOURCE_DIR}/json_object_iterator.c
|
|
||||||
${PROJECT_SOURCE_DIR}/json_tokener.c
|
|
||||||
${PROJECT_SOURCE_DIR}/json_util.c
|
|
||||||
${PROJECT_SOURCE_DIR}/json_visit.c
|
|
||||||
${PROJECT_SOURCE_DIR}/linkhash.c
|
|
||||||
${PROJECT_SOURCE_DIR}/printbuf.c
|
|
||||||
${PROJECT_SOURCE_DIR}/random_seed.c
|
|
||||||
${PROJECT_SOURCE_DIR}/strerror_override.c
|
|
||||||
)
|
|
||||||
|
|
||||||
if (NOT DISABLE_JSON_POINTER)
|
|
||||||
set(JSON_C_PUBLIC_HEADERS ${JSON_C_PUBLIC_HEADERS} ${PROJECT_SOURCE_DIR}/json_pointer.h)
|
|
||||||
set(JSON_C_SOURCES ${JSON_C_SOURCES} ${PROJECT_SOURCE_DIR}/json_pointer.c)
|
|
||||||
set(JSON_H_JSON_POINTER "#include \"json_pointer.h\"")
|
|
||||||
|
|
||||||
if (NOT DISABLE_JSON_PATCH)
|
|
||||||
set(JSON_C_PUBLIC_HEADERS ${JSON_C_PUBLIC_HEADERS} ${PROJECT_SOURCE_DIR}/json_patch.h)
|
|
||||||
set(JSON_C_SOURCES ${JSON_C_SOURCES} ${PROJECT_SOURCE_DIR}/json_patch.c)
|
|
||||||
set(JSON_H_JSON_PATCH "#include \"json_patch.h\"")
|
|
||||||
endif()
|
|
||||||
else()
|
|
||||||
set(JSON_H_JSON_POINTER "")
|
|
||||||
set(JSON_H_JSON_PATCH "")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
configure_file(json.h.cmakein ${PROJECT_BINARY_DIR}/json.h @ONLY)
|
|
||||||
|
|
||||||
include_directories(${PROJECT_SOURCE_DIR})
|
|
||||||
include_directories(${PROJECT_BINARY_DIR})
|
|
||||||
|
|
||||||
add_subdirectory(doc)
|
|
||||||
|
|
||||||
# "uninstall" custom target for make generators in unix like operating systems
|
|
||||||
# and if that target is not present
|
|
||||||
if (CMAKE_GENERATOR STREQUAL "Unix Makefiles")
|
|
||||||
if(NOT TARGET uninstall)
|
|
||||||
add_custom_target(uninstall
|
|
||||||
COMMAND cat ${PROJECT_BINARY_DIR}/install_manifest.txt | xargs rm
|
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# XXX for a normal full distribution we'll need to figure out
|
|
||||||
# XXX how to build both shared and static libraries.
|
|
||||||
# Probably leverage that to build a local VALGRIND=1 library for testing too.
|
|
||||||
add_library(${PROJECT_NAME}
|
|
||||||
${JSON_C_SOURCES}
|
|
||||||
${JSON_C_HEADERS}
|
|
||||||
)
|
|
||||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
|
||||||
VERSION 5.3.0
|
|
||||||
SOVERSION 5)
|
|
||||||
list(APPEND CMAKE_TARGETS ${PROJECT_NAME})
|
|
||||||
# If json-c is used as subroject it set to target correct interface -I flags and allow
|
|
||||||
# to build external target without extra include_directories(...)
|
|
||||||
target_include_directories(${PROJECT_NAME}
|
|
||||||
PUBLIC
|
|
||||||
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
|
|
||||||
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}>
|
|
||||||
)
|
|
||||||
|
|
||||||
target_link_libraries(${PROJECT_NAME} PUBLIC ${CMAKE_REQUIRED_LIBRARIES})
|
|
||||||
|
|
||||||
# Allow to build static and shared libraries at the same time
|
|
||||||
if (BUILD_STATIC_LIBS AND BUILD_SHARED_LIBS)
|
|
||||||
set(STATIC_LIB ${PROJECT_NAME}-static)
|
|
||||||
add_library(${STATIC_LIB} STATIC
|
|
||||||
${JSON_C_SOURCES}
|
|
||||||
${JSON_C_HEADERS}
|
|
||||||
)
|
|
||||||
target_include_directories(${PROJECT_NAME}-static
|
|
||||||
PUBLIC
|
|
||||||
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
|
|
||||||
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}>
|
|
||||||
)
|
|
||||||
|
|
||||||
target_link_libraries(${PROJECT_NAME}-static PUBLIC ${CMAKE_REQUIRED_LIBRARIES})
|
|
||||||
|
|
||||||
# rename the static library
|
|
||||||
if (NOT MSVC)
|
|
||||||
set_target_properties(${STATIC_LIB} PROPERTIES
|
|
||||||
OUTPUT_NAME ${PROJECT_NAME}
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
list(APPEND CMAKE_TARGETS ${STATIC_LIB})
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
# Always create new install dirs with 0755 permissions, regardless of umask
|
|
||||||
set(CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS
|
|
||||||
OWNER_READ
|
|
||||||
OWNER_WRITE
|
|
||||||
OWNER_EXECUTE
|
|
||||||
GROUP_READ
|
|
||||||
GROUP_EXECUTE
|
|
||||||
WORLD_READ
|
|
||||||
WORLD_EXECUTE
|
|
||||||
)
|
|
||||||
|
|
||||||
install(TARGETS ${CMAKE_TARGETS}
|
|
||||||
EXPORT ${PROJECT_NAME}-targets
|
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
||||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
||||||
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ${CMAKE_INSTALL_INCLUDEDIR}/json-c
|
|
||||||
)
|
|
||||||
|
|
||||||
install(EXPORT ${PROJECT_NAME}-targets
|
|
||||||
FILE ${PROJECT_NAME}-targets.cmake
|
|
||||||
NAMESPACE ${PROJECT_NAME}::
|
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
|
|
||||||
)
|
|
||||||
|
|
||||||
configure_package_config_file(
|
|
||||||
"cmake/Config.cmake.in"
|
|
||||||
${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake
|
|
||||||
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
|
|
||||||
)
|
|
||||||
|
|
||||||
install(
|
|
||||||
FILES ${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake
|
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}
|
|
||||||
)
|
|
||||||
|
|
||||||
SET(prefix ${CMAKE_INSTALL_PREFIX})
|
|
||||||
# exec_prefix is prefix by default and CMake does not have the
|
|
||||||
# concept.
|
|
||||||
SET(exec_prefix ${CMAKE_INSTALL_PREFIX})
|
|
||||||
SET(libdir ${CMAKE_INSTALL_FULL_LIBDIR})
|
|
||||||
SET(includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR})
|
|
||||||
SET(VERSION ${PROJECT_VERSION})
|
|
||||||
|
|
||||||
# Linking against the static json-c requires
|
|
||||||
# dependent packages to include additional libs:
|
|
||||||
SET(LIBS_LIST ${CMAKE_REQUIRED_LIBRARIES})
|
|
||||||
|
|
||||||
# Note: We would need cmake >= 3.12 in order to use list(TRANSFORM ...)
|
|
||||||
function(list_transform_prepend var prefix)
|
|
||||||
set(temp "")
|
|
||||||
foreach(f ${${var}})
|
|
||||||
list(APPEND temp "${prefix}${f}")
|
|
||||||
endforeach()
|
|
||||||
set(${var} "${temp}" PARENT_SCOPE)
|
|
||||||
endfunction()
|
|
||||||
list_transform_prepend(LIBS_LIST "-l")
|
|
||||||
|
|
||||||
string(REPLACE ";" " " LIBS "${LIBS_LIST}")
|
|
||||||
|
|
||||||
configure_file(json-c.pc.in json-c.pc @ONLY)
|
|
||||||
set(INSTALL_PKGCONFIG_DIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files")
|
|
||||||
install(FILES ${PROJECT_BINARY_DIR}/json-c.pc DESTINATION "${INSTALL_PKGCONFIG_DIR}")
|
|
||||||
|
|
||||||
install(FILES ${JSON_C_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/json-c)
|
|
||||||
|
|
||||||
if (CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME AND BUILD_TESTING AND
|
|
||||||
(NOT MSVC OR NOT (MSVC_VERSION LESS 1800)) # Tests need at least VS2013
|
|
||||||
)
|
|
||||||
add_subdirectory(tests)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME AND BUILD_APPS)
|
|
||||||
# skip apps when we're included in someone else's build
|
|
||||||
if (NOT MSVC) # cmd line apps don't built on Windows currently.
|
|
||||||
add_subdirectory(apps)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
424
ChangeLog
@@ -1,398 +1,5 @@
|
|||||||
|
|
||||||
0.17 (up to commit 077661f, 2023-08-08)
|
|
||||||
========================================
|
|
||||||
|
|
||||||
Deprecated and removed features:
|
|
||||||
--------------------------------
|
|
||||||
* None
|
|
||||||
|
|
||||||
New features
|
|
||||||
------------
|
|
||||||
* json_patch: add first implementation only with patch application
|
|
||||||
* Add --disable-static and --disable-dynamic options to the cmake-configure script.
|
|
||||||
* Add -DBUILD_APPS=NO option to disable app build
|
|
||||||
* Minimum cmake version is now 3.9
|
|
||||||
|
|
||||||
Significant changes and bug fixes
|
|
||||||
---------------------------------
|
|
||||||
* When serializing with JSON_C_TO_STRING_PRETTY set, keep the opening and
|
|
||||||
closing curly or square braces on same line for empty objects or arrays.
|
|
||||||
* Disable locale handling when targeting a uClibc system due to problems
|
|
||||||
with its duplocale() function.
|
|
||||||
* When parsing with JSON_TOKENER_STRICT set, integer overflow/underflow
|
|
||||||
now result in a json_tokener_error_parse_number. Without that flag
|
|
||||||
values are capped at INT64_MIN/UINT64_MAX.
|
|
||||||
* Fix memory leak with emtpy strings in json_object_set_string
|
|
||||||
* json_object_from_fd_ex: fail if file is too large (>=INT_MAX bytes)
|
|
||||||
* Add back json_number_chars, but only because it's part of the public API.
|
|
||||||
* Entirely drop mode bits from open(O_RDONLY) to avoid warnings on certain
|
|
||||||
platforms.
|
|
||||||
* Specify dependent libraries, including -lbsd, in a more consistent way so
|
|
||||||
linking against a static json-c works better
|
|
||||||
* Fix a variety of build problems and add & improve tests
|
|
||||||
* Update RFC reference to https://www.rfc-editor.org/rfc/rfc8259
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
0.16 (up to commit 66dcdf5, 2022-04-13)
|
|
||||||
========================================
|
|
||||||
|
|
||||||
Deprecated and removed features:
|
|
||||||
--------------------------------
|
|
||||||
* JSON_C_OBJECT_KEY_IS_CONSTANT is deprecated in favor of
|
|
||||||
JSON_C_OBJECT_ADD_CONSTANT_KEY
|
|
||||||
* Direct access to lh_table and lh_entry structure members is deprecated.
|
|
||||||
Use access functions instead, lh_table_head(), lh_entry_next(), etc...
|
|
||||||
* Drop REFCOUNT_DEBUG code.
|
|
||||||
|
|
||||||
New features
|
|
||||||
------------
|
|
||||||
* The 0.16 release introduces no new features
|
|
||||||
|
|
||||||
Build changes
|
|
||||||
-------------
|
|
||||||
* Add a DISABLE_EXTRA_LIBS option to skip using libbsd
|
|
||||||
* Add a DISABLE_JSON_POINTER option to skip compiling in json_pointer support.
|
|
||||||
|
|
||||||
Significant changes and bug fixes
|
|
||||||
---------------------------------
|
|
||||||
* Cap string length at INT_MAX to avoid various issues with very long strings.
|
|
||||||
* json_object_deep_copy: fix deep copy of strings containing '\0'
|
|
||||||
* Fix read past end of buffer in the "json_parse" command
|
|
||||||
* Avoid out of memory accesses in the locally provided vasprintf() function
|
|
||||||
(for those platforms that use it)
|
|
||||||
* Handle allocation failure in json_tokener_new_ex
|
|
||||||
* Fix use-after-free in json_tokener_new_ex() in the event of printbuf_new() returning NULL
|
|
||||||
* printbuf_memset(): set gaps to zero - areas within the print buffer which
|
|
||||||
have not been initialized by using printbuf_memset
|
|
||||||
* printbuf: return -1 on invalid arguments (len < 0 or total buffer > INT_MAX)
|
|
||||||
* sprintbuf(): propagate printbuf_memappend errors back to the caller
|
|
||||||
|
|
||||||
Optimizations
|
|
||||||
--------------
|
|
||||||
* Speed up parsing by replacing ctype functions with simplified, faster
|
|
||||||
non-locale-sensitive ones in json_tokener and json_object_to_json_string.
|
|
||||||
* Neither vertical tab nor formfeed are considered whitespace per the JSON spec
|
|
||||||
* json_object: speed up creation of objects, calloc() -> malloc() + set fields
|
|
||||||
* Avoid needless extra strlen() call in json_c_shallow_copy_default() and
|
|
||||||
json_object_equal() when the object is known to be a json_type_string.
|
|
||||||
|
|
||||||
Other changes
|
|
||||||
-------------
|
|
||||||
* Validate size arguments in arraylist functions.
|
|
||||||
* Use getrandom() if available; with GRND_NONBLOCK to allow use of json-c
|
|
||||||
very early during boot, such as part of cryptsetup.
|
|
||||||
* Use arc4random() if it's available.
|
|
||||||
* random_seed: on error, continue to next method instead of exiting the process
|
|
||||||
* Close file when unable to read from /dev/urandom in get_dev_random_seed()
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
0.15 (up to commit 870965e, 2020/07/26)
|
|
||||||
========================================
|
|
||||||
|
|
||||||
Deprecated and removed features:
|
|
||||||
--------------------------------
|
|
||||||
* Deprecate `array_list_new()` in favor of `array_list_new2()`
|
|
||||||
* Remove the THIS_FUNCTION_IS_DEPRECATED define.
|
|
||||||
* Remove config.h.win32
|
|
||||||
|
|
||||||
New features
|
|
||||||
------------
|
|
||||||
* Add a `JSON_TOKENER_ALLOW_TRAILING_CHARS` flag to allow multiple objects
|
|
||||||
to be parsed even when `JSON_TOKENER_STRICT` is set.
|
|
||||||
* Add `json_object_new_array_ext(int)` and `array_list_new_2(int)` to allow
|
|
||||||
arrays to be allocated with the exact size needed, when known.
|
|
||||||
* Add `json_object_array_shrink()` (and `array_list_shrink()`) and use it in
|
|
||||||
json_tokener to minimize the amount of memory used.
|
|
||||||
* Add a json_parse binary, for use in testing changes (not installed, but
|
|
||||||
available in the apps directory).
|
|
||||||
|
|
||||||
Build changes
|
|
||||||
-------------
|
|
||||||
* #639/#621 - Add symbol versions to all exported symbols
|
|
||||||
* #508/#634 - Always enable -fPIC to allow use of the json-c static library in
|
|
||||||
other libraries
|
|
||||||
* Build both static and shared libraries at the same time.
|
|
||||||
* #626 - Restore compatibility with cmake 2.8
|
|
||||||
* #471 - Always create directories with mode 0755, regardless of umask.
|
|
||||||
* #606/#604 - Improve support for OSes like AIX and IBM i, as well as for
|
|
||||||
MINGW32 and old versions of MSVC
|
|
||||||
* #451/#617 - Add a DISABLE_THREAD_LOCAL_STORAGE cmake option to disable
|
|
||||||
the use of thread-local storage.
|
|
||||||
|
|
||||||
Significant changes and bug fixes
|
|
||||||
---------------------------------
|
|
||||||
* Split the internal json_object structure into several sub-types, one for
|
|
||||||
each json_type (json_object_object, json_object_string, etc...).
|
|
||||||
This improves memory usage and speed, with the benchmark under
|
|
||||||
bench/ report 5.8% faster test time and 6%(max RSS)-12%(peak heap)
|
|
||||||
less memory usage.
|
|
||||||
Memory used just for json_object structures decreased 27%, so use cases
|
|
||||||
with fewer arrays and/or strings would benefit more.
|
|
||||||
* Minimize memory usage in array handling in json_tokener by shrinking
|
|
||||||
arrays to the exact number of elements parsed. On bench/ benchmark:
|
|
||||||
9% faster test time, 39%(max RSS)-50%(peak heap) less memory usage.
|
|
||||||
Add json_object_array_shrink() and array_list_shrink() functions.
|
|
||||||
* #616 - Parsing of surrogate pairs in unicode escapes now properly handles
|
|
||||||
incremental parsing.
|
|
||||||
* Fix incremental parsing of numbers, especially those with exponents, e.g.
|
|
||||||
so parsing "[0", "e+", "-]" now properly returns an error.
|
|
||||||
Strict mode now rejects missing exponents ("0e").
|
|
||||||
* Successfully return number objects at the top level even when they are
|
|
||||||
followed by a "-", "." or "e". This makes parsing things like "123-45"
|
|
||||||
behave consistently with things like "123xyz".
|
|
||||||
|
|
||||||
Other changes
|
|
||||||
-------------
|
|
||||||
* #589 - Detect broken RDRAND during initialization; also, fix segfault
|
|
||||||
in the CPUID check.
|
|
||||||
* #592 - Fix integer overflows to prevert out of bounds write on large input.
|
|
||||||
* Protect against division by zero in linkhash, when created with zero size.
|
|
||||||
* #602 - Fix json_parse_uint64() internal error checking, leaving the retval
|
|
||||||
untouched in more failure cases.
|
|
||||||
* #614 - Prevent truncation when custom double formatters insert extra \0's
|
|
||||||
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
0.14 (up to commit 9ed00a6, 2020/04/14)
|
|
||||||
=========================================
|
|
||||||
|
|
||||||
Deprecated and removed features:
|
|
||||||
--------------------------------
|
|
||||||
* bits.h has been removed
|
|
||||||
* lh_abort() has been removed
|
|
||||||
* lh_table_lookup() has been removed, use lh_table_lookup_ex() instead.
|
|
||||||
* Remove TRUE and FALSE defines, use 1 and 0 instead.
|
|
||||||
|
|
||||||
Build changes:
|
|
||||||
--------------
|
|
||||||
## Deprecated and removed features:
|
|
||||||
* bits.h has been removed
|
|
||||||
* lh_abort() has been removed
|
|
||||||
* lh_table_lookup() has been removed, use lh_table_lookup_ex() instead.
|
|
||||||
* Remove TRUE and FALSE defines, use 1 and 0 instead.
|
|
||||||
* autoconf support, including autogen.sh, has been removed. See details about cmake, below.
|
|
||||||
* With the addition of json_tokener_get_parse_end(), access to internal fields of json_tokener, as well as use of many other symbols and types in json_tokener.h, is deprecated now.
|
|
||||||
* The use of Android.configure.mk to build for Android no longer works, and it is unknown how (or if) the new cmake-based build machinery can be used.
|
|
||||||
* Reports of success, or pull requests to correct issues are welcome.
|
|
||||||
|
|
||||||
## Notable improvements and new features
|
|
||||||
|
|
||||||
### Builds and documentation
|
|
||||||
* Build machinery has been switched to CMake. See README.md for details about how to build.
|
|
||||||
* TL;DR: `mkdir build ; cd build ; cmake -DCMAKE_INSTALL_PREFIX=/some/path ../json-c ; make all test install`
|
|
||||||
* To ease the transition, there is a `cmake-configure` wrapper that emulates the old autoconf-based configure script.
|
|
||||||
* This has enabled improvements to the build on Windows system; also all public functions have been fixed to be properly exported. For best results, use Visual Studio 2015 or newer.
|
|
||||||
* The json-c style guide has been updated to specify the use of clang-format, and all code has been reformatted.
|
|
||||||
* Since many lines of code have trivial changes now, when using git blame, be sure to specify -w
|
|
||||||
* Numerous improvements have been made to the documentation including function effects on refcounts, when passing a NULL is safe, and so on.
|
|
||||||
|
|
||||||
### json_tokener changes
|
|
||||||
* Added a json_tokener_get_parse_end() function to replace direct access of tok->char_offset.
|
|
||||||
* The char_offset field, and the rest of the json_tokener structure remain exposed for now, but expect a future release to hide it like is done with json_object_private.h
|
|
||||||
* json_tokener_parse_ex() now accepts a new JSON_TOKENER_VALIDATE_UTF8 flag to validate that input is UTF8.
|
|
||||||
* If validation fails, json_tokener_get_error(tok) will return json_tokener_error_parse_utf8_string (see enum json_tokener_error).
|
|
||||||
|
|
||||||
### Other changes and additions
|
|
||||||
* Add support for unsigned 64-bit integers, uint64_t, to gain one extra bit of magnitude for positive ints.
|
|
||||||
* json_tokener will now parse values up to UINT64_MAX (18446744073709551615)
|
|
||||||
* Existing methods returning int32_t or int64_t will cap out-of-range values at INT32_MAX or INT64_MAX, preserving existing behavior.
|
|
||||||
* The implementation includes the possibility of easily extending this to larger sizes in the future.
|
|
||||||
* A total of 7 new functions were added:
|
|
||||||
* json_object_get_uint64 ( struct json_object const* jso )
|
|
||||||
* json_object_new_uint64 ( uint64_t i )
|
|
||||||
* json_object_set_uint64 ( struct json_object* jso, uint64_t new_value )
|
|
||||||
* json_parse_uint64 ( char const* buf, uint64_t* retval )
|
|
||||||
* See description of uint64 support, above.
|
|
||||||
* json_tokener_get_parse_end ( struct json_tokener* tok )
|
|
||||||
* See details under "json_tokener changes", above.
|
|
||||||
* json_object_from_fd_ex ( int fd, int in_depth )
|
|
||||||
* Allows the max nesting depth to be specified.
|
|
||||||
* json_object_new_null ( )
|
|
||||||
* Simply returns NULL. Its use is not recommended.
|
|
||||||
* The size of struct json_object has decreased from 96 bytes to 88 bytes.
|
|
||||||
|
|
||||||
### Testing
|
|
||||||
* Many updates were made to test cases, increasing code coverage.
|
|
||||||
* There is now a quick way (JSONC_TEST_TRACE=1) to turn on shell tracing in tests.
|
|
||||||
* To run tests, use `make test`; the old "check" target no longer exists.
|
|
||||||
|
|
||||||
## Significant bug fixes
|
|
||||||
For the full list of issues and pull requests since the previous release, please see issues_closed_for_0.14.md
|
|
||||||
|
|
||||||
* [Issue #389](https://github.com/json-c/json-c/issues/389): Add an assert to explicitly crash when _ref_count is corrupted, instead of a later "double free" error.
|
|
||||||
* [Issue #407](https://github.com/json-c/json-c/issues/407): fix incorrect casts in calls to ctype functions (isdigit and isspace) so we don't crash when asserts are enabled on certain platforms and characters > 128 are parsed.
|
|
||||||
* [Issue #418](https://github.com/json-c/json-c/issues/418): Fix docs for json_util_from_fd and json_util_from_file to say that they return NULL on failures.
|
|
||||||
* [Issue #422](https://github.com/json-c/json-c/issues/422): json_object.c:set errno in json_object_get_double() when called on a json_type_string object with bad content.
|
|
||||||
* [Issue #453](https://github.com/json-c/json-c/issues/453): Fixed misalignment in JSON serialization when JSON_C_TO_STRING_SPACED and JSON_C_TO_STRING_PRETTY are used together.
|
|
||||||
* [Issue #463](https://github.com/json-c/json-c/issues/463): fix newlocale() call to use LC_NUMERIC_MASK instead of LC_NUMERIC, and remove incorrect comment.
|
|
||||||
* [Issue #486](https://github.com/json-c/json-c/issues/486): append a missing ".0" to negative double values to ensure they are serialized as floating point numbers.
|
|
||||||
* [Issue #488](https://github.com/json-c/json-c/issues/488): use JSON_EXPORT on functions so they are properly exported on Windows.
|
|
||||||
* [Issue #539](https://github.com/json-c/json-c/issues/539): use an internal-only serializer function in json_object_new_double_s() to avoid potential conflicts with user code that uses the json_object_userdata_to_json_string serializer.
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
0.13.1 (up to commit 0f814e5, 2018/03/04)
|
|
||||||
=========================================
|
|
||||||
|
|
||||||
* Bump the major version of the .so library generated up to 4.0 to avoid
|
|
||||||
conflicts because some downstream packagers of json-c had already done
|
|
||||||
their own bump to ".so.3" for a much older 0.12 release.
|
|
||||||
* Add const size_t json_c_object_sizeof()
|
|
||||||
* Avoid invalid free (and thus a segfault) when ref_count gets < 0
|
|
||||||
* PR#394: fix handling of custom double formats that include a ".0"
|
|
||||||
* Avoid uninitialized variable warnings in json_object_object_foreach
|
|
||||||
* Issue #396: fix build for certain uClibc based systems.
|
|
||||||
* Add a top level fuzz directory for fuzzers run by OSS-Fuzz
|
|
||||||
|
|
||||||
|
|
||||||
0.13 (up to commit 5dae561, 2017/11/29)
|
|
||||||
=================================
|
|
||||||
|
|
||||||
This release, being three and a half years after the 0.12 branch (f84d9c),
|
|
||||||
has quite a number of changes included. The following is a sampling of
|
|
||||||
the most significant ones.
|
|
||||||
|
|
||||||
Since the 0.12 release, 250 issues and pull requests have been closed.
|
|
||||||
See issues_closed_for_0.13.md for a complete list.
|
|
||||||
|
|
||||||
|
|
||||||
Deprecated and removed features:
|
|
||||||
--------------------------------
|
|
||||||
* All internal use of bits.h has been eliminated. The file will be removed.
|
|
||||||
Do not use: hexdigit(), error_ptr(), error_descrition() and it_error()
|
|
||||||
* lh_abort() is deprecated. It will be removed.
|
|
||||||
|
|
||||||
Behavior changes:
|
|
||||||
-----------------
|
|
||||||
* Tighten the number parsing algorithm to raise errors instead of truncating
|
|
||||||
the results. For example 12.3.4 or 2015-01-15, which now return null.
|
|
||||||
See commit 99d8fc
|
|
||||||
|
|
||||||
* Use size_t for array length and size. Platforms where sizeof(size_t) != sizeof(int) may not be backwards compatible
|
|
||||||
See commits 45c56b, 92e9a5 and others.
|
|
||||||
|
|
||||||
* Check for failure when allocating memory, returning NULL and errno=ENOMEM.
|
|
||||||
See commit 2149a04.
|
|
||||||
|
|
||||||
* Change json_object_object_add() return type from void to int, and will return -1 on failures, instead of exiting. (Note: this is not an ABI change)
|
|
||||||
|
|
||||||
New features:
|
|
||||||
-------------
|
|
||||||
* We're aiming to follow RFC 7159 now.
|
|
||||||
|
|
||||||
* Add a couple of additional option to json_object_to_json_string_ext:
|
|
||||||
JSON_C_TO_STRING_PRETTY_TAB
|
|
||||||
JSON_C_TO_STRING_NOSLASHESCAPE
|
|
||||||
|
|
||||||
* Add a json_object_object_add_ex() function to allow for performance
|
|
||||||
improvements when certain constraints are known to be true.
|
|
||||||
|
|
||||||
* Make serialization format of doubles configurable, in two different ways:
|
|
||||||
Call json_object_set_serializer with json_object_double_to_json_string and a custom
|
|
||||||
format on each double object, or
|
|
||||||
Call json_c_set_serialization_double_format() to set a global or thread-wide format.
|
|
||||||
|
|
||||||
* Add utility function for comparing json_objects - json_object_equal()
|
|
||||||
|
|
||||||
* Add a way to copy entire object trees: json_object_deep_copy()
|
|
||||||
* Add json_object_set_<type> function to modify the value of existing json_object's
|
|
||||||
without the need to recreate them. Also add a json_object_int_inc function to
|
|
||||||
adjust an int's value.
|
|
||||||
* Add support for JSON pointer, RFC 6901. See json_pointer.h
|
|
||||||
* Add a json_util_get_last_err() function to retrieve the string describing the
|
|
||||||
cause of errors, instead of printing to stderr.
|
|
||||||
* Add perllike hash function for strings, and json_global_set_string_hash() 8f8d03d
|
|
||||||
* Add a json_c_visit() function to provide a way to iterate over a tree of json-c objects.
|
|
||||||
|
|
||||||
Notable bug fixes and other improvements:
|
|
||||||
-----------------------------------------
|
|
||||||
* Make reference increment and decrement atomic to allow passing json objects between threads.
|
|
||||||
* Fix json_object_object_foreach to avoid uninitialized variable warnings.
|
|
||||||
* Improve performance by removing unneeded data items from hashtable code and reducing duplicate hash computation.
|
|
||||||
* Improve performance by storing small strings inside json_object
|
|
||||||
* Improve performance of json_object_to_json_string by removing variadic printf. commit 9ff0f49
|
|
||||||
* Issue #371: fix parsing of "-Infinity", and avoid needlessly copying the input when doing so.
|
|
||||||
* Fix stack buffer overflow in json_object_double_to_json_string_format() - commit 2c2deb87
|
|
||||||
* Fix various potential null ptr deref and int32 overflows
|
|
||||||
* Issue #332: fix a long-standing bug in array_list_put_idx() where it would attempt to free previously free'd entries due to not checking the current array length.
|
|
||||||
* Issue #195: use uselocale() instead of setlocale() in json_tokener to behave better in threaded environments.
|
|
||||||
* Issue #275: fix out of bounds read when handling unicode surrogate pairs.
|
|
||||||
* Ensure doubles that happen to be a whole number are emitted with ".0" - commit ca7a19
|
|
||||||
* PR#331: for Visual Studio, use a snprintf/vsnprintf wrapper that ensures the string is terminated.
|
|
||||||
* Fix double to int cast overflow in json_object_get_int64.
|
|
||||||
* Clamp double to int32 when narrowing in json_object_get_int.
|
|
||||||
* Use strtoll() to parse ints - instead of sscanf
|
|
||||||
* Miscellaneous smaller changes, including removing unused variables, fixing warning
|
|
||||||
about uninitialized variables adding const qualifiers, reformatting code, etc...
|
|
||||||
|
|
||||||
Build changes:
|
|
||||||
--------------
|
|
||||||
* Add Appveyor and Travis build support
|
|
||||||
* Switch to using CMake when building on Windows with Visual Studio.
|
|
||||||
A dynamic .dll is generated instead of a .lib
|
|
||||||
config.h is now generated, config.h.win32 should no longer be manually copied
|
|
||||||
* Add support for MacOS through CMake too.
|
|
||||||
* Enable silent build by default
|
|
||||||
* Link against libm when needed
|
|
||||||
* Add support for building with AddressSanitizer
|
|
||||||
* Add support for building with Clang
|
|
||||||
* Add a --enable-threading configure option, and only use the (slower) __sync_add_and_fetch()/__sync_sub_and_fetch() function when it is specified.
|
|
||||||
|
|
||||||
List of new functions added:
|
|
||||||
----------------------------
|
|
||||||
### json_object.h
|
|
||||||
* array_list_bsearch()
|
|
||||||
* array_list_del_idx()
|
|
||||||
* json_object_to_json_string_length()
|
|
||||||
* json_object_get_userdata()
|
|
||||||
* json_object_set_userdata()
|
|
||||||
* json_object_object_add_ex()
|
|
||||||
* json_object_array_bsearch()
|
|
||||||
* json_object_array_del_idx()
|
|
||||||
* json_object_set_boolean()
|
|
||||||
* json_object_set_int()
|
|
||||||
* json_object_int_inc()
|
|
||||||
* json_object_set_int64()
|
|
||||||
* json_c_set_serialization_double_format()
|
|
||||||
* json_object_double_to_json_string()
|
|
||||||
* json_object_set_double()
|
|
||||||
* json_object_set_string()
|
|
||||||
* json_object_set_string_len()
|
|
||||||
* json_object_equal()
|
|
||||||
* json_object_deep_copy()
|
|
||||||
|
|
||||||
### json_pointer.h
|
|
||||||
* json_pointer_get()
|
|
||||||
* json_pointer_getf()
|
|
||||||
* json_pointer_set()
|
|
||||||
* json_pointer_setf()
|
|
||||||
|
|
||||||
### json_util.h
|
|
||||||
* json_object_from_fd()
|
|
||||||
* json_object_to_fd()
|
|
||||||
* json_util_get_last_err()
|
|
||||||
|
|
||||||
### json_visit.h
|
|
||||||
* json_c_visit()
|
|
||||||
|
|
||||||
### linkhash.h
|
|
||||||
* json_global_set_string_hash()
|
|
||||||
* lh_table_resize()
|
|
||||||
|
|
||||||
### printbuf.h
|
|
||||||
* printbuf_strappend()
|
|
||||||
|
|
||||||
|
|
||||||
0.12.1
|
|
||||||
======
|
|
||||||
|
|
||||||
* Minimal changes to address compile issues.
|
|
||||||
|
|
||||||
0.12
|
0.12
|
||||||
====
|
|
||||||
|
|
||||||
* Address security issues:
|
* Address security issues:
|
||||||
* CVE-2013-6371: hash collision denial of service
|
* CVE-2013-6371: hash collision denial of service
|
||||||
@@ -405,11 +12,11 @@ List of new functions added:
|
|||||||
* Make the json_tokener_errors array local. It has been deprecated for
|
* Make the json_tokener_errors array local. It has been deprecated for
|
||||||
a while, and json_tokener_error_desc() should be used instead.
|
a while, and json_tokener_error_desc() should be used instead.
|
||||||
|
|
||||||
* change the floating point output format to %.17g so values with
|
* change the floating point output format to %.17g so values with
|
||||||
more than 6 digits show up in the output.
|
more than 6 digits show up in the output.
|
||||||
|
|
||||||
* Remove the old libjson.so name compatibility support. The library is
|
* Remove the old libjson.so name compatibility support. The library is
|
||||||
only created as libjson-c.so now and headers are only installed
|
only created as libjson-c.so now and headers are only installed
|
||||||
into the ${prefix}/json-c directory.
|
into the ${prefix}/json-c directory.
|
||||||
|
|
||||||
* When supported by the linker, add the -Bsymbolic-functions flag.
|
* When supported by the linker, add the -Bsymbolic-functions flag.
|
||||||
@@ -432,7 +39,6 @@ List of new functions added:
|
|||||||
|
|
||||||
|
|
||||||
0.11
|
0.11
|
||||||
====
|
|
||||||
|
|
||||||
* IMPORTANT: the name of the library has changed to libjson-c.so and
|
* IMPORTANT: the name of the library has changed to libjson-c.so and
|
||||||
the header files are now in include/json-c.
|
the header files are now in include/json-c.
|
||||||
@@ -456,7 +62,6 @@ List of new functions added:
|
|||||||
* Fix a bug (buffer overrun) when expanding arrays to more than 64 entries.
|
* Fix a bug (buffer overrun) when expanding arrays to more than 64 entries.
|
||||||
|
|
||||||
0.10
|
0.10
|
||||||
====
|
|
||||||
|
|
||||||
* Add a json_object_to_json_string_ext() function to allow output to be
|
* Add a json_object_to_json_string_ext() function to allow output to be
|
||||||
formatted in a more human readable form.
|
formatted in a more human readable form.
|
||||||
@@ -465,7 +70,7 @@ List of new functions added:
|
|||||||
* Add an alternative iterator implementation, see json_object_iterator.h
|
* Add an alternative iterator implementation, see json_object_iterator.h
|
||||||
* Make json_object_iter public to enable external use of the
|
* Make json_object_iter public to enable external use of the
|
||||||
json_object_object_foreachC macro.
|
json_object_object_foreachC macro.
|
||||||
* Add a printbuf_memset() function to provide an efficient way to set and
|
* Add a printbuf_memset() function to provide an effecient way to set and
|
||||||
append things like whitespace indentation.
|
append things like whitespace indentation.
|
||||||
* Adjust json_object_is_type and json_object_get_type so they return
|
* Adjust json_object_is_type and json_object_get_type so they return
|
||||||
json_type_null for NULL objects and handle NULL passed to
|
json_type_null for NULL objects and handle NULL passed to
|
||||||
@@ -475,7 +80,7 @@ List of new functions added:
|
|||||||
* Allow json_tokener_parse_ex() to be re-used to parse multiple object.
|
* Allow json_tokener_parse_ex() to be re-used to parse multiple object.
|
||||||
Also, fix some parsing issues with capitalized hexadecimal numbers and
|
Also, fix some parsing issues with capitalized hexadecimal numbers and
|
||||||
number in E notation.
|
number in E notation.
|
||||||
* Add json_tokener_get_error() and json_tokener_error_desc() to better
|
* Add json_tokener_get_error() and json_tokener_error_desc() to better
|
||||||
encapsulate the process of retrieving errors while parsing.
|
encapsulate the process of retrieving errors while parsing.
|
||||||
* Various improvements to the documentation of many functions.
|
* Various improvements to the documentation of many functions.
|
||||||
* Add new json_object_array_sort() function.
|
* Add new json_object_array_sort() function.
|
||||||
@@ -505,7 +110,6 @@ List of new functions added:
|
|||||||
Brent Miller, bdmiller at yahoo dash inc dot com
|
Brent Miller, bdmiller at yahoo dash inc dot com
|
||||||
|
|
||||||
0.9
|
0.9
|
||||||
===
|
|
||||||
* Add README.html README-WIN32.html config.h.win32 to Makefile.am
|
* Add README.html README-WIN32.html config.h.win32 to Makefile.am
|
||||||
Michael Clark, <michael@metaparadigm.com>
|
Michael Clark, <michael@metaparadigm.com>
|
||||||
* Add const qualifier to the json_tokener_parse functions
|
* Add const qualifier to the json_tokener_parse functions
|
||||||
@@ -522,7 +126,7 @@ List of new functions added:
|
|||||||
Brent Miller, bdmiller at yahoo dash inc dot com
|
Brent Miller, bdmiller at yahoo dash inc dot com
|
||||||
* Disable REFCOUNT_DEBUG by default in json_object.c
|
* Disable REFCOUNT_DEBUG by default in json_object.c
|
||||||
* Don't use this as a variable, so we can compile with a C++ compiler
|
* Don't use this as a variable, so we can compile with a C++ compiler
|
||||||
* Add casts from void* to type of assignment when using malloc
|
* Add casts from void* to type of assignment when using malloc
|
||||||
* Add #ifdef __cplusplus guards to all of the headers
|
* Add #ifdef __cplusplus guards to all of the headers
|
||||||
* Add typedefs for json_object, json_tokener, array_list, printbuf, lh_table
|
* Add typedefs for json_object, json_tokener, array_list, printbuf, lh_table
|
||||||
Michael Clark, <michael@metaparadigm.com>
|
Michael Clark, <michael@metaparadigm.com>
|
||||||
@@ -536,7 +140,6 @@ List of new functions added:
|
|||||||
Gerard Krol, g dot c dot krol at student dot tudelft dot nl
|
Gerard Krol, g dot c dot krol at student dot tudelft dot nl
|
||||||
|
|
||||||
0.8
|
0.8
|
||||||
===
|
|
||||||
* Add va_end for every va_start
|
* Add va_end for every va_start
|
||||||
Dotan Barak, dotanba at gmail dot com
|
Dotan Barak, dotanba at gmail dot com
|
||||||
* Add macros to enable compiling out debug code
|
* Add macros to enable compiling out debug code
|
||||||
@@ -549,22 +152,19 @@ List of new functions added:
|
|||||||
Geoffrey Young, geoff at modperlcookbook dot org
|
Geoffrey Young, geoff at modperlcookbook dot org
|
||||||
|
|
||||||
0.7
|
0.7
|
||||||
===
|
|
||||||
* Add escaping of backslash to json output
|
* Add escaping of backslash to json output
|
||||||
* Add escaping of forward slash on tokenizing and output
|
* Add escaping of foward slash on tokenizing and output
|
||||||
* Changes to internal tokenizer from using recursion to
|
* Changes to internal tokenizer from using recursion to
|
||||||
using a depth state structure to allow incremental parsing
|
using a depth state structure to allow incremental parsing
|
||||||
|
|
||||||
0.6
|
0.6
|
||||||
===
|
|
||||||
* Fix bug in escaping of control characters
|
* Fix bug in escaping of control characters
|
||||||
Johan Björklund, johbjo09 at kth dot se
|
Johan Bj<EFBFBD>rklund, johbjo09 at kth dot se
|
||||||
* Remove include "config.h" from headers (should only
|
* Remove include "config.h" from headers (should only
|
||||||
be included from .c files)
|
be included from .c files)
|
||||||
Michael Clark <michael@metaparadigm.com>
|
Michael Clark <michael@metaparadigm.com>
|
||||||
|
|
||||||
0.5
|
0.5
|
||||||
===
|
|
||||||
* Make headers C++ compatible by change *this to *obj
|
* Make headers C++ compatible by change *this to *obj
|
||||||
* Add ifdef C++ extern "C" to headers
|
* Add ifdef C++ extern "C" to headers
|
||||||
* Use simpler definition of min and max in bits.h
|
* Use simpler definition of min and max in bits.h
|
||||||
@@ -577,21 +177,18 @@ List of new functions added:
|
|||||||
Michael Clark <michael@metaparadigm.com>
|
Michael Clark <michael@metaparadigm.com>
|
||||||
|
|
||||||
0.4
|
0.4
|
||||||
===
|
|
||||||
* Fix additional error case in object parsing
|
* Fix additional error case in object parsing
|
||||||
* Add back sign reversal in nested object parse as error pointer
|
* Add back sign reversal in nested object parse as error pointer
|
||||||
value is negative, while error value is positive.
|
value is negative, while error value is positive.
|
||||||
Michael Clark <michael@metaparadigm.com>
|
Michael Clark <michael@metaparadigm.com>
|
||||||
|
|
||||||
0.3
|
0.3
|
||||||
===
|
|
||||||
* fix pointer arithmetic bug for error pointer check in is_error() macro
|
* fix pointer arithmetic bug for error pointer check in is_error() macro
|
||||||
* fix type passed to printbuf_memappend in json_tokener
|
* fix type passed to printbuf_memappend in json_tokener
|
||||||
* update autotools bootstrap instructions in README
|
* update autotools bootstrap instructions in README
|
||||||
Michael Clark <michael@metaparadigm.com>
|
Michael Clark <michael@metaparadigm.com>
|
||||||
|
|
||||||
0.2
|
0.2
|
||||||
===
|
|
||||||
* printbuf.c - C. Watford (christopher.watford@gmail.com)
|
* printbuf.c - C. Watford (christopher.watford@gmail.com)
|
||||||
Added a Win32/Win64 compliant implementation of vasprintf
|
Added a Win32/Win64 compliant implementation of vasprintf
|
||||||
* debug.c - C. Watford (christopher.watford@gmail.com)
|
* debug.c - C. Watford (christopher.watford@gmail.com)
|
||||||
@@ -606,13 +203,12 @@ List of new functions added:
|
|||||||
Added a Win32/Win64 compliant implementation of strndup
|
Added a Win32/Win64 compliant implementation of strndup
|
||||||
* json_util.c - C. Watford (christopher.watford@gmail.com)
|
* json_util.c - C. Watford (christopher.watford@gmail.com)
|
||||||
Added cast and mask to suffice size_t v. unsigned int conversion
|
Added cast and mask to suffice size_t v. unsigned int conversion
|
||||||
correctness
|
correctness
|
||||||
* json_tokener.c - sign reversal issue on error info for nested object parse
|
* json_tokener.c - sign reversal issue on error info for nested object parse
|
||||||
spotted by Johan Björklund (johbjo09 at kth.se)
|
spotted by Johan Bj<EFBFBD>rklund (johbjo09 at kth.se)
|
||||||
* json_object.c - escape " in json_escape_str
|
* json_object.c - escape " in json_escape_str
|
||||||
* Change to automake and libtool to build shared and static library
|
* Change to automake and libtool to build shared and static library
|
||||||
Michael Clark <michael@metaparadigm.com>
|
Michael Clark <michael@metaparadigm.com>
|
||||||
|
|
||||||
0.1
|
0.1
|
||||||
===
|
|
||||||
* initial release
|
* initial release
|
||||||
|
|||||||
370
INSTALL
@@ -1,2 +1,370 @@
|
|||||||
|
Installation Instructions
|
||||||
|
*************************
|
||||||
|
|
||||||
See README.md for installation instructions.
|
Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
|
||||||
|
Inc.
|
||||||
|
|
||||||
|
Copying and distribution of this file, with or without modification,
|
||||||
|
are permitted in any medium without royalty provided the copyright
|
||||||
|
notice and this notice are preserved. This file is offered as-is,
|
||||||
|
without warranty of any kind.
|
||||||
|
|
||||||
|
Basic Installation
|
||||||
|
==================
|
||||||
|
|
||||||
|
Briefly, the shell commands `./configure; make; make install' should
|
||||||
|
configure, build, and install this package. The following
|
||||||
|
more-detailed instructions are generic; see the `README' file for
|
||||||
|
instructions specific to this package. Some packages provide this
|
||||||
|
`INSTALL' file but do not implement all of the features documented
|
||||||
|
below. The lack of an optional feature in a given package is not
|
||||||
|
necessarily a bug. More recommendations for GNU packages can be found
|
||||||
|
in *note Makefile Conventions: (standards)Makefile Conventions.
|
||||||
|
|
||||||
|
The `configure' shell script attempts to guess correct values for
|
||||||
|
various system-dependent variables used during compilation. It uses
|
||||||
|
those values to create a `Makefile' in each directory of the package.
|
||||||
|
It may also create one or more `.h' files containing system-dependent
|
||||||
|
definitions. Finally, it creates a shell script `config.status' that
|
||||||
|
you can run in the future to recreate the current configuration, and a
|
||||||
|
file `config.log' containing compiler output (useful mainly for
|
||||||
|
debugging `configure').
|
||||||
|
|
||||||
|
It can also use an optional file (typically called `config.cache'
|
||||||
|
and enabled with `--cache-file=config.cache' or simply `-C') that saves
|
||||||
|
the results of its tests to speed up reconfiguring. Caching is
|
||||||
|
disabled by default to prevent problems with accidental use of stale
|
||||||
|
cache files.
|
||||||
|
|
||||||
|
If you need to do unusual things to compile the package, please try
|
||||||
|
to figure out how `configure' could check whether to do them, and mail
|
||||||
|
diffs or instructions to the address given in the `README' so they can
|
||||||
|
be considered for the next release. If you are using the cache, and at
|
||||||
|
some point `config.cache' contains results you don't want to keep, you
|
||||||
|
may remove or edit it.
|
||||||
|
|
||||||
|
The file `configure.ac' (or `configure.in') is used to create
|
||||||
|
`configure' by a program called `autoconf'. You need `configure.ac' if
|
||||||
|
you want to change it or regenerate `configure' using a newer version
|
||||||
|
of `autoconf'.
|
||||||
|
|
||||||
|
The simplest way to compile this package is:
|
||||||
|
|
||||||
|
1. `cd' to the directory containing the package's source code and type
|
||||||
|
`./configure' to configure the package for your system.
|
||||||
|
|
||||||
|
Running `configure' might take a while. While running, it prints
|
||||||
|
some messages telling which features it is checking for.
|
||||||
|
|
||||||
|
2. Type `make' to compile the package.
|
||||||
|
|
||||||
|
3. Optionally, type `make check' to run any self-tests that come with
|
||||||
|
the package, generally using the just-built uninstalled binaries.
|
||||||
|
|
||||||
|
4. Type `make install' to install the programs and any data files and
|
||||||
|
documentation. When installing into a prefix owned by root, it is
|
||||||
|
recommended that the package be configured and built as a regular
|
||||||
|
user, and only the `make install' phase executed with root
|
||||||
|
privileges.
|
||||||
|
|
||||||
|
5. Optionally, type `make installcheck' to repeat any self-tests, but
|
||||||
|
this time using the binaries in their final installed location.
|
||||||
|
This target does not install anything. Running this target as a
|
||||||
|
regular user, particularly if the prior `make install' required
|
||||||
|
root privileges, verifies that the installation completed
|
||||||
|
correctly.
|
||||||
|
|
||||||
|
6. You can remove the program binaries and object files from the
|
||||||
|
source code directory by typing `make clean'. To also remove the
|
||||||
|
files that `configure' created (so you can compile the package for
|
||||||
|
a different kind of computer), type `make distclean'. There is
|
||||||
|
also a `make maintainer-clean' target, but that is intended mainly
|
||||||
|
for the package's developers. If you use it, you may have to get
|
||||||
|
all sorts of other programs in order to regenerate files that came
|
||||||
|
with the distribution.
|
||||||
|
|
||||||
|
7. Often, you can also type `make uninstall' to remove the installed
|
||||||
|
files again. In practice, not all packages have tested that
|
||||||
|
uninstallation works correctly, even though it is required by the
|
||||||
|
GNU Coding Standards.
|
||||||
|
|
||||||
|
8. Some packages, particularly those that use Automake, provide `make
|
||||||
|
distcheck', which can by used by developers to test that all other
|
||||||
|
targets like `make install' and `make uninstall' work correctly.
|
||||||
|
This target is generally not run by end users.
|
||||||
|
|
||||||
|
Compilers and Options
|
||||||
|
=====================
|
||||||
|
|
||||||
|
Some systems require unusual options for compilation or linking that
|
||||||
|
the `configure' script does not know about. Run `./configure --help'
|
||||||
|
for details on some of the pertinent environment variables.
|
||||||
|
|
||||||
|
You can give `configure' initial values for configuration parameters
|
||||||
|
by setting variables in the command line or in the environment. Here
|
||||||
|
is an example:
|
||||||
|
|
||||||
|
./configure CC=c99 CFLAGS=-g LIBS=-lposix
|
||||||
|
|
||||||
|
*Note Defining Variables::, for more details.
|
||||||
|
|
||||||
|
Compiling For Multiple Architectures
|
||||||
|
====================================
|
||||||
|
|
||||||
|
You can compile the package for more than one kind of computer at the
|
||||||
|
same time, by placing the object files for each architecture in their
|
||||||
|
own directory. To do this, you can use GNU `make'. `cd' to the
|
||||||
|
directory where you want the object files and executables to go and run
|
||||||
|
the `configure' script. `configure' automatically checks for the
|
||||||
|
source code in the directory that `configure' is in and in `..'. This
|
||||||
|
is known as a "VPATH" build.
|
||||||
|
|
||||||
|
With a non-GNU `make', it is safer to compile the package for one
|
||||||
|
architecture at a time in the source code directory. After you have
|
||||||
|
installed the package for one architecture, use `make distclean' before
|
||||||
|
reconfiguring for another architecture.
|
||||||
|
|
||||||
|
On MacOS X 10.5 and later systems, you can create libraries and
|
||||||
|
executables that work on multiple system types--known as "fat" or
|
||||||
|
"universal" binaries--by specifying multiple `-arch' options to the
|
||||||
|
compiler but only a single `-arch' option to the preprocessor. Like
|
||||||
|
this:
|
||||||
|
|
||||||
|
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
||||||
|
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
||||||
|
CPP="gcc -E" CXXCPP="g++ -E"
|
||||||
|
|
||||||
|
This is not guaranteed to produce working output in all cases, you
|
||||||
|
may have to build one architecture at a time and combine the results
|
||||||
|
using the `lipo' tool if you have problems.
|
||||||
|
|
||||||
|
Installation Names
|
||||||
|
==================
|
||||||
|
|
||||||
|
By default, `make install' installs the package's commands under
|
||||||
|
`/usr/local/bin', include files under `/usr/local/include', etc. You
|
||||||
|
can specify an installation prefix other than `/usr/local' by giving
|
||||||
|
`configure' the option `--prefix=PREFIX', where PREFIX must be an
|
||||||
|
absolute file name.
|
||||||
|
|
||||||
|
You can specify separate installation prefixes for
|
||||||
|
architecture-specific files and architecture-independent files. If you
|
||||||
|
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
|
||||||
|
PREFIX as the prefix for installing programs and libraries.
|
||||||
|
Documentation and other data files still use the regular prefix.
|
||||||
|
|
||||||
|
In addition, if you use an unusual directory layout you can give
|
||||||
|
options like `--bindir=DIR' to specify different values for particular
|
||||||
|
kinds of files. Run `configure --help' for a list of the directories
|
||||||
|
you can set and what kinds of files go in them. In general, the
|
||||||
|
default for these options is expressed in terms of `${prefix}', so that
|
||||||
|
specifying just `--prefix' will affect all of the other directory
|
||||||
|
specifications that were not explicitly provided.
|
||||||
|
|
||||||
|
The most portable way to affect installation locations is to pass the
|
||||||
|
correct locations to `configure'; however, many packages provide one or
|
||||||
|
both of the following shortcuts of passing variable assignments to the
|
||||||
|
`make install' command line to change installation locations without
|
||||||
|
having to reconfigure or recompile.
|
||||||
|
|
||||||
|
The first method involves providing an override variable for each
|
||||||
|
affected directory. For example, `make install
|
||||||
|
prefix=/alternate/directory' will choose an alternate location for all
|
||||||
|
directory configuration variables that were expressed in terms of
|
||||||
|
`${prefix}'. Any directories that were specified during `configure',
|
||||||
|
but not in terms of `${prefix}', must each be overridden at install
|
||||||
|
time for the entire installation to be relocated. The approach of
|
||||||
|
makefile variable overrides for each directory variable is required by
|
||||||
|
the GNU Coding Standards, and ideally causes no recompilation.
|
||||||
|
However, some platforms have known limitations with the semantics of
|
||||||
|
shared libraries that end up requiring recompilation when using this
|
||||||
|
method, particularly noticeable in packages that use GNU Libtool.
|
||||||
|
|
||||||
|
The second method involves providing the `DESTDIR' variable. For
|
||||||
|
example, `make install DESTDIR=/alternate/directory' will prepend
|
||||||
|
`/alternate/directory' before all installation names. The approach of
|
||||||
|
`DESTDIR' overrides is not required by the GNU Coding Standards, and
|
||||||
|
does not work on platforms that have drive letters. On the other hand,
|
||||||
|
it does better at avoiding recompilation issues, and works well even
|
||||||
|
when some directory options were not specified in terms of `${prefix}'
|
||||||
|
at `configure' time.
|
||||||
|
|
||||||
|
Optional Features
|
||||||
|
=================
|
||||||
|
|
||||||
|
If the package supports it, you can cause programs to be installed
|
||||||
|
with an extra prefix or suffix on their names by giving `configure' the
|
||||||
|
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||||
|
|
||||||
|
Some packages pay attention to `--enable-FEATURE' options to
|
||||||
|
`configure', where FEATURE indicates an optional part of the package.
|
||||||
|
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||||
|
is something like `gnu-as' or `x' (for the X Window System). The
|
||||||
|
`README' should mention any `--enable-' and `--with-' options that the
|
||||||
|
package recognizes.
|
||||||
|
|
||||||
|
For packages that use the X Window System, `configure' can usually
|
||||||
|
find the X include and library files automatically, but if it doesn't,
|
||||||
|
you can use the `configure' options `--x-includes=DIR' and
|
||||||
|
`--x-libraries=DIR' to specify their locations.
|
||||||
|
|
||||||
|
Some packages offer the ability to configure how verbose the
|
||||||
|
execution of `make' will be. For these packages, running `./configure
|
||||||
|
--enable-silent-rules' sets the default to minimal output, which can be
|
||||||
|
overridden with `make V=1'; while running `./configure
|
||||||
|
--disable-silent-rules' sets the default to verbose, which can be
|
||||||
|
overridden with `make V=0'.
|
||||||
|
|
||||||
|
Particular systems
|
||||||
|
==================
|
||||||
|
|
||||||
|
On HP-UX, the default C compiler is not ANSI C compatible. If GNU
|
||||||
|
CC is not installed, it is recommended to use the following options in
|
||||||
|
order to use an ANSI C compiler:
|
||||||
|
|
||||||
|
./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
|
||||||
|
|
||||||
|
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
|
||||||
|
|
||||||
|
HP-UX `make' updates targets which have the same time stamps as
|
||||||
|
their prerequisites, which makes it generally unusable when shipped
|
||||||
|
generated files such as `configure' are involved. Use GNU `make'
|
||||||
|
instead.
|
||||||
|
|
||||||
|
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
|
||||||
|
parse its `<wchar.h>' header file. The option `-nodtk' can be used as
|
||||||
|
a workaround. If GNU CC is not installed, it is therefore recommended
|
||||||
|
to try
|
||||||
|
|
||||||
|
./configure CC="cc"
|
||||||
|
|
||||||
|
and if that doesn't work, try
|
||||||
|
|
||||||
|
./configure CC="cc -nodtk"
|
||||||
|
|
||||||
|
On Solaris, don't put `/usr/ucb' early in your `PATH'. This
|
||||||
|
directory contains several dysfunctional programs; working variants of
|
||||||
|
these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
|
||||||
|
in your `PATH', put it _after_ `/usr/bin'.
|
||||||
|
|
||||||
|
On Haiku, software installed for all users goes in `/boot/common',
|
||||||
|
not `/usr/local'. It is recommended to use the following options:
|
||||||
|
|
||||||
|
./configure --prefix=/boot/common
|
||||||
|
|
||||||
|
Specifying the System Type
|
||||||
|
==========================
|
||||||
|
|
||||||
|
There may be some features `configure' cannot figure out
|
||||||
|
automatically, but needs to determine by the type of machine the package
|
||||||
|
will run on. Usually, assuming the package is built to be run on the
|
||||||
|
_same_ architectures, `configure' can figure that out, but if it prints
|
||||||
|
a message saying it cannot guess the machine type, give it the
|
||||||
|
`--build=TYPE' option. TYPE can either be a short name for the system
|
||||||
|
type, such as `sun4', or a canonical name which has the form:
|
||||||
|
|
||||||
|
CPU-COMPANY-SYSTEM
|
||||||
|
|
||||||
|
where SYSTEM can have one of these forms:
|
||||||
|
|
||||||
|
OS
|
||||||
|
KERNEL-OS
|
||||||
|
|
||||||
|
See the file `config.sub' for the possible values of each field. If
|
||||||
|
`config.sub' isn't included in this package, then this package doesn't
|
||||||
|
need to know the machine type.
|
||||||
|
|
||||||
|
If you are _building_ compiler tools for cross-compiling, you should
|
||||||
|
use the option `--target=TYPE' to select the type of system they will
|
||||||
|
produce code for.
|
||||||
|
|
||||||
|
If you want to _use_ a cross compiler, that generates code for a
|
||||||
|
platform different from the build platform, you should specify the
|
||||||
|
"host" platform (i.e., that on which the generated programs will
|
||||||
|
eventually be run) with `--host=TYPE'.
|
||||||
|
|
||||||
|
Sharing Defaults
|
||||||
|
================
|
||||||
|
|
||||||
|
If you want to set default values for `configure' scripts to share,
|
||||||
|
you can create a site shell script called `config.site' that gives
|
||||||
|
default values for variables like `CC', `cache_file', and `prefix'.
|
||||||
|
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||||
|
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||||
|
`CONFIG_SITE' environment variable to the location of the site script.
|
||||||
|
A warning: not all `configure' scripts look for a site script.
|
||||||
|
|
||||||
|
Defining Variables
|
||||||
|
==================
|
||||||
|
|
||||||
|
Variables not defined in a site shell script can be set in the
|
||||||
|
environment passed to `configure'. However, some packages may run
|
||||||
|
configure again during the build, and the customized values of these
|
||||||
|
variables may be lost. In order to avoid this problem, you should set
|
||||||
|
them in the `configure' command line, using `VAR=value'. For example:
|
||||||
|
|
||||||
|
./configure CC=/usr/local2/bin/gcc
|
||||||
|
|
||||||
|
causes the specified `gcc' to be used as the C compiler (unless it is
|
||||||
|
overridden in the site shell script).
|
||||||
|
|
||||||
|
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
|
||||||
|
an Autoconf limitation. Until the limitation is lifted, you can use
|
||||||
|
this workaround:
|
||||||
|
|
||||||
|
CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
|
||||||
|
|
||||||
|
`configure' Invocation
|
||||||
|
======================
|
||||||
|
|
||||||
|
`configure' recognizes the following options to control how it
|
||||||
|
operates.
|
||||||
|
|
||||||
|
`--help'
|
||||||
|
`-h'
|
||||||
|
Print a summary of all of the options to `configure', and exit.
|
||||||
|
|
||||||
|
`--help=short'
|
||||||
|
`--help=recursive'
|
||||||
|
Print a summary of the options unique to this package's
|
||||||
|
`configure', and exit. The `short' variant lists options used
|
||||||
|
only in the top level, while the `recursive' variant lists options
|
||||||
|
also present in any nested packages.
|
||||||
|
|
||||||
|
`--version'
|
||||||
|
`-V'
|
||||||
|
Print the version of Autoconf used to generate the `configure'
|
||||||
|
script, and exit.
|
||||||
|
|
||||||
|
`--cache-file=FILE'
|
||||||
|
Enable the cache: use and save the results of the tests in FILE,
|
||||||
|
traditionally `config.cache'. FILE defaults to `/dev/null' to
|
||||||
|
disable caching.
|
||||||
|
|
||||||
|
`--config-cache'
|
||||||
|
`-C'
|
||||||
|
Alias for `--cache-file=config.cache'.
|
||||||
|
|
||||||
|
`--quiet'
|
||||||
|
`--silent'
|
||||||
|
`-q'
|
||||||
|
Do not print messages saying which checks are being made. To
|
||||||
|
suppress all normal output, redirect it to `/dev/null' (any error
|
||||||
|
messages will still be shown).
|
||||||
|
|
||||||
|
`--srcdir=DIR'
|
||||||
|
Look for the package's source code in directory DIR. Usually
|
||||||
|
`configure' can determine that directory automatically.
|
||||||
|
|
||||||
|
`--prefix=DIR'
|
||||||
|
Use DIR as the installation prefix. *note Installation Names::
|
||||||
|
for more details, including other options available for fine-tuning
|
||||||
|
the installation locations.
|
||||||
|
|
||||||
|
`--no-create'
|
||||||
|
`-n'
|
||||||
|
Run the configure checks, but stop before creating any output
|
||||||
|
files.
|
||||||
|
|
||||||
|
`configure' also accepts some other, not widely useful, options. Run
|
||||||
|
`configure --help' for more details.
|
||||||
|
|||||||
74
Makefile.am
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
include Makefile.am.inc
|
||||||
|
|
||||||
|
EXTRA_DIST = README.html README-WIN32.html config.h.win32 doc json-c.vcproj
|
||||||
|
SUBDIRS = . tests
|
||||||
|
|
||||||
|
lib_LTLIBRARIES = libjson-c.la
|
||||||
|
|
||||||
|
pkgconfigdir = $(libdir)/pkgconfig
|
||||||
|
pkgconfig_DATA = json-c.pc
|
||||||
|
|
||||||
|
libjson_cincludedir = $(includedir)/json-c
|
||||||
|
libjson_cinclude_HEADERS = \
|
||||||
|
arraylist.h \
|
||||||
|
bits.h \
|
||||||
|
debug.h \
|
||||||
|
json.h \
|
||||||
|
json_config.h \
|
||||||
|
json_c_version.h \
|
||||||
|
json_inttypes.h \
|
||||||
|
json_object.h \
|
||||||
|
json_object_iterator.h \
|
||||||
|
json_object_private.h \
|
||||||
|
json_tokener.h \
|
||||||
|
json_util.h \
|
||||||
|
linkhash.h \
|
||||||
|
printbuf.h \
|
||||||
|
random_seed.h
|
||||||
|
|
||||||
|
#libjsonx_includedir = $(libdir)/json-c-@VERSION@
|
||||||
|
#
|
||||||
|
#libjsonx_include_HEADERS = \
|
||||||
|
# json_config.h
|
||||||
|
|
||||||
|
libjson_c_la_LDFLAGS = -version-info 2:1:0 -no-undefined @JSON_BSYMBOLIC_LDFLAGS@
|
||||||
|
|
||||||
|
libjson_c_la_SOURCES = \
|
||||||
|
arraylist.c \
|
||||||
|
debug.c \
|
||||||
|
json_c_version.c \
|
||||||
|
json_object.c \
|
||||||
|
json_object_iterator.c \
|
||||||
|
json_tokener.c \
|
||||||
|
json_util.c \
|
||||||
|
linkhash.c \
|
||||||
|
printbuf.c \
|
||||||
|
random_seed.c
|
||||||
|
|
||||||
|
|
||||||
|
distclean-local:
|
||||||
|
-rm -rf $(testsubdir)
|
||||||
|
-rm -rf config.h.in~ Makefile.in aclocal.m4 autom4te.cache/ config.guess config.sub depcomp install-sh ltmain.sh missing
|
||||||
|
-rm -f INSTALL test-driver tests/Makefile.in compile
|
||||||
|
|
||||||
|
maintainer-clean-local:
|
||||||
|
-rm -rf configure
|
||||||
|
|
||||||
|
uninstall-local:
|
||||||
|
rm -rf "$(DESTDIR)@includedir@/json-c"
|
||||||
|
rm -f "$(DESTDIR)@includedir@/json"
|
||||||
|
|
||||||
|
ANDROID_CFLAGS = -I$(top_srcdir) -DHAVE_CONFIG_H
|
||||||
|
|
||||||
|
Android.mk: Makefile.am
|
||||||
|
androgenizer -:PROJECT json-c \
|
||||||
|
-:SHARED libjson-c \
|
||||||
|
-:TAGS eng debug \
|
||||||
|
-:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \
|
||||||
|
-:SOURCES $(libjson_c_la_SOURCES) $(nodist_libjson_c_la_SOURCES) \
|
||||||
|
-:CFLAGS $(DEFS) $(ANDROID_CFLAGS) $(libjson_c_la_CFLAGS) \
|
||||||
|
-:LDFLAGS $(libjson_c_la_LDFLAGS) $(libjson_c_la_LIBADD) \
|
||||||
|
-:HEADER_TARGET json-c \
|
||||||
|
-:HEADERS $(libjson_cinclude_HEADERS) \
|
||||||
|
-:PASSTHROUGH LOCAL_ARM_MODE:=arm \
|
||||||
|
> $@
|
||||||
2
Makefile.am.inc
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
AM_CFLAGS = -Wall -Werror -Wno-error=deprecated-declarations -Wextra -Wwrite-strings -Wno-unused-parameter -std=gnu99 -D_GNU_SOURCE -D_REENTRANT
|
||||||
|
|
||||||
1080
Makefile.in
Normal file
46
README
@@ -1 +1,45 @@
|
|||||||
See README.md or README.html
|
Building on Unix with git, gcc and autotools
|
||||||
|
|
||||||
|
Home page for json-c:
|
||||||
|
https://github.com/json-c/json-c/wiki
|
||||||
|
|
||||||
|
Caution: do NOT use sources from svn.metaparadigm.com, they are old.
|
||||||
|
|
||||||
|
Prerequisites:
|
||||||
|
gcc (or another C compiler)
|
||||||
|
libtool
|
||||||
|
|
||||||
|
If you're not using a release tarball, you'll also need:
|
||||||
|
autoconf (autoreconf)
|
||||||
|
automake
|
||||||
|
Make sure you have a complete libtool install, including libtoolize
|
||||||
|
|
||||||
|
Github repo for json-c:
|
||||||
|
https://github.com/json-c/json-c
|
||||||
|
|
||||||
|
$ git clone https://github.com/json-c/json-c.git
|
||||||
|
$ cd json-c
|
||||||
|
$ sh autogen.sh
|
||||||
|
|
||||||
|
Then
|
||||||
|
|
||||||
|
$ ./configure
|
||||||
|
$ make
|
||||||
|
$ make install
|
||||||
|
|
||||||
|
To build and run the test programs run
|
||||||
|
|
||||||
|
$ make check
|
||||||
|
|
||||||
|
Linking to libjson-c
|
||||||
|
|
||||||
|
If your system has pkgconfig then you can just add this to your makefile
|
||||||
|
|
||||||
|
CFLAGS += $(shell pkg-config --cflags json-c)
|
||||||
|
LDFLAGS += $(shell pkg-config --libs json-c)
|
||||||
|
|
||||||
|
Without pkgconfig, you would do something like this:
|
||||||
|
|
||||||
|
JSON_C_DIR=/path/to/json_c/install
|
||||||
|
CFLAGS += -I$(JSON_C_DIR)/include/json-c
|
||||||
|
LDFLAGS+= -L$(JSON_C_DIR)/lib -ljson-c
|
||||||
|
|||||||
50
README-WIN32.html
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||||
|
<head>
|
||||||
|
<title>JSON-C - A JSON implementation in C - Win32 specific notes</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h2>Windows specific notes for JSON-C</h2>
|
||||||
|
<p>Please send Win32 bug reports to <a href="mailto:christopher.watford@gmail.com">christopher.watford@gmail.com</a></p>
|
||||||
|
<p><b>Win32 Specific Changes:</b></p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
Various functions have been redefined to their Win32 version (i.e. <tt>open</tt>
|
||||||
|
on win32 is <tt>_open</tt>)</li>
|
||||||
|
<li>
|
||||||
|
Implemented missing functions from MS's libc (i.e. <tt>vasprintf</tt>)</li>
|
||||||
|
<li>
|
||||||
|
Added code to allow Win64 support without integer resizing issues, this
|
||||||
|
probably makes it much nicer on 64bit machines everywhere (i.e. using <tt>ptrdiff_t</tt>
|
||||||
|
for pointer math)</li>
|
||||||
|
</ul>
|
||||||
|
<p><b>Porting Changelog:</b></p>
|
||||||
|
<dl>
|
||||||
|
<dt><tt>printbuf.c</tt> - C. Watford (christopher.watford@gmail.com)</dt>
|
||||||
|
<dd>
|
||||||
|
Added a Win32/Win64 compliant implementation of <tt>vasprintf</tt></dd>
|
||||||
|
<dt><tt>debug.c</tt> - C. Watford (christopher.watford@gmail.com)</dt>
|
||||||
|
<dd>
|
||||||
|
Removed usage of <tt>vsyslog</tt> on Win32/Win64 systems, needs to be handled
|
||||||
|
by a configure script</dd>
|
||||||
|
<dt><tt>json_object.c</tt> - C. Watford (christopher.watford@gmail.com)</dt>
|
||||||
|
<dd>
|
||||||
|
Added scope operator to wrap usage of <tt>json_object_object_foreach</tt>, this needs to be
|
||||||
|
rethought to be more ANSI C friendly</dd>
|
||||||
|
<dt><tt>json_object.h</tt> - C. Watford (christopher.watford@gmail.com)</dt>
|
||||||
|
<dd>
|
||||||
|
Added Microsoft C friendly version of <tt>json_object_object_foreach</tt></dd>
|
||||||
|
<dt><tt>json_tokener.c</tt> - C. Watford (christopher.watford@gmail.com)</dt>
|
||||||
|
<dd>
|
||||||
|
Added a Win32/Win64 compliant implementation of <tt>strndup</tt></dd>
|
||||||
|
<dt><tt>json_util.c</tt> - C. Watford (christopher.watford@gmail.com)</dt>
|
||||||
|
<dd>
|
||||||
|
Added cast and mask to suffice <tt>size_t</tt> v. <tt>unsigned int</tt>
|
||||||
|
conversion correctness</dd>
|
||||||
|
</dl>
|
||||||
|
<p>This program is free software; you can redistribute it and/or modify it under
|
||||||
|
the terms of the MIT License. See COPYING for details.</p>
|
||||||
|
<hr />
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
25
README.html
@@ -8,34 +8,27 @@
|
|||||||
<h2>JSON-C - A JSON implementation in C</h2>
|
<h2>JSON-C - A JSON implementation in C</h2>
|
||||||
|
|
||||||
<h3>Overview</h3>
|
<h3>Overview</h3>
|
||||||
<p>JSON-C implements a reference counting object model that allows you to easily
|
<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
|
construct JSON objects in C, output them as JSON formatted strings and parse
|
||||||
JSON formatted strings back into the C representation of JSON objects.
|
JSON formatted strings back into the C representation of JSON objects.</p>
|
||||||
It aims to conform to <a href="https://tools.ietf.org/html/rfc7159">RFC 7159</a>.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h3>Building</h3>
|
<h3>Building</h3>
|
||||||
<p>To setup JSON-C to build on your system please run <tt>configure</tt> and <tt>make</tt>.</p>
|
<p>To setup JSON-C to build on your system please run <tt>configure</tt> and <tt>make</tt>.</p>
|
||||||
<p>If you are on Win32 cmake is required, generally:</p>
|
<p>If you are on Win32 and are not using the VS project file, be sure
|
||||||
<ul>
|
to rename <tt>config.h.win32</tt> to <tt>config.h</tt> before building.</p>
|
||||||
<li>mkdir build</li>
|
|
||||||
<li>cd build</li>
|
|
||||||
<li>cmake ..</li>
|
|
||||||
<li>msbuild "json-c.vcxproj" /m /verbosity:normal /p:OutDir=lib\</li>
|
|
||||||
<li>Or, open the project in Visual Studio</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h3>Documentation</h3>
|
<h3>Documentation</h3>
|
||||||
<P>Doxygen generated documentation exists <a href="https://json-c.github.io/json-c/">here</a>.</P>
|
<P>Doxygen generated documentation exists <a href="doc/html/json__object_8h.html">here</a>
|
||||||
|
and Win32 specific notes can be found <a href="README-WIN32.html">here</a>.</P>
|
||||||
|
|
||||||
<h3><a href="https://github.com/json-c/json-c">GIT Reposository</a></h3>
|
<h3><a href="https://github.com/json-c/json-c">GIT Reposository</a></h3>
|
||||||
<p><strong><code>git clone https://github.com/json-c/json-c.git</code></strong></p>
|
<p><strong><code>git clone https://github.com/json-c/json-c.git</code></strong></p>
|
||||||
|
|
||||||
<h3><a href="https://groups.google.com/group/json-c">Mailing List</a></h3>
|
<h3><a href="http://groups.google.com/group/json-c">Mailing List</a></h3>
|
||||||
<pi>Send email to <strong><code>json-c <i><at></i> googlegroups <i><dot></i> com</code></strong></p>
|
<pi>Send email to <strong><code>json-c <i><at></i> googlegroups <i><dot></i> com</code></strong></p>
|
||||||
|
|
||||||
<h3><a href="COPYING">License</a></h3>
|
<h3><a href="COPYING">License</a></h3>
|
||||||
<p>This program is free software; you can redistribute it and/or modify it under the terms of the MIT License.</p>
|
<p>This program is free software; you can redistribute it and/or modify it under the terms of the MIT License..</p>
|
||||||
<hr/>
|
<hr/>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
356
README.md
@@ -1,356 +0,0 @@
|
|||||||
\mainpage
|
|
||||||
|
|
||||||
json-c
|
|
||||||
========
|
|
||||||
|
|
||||||
1. [Overview and Build Status](#overview)
|
|
||||||
2. [Getting Help](#gettinghelp)
|
|
||||||
3. [Building on Unix](#buildunix)
|
|
||||||
* [Prerequisites](#installprereq)
|
|
||||||
* [Build commands](#buildcmds)
|
|
||||||
4. [CMake options](#CMake)
|
|
||||||
5. [Testing](#testing)
|
|
||||||
6. [Building with `vcpkg`](#buildvcpkg)
|
|
||||||
7. [Building for Android](#android)
|
|
||||||
7. [Linking to libjson-c](#linking)
|
|
||||||
8. [Using json-c](#using)
|
|
||||||
|
|
||||||
<a name="overview"></a>
|
|
||||||
JSON-C - A JSON implementation in C
|
|
||||||
-----------------------------------
|
|
||||||
|
|
||||||
JSON-C implements a reference counting object model that allows you to easily
|
|
||||||
construct JSON objects in C, output them as JSON formatted strings and parse
|
|
||||||
JSON formatted strings back into the C representation of JSON objects.
|
|
||||||
It aims to conform to [RFC 8259](https://www.rfc-editor.org/rfc/rfc8259).
|
|
||||||
|
|
||||||
Skip down to [Using json-c](#using)
|
|
||||||
or check out the [API docs](https://json-c.github.io/json-c/),
|
|
||||||
if you already have json-c installed and ready to use.
|
|
||||||
|
|
||||||
Home page for json-c: https://github.com/json-c/json-c/wiki
|
|
||||||
|
|
||||||
<a name="gettinghelp"></a>
|
|
||||||
Getting Help
|
|
||||||
------------
|
|
||||||
|
|
||||||
If you have questions about using json-c, please start a thread on
|
|
||||||
our forums at: https://groups.google.com/forum/#!forum/json-c
|
|
||||||
|
|
||||||
If you believe you've discovered a bug, report it at
|
|
||||||
(https://github.com/json-c/json-c/issues). Please be sure to include
|
|
||||||
the version of json-c you're using, the OS you're running on, and any
|
|
||||||
other relevant details. Fully reproducible test cases and/or patches
|
|
||||||
to fix problems are greatly appreciated.
|
|
||||||
|
|
||||||
Fixes for bugs, or small new features can be directly submitted as a
|
|
||||||
[pull request](https://github.com/json-c/json-c/pulls). For major new
|
|
||||||
features or large changes of any kind, please first start a discussion
|
|
||||||
on the [forums](https://groups.google.com/forum/#!forum/json-c).
|
|
||||||
|
|
||||||
|
|
||||||
<a name="buildunix"></a>
|
|
||||||
Building on Unix with `git`, `gcc` and `cmake`
|
|
||||||
--------------------------------------------------
|
|
||||||
|
|
||||||
If you already have json-c installed, see [Linking to `libjson-c`](#linking)
|
|
||||||
for how to build and link your program against it.
|
|
||||||
|
|
||||||
Build Status
|
|
||||||
* [AppVeyor Build](https://ci.appveyor.com/project/hawicz/json-c) 
|
|
||||||
* [Travis Build](https://app.travis-ci.com/github/json-c/json-c) 
|
|
||||||
|
|
||||||
Test Status
|
|
||||||
* [Coveralls](https://coveralls.io/github/json-c/json-c?branch=master) [](https://coveralls.io/github/json-c/json-c?branch=master)
|
|
||||||
|
|
||||||
<a name="installprereq"></a>
|
|
||||||
### Prerequisites:
|
|
||||||
|
|
||||||
- `gcc`, `clang`, or another C compiler
|
|
||||||
|
|
||||||
- `cmake>=2.8`, `>=3.16` recommended, `cmake=>3.1` for tests
|
|
||||||
|
|
||||||
To generate docs you'll also need:
|
|
||||||
- `doxygen>=1.8.13`
|
|
||||||
|
|
||||||
If you are on a relatively modern system, you'll likely be able to install
|
|
||||||
the prerequisites using your OS's packaging system.
|
|
||||||
|
|
||||||
### Install using apt (e.g. Ubuntu 16.04.2 LTS)
|
|
||||||
```sh
|
|
||||||
sudo apt install git
|
|
||||||
sudo apt install cmake
|
|
||||||
sudo apt install doxygen # optional
|
|
||||||
sudo apt install valgrind # optional
|
|
||||||
```
|
|
||||||
|
|
||||||
<a name="buildcmds"></a>
|
|
||||||
### Build instructions:
|
|
||||||
|
|
||||||
`json-c` GitHub repo: https://github.com/json-c/json-c
|
|
||||||
|
|
||||||
```sh
|
|
||||||
$ git clone https://github.com/json-c/json-c.git
|
|
||||||
$ mkdir json-c-build
|
|
||||||
$ cd json-c-build
|
|
||||||
$ cmake ../json-c # See CMake section below for custom arguments
|
|
||||||
```
|
|
||||||
|
|
||||||
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, `make distcheck`)
|
|
||||||
|
|
||||||
Then:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
$ make
|
|
||||||
$ make test
|
|
||||||
$ make USE_VALGRIND=0 test # optionally skip using valgrind
|
|
||||||
$ sudo make install # it could be necessary to execute make install
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
### Generating documentation with Doxygen:
|
|
||||||
|
|
||||||
The library documentation can be generated directly from the source code using Doxygen tool:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
# in build directory
|
|
||||||
make doc
|
|
||||||
google-chrome doc/html/index.html
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
<a name="CMake"></a>
|
|
||||||
CMake Options
|
|
||||||
--------------------
|
|
||||||
|
|
||||||
The json-c library is built with [CMake](https://cmake.org/cmake-tutorial/),
|
|
||||||
which can take a few options.
|
|
||||||
|
|
||||||
Variable | Type | Description
|
|
||||||
-----------------------------|--------|--------------
|
|
||||||
CMAKE_INSTALL_PREFIX | String | The install location.
|
|
||||||
CMAKE_BUILD_TYPE | String | Defaults to "debug".
|
|
||||||
BUILD_SHARED_LIBS | Bool | The default build generates a dynamic (dll/so) library. Set this to OFF to create a static library only.
|
|
||||||
BUILD_STATIC_LIBS | Bool | The default build generates a static (lib/a) library. Set this to OFF to create a shared library only.
|
|
||||||
DISABLE_STATIC_FPIC | Bool | The default builds position independent code. Set this to OFF to create a shared library only.
|
|
||||||
DISABLE_BSYMBOLIC | Bool | Disable use of -Bsymbolic-functions.
|
|
||||||
DISABLE_THREAD_LOCAL_STORAGE | Bool | Disable use of Thread-Local Storage (HAVE___THREAD).
|
|
||||||
DISABLE_WERROR | Bool | Disable use of -Werror.
|
|
||||||
DISABLE_EXTRA_LIBS | Bool | Disable use of extra libraries, libbsd
|
|
||||||
DISABLE_JSON_POINTER | Bool | Omit json_pointer support from the build.
|
|
||||||
ENABLE_RDRAND | Bool | Enable RDRAND Hardware RNG Hash Seed.
|
|
||||||
ENABLE_THREADING | Bool | Enable partial threading support.
|
|
||||||
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.
|
|
||||||
|
|
||||||
Pass these options as `-D` on CMake's command-line.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
# build a static library only
|
|
||||||
cmake -DBUILD_SHARED_LIBS=OFF ..
|
|
||||||
```
|
|
||||||
|
|
||||||
### Building with partial threading support
|
|
||||||
|
|
||||||
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
|
|
||||||
json_object_get() and json_object_put().
|
|
||||||
|
|
||||||
Since this may have a performance impact, of at least 3x slower
|
|
||||||
according to https://stackoverflow.com/a/11609063, it is disabled by
|
|
||||||
default. You may turn it on by adjusting your cmake command with:
|
|
||||||
-DENABLE_THREADING=ON
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
|
|
||||||
### cmake-configure wrapper script
|
|
||||||
|
|
||||||
For those familiar with the old autoconf/autogen.sh/configure method,
|
|
||||||
there is a `cmake-configure` wrapper script to ease the transition to cmake.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
mkdir build
|
|
||||||
cd build
|
|
||||||
../cmake-configure --prefix=/some/install/path
|
|
||||||
make
|
|
||||||
```
|
|
||||||
|
|
||||||
cmake-configure can take a few options.
|
|
||||||
|
|
||||||
| options | Description|
|
|
||||||
| ---- | ---- |
|
|
||||||
| prefix=PREFIX | install architecture-independent files in PREFIX |
|
|
||||||
| enable-threading | Enable code to support partly multi-threaded use |
|
|
||||||
| enable-rdrand | Enable RDRAND Hardware RNG Hash Seed generation on supported x86/x64 platforms. |
|
|
||||||
| enable-shared | build shared libraries [default=yes] |
|
|
||||||
| enable-static | build static libraries [default=yes] |
|
|
||||||
| disable-Bsymbolic | Avoid linking with -Bsymbolic-function |
|
|
||||||
| disable-werror | Avoid treating compiler warnings as fatal errors |
|
|
||||||
|
|
||||||
|
|
||||||
<a name="testing"></a>
|
|
||||||
Testing:
|
|
||||||
----------
|
|
||||||
|
|
||||||
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
|
|
||||||
```
|
|
||||||
|
|
||||||
To run tests a separate build directory is recommended:
|
|
||||||
```sh
|
|
||||||
mkdir build-test
|
|
||||||
cd build-test
|
|
||||||
# VALGRIND=1 causes -DVALGRIND=1 to be passed when compiling code
|
|
||||||
# which uses slightly slower, but valgrind-safe code.
|
|
||||||
VALGRIND=1 cmake ..
|
|
||||||
make
|
|
||||||
|
|
||||||
make test
|
|
||||||
# By default, if valgrind is available running tests uses it.
|
|
||||||
make USE_VALGRIND=0 test # optionally skip using valgrind
|
|
||||||
```
|
|
||||||
|
|
||||||
If a test fails, check `Testing/Temporary/LastTest.log`,
|
|
||||||
`tests/testSubDir/${testname}/${testname}.vg.out`, and other similar files.
|
|
||||||
If there is insufficient output try:
|
|
||||||
```sh
|
|
||||||
VERBOSE=1 CTEST_OUTPUT_ON_FAILURE=1 make test
|
|
||||||
```
|
|
||||||
or
|
|
||||||
```sh
|
|
||||||
JSONC_TEST_TRACE=1 make test
|
|
||||||
```
|
|
||||||
and check the log files again.
|
|
||||||
|
|
||||||
|
|
||||||
<a name="buildvcpkg"></a>
|
|
||||||
Building on Unix and Windows with `vcpkg`
|
|
||||||
--------------------------------------------------
|
|
||||||
|
|
||||||
You can download and install JSON-C using the [vcpkg](https://github.com/Microsoft/vcpkg/) dependency manager:
|
|
||||||
|
|
||||||
git clone https://github.com/Microsoft/vcpkg.git
|
|
||||||
cd vcpkg
|
|
||||||
./bootstrap-vcpkg.sh
|
|
||||||
./vcpkg integrate install
|
|
||||||
vcpkg install json-c
|
|
||||||
|
|
||||||
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 [create an issue or pull request](https://github.com/Microsoft/vcpkg) on the vcpkg repository.
|
|
||||||
|
|
||||||
<a name="android">
|
|
||||||
Building for Android
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
Building on Android is now particularly well supported, but there
|
|
||||||
have been some reports of success using
|
|
||||||
https://developer.android.com/ndk/guides/cmake
|
|
||||||
|
|
||||||
```
|
|
||||||
mkdir json-c-build
|
|
||||||
cd json-c-build/
|
|
||||||
export NDK_HOME=~/Library/Android/sdk/ndk/22.1.7171670/
|
|
||||||
cmake \
|
|
||||||
--toolchain=$NDK_HOME/build/cmake/android.toolchain.cmake \
|
|
||||||
-DANDROID_STL=none \
|
|
||||||
-DANDROID_ABI=arm64-v8a \
|
|
||||||
-DANDROID_PLATFORM=android-29 \
|
|
||||||
-DANDROID_LD=lld \
|
|
||||||
-DCMAKE_BUILD_TYPE=MinSizeRel \
|
|
||||||
-DCMAKE_INSTALL_PREFIX=<install prefix> \
|
|
||||||
-DENABLE_THREADING=true \
|
|
||||||
..
|
|
||||||
make install
|
|
||||||
```
|
|
||||||
|
|
||||||
<a name="linking">
|
|
||||||
Linking to `libjson-c`
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
If your system has `pkgconfig`,
|
|
||||||
then you can just add this to your `makefile`:
|
|
||||||
|
|
||||||
```make
|
|
||||||
CFLAGS += $(shell pkg-config --cflags json-c)
|
|
||||||
LDFLAGS += $(shell pkg-config --libs json-c)
|
|
||||||
```
|
|
||||||
|
|
||||||
Without `pkgconfig`, you might do something like this:
|
|
||||||
|
|
||||||
```make
|
|
||||||
JSON_C_DIR=/path/to/json_c/install
|
|
||||||
CFLAGS += -I$(JSON_C_DIR)/include/json-c
|
|
||||||
# Or to use lines like: #include <json-c/json_object.h>
|
|
||||||
#CFLAGS += -I$(JSON_C_DIR)/include
|
|
||||||
LDFLAGS+= -L$(JSON_C_DIR)/lib -ljson-c
|
|
||||||
```
|
|
||||||
|
|
||||||
If your project uses cmake:
|
|
||||||
|
|
||||||
* Add to your CMakeLists.txt file:
|
|
||||||
|
|
||||||
```cmake
|
|
||||||
find_package(json-c CONFIG)
|
|
||||||
target_link_libraries(${PROJECT_NAME} PRIVATE json-c::json-c)
|
|
||||||
```
|
|
||||||
|
|
||||||
* Then you might run in your project:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
cd build
|
|
||||||
cmake -DCMAKE_PREFIX_PATH=/path/to/json_c/install/lib64/cmake ..
|
|
||||||
```
|
|
||||||
|
|
||||||
<a name="using">
|
|
||||||
Using json-c
|
|
||||||
------------
|
|
||||||
|
|
||||||
To use json-c you can either include json.h, or preferably, one of the
|
|
||||||
following more specific header files:
|
|
||||||
|
|
||||||
* json_object.h - Core types and methods.
|
|
||||||
* json_tokener.h - Methods for parsing and serializing json-c object trees.
|
|
||||||
* json_pointer.h - JSON Pointer (RFC 6901) implementation for retrieving
|
|
||||||
objects from a json-c object tree.
|
|
||||||
* json_object_iterator.h - Methods for iterating over single json_object instances. (See also `json_object_object_foreach()` in json_object.h)
|
|
||||||
* json_visit.h - Methods for walking a tree of json-c objects.
|
|
||||||
* json_util.h - Miscellaneous utility functions.
|
|
||||||
|
|
||||||
For a full list of headers see [files.html](https://json-c.github.io/json-c/json-c-current-release/doc/html/files.html)
|
|
||||||
|
|
||||||
The primary type in json-c is json_object. It describes a reference counted
|
|
||||||
tree of json objects which are created by either parsing text with a
|
|
||||||
json_tokener (i.e. `json_tokener_parse_ex()`), or by creating
|
|
||||||
(with `json_object_new_object()`, `json_object_new_int()`, etc...) and adding
|
|
||||||
(with `json_object_object_add()`, `json_object_array_add()`, etc...) them
|
|
||||||
individually.
|
|
||||||
Typically, every object in the tree will have one reference, from its parent.
|
|
||||||
When you are done with the tree of objects, you call json_object_put() on just
|
|
||||||
the root object to free it, which recurses down through any child objects
|
|
||||||
calling json_object_put() on each one of those in turn.
|
|
||||||
|
|
||||||
You can get a reference to a single child
|
|
||||||
(`json_object_object_get()` or `json_object_array_get_idx()`)
|
|
||||||
and use that object as long as its parent is valid.
|
|
||||||
If you need a child object to live longer than its parent, you can
|
|
||||||
increment the child's refcount (`json_object_get()`) to allow it to survive
|
|
||||||
the parent being freed or it being removed from its parent
|
|
||||||
(`json_object_object_del()` or `json_object_array_del_idx()`)
|
|
||||||
|
|
||||||
When parsing text, the json_tokener object is independent from the json_object
|
|
||||||
that it returns. It can be allocated (`json_tokener_new()`)
|
|
||||||
used one or multiple times (`json_tokener_parse_ex()`, and
|
|
||||||
freed (`json_tokener_free()`) while the json_object objects live on.
|
|
||||||
|
|
||||||
A json_object tree can be serialized back into a string with
|
|
||||||
`json_object_to_json_string_ext()`. The string that is returned
|
|
||||||
is only valid until the next "to_json_string" call on that same object.
|
|
||||||
Also, it is freed when the json_object is freed.
|
|
||||||
|
|
||||||
@@ -1,130 +1,78 @@
|
|||||||
|
|
||||||
# Release checklist:
|
Release checklist:
|
||||||
|
|
||||||
## Pre-release tasks
|
release=0.12
|
||||||
|
git clone https://github.com/json-c/json-c json-c-${release}
|
||||||
* Figure out whether a release is worthwhile to do.
|
cd json-c-${release}
|
||||||
* Analyze the previous release branch to see if anything should have been
|
|
||||||
applied to master.
|
|
||||||
* Collect changes and assemble tentative release notes.
|
|
||||||
* Identify previous release branch point
|
|
||||||
* Check commit logs between previous branch point and now for
|
|
||||||
notable changes worth mentioning
|
|
||||||
* Create a new issues_closed_for_X.Y.md file
|
|
||||||
* Include notable entries from here in the release notes.
|
|
||||||
* Analyze APIs between previous release branch and master to produce list of
|
|
||||||
changes (added/removed/updated funcs, etc...), and detect backwards compat
|
|
||||||
issues.
|
|
||||||
* https://github.com/lvc/abi-compliance-checker
|
|
||||||
* See also `abi-check.sh`
|
|
||||||
* If the new release is not backwards compatible, then this is a MAJOR release.
|
|
||||||
* Mention removed features in ChangeLog
|
|
||||||
* Consider re-adding backwards compatible support, through symbol
|
|
||||||
aliases and appropriate entries in json-c.sym
|
|
||||||
* Be sure any new symbols are listed in json-c.sym as part of
|
|
||||||
the _new_ release version.
|
|
||||||
* Update the AUTHORS file
|
|
||||||
|
|
||||||
PREV=$(git tag | tail -1)
|
|
||||||
( git log -r ${PREV}..HEAD | grep Author: | sed -e's/Author: //' ; cat AUTHORS ) | sort -u > A1
|
|
||||||
mv A1 AUTHORS
|
|
||||||
|
|
||||||
* Exclude mentioning changes that have already been included in a point
|
|
||||||
release of the previous release branch.
|
|
||||||
|
|
||||||
* Update ChangeLog with relevant notes before branching.
|
|
||||||
|
|
||||||
* Check that the compile works on Linux - automatic through Travis
|
|
||||||
* Check that the compile works on NetBSD
|
|
||||||
* Check that the compile works on Windows - automatic through AppVeyor
|
|
||||||
|
|
||||||
## Release creation
|
|
||||||
|
|
||||||
Start creating the new release:
|
|
||||||
|
|
||||||
PREV=$(git tag | tail -1)
|
|
||||||
PREV=${PREV#json-c-}
|
|
||||||
PREV=${PREV%-*}
|
|
||||||
release=0.$((${PREV#*.} + 1))
|
|
||||||
cd ~
|
|
||||||
git clone https://github.com/json-c/json-c json-c-${release}
|
|
||||||
|
|
||||||
rm -rf distcheck
|
|
||||||
mkdir distcheck
|
|
||||||
cd distcheck
|
|
||||||
# Note, the build directory *must* be entirely separate from
|
|
||||||
# the source tree for distcheck to work properly.
|
|
||||||
cmake -DCMAKE_BUILD_TYPE=Release ../json-c-${release}
|
|
||||||
make distcheck
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
|
Check that the compile works on Linux
|
||||||
|
Check that the compile works on NetBSD
|
||||||
|
Check that the compile works on Windows
|
||||||
|
Check ChangeLog to see if anything should be added.
|
||||||
Make any fixes/changes *before* branching.
|
Make any fixes/changes *before* branching.
|
||||||
|
|
||||||
cd json-c-${release}
|
git branch json-c-${release}
|
||||||
git checkout -b json-c-${release}
|
git checkout json-c-${release}
|
||||||
|
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Using ${release}:
|
Update the version in json_c_version.h
|
||||||
Update the version in json_c_version.h
|
Update the version in Doxyfile
|
||||||
Update the version in CMakeLists.txt (VERSION in the project(...) line)
|
Update the version in configure.in
|
||||||
|
Use ${release}.
|
||||||
|
|
||||||
Update the set_target_properties() line in CmakeLists.txt to set the shared
|
Update the libjson_la_LDFLAGS line in Makefile.am to the new version.
|
||||||
library version. Generally, unless we're doing a major release, change:
|
Generally, unless we're doing a major release, change:
|
||||||
VERSION x.y.z
|
-version-info x:y:z
|
||||||
to
|
to
|
||||||
VERSION x.y+1.z
|
-version-info x:y+1:z
|
||||||
|
|
||||||
git commit -a -m "Bump version to ${release}"
|
------------
|
||||||
|
|
||||||
If we're doing a major release (SONAME bump), also bump the version
|
Generate the configure script and other files:
|
||||||
of ALL symbols in json-c.sym.
|
sh autogen.sh
|
||||||
See explanation at https://github.com/json-c/json-c/issues/621
|
git add -f Makefile.in aclocal.m4 config.guess \
|
||||||
More info at: https://software.intel.com/sites/default/files/m/a/1/e/dsohowto.pdf
|
config.sub configure depcomp install-sh \
|
||||||
|
ltmain.sh missing tests/Makefile.in \
|
||||||
|
INSTALL
|
||||||
|
|
||||||
|
# check for anything else to be added:
|
||||||
|
git status --ignored
|
||||||
|
git commit
|
||||||
|
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Generate the doxygen documentation:
|
Generate the doxygen documentation:
|
||||||
|
doxygen
|
||||||
(cd ../distcheck && make doc)
|
git add -f doc
|
||||||
cp -r -p ../distcheck/doc/{html,Doxyfile} doc/.
|
git commit doc
|
||||||
rm doc/Doxyfile # Remove generated file w/ hardcoded paths
|
|
||||||
git add -f doc
|
|
||||||
git commit doc -m "Generate docs for the ${release} release"
|
|
||||||
|
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Create the release tarballs:
|
cd ..
|
||||||
|
echo .git > excludes
|
||||||
|
echo autom4te.cache >> excludes
|
||||||
|
tar -czf json-c-${release}.tar.gz -X excludes json-c-${release}
|
||||||
|
|
||||||
cd ..
|
echo doc >> excludes
|
||||||
echo .git > excludes
|
tar -czf json-c-${release}-nodoc.tar.gz -X excludes json-c-${release}
|
||||||
tar -czf json-c-${release}.tar.gz -X excludes json-c-${release}
|
|
||||||
|
|
||||||
echo 'doc/*.cmake' >> excludes
|
|
||||||
echo 'doc/CMakeFiles' >> excludes
|
|
||||||
echo 'doc/Makefile' >> excludes
|
|
||||||
echo 'doc/Doxyfile' >> excludes
|
|
||||||
echo 'doc/html' >> excludes
|
|
||||||
tar -czf json-c-${release}-nodoc.tar.gz -X excludes json-c-${release}
|
|
||||||
|
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Tag the branch:
|
Tag the branch:
|
||||||
|
cd json-c-${release}
|
||||||
|
git tag -a json-c-${release}-$(date +%Y%m%d) -m "Release json-c-${release}"
|
||||||
|
|
||||||
cd json-c-${release}
|
git push origin json-c-${release}
|
||||||
git tag -a json-c-${release}-$(date +%Y%m%d) -m "Release json-c-${release}"
|
git push --tags
|
||||||
|
|
||||||
git push origin json-c-${release}
|
|
||||||
git push --tags
|
|
||||||
|
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Go to Amazon S3 service at:
|
Go to Amazon S3 service at:
|
||||||
https://console.aws.amazon.com/s3/
|
https://console.aws.amazon.com/s3/
|
||||||
|
|
||||||
Upload the two tarballs in the json-c_releases/releases folder.
|
Upload the two tarballs in the json-c_releases folder.
|
||||||
* Expand "Permissions", pick "Grant public-read access"
|
When uploading, use "Reduced Redundancy", and make the uploaded files publicly accessible.
|
||||||
* Expand "Properties", ensure "Standard" storage class is picked.
|
|
||||||
|
|
||||||
Logout of Amazon S3, and verify that the files are visible.
|
Logout of Amazon S3, and verify that the files are visible.
|
||||||
https://s3.amazonaws.com/json-c_releases/releases/index.html
|
https://s3.amazonaws.com/json-c_releases/releases/index.html
|
||||||
@@ -133,57 +81,37 @@ Logout of Amazon S3, and verify that the files are visible.
|
|||||||
|
|
||||||
Post-release checklist:
|
Post-release checklist:
|
||||||
|
|
||||||
git checkout master
|
git checkout master
|
||||||
|
Add new section to ChangeLog
|
||||||
|
Update the version in json_c_version.h
|
||||||
|
Update the version in Doxyfile
|
||||||
|
Update the version in configure.in
|
||||||
|
Use ${release}.99 to indicate a version "newer" than anything on the branch.
|
||||||
|
|
||||||
Add new section to ChangeLog for ${release}+1
|
Leave the libjson_la_LDFLAGS line in Makefile.am alone.
|
||||||
|
For more details see:
|
||||||
Use ${release}.99 to indicate a version "newer" than anything on the branch:
|
http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
|
||||||
Update the version in json_c_version.h
|
|
||||||
Update the version in CMakeLists.txt
|
|
||||||
|
|
||||||
Update the set_target_properties() line in CmakeLists.txt to match the release branch.
|
|
||||||
|
|
||||||
Add a new empty section to the json-c.sym file, for ${release}+1
|
|
||||||
|
|
||||||
git commit -a -m "Update the master branch to version ${release}.99"
|
|
||||||
git push
|
|
||||||
|
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Update the gh-pages branch with new docs:
|
Update the gh-pages branch with new docs:
|
||||||
|
|
||||||
cd json-c-${release}
|
cd json-c-${release}
|
||||||
git checkout json-c-${release}
|
git checkout json-c-${release}
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
git clone -b gh-pages https://github.com/json-c/json-c json-c-pages
|
git clone -b gh-pages https://github.com/json-c/json-c json-c-pages
|
||||||
cd json-c-pages
|
cd json-c-pages
|
||||||
mkdir json-c-${release}
|
mkdir json-c-${release}
|
||||||
cp -R ../json-c-${release}/doc json-c-${release}/.
|
cp -R ../json-c-${release}/doc json-c-${release}/.
|
||||||
git add json-c-${release}
|
cp ../json-c-${release}/README-WIN32.html json-c-${release}/.
|
||||||
rm json-c-current-release
|
git add json-c-${release}
|
||||||
ln -s json-c-${release} json-c-current-release
|
git commit
|
||||||
git commit -a -m "Add the ${release} docs."
|
|
||||||
|
|
||||||
vi index.html
|
vi index.html
|
||||||
# Add/change links to current release.
|
Add/change links to current release.
|
||||||
|
|
||||||
git commit -a -m "Update the doc links to point at ${release}"
|
|
||||||
|
|
||||||
git push
|
|
||||||
|
|
||||||
------------
|
|
||||||
|
|
||||||
Update checksums on wiki page.
|
|
||||||
|
|
||||||
cd ..
|
|
||||||
openssl sha -sha256 json-c*gz
|
|
||||||
openssl md5 json-c*gz
|
|
||||||
|
|
||||||
Copy and paste this output into the wiki page at:
|
|
||||||
* https://github.com/json-c/json-c/wiki
|
|
||||||
* https://github.com/json-c/json-c/wiki/Old-Releases
|
|
||||||
|
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Send an email to the mailing list.
|
Send an email to the mailing list.
|
||||||
|
|
||||||
|
|||||||
31
STYLE.txt
@@ -1,31 +0,0 @@
|
|||||||
In general:
|
|
||||||
For minor changes to a function, copy the existing formatting.
|
|
||||||
When changing the style, commit that separately from other changes.
|
|
||||||
For new code and major changes to a function, switch to the official json-c style.
|
|
||||||
|
|
||||||
Official json-c style:
|
|
||||||
|
|
||||||
Aim for readability, not strict conformance to fixed style rules.
|
|
||||||
Formatting is tab based; previous attempts at proper alignment with
|
|
||||||
spaces for continuation lines have been abandoned in favor of the
|
|
||||||
convenience of using clang-format.
|
|
||||||
Refer to the .clang-format file for details, and run the tool before commit:
|
|
||||||
|
|
||||||
clang-format -i somefile.c foo.h
|
|
||||||
|
|
||||||
For sections of code that would be significantly negatively impacted, surround
|
|
||||||
them with magic comments to disable formatting:
|
|
||||||
|
|
||||||
/* clang-format off */
|
|
||||||
...code...
|
|
||||||
/* clang-format on */
|
|
||||||
|
|
||||||
|
|
||||||
Naming:
|
|
||||||
Words within function and variable names are separated with underscores. Avoid camel case.
|
|
||||||
Prefer longer, more descriptive names, but not excessively so. No single letter variable names.
|
|
||||||
|
|
||||||
Other:
|
|
||||||
Variables should be defined for the smallest scope needed.
|
|
||||||
Functions should be defined static when possible.
|
|
||||||
When possible, avoid exposing internals in the public API.
|
|
||||||
42
abi-check.sh
@@ -1,42 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
prev=0.16
|
|
||||||
release=0.17
|
|
||||||
|
|
||||||
# ... clone json-c, abi-compliance-checker, abi-dumper
|
|
||||||
|
|
||||||
mkdir build
|
|
||||||
cd build
|
|
||||||
CFLAGS=-Og cmake -DCMAKE_INSTALL_PREFIX=~/json-c-installs/json-c-${release} ..
|
|
||||||
make && make test && make install
|
|
||||||
|
|
||||||
# Assume the old version has already been built
|
|
||||||
|
|
||||||
cd ~/abi-compliance-checker
|
|
||||||
mkxml()
|
|
||||||
{
|
|
||||||
ver="$1"
|
|
||||||
cat <<EOF > json-c-${ver}.xml
|
|
||||||
<foo>
|
|
||||||
<version>
|
|
||||||
${ver}
|
|
||||||
</version>
|
|
||||||
|
|
||||||
<headers>
|
|
||||||
../json-c-installs/json-c-${ver}/include/json-c
|
|
||||||
</headers>
|
|
||||||
|
|
||||||
<libs>
|
|
||||||
../json-c-installs/json-c-${ver}/lib64/libjson-c.so
|
|
||||||
</libs>
|
|
||||||
</foo>
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
mkxml ${release}
|
|
||||||
mkxml ${prev}
|
|
||||||
|
|
||||||
perl abi-compliance-checker.pl -lib json-c -dump json-c-${prev}.xml -dump-path ./ABI-${prev}.dump
|
|
||||||
perl abi-compliance-checker.pl -lib json-c -dump json-c-${release}.xml -dump-path ./ABI-${release}.dump
|
|
||||||
perl abi-compliance-checker.pl -l json-c -old ABI-${prev}.dump -new ABI-${release}.dump
|
|
||||||
|
|
||||||
echo "look in compat_reports/json-c/..."
|
|
||||||
9736
aclocal.m4
vendored
Normal file
@@ -1,122 +0,0 @@
|
|||||||
|
|
||||||
cmake_minimum_required(VERSION 2.8) # see ../CMakeLists.txt for why 2.8
|
|
||||||
|
|
||||||
if(POLICY CMP0075)
|
|
||||||
cmake_policy(SET CMP0075 NEW)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
include(CheckSymbolExists)
|
|
||||||
include(CheckIncludeFile)
|
|
||||||
include(CMakePackageConfigHelpers)
|
|
||||||
|
|
||||||
# First, sort out whether we're running inside a json-c build,
|
|
||||||
# or standalone, such as part of a benchmark build.
|
|
||||||
|
|
||||||
if ("${PROJECT_NAME}" STREQUAL "json-c")
|
|
||||||
# Part of an overall json-c build
|
|
||||||
set(APPS_LINK_LIBS "${PROJECT_NAME}")
|
|
||||||
|
|
||||||
# We know we have this in our current sources:
|
|
||||||
set(HAVE_JSON_TOKENER_GET_PARSE_END)
|
|
||||||
|
|
||||||
else()
|
|
||||||
|
|
||||||
# Standalone mode, using an already installed json-c library, somewhere.
|
|
||||||
# The path to the json-c install must be specified with -DCMAKE_PREFIX_PATH=...
|
|
||||||
|
|
||||||
project(apps)
|
|
||||||
find_package(PkgConfig)
|
|
||||||
|
|
||||||
# PkgConfig is supposed to include CMAKE_PREFIX_PATH in the PKG_CONFIG_PATH
|
|
||||||
# that's used when running pkg-config, but it just doesn't work :(
|
|
||||||
# https://gitlab.kitware.com/cmake/cmake/issues/18150
|
|
||||||
#set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH True)
|
|
||||||
|
|
||||||
# Instead, we handle it explicitly here and update PKG_CONFIG_PATH ourselves.
|
|
||||||
if (NOT CMAKE_PREFIX_PATH)
|
|
||||||
message(FATAL_ERROR "Please specify -DCMAKE_PREFIX_PATH=... when running cmake.")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# Note: find_file isn't recursive :(
|
|
||||||
find_file(PC_FILE_PATH "json-c.pc"
|
|
||||||
PATHS "${CMAKE_PREFIX_PATH}/lib64" "${CMAKE_PREFIX_PATH}/lib"
|
|
||||||
PATH_SUFFIXES "pkgconfig"
|
|
||||||
NO_DEFAULT_PATH)
|
|
||||||
get_filename_component(PC_DIR_PATH "${PC_FILE_PATH}" DIRECTORY)
|
|
||||||
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:${PC_DIR_PATH}")
|
|
||||||
message(STATUS "PC_FILE_PATH=${PC_FILE_PATH}")
|
|
||||||
message(STATUS "PC_DIR_PATH=${PC_DIR_PATH}")
|
|
||||||
|
|
||||||
pkg_check_modules(PC_JSONC json-c)
|
|
||||||
if (PC_JSONC_FOUND)
|
|
||||||
message(STATUS "Found json-c using pkg-config: ${PC_JSONC_PREFIX}")
|
|
||||||
message(STATUS " PC_JSONC_INCLUDE_DIRS=${PC_JSONC_INCLUDE_DIRS}")
|
|
||||||
message(STATUS " PC_JSONC_LIBRARIES=${PC_JSONC_LIBRARIES}")
|
|
||||||
message(STATUS " PC_JSONC_LIBRARY_DIRS=${PC_JSONC_LIBRARY_DIRS}")
|
|
||||||
link_directories(${PC_JSONC_LIBRARY_DIRS})
|
|
||||||
include_directories(${PC_JSONC_INCLUDE_DIRS})
|
|
||||||
# for target_link_libraries(...)
|
|
||||||
set(APPS_INCLUDE_DIRS ${PC_JSONC_INCLUDE_DIRS})
|
|
||||||
set(APPS_LINK_DIRS ${PC_JSONC_LIBRARY_DIRS})
|
|
||||||
set(APPS_LINK_LIBS ${PC_JSONC_LIBRARIES})
|
|
||||||
else()
|
|
||||||
message(STATUS "Using find_package to locate json-c")
|
|
||||||
|
|
||||||
# Note: find_package needs CMAKE_PREFIX_PATH set appropriately.
|
|
||||||
# XXX json-c's installed cmake files don't actually set up what's
|
|
||||||
# needed to use find_package() by itself, so we're just using it
|
|
||||||
# to confirm the top of the install location.
|
|
||||||
find_package(json-c CONFIG) # sets json-c_DIR
|
|
||||||
|
|
||||||
# Assume json-c-config.cmake is in lib64/cmake/json-c/
|
|
||||||
get_filename_component(json-c_TOP "${json-c_DIR}/../../.." ABSOLUTE)
|
|
||||||
get_filename_component(json-c_LIBDIR "${json-c_DIR}/../.." ABSOLUTE)
|
|
||||||
|
|
||||||
message(STATUS " json-c_TOP=${json-c_TOP}")
|
|
||||||
message(STATUS " json-c_DIR=${json-c_DIR}")
|
|
||||||
message(STATUS " json-c_LIBDIR=${json-c_LIBDIR}")
|
|
||||||
|
|
||||||
link_directories(${json-c_LIBDIR})
|
|
||||||
include_directories(${json-c_TOP}/include)
|
|
||||||
include_directories(${json-c_TOP}/include/json-c)
|
|
||||||
set(APPS_LINK_DIRS "${json-c_LIBDIR}")
|
|
||||||
set(APPS_INCLUDE_DIRS "${json-c_TOP}/include;${json-c_TOP}/include/json-c")
|
|
||||||
|
|
||||||
set(APPS_LINK_LIBS json-c)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(CMAKE_REQUIRED_LINK_OPTIONS "-L${APPS_LINK_DIRS}")
|
|
||||||
set(CMAKE_REQUIRED_LIBRARIES ${APPS_LINK_LIBS})
|
|
||||||
set(CMAKE_REQUIRED_INCLUDES ${APPS_INCLUDE_DIRS})
|
|
||||||
check_symbol_exists(json_tokener_get_parse_end "json_tokener.h" HAVE_JSON_TOKENER_GET_PARSE_END)
|
|
||||||
|
|
||||||
endif() # end "standalone mode" block
|
|
||||||
|
|
||||||
# ---------------------------------
|
|
||||||
|
|
||||||
check_include_file(sys/resource.h HAVE_SYS_RESOURCE_H) # for getrusage
|
|
||||||
if (HAVE_SYS_RESOURCE_H)
|
|
||||||
check_symbol_exists(getrusage "sys/resource.h" HAVE_GETRUSAGE)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/apps_config.h.in
|
|
||||||
${PROJECT_BINARY_DIR}/apps_config.h)
|
|
||||||
message(STATUS "Wrote ${PROJECT_BINARY_DIR}/apps_config.h")
|
|
||||||
|
|
||||||
# ---------------------------------
|
|
||||||
|
|
||||||
include_directories(PUBLIC ${CMAKE_SOURCE_DIR})
|
|
||||||
include_directories(${PROJECT_SOURCE_DIR})
|
|
||||||
include_directories(${PROJECT_BINARY_DIR})
|
|
||||||
|
|
||||||
# ---------------------------------
|
|
||||||
|
|
||||||
# Now, finally, the actual executables we're building:
|
|
||||||
|
|
||||||
add_executable(json_parse json_parse.c)
|
|
||||||
target_link_libraries(json_parse PRIVATE ${APPS_LINK_LIBS})
|
|
||||||
|
|
||||||
# Note: it is intentional that there are no install instructions here yet.
|
|
||||||
# When/if the interface of the app(s) listed here settles down enough to
|
|
||||||
# publish as part of a regular build that will be added.
|
|
||||||
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
|
|
||||||
/* Define to 1 if you have the <sys/resource.h> header file. */
|
|
||||||
#cmakedefine HAVE_SYS_RESOURCE_H
|
|
||||||
|
|
||||||
/* Define if you have the `getrusage' function. */
|
|
||||||
#cmakedefine HAVE_GETRUSAGE
|
|
||||||
|
|
||||||
#cmakedefine HAVE_JSON_TOKENER_GET_PARSE_END
|
|
||||||
@@ -1,204 +0,0 @@
|
|||||||
#include <assert.h>
|
|
||||||
#include <errno.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <getopt.h>
|
|
||||||
#include <stddef.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
#include "apps_config.h"
|
|
||||||
|
|
||||||
/* XXX for a regular program, these should be <json-c/foo.h>
|
|
||||||
* but that's inconvenient when building in the json-c source tree.
|
|
||||||
*/
|
|
||||||
#include "json_object.h"
|
|
||||||
#include "json_tokener.h"
|
|
||||||
#include "json_util.h"
|
|
||||||
|
|
||||||
#ifdef HAVE_SYS_RESOURCE_H
|
|
||||||
#include <sys/resource.h>
|
|
||||||
#include <sys/time.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef JSON_NORETURN
|
|
||||||
#if defined(_MSC_VER)
|
|
||||||
#define JSON_NORETURN __declspec(noreturn)
|
|
||||||
#elif defined(__OS400__)
|
|
||||||
#define JSON_NORETURN
|
|
||||||
#else
|
|
||||||
/* 'cold' attribute is for optimization, telling the computer this code
|
|
||||||
* path is unlikely.
|
|
||||||
*/
|
|
||||||
#define JSON_NORETURN __attribute__((noreturn, cold))
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static int formatted_output = JSON_C_TO_STRING_SPACED;
|
|
||||||
static int show_output = 1;
|
|
||||||
static int strict_mode = 0;
|
|
||||||
static int color = 0;
|
|
||||||
static const char *fname = NULL;
|
|
||||||
|
|
||||||
#ifndef HAVE_JSON_TOKENER_GET_PARSE_END
|
|
||||||
#define json_tokener_get_parse_end(tok) ((tok)->char_offset)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
JSON_NORETURN static void usage(const char *argv0, int exitval, const char *errmsg);
|
|
||||||
static void showmem(void);
|
|
||||||
static int parseit(int fd, int (*callback)(struct json_object *));
|
|
||||||
static int showobj(struct json_object *new_obj);
|
|
||||||
|
|
||||||
static void showmem(void)
|
|
||||||
{
|
|
||||||
#ifdef HAVE_GETRUSAGE
|
|
||||||
struct rusage rusage;
|
|
||||||
memset(&rusage, 0, sizeof(rusage));
|
|
||||||
getrusage(RUSAGE_SELF, &rusage);
|
|
||||||
fprintf(stderr, "maxrss: %ld KB\n", rusage.ru_maxrss);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
static int parseit(int fd, int (*callback)(struct json_object *))
|
|
||||||
{
|
|
||||||
struct json_object *obj;
|
|
||||||
char buf[32768];
|
|
||||||
ssize_t ret;
|
|
||||||
int depth = JSON_TOKENER_DEFAULT_DEPTH;
|
|
||||||
json_tokener *tok;
|
|
||||||
|
|
||||||
tok = json_tokener_new_ex(depth);
|
|
||||||
if (!tok)
|
|
||||||
{
|
|
||||||
fprintf(stderr, "unable to allocate json_tokener: %s\n", strerror(errno));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
json_tokener_set_flags(tok, JSON_TOKENER_STRICT
|
|
||||||
#ifdef JSON_TOKENER_ALLOW_TRAILING_CHARS
|
|
||||||
| JSON_TOKENER_ALLOW_TRAILING_CHARS
|
|
||||||
#endif
|
|
||||||
);
|
|
||||||
|
|
||||||
// XXX push this into some kind of json_tokener_parse_fd API?
|
|
||||||
// json_object_from_fd isn't flexible enough, and mirroring
|
|
||||||
// everything you can do with a tokener into json_util.c seems
|
|
||||||
// like the wrong approach.
|
|
||||||
size_t total_read = 0;
|
|
||||||
while ((ret = read(fd, buf, sizeof(buf))) > 0)
|
|
||||||
{
|
|
||||||
size_t retu = (size_t)ret; // We know it's positive
|
|
||||||
total_read += retu;
|
|
||||||
size_t start_pos = 0;
|
|
||||||
while (start_pos != retu)
|
|
||||||
{
|
|
||||||
obj = json_tokener_parse_ex(tok, &buf[start_pos], retu - start_pos);
|
|
||||||
enum json_tokener_error jerr = json_tokener_get_error(tok);
|
|
||||||
size_t parse_end = json_tokener_get_parse_end(tok);
|
|
||||||
if (obj == NULL && jerr != json_tokener_continue)
|
|
||||||
{
|
|
||||||
const char *aterr = (start_pos + parse_end < (int)sizeof(buf)) ?
|
|
||||||
&buf[start_pos + parse_end] : "";
|
|
||||||
fflush(stdout);
|
|
||||||
size_t fail_offset = total_read - retu + start_pos + parse_end;
|
|
||||||
fprintf(stderr, "Failed at offset %lu: %s %c\n", (unsigned long)fail_offset,
|
|
||||||
json_tokener_error_desc(jerr), aterr[0]);
|
|
||||||
json_tokener_free(tok);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
if (obj != NULL)
|
|
||||||
{
|
|
||||||
int cb_ret = callback(obj);
|
|
||||||
json_object_put(obj);
|
|
||||||
if (cb_ret != 0)
|
|
||||||
{
|
|
||||||
json_tokener_free(tok);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
start_pos += json_tokener_get_parse_end(tok);
|
|
||||||
assert(start_pos <= retu);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (ret < 0)
|
|
||||||
{
|
|
||||||
fprintf(stderr, "error reading fd %d: %s\n", fd, strerror(errno));
|
|
||||||
}
|
|
||||||
|
|
||||||
json_tokener_free(tok);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int showobj(struct json_object *new_obj)
|
|
||||||
{
|
|
||||||
if (new_obj == NULL)
|
|
||||||
{
|
|
||||||
fprintf(stderr, "%s: Failed to parse\n", fname);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
fprintf(stderr, "Successfully parsed object from %s\n", fname);
|
|
||||||
|
|
||||||
if (show_output)
|
|
||||||
{
|
|
||||||
const char *output;
|
|
||||||
output = json_object_to_json_string_ext(new_obj, formatted_output | color);
|
|
||||||
printf("%s\n", output);
|
|
||||||
}
|
|
||||||
|
|
||||||
showmem();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void usage(const char *argv0, int exitval, const char *errmsg)
|
|
||||||
{
|
|
||||||
FILE *fp = stdout;
|
|
||||||
if (exitval != 0)
|
|
||||||
fp = stderr;
|
|
||||||
if (errmsg != NULL)
|
|
||||||
fprintf(fp, "ERROR: %s\n\n", errmsg);
|
|
||||||
fprintf(fp, "Usage: %s [-f|-F <arg>] [-n] [-s]\n", argv0);
|
|
||||||
fprintf(fp, " -f - Format the output to stdout with JSON_C_TO_STRING_PRETTY (default is JSON_C_TO_STRING_SPACED)\n");
|
|
||||||
fprintf(fp, " -F - Format the output to stdout with <arg>, e.g. 0 for JSON_C_TO_STRING_PLAIN\n");
|
|
||||||
fprintf(fp, " -n - No output\n");
|
|
||||||
fprintf(fp, " -c - color\n");
|
|
||||||
fprintf(fp, " -s - Parse in strict mode, flags:\n");
|
|
||||||
fprintf(fp, " JSON_TOKENER_STRICT|JSON_TOKENER_ALLOW_TRAILING_CHARS\n");
|
|
||||||
fprintf(fp, " Diagnostic information will be emitted to stderr\n");
|
|
||||||
|
|
||||||
fprintf(fp, "\nWARNING WARNING WARNING\n");
|
|
||||||
fprintf(fp, "This is a prototype, it may change or be removed at any time!\n");
|
|
||||||
exit(exitval);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
int opt;
|
|
||||||
|
|
||||||
while ((opt = getopt(argc, argv, "fF:hnsc")) != -1)
|
|
||||||
{
|
|
||||||
switch (opt)
|
|
||||||
{
|
|
||||||
case 'f': formatted_output = JSON_C_TO_STRING_PRETTY; break;
|
|
||||||
case 'F': formatted_output = atoi(optarg); break;
|
|
||||||
case 'n': show_output = 0; break;
|
|
||||||
case 's': strict_mode = 1; break;
|
|
||||||
case 'c': color = JSON_C_TO_STRING_COLOR; break;
|
|
||||||
case 'h': usage(argv[0], 0, NULL);
|
|
||||||
default: /* '?' */ usage(argv[0], EXIT_FAILURE, "Unknown arguments");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (optind >= argc)
|
|
||||||
{
|
|
||||||
usage(argv[0], EXIT_FAILURE, "Expected argument after options");
|
|
||||||
}
|
|
||||||
fname = argv[optind];
|
|
||||||
|
|
||||||
int fd = open(argv[optind], O_RDONLY, 0);
|
|
||||||
showmem();
|
|
||||||
if (parseit(fd, showobj) != 0)
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
showmem();
|
|
||||||
|
|
||||||
exit(EXIT_SUCCESS);
|
|
||||||
}
|
|
||||||
125
appveyor.yml
@@ -1,125 +0,0 @@
|
|||||||
version: '{branch}.{build}'
|
|
||||||
|
|
||||||
image:
|
|
||||||
# b_toolset: v143
|
|
||||||
- Visual Studio 2022
|
|
||||||
|
|
||||||
# VS2015 also used for earlier VS builds
|
|
||||||
# aka os: Windows Server 2012 R2
|
|
||||||
- Visual Studio 2015
|
|
||||||
|
|
||||||
# aka os: Windows Server 2016
|
|
||||||
# b_toolset: v141
|
|
||||||
- Visual Studio 2017
|
|
||||||
|
|
||||||
# aka os: Windows Server 2019
|
|
||||||
# b_toolset: v142
|
|
||||||
- Visual Studio 2019
|
|
||||||
|
|
||||||
platform: x64
|
|
||||||
|
|
||||||
environment:
|
|
||||||
matrix:
|
|
||||||
- b_toolset: Windows7.1SDK
|
|
||||||
|
|
||||||
- b_toolset: v120
|
|
||||||
|
|
||||||
- b_toolset: v140
|
|
||||||
|
|
||||||
- b_toolset: v141
|
|
||||||
|
|
||||||
- b_toolset: v142
|
|
||||||
|
|
||||||
- b_toolset: v143
|
|
||||||
|
|
||||||
configuration:
|
|
||||||
- Debug
|
|
||||||
- Release
|
|
||||||
|
|
||||||
build_script:
|
|
||||||
- cmake -T %b_toolset% -DCMAKE_BUILD_TYPE=%CONFIGURATION% -DCMAKE_INSTALL_PREFIX=t_install .
|
|
||||||
- cmake --build . --target install
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
exclude:
|
|
||||||
# Skip release builds for all except the newest image
|
|
||||||
- image: Visual Studio 2015
|
|
||||||
configuration: Release
|
|
||||||
|
|
||||||
# In the "old" image, new toolsets aren't available:
|
|
||||||
- image: Visual Studio 2015
|
|
||||||
b_toolset: v141
|
|
||||||
|
|
||||||
- image: Visual Studio 2015
|
|
||||||
b_toolset: v142
|
|
||||||
|
|
||||||
- image: Visual Studio 2015
|
|
||||||
b_toolset: v143
|
|
||||||
|
|
||||||
# ----
|
|
||||||
|
|
||||||
- image: Visual Studio 2017
|
|
||||||
configuration: Release
|
|
||||||
|
|
||||||
# In the "new" images, exclude all toolsets except the relevant
|
|
||||||
# one for that image:
|
|
||||||
|
|
||||||
- image: Visual Studio 2017
|
|
||||||
b_toolset: Windows7.1SDK
|
|
||||||
|
|
||||||
- image: Visual Studio 2017
|
|
||||||
b_toolset: v120
|
|
||||||
|
|
||||||
- image: Visual Studio 2017
|
|
||||||
b_toolset: v140
|
|
||||||
|
|
||||||
- image: Visual Studio 2017
|
|
||||||
b_toolset: v142
|
|
||||||
|
|
||||||
- image: Visual Studio 2017
|
|
||||||
b_toolset: v143
|
|
||||||
|
|
||||||
# ----
|
|
||||||
|
|
||||||
- image: Visual Studio 2019
|
|
||||||
configuration: Release
|
|
||||||
|
|
||||||
- image: Visual Studio 2019
|
|
||||||
b_toolset: Windows7.1SDK
|
|
||||||
|
|
||||||
- image: Visual Studio 2019
|
|
||||||
b_toolset: v120
|
|
||||||
|
|
||||||
- image: Visual Studio 2019
|
|
||||||
b_toolset: v140
|
|
||||||
|
|
||||||
- image: Visual Studio 2019
|
|
||||||
b_toolset: v141
|
|
||||||
|
|
||||||
- image: Visual Studio 2019
|
|
||||||
b_toolset: v143
|
|
||||||
|
|
||||||
# ----
|
|
||||||
|
|
||||||
- image: Visual Studio 2022
|
|
||||||
b_toolset: Windows7.1SDK
|
|
||||||
|
|
||||||
- image: Visual Studio 2022
|
|
||||||
b_toolset: v120
|
|
||||||
|
|
||||||
- image: Visual Studio 2022
|
|
||||||
b_toolset: v140
|
|
||||||
|
|
||||||
- image: Visual Studio 2022
|
|
||||||
b_toolset: v141
|
|
||||||
|
|
||||||
- image: Visual Studio 2022
|
|
||||||
b_toolset: v142
|
|
||||||
|
|
||||||
after_build:
|
|
||||||
- cd t_install
|
|
||||||
- 7z a ../json-c.win32.%b_toolset%.%CONFIGURATION%.zip *
|
|
||||||
|
|
||||||
artifacts:
|
|
||||||
- path: json-c.win32.%b_toolset%.%CONFIGURATION%.zip
|
|
||||||
name: json-c.win32.%b_toolset%.%CONFIGURATION%.zip
|
|
||||||
239
arraylist.c
@@ -11,216 +11,91 @@
|
|||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#include <limits.h>
|
|
||||||
|
|
||||||
#ifdef STDC_HEADERS
|
#ifdef STDC_HEADERS
|
||||||
#include <stdlib.h>
|
# include <stdlib.h>
|
||||||
#include <string.h>
|
# include <string.h>
|
||||||
#endif /* STDC_HEADERS */
|
#endif /* STDC_HEADERS */
|
||||||
|
|
||||||
#if defined(HAVE_STRINGS_H) && !defined(_STRING_H) && !defined(__USE_BSD)
|
#if defined(HAVE_STRINGS_H) && !defined(_STRING_H) && !defined(__USE_BSD)
|
||||||
#include <strings.h>
|
# include <strings.h>
|
||||||
#endif /* HAVE_STRINGS_H */
|
#endif /* HAVE_STRINGS_H */
|
||||||
|
|
||||||
#ifndef SIZE_T_MAX
|
#include "bits.h"
|
||||||
#if SIZEOF_SIZE_T == SIZEOF_INT
|
|
||||||
#define SIZE_T_MAX UINT_MAX
|
|
||||||
#elif SIZEOF_SIZE_T == SIZEOF_LONG
|
|
||||||
#define SIZE_T_MAX ULONG_MAX
|
|
||||||
#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG
|
|
||||||
#define SIZE_T_MAX ULLONG_MAX
|
|
||||||
#else
|
|
||||||
#error Unable to determine size of size_t
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "arraylist.h"
|
#include "arraylist.h"
|
||||||
|
|
||||||
struct array_list *array_list_new(array_list_free_fn *free_fn)
|
struct array_list*
|
||||||
|
array_list_new(array_list_free_fn *free_fn)
|
||||||
{
|
{
|
||||||
return array_list_new2(free_fn, ARRAY_LIST_DEFAULT_SIZE);
|
struct array_list *arr;
|
||||||
|
|
||||||
|
arr = (struct array_list*)calloc(1, sizeof(struct array_list));
|
||||||
|
if(!arr) return NULL;
|
||||||
|
arr->size = ARRAY_LIST_DEFAULT_SIZE;
|
||||||
|
arr->length = 0;
|
||||||
|
arr->free_fn = free_fn;
|
||||||
|
if(!(arr->array = (void**)calloc(sizeof(void*), arr->size))) {
|
||||||
|
free(arr);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
return arr;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct array_list *array_list_new2(array_list_free_fn *free_fn, int initial_size)
|
extern void
|
||||||
|
array_list_free(struct array_list *arr)
|
||||||
{
|
{
|
||||||
struct array_list *arr;
|
int i;
|
||||||
|
for(i = 0; i < arr->length; i++)
|
||||||
if (initial_size < 0 || (size_t)initial_size >= SIZE_T_MAX / sizeof(void *))
|
if(arr->array[i]) arr->free_fn(arr->array[i]);
|
||||||
return NULL;
|
free(arr->array);
|
||||||
arr = (struct array_list *)malloc(sizeof(struct array_list));
|
free(arr);
|
||||||
if (!arr)
|
|
||||||
return NULL;
|
|
||||||
arr->size = initial_size;
|
|
||||||
arr->length = 0;
|
|
||||||
arr->free_fn = free_fn;
|
|
||||||
if (!(arr->array = (void **)malloc(arr->size * sizeof(void *))))
|
|
||||||
{
|
|
||||||
free(arr);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
return arr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extern void array_list_free(struct array_list *arr)
|
void*
|
||||||
|
array_list_get_idx(struct array_list *arr, int i)
|
||||||
{
|
{
|
||||||
size_t i;
|
if(i >= arr->length) return NULL;
|
||||||
for (i = 0; i < arr->length; i++)
|
return arr->array[i];
|
||||||
if (arr->array[i])
|
|
||||||
arr->free_fn(arr->array[i]);
|
|
||||||
free(arr->array);
|
|
||||||
free(arr);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void *array_list_get_idx(struct array_list *arr, size_t i)
|
static int array_list_expand_internal(struct array_list *arr, int max)
|
||||||
{
|
{
|
||||||
if (i >= arr->length)
|
void *t;
|
||||||
return NULL;
|
int new_size;
|
||||||
return arr->array[i];
|
|
||||||
|
if(max < arr->size) return 0;
|
||||||
|
new_size = json_max(arr->size << 1, max);
|
||||||
|
if(!(t = realloc(arr->array, new_size*sizeof(void*)))) return -1;
|
||||||
|
arr->array = (void**)t;
|
||||||
|
(void)memset(arr->array + arr->size, 0, (new_size-arr->size)*sizeof(void*));
|
||||||
|
arr->size = new_size;
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int array_list_expand_internal(struct array_list *arr, size_t max)
|
int
|
||||||
|
array_list_put_idx(struct array_list *arr, int idx, void *data)
|
||||||
{
|
{
|
||||||
void *t;
|
if(array_list_expand_internal(arr, idx+1)) return -1;
|
||||||
size_t new_size;
|
if(arr->array[idx]) arr->free_fn(arr->array[idx]);
|
||||||
|
arr->array[idx] = data;
|
||||||
if (max < arr->size)
|
if(arr->length <= idx) arr->length = idx + 1;
|
||||||
return 0;
|
return 0;
|
||||||
/* Avoid undefined behaviour on size_t overflow */
|
|
||||||
if (arr->size >= SIZE_T_MAX / 2)
|
|
||||||
new_size = max;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
new_size = arr->size << 1;
|
|
||||||
if (new_size < max)
|
|
||||||
new_size = max;
|
|
||||||
}
|
|
||||||
if (new_size > (~((size_t)0)) / sizeof(void *))
|
|
||||||
return -1;
|
|
||||||
if (!(t = realloc(arr->array, new_size * sizeof(void *))))
|
|
||||||
return -1;
|
|
||||||
arr->array = (void **)t;
|
|
||||||
arr->size = new_size;
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int array_list_shrink(struct array_list *arr, size_t empty_slots)
|
int
|
||||||
|
array_list_add(struct array_list *arr, void *data)
|
||||||
{
|
{
|
||||||
void *t;
|
return array_list_put_idx(arr, arr->length, data);
|
||||||
size_t new_size;
|
|
||||||
|
|
||||||
if (empty_slots >= SIZE_T_MAX / sizeof(void *) - arr->length)
|
|
||||||
return -1;
|
|
||||||
new_size = arr->length + empty_slots;
|
|
||||||
if (new_size == arr->size)
|
|
||||||
return 0;
|
|
||||||
if (new_size > arr->size)
|
|
||||||
return array_list_expand_internal(arr, new_size);
|
|
||||||
if (new_size == 0)
|
|
||||||
new_size = 1;
|
|
||||||
|
|
||||||
if (!(t = realloc(arr->array, new_size * sizeof(void *))))
|
|
||||||
return -1;
|
|
||||||
arr->array = (void **)t;
|
|
||||||
arr->size = new_size;
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int array_list_insert_idx(struct array_list *arr, size_t idx, void *data)
|
void
|
||||||
|
array_list_sort(struct array_list *arr, int(*sort_fn)(const void *, const void *))
|
||||||
{
|
{
|
||||||
size_t move_amount;
|
qsort(arr->array, arr->length, sizeof(arr->array[0]),
|
||||||
|
(int (*)(const void *, const void *))sort_fn);
|
||||||
if (idx >= arr->length)
|
|
||||||
return array_list_put_idx(arr, idx, data);
|
|
||||||
|
|
||||||
/* we're at full size, what size_t can support */
|
|
||||||
if (arr->length == SIZE_T_MAX)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
if (array_list_expand_internal(arr, arr->length + 1))
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
move_amount = (arr->length - idx) * sizeof(void *);
|
|
||||||
memmove(arr->array + idx + 1, arr->array + idx, move_amount);
|
|
||||||
arr->array[idx] = data;
|
|
||||||
arr->length++;
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//static inline int _array_list_put_idx(struct array_list *arr, size_t idx, void *data)
|
int
|
||||||
int array_list_put_idx(struct array_list *arr, size_t idx, void *data)
|
array_list_length(struct array_list *arr)
|
||||||
{
|
{
|
||||||
if (idx > SIZE_T_MAX - 1)
|
return arr->length;
|
||||||
return -1;
|
|
||||||
if (array_list_expand_internal(arr, idx + 1))
|
|
||||||
return -1;
|
|
||||||
if (idx < arr->length && arr->array[idx])
|
|
||||||
arr->free_fn(arr->array[idx]);
|
|
||||||
arr->array[idx] = data;
|
|
||||||
if (idx > arr->length)
|
|
||||||
{
|
|
||||||
/* Zero out the arraylist slots in between the old length
|
|
||||||
and the newly added entry so we know those entries are
|
|
||||||
empty.
|
|
||||||
e.g. when setting array[7] in an array that used to be
|
|
||||||
only 5 elements longs, array[5] and array[6] need to be
|
|
||||||
set to 0.
|
|
||||||
*/
|
|
||||||
memset(arr->array + arr->length, 0, (idx - arr->length) * sizeof(void *));
|
|
||||||
}
|
|
||||||
if (arr->length <= idx)
|
|
||||||
arr->length = idx + 1;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int array_list_add(struct array_list *arr, void *data)
|
|
||||||
{
|
|
||||||
/* Repeat some of array_list_put_idx() so we can skip several
|
|
||||||
checks that we know are unnecessary when appending at the end
|
|
||||||
*/
|
|
||||||
size_t idx = arr->length;
|
|
||||||
if (idx > SIZE_T_MAX - 1)
|
|
||||||
return -1;
|
|
||||||
if (array_list_expand_internal(arr, idx + 1))
|
|
||||||
return -1;
|
|
||||||
arr->array[idx] = data;
|
|
||||||
arr->length++;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void array_list_sort(struct array_list *arr, int (*compar)(const void *, const void *))
|
|
||||||
{
|
|
||||||
qsort(arr->array, arr->length, sizeof(arr->array[0]), compar);
|
|
||||||
}
|
|
||||||
|
|
||||||
void *array_list_bsearch(const void **key, struct array_list *arr,
|
|
||||||
int (*compar)(const void *, const void *))
|
|
||||||
{
|
|
||||||
return bsearch(key, arr->array, arr->length, sizeof(arr->array[0]), compar);
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t array_list_length(struct array_list *arr)
|
|
||||||
{
|
|
||||||
return arr->length;
|
|
||||||
}
|
|
||||||
|
|
||||||
int array_list_del_idx(struct array_list *arr, size_t idx, size_t count)
|
|
||||||
{
|
|
||||||
size_t i, stop;
|
|
||||||
|
|
||||||
/* Avoid overflow in calculation with large indices. */
|
|
||||||
if (idx > SIZE_T_MAX - count)
|
|
||||||
return -1;
|
|
||||||
stop = idx + count;
|
|
||||||
if (idx >= arr->length || stop > arr->length)
|
|
||||||
return -1;
|
|
||||||
for (i = idx; i < stop; ++i)
|
|
||||||
{
|
|
||||||
// Because put_idx can skip entries, we need to check if
|
|
||||||
// there's actually anything in each slot we're erasing.
|
|
||||||
if (arr->array[i])
|
|
||||||
arr->free_fn(arr->array[i]);
|
|
||||||
}
|
|
||||||
memmove(arr->array + idx, arr->array + stop, (arr->length - stop) * sizeof(void *));
|
|
||||||
arr->length -= count;
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|||||||
76
arraylist.h
@@ -9,79 +9,45 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
#ifndef _arraylist_h_
|
||||||
* @file
|
#define _arraylist_h_
|
||||||
* @brief Internal methods for working with json_type_array objects.
|
|
||||||
* Although this is exposed by the json_object_get_array() method,
|
|
||||||
* it is not recommended for direct use.
|
|
||||||
*/
|
|
||||||
#ifndef _json_c_arraylist_h_
|
|
||||||
#define _json_c_arraylist_h_
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stddef.h>
|
|
||||||
|
|
||||||
#define ARRAY_LIST_DEFAULT_SIZE 32
|
#define ARRAY_LIST_DEFAULT_SIZE 32
|
||||||
|
|
||||||
typedef void(array_list_free_fn)(void *data);
|
typedef void (array_list_free_fn) (void *data);
|
||||||
|
|
||||||
struct array_list
|
struct array_list
|
||||||
{
|
{
|
||||||
void **array;
|
void **array;
|
||||||
size_t length;
|
int length;
|
||||||
size_t size;
|
int size;
|
||||||
array_list_free_fn *free_fn;
|
array_list_free_fn *free_fn;
|
||||||
};
|
};
|
||||||
typedef struct array_list array_list;
|
|
||||||
|
|
||||||
/**
|
extern struct array_list*
|
||||||
* Allocate an array_list of the default size (32).
|
array_list_new(array_list_free_fn *free_fn);
|
||||||
* @deprecated Use array_list_new2() instead.
|
|
||||||
*/
|
|
||||||
extern struct array_list *array_list_new(array_list_free_fn *free_fn);
|
|
||||||
|
|
||||||
/**
|
extern void
|
||||||
* Allocate an array_list of the desired size.
|
array_list_free(struct array_list *al);
|
||||||
*
|
|
||||||
* If possible, the size should be chosen to closely match
|
|
||||||
* the actual number of elements expected to be used.
|
|
||||||
* If the exact size is unknown, there are tradeoffs to be made:
|
|
||||||
* - too small - the array_list code will need to call realloc() more
|
|
||||||
* often (which might incur an additional memory copy).
|
|
||||||
* - too large - will waste memory, but that can be mitigated
|
|
||||||
* by calling array_list_shrink() once the final size is known.
|
|
||||||
*
|
|
||||||
* @see array_list_shrink
|
|
||||||
*/
|
|
||||||
extern struct array_list *array_list_new2(array_list_free_fn *free_fn, int initial_size);
|
|
||||||
|
|
||||||
extern void array_list_free(struct array_list *al);
|
extern void*
|
||||||
|
array_list_get_idx(struct array_list *al, int i);
|
||||||
|
|
||||||
extern void *array_list_get_idx(struct array_list *al, size_t i);
|
extern int
|
||||||
|
array_list_put_idx(struct array_list *al, int i, void *data);
|
||||||
|
|
||||||
extern int array_list_insert_idx(struct array_list *al, size_t i, void *data);
|
extern int
|
||||||
|
array_list_add(struct array_list *al, void *data);
|
||||||
|
|
||||||
extern int array_list_put_idx(struct array_list *al, size_t i, void *data);
|
extern int
|
||||||
|
array_list_length(struct array_list *al);
|
||||||
|
|
||||||
extern int array_list_add(struct array_list *al, void *data);
|
extern void
|
||||||
|
array_list_sort(struct array_list *arr, int(*compar)(const void *, const void *));
|
||||||
extern size_t array_list_length(struct array_list *al);
|
|
||||||
|
|
||||||
extern void array_list_sort(struct array_list *arr, int (*compar)(const void *, const void *));
|
|
||||||
|
|
||||||
extern void *array_list_bsearch(const void **key, struct array_list *arr,
|
|
||||||
int (*compar)(const void *, const void *));
|
|
||||||
|
|
||||||
extern int array_list_del_idx(struct array_list *arr, size_t idx, size_t count);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Shrink the array list to just enough to fit the number of elements in it,
|
|
||||||
* plus empty_slots.
|
|
||||||
*/
|
|
||||||
extern int array_list_shrink(struct array_list *arr, size_t empty_slots);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
13
autogen.sh
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
autoreconf -v --install || exit 1
|
||||||
|
|
||||||
|
# If there are any options, assume the user wants to run configure.
|
||||||
|
# To run configure w/o any options, use ./autogen.sh --configure
|
||||||
|
if [ $# -gt 0 ] ; then
|
||||||
|
case "$1" in
|
||||||
|
--conf*)
|
||||||
|
shift 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
exec ./configure "$@"
|
||||||
|
fi
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
|
|
||||||
Benchmark tests for json-c
|
|
||||||
|
|
||||||
General strategy:
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
* Identify "after" commit hash
|
|
||||||
* Use provided directory
|
|
||||||
* Use provided commit hash
|
|
||||||
* Local changes in current working directory
|
|
||||||
* ${cur_branch}
|
|
||||||
* Identify "before" commit hash, in order of preference
|
|
||||||
* Use provided directory
|
|
||||||
* Use provided commit hash
|
|
||||||
* Use origin/${cur_branch}, if different from ${after_commit}
|
|
||||||
* Use previous release
|
|
||||||
|
|
||||||
* If not using existing dir, clone to src-${after_commit}
|
|
||||||
* or, checkout appropriate commit in existing src-${after_commit}
|
|
||||||
* Create build & install dirs for ${after_commit}
|
|
||||||
* Build & install ${after_commit}
|
|
||||||
* Compile benchmark programs against install-${after_commit}
|
|
||||||
|
|
||||||
* If not using existing dir, clone to src-${before_commit}
|
|
||||||
* or, checkout appropriate commit in existing src-${before_commit}
|
|
||||||
* Create build & install dirs for ${before_commit}
|
|
||||||
* Build & install ${before_commit}
|
|
||||||
* Compile benchmark programs against install-${before_commit}
|
|
||||||
|
|
||||||
* Run benchmark in each location
|
|
||||||
* Compare results
|
|
||||||
|
|
||||||
heaptrack memory profiler
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
https://milianw.de/blog/heaptrack-a-heap-memory-profiler-for-linux.html
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
yum install libdwarf-devel elfutils boost-devel libunwind-devel
|
|
||||||
|
|
||||||
git clone git://anongit.kde.org/heaptrack
|
|
||||||
cd heaptrack
|
|
||||||
mkdir build
|
|
||||||
cd build
|
|
||||||
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
|
||||||
-DCMAKE_INSTALL_PREFIX=$HOME/heaptrack-install ..
|
|
||||||
make install
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
Issues
|
|
||||||
--------
|
|
||||||
|
|
||||||
* jc-bench.sh is incomplete.
|
|
||||||
|
|
||||||
* valgrind massif misreports "extra-heap" bytes?
|
|
||||||
|
|
||||||
"json_parse -n canada.json" shows 38640 KB maxrss.
|
|
||||||
|
|
||||||
Using valgrind --tool=massif, a large amount of memory is listed as
|
|
||||||
wasted "extra-heap" bytes. (~5.6MB)
|
|
||||||
|
|
||||||
```
|
|
||||||
valgrind --tool=massif --massif-out-file=massif.out ./json_parse -n ~/canada.json
|
|
||||||
ms_print massif.out
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
Using heaptrack, and analyzing the histogram, only shows ~2.6MB
|
|
||||||
```
|
|
||||||
heaptrack ./json_parse -n canada.json
|
|
||||||
heaptrack --analyze heaptrack*gz -H histogram.out
|
|
||||||
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
|
|
||||||
```
|
|
||||||
|
|
||||||
With the (unreleased) arraylist trimming changes, maxrss reported by
|
|
||||||
getrusage() goes down, but massif claims *more* total usage, and a HUGE
|
|
||||||
extra-heap amount (50% of total).
|
|
||||||
|
|
||||||
@@ -1,284 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# Benchmarking harness for json-c
|
|
||||||
#
|
|
||||||
# Use this to compare the behavior of two different versions of the library,
|
|
||||||
# such as json-c-0.14 release vs master, master vs local changes, etc...
|
|
||||||
#
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
trap 'echo "FAILED!"' EXIT
|
|
||||||
|
|
||||||
RUNDIR=$(dirname "$0")
|
|
||||||
RUNDIR=$(cd "$RUNDIR" && pwd)
|
|
||||||
|
|
||||||
TOP=$(cd "$RUNDIR/.." && pwd)
|
|
||||||
|
|
||||||
usage()
|
|
||||||
{
|
|
||||||
exitval=$1
|
|
||||||
errmsg=$2
|
|
||||||
if [ $exitval -ne 0 ] ; then
|
|
||||||
exec 1>&2
|
|
||||||
fi
|
|
||||||
if [ ! -z "$errmsg" ] ; then
|
|
||||||
echo "ERROR: $errmsg" 1>&2
|
|
||||||
fi
|
|
||||||
cat <<EOF
|
|
||||||
Usage: $0 [-h] [-v] [--build] [--run] [--compare] ...XAX...
|
|
||||||
EOF
|
|
||||||
|
|
||||||
exit $extival
|
|
||||||
}
|
|
||||||
|
|
||||||
before_arg=
|
|
||||||
after_arg=
|
|
||||||
do_all=1
|
|
||||||
do_build=0
|
|
||||||
do_run=0
|
|
||||||
do_compare=0
|
|
||||||
|
|
||||||
while [ $# -gt 0 ] ; do
|
|
||||||
case "$1" in
|
|
||||||
--before)
|
|
||||||
before_arg=$2
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--after)
|
|
||||||
after_arg=$2
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--build)
|
|
||||||
do_all=0
|
|
||||||
do_build=1
|
|
||||||
;;
|
|
||||||
--run)
|
|
||||||
do_all=0
|
|
||||||
do_run=1
|
|
||||||
;;
|
|
||||||
--compare)
|
|
||||||
do_all=0
|
|
||||||
do_compare=1
|
|
||||||
;;
|
|
||||||
-h)
|
|
||||||
usage 0 ""
|
|
||||||
;;
|
|
||||||
-v)
|
|
||||||
set -x
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
usage 1 "Unknown args: $*"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
WORK="${RUNDIR}/work"
|
|
||||||
mkdir -p "${WORK}"
|
|
||||||
|
|
||||||
DATA="${RUNDIR}/data"
|
|
||||||
mkdir -p "${DATA}"
|
|
||||||
|
|
||||||
for file in citm_catalog.json twitter.json canada.json ; do
|
|
||||||
if [ ! -r "${DATA}/${file}" ] ; then
|
|
||||||
echo "Fetching ${file} from github.com/mloskot/json_benchmark"
|
|
||||||
URL="https://github.com/mloskot/json_benchmark/raw/master/data/${file}"
|
|
||||||
curl -s -L -o "${DATA}/${file}" "$URL"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
echo
|
|
||||||
|
|
||||||
# Identify "after" commit hash, in order of preference
|
|
||||||
if [ ! -z "$after_arg" -a -d "$after_arg" ] ; then
|
|
||||||
# Use provided directory
|
|
||||||
after_src_dir="$after_arg"
|
|
||||||
after_commit=
|
|
||||||
echo "Using provided directory [$after_arg] as 'after'"
|
|
||||||
else
|
|
||||||
_commit=
|
|
||||||
if [ ! -z "$after_arg" ] ; then
|
|
||||||
# Use provided commit hash
|
|
||||||
_commit=$(git rev-parse --verify "$after_arg")
|
|
||||||
fi
|
|
||||||
if [ ! -z "$_commit" ] ;then
|
|
||||||
after_src_dir= # i.e. current tree
|
|
||||||
after_commit="$_commit"
|
|
||||||
echo "Using provided commit [$after_arg => $_commit] as 'after'"
|
|
||||||
else
|
|
||||||
# Local changes in current working directory
|
|
||||||
# ${cur_branch}
|
|
||||||
after_src_dir=$TOP
|
|
||||||
after_commit=
|
|
||||||
echo "Using local changes in $TOP as 'after'"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Identify "before" commit hash, in order of preference
|
|
||||||
if [ ! -z "$before_arg" -a -d "$before_arg" ] ; then
|
|
||||||
# Use provided directory
|
|
||||||
before_src_dir="$before_arg"
|
|
||||||
before_commit=
|
|
||||||
echo "Using provided directory [$before_arg] as 'before'"
|
|
||||||
else
|
|
||||||
_commit=
|
|
||||||
if [ ! -z "$before_arg" ] ; then
|
|
||||||
# Use provided commit hash
|
|
||||||
_commit=$(git rev-parse --verify "$before_arg")
|
|
||||||
fi
|
|
||||||
if [ ! -z "$_commit" ] ;then
|
|
||||||
before_src_dir= # i.e. current tree
|
|
||||||
before_commit="$_commit"
|
|
||||||
echo "Using provided commit [$before_arg => $_commit] as 'before'"
|
|
||||||
else
|
|
||||||
# Use origin/${cur_branch}, if different from ${after_commit}
|
|
||||||
_cur_branch=$(git rev-parse --abbrev-ref HEAD)
|
|
||||||
_commit=
|
|
||||||
if [ ! -z "${_cur_branch}" ] ; then
|
|
||||||
_commit=$(git rev-parse --verify "origin/${_cur_branch}")
|
|
||||||
echo "Using origin/${_cur_branch} [$_commit] as 'before'"
|
|
||||||
fi
|
|
||||||
if [ "$_commit" = "${after_commit}" ] ; then
|
|
||||||
_commit=
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -z "$_commit" ] ; then
|
|
||||||
before_src_dir= # i.e. current tree
|
|
||||||
before_commit="$_commit"
|
|
||||||
else
|
|
||||||
# Use previous release
|
|
||||||
before_src_dir= # i.e. current tree
|
|
||||||
before_commit="$(git tag | sort | tail -1)"
|
|
||||||
echo "Using previous release [$before_commit] as 'before'"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo
|
|
||||||
|
|
||||||
compile_benchmark()
|
|
||||||
{
|
|
||||||
local bname=$1
|
|
||||||
local src_dir="$2"
|
|
||||||
local src_commit="$3"
|
|
||||||
|
|
||||||
local build_dir="${WORK}/$bname/build"
|
|
||||||
local inst_dir="${WORK}/$bname/install"
|
|
||||||
local bench_dir="${WORK}/$bname/bench"
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "=========== $bname ==========="
|
|
||||||
echo
|
|
||||||
|
|
||||||
mkdir -p "${build_dir}"
|
|
||||||
mkdir -p "${inst_dir}"
|
|
||||||
mkdir -p "${bench_dir}"
|
|
||||||
|
|
||||||
if [ ! -z "$src_commit" ] ; then
|
|
||||||
# Resolve the short hash, tag or branch name to full hash
|
|
||||||
src_commit=$(git rev-parse $src_commit)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# No src dir specified, clone and checkout $src_commit
|
|
||||||
if [ -z "$src_dir" ] ; then
|
|
||||||
src_dir="${WORK}/$bname/src"
|
|
||||||
echo "=== Using sources in $src_dir"
|
|
||||||
mkdir -p "$src_dir"
|
|
||||||
at_commit=$(git --git-dir="$src_dir/.git" rev-parse HEAD 2> /dev/null || true)
|
|
||||||
echo "at_commit: $at_commit"
|
|
||||||
if [ -z "$at_commit" ] ; then
|
|
||||||
# Assume it's an empty dir
|
|
||||||
git clone -n "$TOP" "$src_dir"
|
|
||||||
fi
|
|
||||||
git -C "$src_dir" --git-dir="$src_dir/.git" checkout "$src_commit"
|
|
||||||
fi
|
|
||||||
# else, use the provided $src_dir
|
|
||||||
|
|
||||||
if [ -e "${src_dir}/CMakeLists.txt" ] ; then
|
|
||||||
cd "${build_dir}"
|
|
||||||
cmake -DCMAKE_INSTALL_PREFIX="${inst_dir}" "${src_dir}"
|
|
||||||
else
|
|
||||||
# Old versions of json-c used automake/autoconf
|
|
||||||
cd "${src_dir}"
|
|
||||||
sh autogen.sh # always run it, configure doesn't always work
|
|
||||||
cd "${build_dir}"
|
|
||||||
"${src_dir}/configure" --prefix="${inst_dir}"
|
|
||||||
fi
|
|
||||||
make all install
|
|
||||||
|
|
||||||
cd "${bench_dir}"
|
|
||||||
cmake -DCMAKE_PREFIX_PATH="${inst_dir}" "${TOP}/apps"
|
|
||||||
make all
|
|
||||||
}
|
|
||||||
|
|
||||||
# XXX TODO: name "after" and "before" uniquely using the dir & commit
|
|
||||||
|
|
||||||
if [ $do_all -ne 0 -o $do_build -ne 0 ] ; then
|
|
||||||
sleep 5 # Wait slightly, to allow the human to read the message
|
|
||||||
# about what exactly we're doing to benchmark.
|
|
||||||
compile_benchmark "after" "${after_src_dir}" "${after_commit}"
|
|
||||||
compile_benchmark "before" "${before_src_dir}" "${before_commit}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
run_benchmark()
|
|
||||||
{
|
|
||||||
local bname=$1
|
|
||||||
local inst_dir="${WORK}/$bname/install"
|
|
||||||
local bench_dir="${WORK}/$bname/bench"
|
|
||||||
|
|
||||||
local INPUT=${DATA}/canada.json
|
|
||||||
|
|
||||||
cd "${bench_dir}"
|
|
||||||
mkdir -p results
|
|
||||||
(time ./json_parse -n "${INPUT}") > results/basic_timing.out 2>&1
|
|
||||||
valgrind --tool=massif --massif-out-file=massif.out ./json_parse -n "${INPUT}"
|
|
||||||
ms_print massif.out > results/ms_print.out
|
|
||||||
heaptrack -o heaptrack_out ./json_parse -n "${INPUT}"
|
|
||||||
heaptrack --analyze heaptrack_out.gz -H histogram.out > results/heaptrack.out
|
|
||||||
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
|
|
||||||
|
|
||||||
# XXX stamp some info about what was built & run into ./results/.
|
|
||||||
|
|
||||||
echo "DONE with $bname"
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ $do_all -ne 0 -o $do_run -ne 0 ] ; then
|
|
||||||
run_benchmark "after"
|
|
||||||
run_benchmark "before"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $do_compare -ne 0 ] ; then
|
|
||||||
# XXX this needs better analysis
|
|
||||||
cd "${WORK}"
|
|
||||||
diff -udr before/bench/results after/bench/results || true
|
|
||||||
else
|
|
||||||
echo "To compare results, run:"
|
|
||||||
echo "$0 --compare"
|
|
||||||
fi
|
|
||||||
|
|
||||||
trap '' EXIT
|
|
||||||
|
|
||||||
:<<=cut
|
|
||||||
|
|
||||||
Benchmarks to run:
|
|
||||||
|
|
||||||
* Parse JSON strings, of various sizes and characteristics
|
|
||||||
* Flags: STRICT vs. non-STRICT, validate UTF8
|
|
||||||
|
|
||||||
* Serialization time
|
|
||||||
* plain, spaces, pretty
|
|
||||||
|
|
||||||
* json_c_visit tests
|
|
||||||
* JSON pointer tests
|
|
||||||
|
|
||||||
Things to record and compare:
|
|
||||||
|
|
||||||
* Running time
|
|
||||||
* Peak memory usage
|
|
||||||
* Useful bytes vs. overhead for memory allocations
|
|
||||||
* Total number of allocations
|
|
||||||
* Average allocation size
|
|
||||||
* Log of all allocation sizes
|
|
||||||
|
|
||||||
=cut
|
|
||||||
|
|
||||||
28
bits.h
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
/*
|
||||||
|
* $Id: bits.h,v 1.10 2006/01/30 23:07:57 mclark Exp $
|
||||||
|
*
|
||||||
|
* Copyright (c) 2004, 2005 Metaparadigm Pte. Ltd.
|
||||||
|
* Michael Clark <michael@metaparadigm.com>
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the MIT license. See COPYING for details.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _bits_h_
|
||||||
|
#define _bits_h_
|
||||||
|
|
||||||
|
#ifndef json_min
|
||||||
|
#define json_min(a,b) ((a) < (b) ? (a) : (b))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef json_max
|
||||||
|
#define json_max(a,b) ((a) > (b) ? (a) : (b))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define hexdigit(x) (((x) <= '9') ? (x) - '0' : ((x) & 7) + 9)
|
||||||
|
#define error_ptr(error) ((void*)error)
|
||||||
|
#define error_description(error) (json_tokener_errors[error])
|
||||||
|
#define is_error(ptr) (ptr == NULL)
|
||||||
|
|
||||||
|
#endif
|
||||||
100
cmake-configure
@@ -1,100 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Wrapper around cmake to emulate useful options
|
|
||||||
# from the previous autoconf-based configure script.
|
|
||||||
|
|
||||||
RUNDIR=$(dirname "$0")
|
|
||||||
RUNDIR=$(cd "$RUNDIR" && pwd)
|
|
||||||
CURDIR=$(pwd)
|
|
||||||
|
|
||||||
FLAGS=()
|
|
||||||
|
|
||||||
usage()
|
|
||||||
{
|
|
||||||
exitval="$1"
|
|
||||||
errmsg="$2"
|
|
||||||
|
|
||||||
if [ $exitval -ne 0 ] ; then
|
|
||||||
exec 1>&2
|
|
||||||
fi
|
|
||||||
if [ ! -z "$errmsg" ] ; then
|
|
||||||
echo "ERROR: $errmsg" 1>&2
|
|
||||||
fi
|
|
||||||
cat <<EOF
|
|
||||||
$0 [<configure_options>] [-- [<cmake options>]]
|
|
||||||
--prefix=PREFIX install architecture-independent files in PREFIX
|
|
||||||
--enable-threading Enable code to support partly multi-threaded use
|
|
||||||
--enable-rdrand Enable RDRAND Hardware RNG Hash Seed generation on
|
|
||||||
supported x86/x64 platforms.
|
|
||||||
--enable-shared build shared libraries [default=yes]
|
|
||||||
--enable-static build static libraries [default=yes]
|
|
||||||
--disable-Bsymbolic Avoid linking with -Bsymbolic-function
|
|
||||||
--disable-werror Avoid treating compiler warnings as fatal errors
|
|
||||||
--disable-extra-libs Avoid linking against extra libraries, such as libbsd
|
|
||||||
|
|
||||||
EOF
|
|
||||||
exit
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ "$CURDIR" = "$RUNDIR" ] ; then
|
|
||||||
usage 1 "Please mkdir some other build directory, and run this script from there."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! cmake --version ; then
|
|
||||||
usage 1 "Unable to find a working cmake, please be sure you have it installed and on your PATH"
|
|
||||||
fi
|
|
||||||
|
|
||||||
while [ $# -gt 0 ] ; do
|
|
||||||
case "$1" in
|
|
||||||
-h|--help)
|
|
||||||
usage 0
|
|
||||||
;;
|
|
||||||
--prefix)
|
|
||||||
FLAGS+=(-DCMAKE_INSTALL_PREFIX="$2")
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
--prefix=*)
|
|
||||||
FLAGS+=(-DCMAKE_INSTALL_PREFIX="${1##--prefix=}")
|
|
||||||
;;
|
|
||||||
--enable-threading)
|
|
||||||
FLAGS+=(-DENABLE_THREADING=ON)
|
|
||||||
;;
|
|
||||||
--enable-rdrand)
|
|
||||||
FLAGS+=(-DENABLE_RDRAND=ON)
|
|
||||||
;;
|
|
||||||
--enable-shared)
|
|
||||||
FLAGS+=(-DBUILD_SHARED_LIBS=ON)
|
|
||||||
;;
|
|
||||||
--disable-shared)
|
|
||||||
FLAGS+=(-DBUILD_SHARED_LIBS=OFF)
|
|
||||||
;;
|
|
||||||
--enable-static)
|
|
||||||
FLAGS+=(-DBUILD_STATIC_LIBS=ON)
|
|
||||||
;;
|
|
||||||
--disable-static)
|
|
||||||
FLAGS+=(-DBUILD_STATIC_LIBS=OFF)
|
|
||||||
;;
|
|
||||||
--disable-Bsymbolic)
|
|
||||||
FLAGS+=(-DDISABLE_BSYMBOLIC=ON)
|
|
||||||
;;
|
|
||||||
--disable-werror)
|
|
||||||
FLAGS+=(-DDISABLE_WERROR=ON)
|
|
||||||
;;
|
|
||||||
--disable-extra-libs)
|
|
||||||
FLAGS+=(-DDISABLE_EXTRA_LIBS=ON)
|
|
||||||
;;
|
|
||||||
--)
|
|
||||||
shift
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
-*)
|
|
||||||
usage 1 "Unknown arguments: $*"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
exec cmake "${FLAGS[@]}" "$@" "${RUNDIR}"
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
@PACKAGE_INIT@
|
|
||||||
|
|
||||||
include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake")
|
|
||||||
check_required_components("@PROJECT_NAME@")
|
|
||||||
@@ -1,231 +0,0 @@
|
|||||||
|
|
||||||
/* Enable RDRAND Hardware RNG Hash Seed */
|
|
||||||
#cmakedefine ENABLE_RDRAND "@ENABLE_RDRAND@"
|
|
||||||
|
|
||||||
/* Override json_c_get_random_seed() with custom code */
|
|
||||||
#cmakedefine OVERRIDE_GET_RANDOM_SEED @OVERRIDE_GET_RANDOM_SEED@
|
|
||||||
|
|
||||||
/* Enable partial threading support */
|
|
||||||
#cmakedefine ENABLE_THREADING "@@"
|
|
||||||
|
|
||||||
/* Define if .gnu.warning accepts long strings. */
|
|
||||||
#cmakedefine HAS_GNU_WARNING_LONG "@@"
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
|
||||||
#cmakedefine HAVE_DLFCN_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <endian.h> header file. */
|
|
||||||
#cmakedefine HAVE_ENDIAN_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <fcntl.h> header file. */
|
|
||||||
#cmakedefine HAVE_FCNTL_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
|
||||||
#cmakedefine HAVE_INTTYPES_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <limits.h> header file. */
|
|
||||||
#cmakedefine HAVE_LIMITS_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <locale.h> header file. */
|
|
||||||
#cmakedefine HAVE_LOCALE_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <memory.h> header file. */
|
|
||||||
#cmakedefine HAVE_MEMORY_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <stdarg.h> header file. */
|
|
||||||
#cmakedefine HAVE_STDARG_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <stdint.h> header file. */
|
|
||||||
#cmakedefine HAVE_STDINT_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
|
||||||
#cmakedefine HAVE_STDLIB_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <strings.h> header file. */
|
|
||||||
#cmakedefine HAVE_STRINGS_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <string.h> header file. */
|
|
||||||
#cmakedefine HAVE_STRING_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <syslog.h> header file. */
|
|
||||||
#cmakedefine HAVE_SYSLOG_H @HAVE_SYSLOG_H@
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/cdefs.h> header file. */
|
|
||||||
#cmakedefine HAVE_SYS_CDEFS_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/param.h> header file. */
|
|
||||||
#cmakedefine HAVE_SYS_PARAM_H @HAVE_SYS_PARAM_H@
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/random.h> header file. */
|
|
||||||
#cmakedefine HAVE_SYS_RANDOM_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/resource.h> header file. */
|
|
||||||
#cmakedefine HAVE_SYS_RESOURCE_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
|
||||||
#cmakedefine HAVE_SYS_STAT_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
|
||||||
#cmakedefine HAVE_SYS_TYPES_H @HAVE_SYS_TYPES_H@
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <unistd.h> header file. */
|
|
||||||
#cmakedefine HAVE_UNISTD_H @HAVE_UNISTD_H@
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <xlocale.h> header file. */
|
|
||||||
#cmakedefine HAVE_XLOCALE_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <bsd/stdlib.h> header file. */
|
|
||||||
#cmakedefine HAVE_BSD_STDLIB_H
|
|
||||||
|
|
||||||
/* Define to 1 if you have `arc4random' */
|
|
||||||
#cmakedefine HAVE_ARC4RANDOM
|
|
||||||
|
|
||||||
/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
|
|
||||||
#cmakedefine HAVE_DOPRNT
|
|
||||||
|
|
||||||
/* Has atomic builtins */
|
|
||||||
#cmakedefine HAVE_ATOMIC_BUILTINS
|
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `INFINITY', and to 0 if you
|
|
||||||
don't. */
|
|
||||||
#cmakedefine HAVE_DECL_INFINITY
|
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `isinf', and to 0 if you don't.
|
|
||||||
*/
|
|
||||||
#cmakedefine HAVE_DECL_ISINF
|
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `isnan', and to 0 if you don't.
|
|
||||||
*/
|
|
||||||
#cmakedefine HAVE_DECL_ISNAN
|
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `nan', and to 0 if you don't. */
|
|
||||||
#cmakedefine HAVE_DECL_NAN
|
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `_finite', and to 0 if you
|
|
||||||
don't. */
|
|
||||||
#cmakedefine HAVE_DECL__FINITE
|
|
||||||
|
|
||||||
/* Define to 1 if you have the declaration of `_isnan', and to 0 if you don't.
|
|
||||||
*/
|
|
||||||
#cmakedefine HAVE_DECL__ISNAN
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `open' function. */
|
|
||||||
#cmakedefine HAVE_OPEN
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `realloc' function. */
|
|
||||||
#cmakedefine HAVE_REALLOC
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `setlocale' function. */
|
|
||||||
#cmakedefine HAVE_SETLOCALE
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `snprintf' function. */
|
|
||||||
#cmakedefine HAVE_SNPRINTF
|
|
||||||
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `strcasecmp' function. */
|
|
||||||
#cmakedefine HAVE_STRCASECMP @HAVE_STRCASECMP@
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `strdup' function. */
|
|
||||||
#cmakedefine HAVE_STRDUP
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `strerror' function. */
|
|
||||||
#cmakedefine HAVE_STRERROR
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `strncasecmp' function. */
|
|
||||||
#cmakedefine HAVE_STRNCASECMP @HAVE_STRNCASECMP@
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `uselocale' function. */
|
|
||||||
#cmakedefine HAVE_USELOCALE
|
|
||||||
|
|
||||||
/* Define to 1 if newlocale() needs freelocale() called on it's `base` argument */
|
|
||||||
#cmakedefine NEWLOCALE_NEEDS_FREELOCALE
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `vasprintf' function. */
|
|
||||||
#cmakedefine HAVE_VASPRINTF
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `vprintf' function. */
|
|
||||||
#cmakedefine HAVE_VPRINTF
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `vsnprintf' function. */
|
|
||||||
#cmakedefine HAVE_VSNPRINTF
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `vsyslog' function. */
|
|
||||||
#cmakedefine HAVE_VSYSLOG @HAVE_VSYSLOG@
|
|
||||||
|
|
||||||
/* Define if you have the `getrandom' function. */
|
|
||||||
#cmakedefine HAVE_GETRANDOM
|
|
||||||
|
|
||||||
/* Define if you have the `getrusage' function. */
|
|
||||||
#cmakedefine HAVE_GETRUSAGE
|
|
||||||
|
|
||||||
#cmakedefine HAVE_STRTOLL
|
|
||||||
#if !defined(HAVE_STRTOLL)
|
|
||||||
#define strtoll @json_c_strtoll@
|
|
||||||
/* #cmakedefine json_c_strtoll @json_c_strtoll@*/
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#cmakedefine HAVE_STRTOULL
|
|
||||||
#if !defined(HAVE_STRTOULL)
|
|
||||||
#define strtoull @json_c_strtoull@
|
|
||||||
/* #cmakedefine json_c_strtoull @json_c_strtoull@ */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Have __thread */
|
|
||||||
#cmakedefine HAVE___THREAD
|
|
||||||
|
|
||||||
/* Public define for json_inttypes.h */
|
|
||||||
#cmakedefine JSON_C_HAVE_INTTYPES_H @JSON_C_HAVE_INTTYPES_H@
|
|
||||||
|
|
||||||
/* Name of package */
|
|
||||||
#define PACKAGE "@PROJECT_NAME@"
|
|
||||||
|
|
||||||
/* Define to the address where bug reports for this package should be sent. */
|
|
||||||
#define PACKAGE_BUGREPORT "@JSON_C_BUGREPORT@"
|
|
||||||
|
|
||||||
/* Define to the full name of this package. */
|
|
||||||
#define PACKAGE_NAME "@PROJECT_NAME@"
|
|
||||||
|
|
||||||
/* Define to the full name and version of this package. */
|
|
||||||
#define PACKAGE_STRING "@PROJECT_NAME@ @CPACK_PACKAGE_VERSION_MAJOR@.@CPACK_PACKAGE_VERSION_MINOR@.@CPACK_PACKAGE_VERSION_PATCH@"
|
|
||||||
|
|
||||||
/* Define to the one symbol short name of this package. */
|
|
||||||
#define PACKAGE_TARNAME "@PROJECT_NAME@"
|
|
||||||
|
|
||||||
/* Define to the home page for this package. */
|
|
||||||
#define PACKAGE_URL "https://github.com/json-c/json-c"
|
|
||||||
|
|
||||||
/* Define to the version of this package. */
|
|
||||||
#define PACKAGE_VERSION "@CPACK_PACKAGE_VERSION_MAJOR@.@CPACK_PACKAGE_VERSION_MINOR@.@CPACK_PACKAGE_VERSION_PATCH@"
|
|
||||||
|
|
||||||
/* The number of bytes in type int */
|
|
||||||
#cmakedefine SIZEOF_INT @SIZEOF_INT@
|
|
||||||
|
|
||||||
/* The number of bytes in type int64_t */
|
|
||||||
#cmakedefine SIZEOF_INT64_T @SIZEOF_INT64_T@
|
|
||||||
|
|
||||||
/* The number of bytes in type long */
|
|
||||||
#cmakedefine SIZEOF_LONG @SIZEOF_LONG@
|
|
||||||
|
|
||||||
/* The number of bytes in type long long */
|
|
||||||
#cmakedefine SIZEOF_LONG_LONG @SIZEOF_LONG_LONG@
|
|
||||||
|
|
||||||
/* The number of bytes in type size_t */
|
|
||||||
#cmakedefine SIZEOF_SIZE_T @SIZEOF_SIZE_T@
|
|
||||||
|
|
||||||
/* The number of bytes in type ssize_t */
|
|
||||||
#cmakedefine SIZEOF_SSIZE_T @SIZEOF_SSIZE_T@
|
|
||||||
|
|
||||||
/* Specifier for __thread */
|
|
||||||
#cmakedefine SPEC___THREAD @SPEC___THREAD@
|
|
||||||
|
|
||||||
/* Define to 1 if you have the ANSI C header files. */
|
|
||||||
#cmakedefine STDC_HEADERS
|
|
||||||
|
|
||||||
/* Version number of package */
|
|
||||||
#define VERSION "@CPACK_PACKAGE_VERSION_MAJOR@.@CPACK_PACKAGE_VERSION_MINOR@.@CPACK_PACKAGE_VERSION_PATCH@"
|
|
||||||
|
|
||||||
/* Define to empty if `const' does not conform to ANSI C. */
|
|
||||||
#cmakedefine const
|
|
||||||
|
|
||||||
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
|
||||||
#cmakedefine size_t
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
|
||||||
#cmakedefine JSON_C_HAVE_INTTYPES_H @JSON_C_HAVE_INTTYPES_H@
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <stdint.h> header file. */
|
|
||||||
#cmakedefine JSON_C_HAVE_STDINT_H @JSON_C_HAVE_STDINT_H@
|
|
||||||
347
compile
Executable file
@@ -0,0 +1,347 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# Wrapper for compilers which do not understand '-c -o'.
|
||||||
|
|
||||||
|
scriptversion=2012-10-14.11; # UTC
|
||||||
|
|
||||||
|
# Copyright (C) 1999-2013 Free Software Foundation, Inc.
|
||||||
|
# Written by Tom Tromey <tromey@cygnus.com>.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
# This file is maintained in Automake, please report
|
||||||
|
# bugs to <bug-automake@gnu.org> or send patches to
|
||||||
|
# <automake-patches@gnu.org>.
|
||||||
|
|
||||||
|
nl='
|
||||||
|
'
|
||||||
|
|
||||||
|
# We need space, tab and new line, in precisely that order. Quoting is
|
||||||
|
# there to prevent tools from complaining about whitespace usage.
|
||||||
|
IFS=" "" $nl"
|
||||||
|
|
||||||
|
file_conv=
|
||||||
|
|
||||||
|
# func_file_conv build_file lazy
|
||||||
|
# Convert a $build file to $host form and store it in $file
|
||||||
|
# Currently only supports Windows hosts. If the determined conversion
|
||||||
|
# type is listed in (the comma separated) LAZY, no conversion will
|
||||||
|
# take place.
|
||||||
|
func_file_conv ()
|
||||||
|
{
|
||||||
|
file=$1
|
||||||
|
case $file in
|
||||||
|
/ | /[!/]*) # absolute file, and not a UNC file
|
||||||
|
if test -z "$file_conv"; then
|
||||||
|
# lazily determine how to convert abs files
|
||||||
|
case `uname -s` in
|
||||||
|
MINGW*)
|
||||||
|
file_conv=mingw
|
||||||
|
;;
|
||||||
|
CYGWIN*)
|
||||||
|
file_conv=cygwin
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
file_conv=wine
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
case $file_conv/,$2, in
|
||||||
|
*,$file_conv,*)
|
||||||
|
;;
|
||||||
|
mingw/*)
|
||||||
|
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
|
||||||
|
;;
|
||||||
|
cygwin/*)
|
||||||
|
file=`cygpath -m "$file" || echo "$file"`
|
||||||
|
;;
|
||||||
|
wine/*)
|
||||||
|
file=`winepath -w "$file" || echo "$file"`
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# func_cl_dashL linkdir
|
||||||
|
# Make cl look for libraries in LINKDIR
|
||||||
|
func_cl_dashL ()
|
||||||
|
{
|
||||||
|
func_file_conv "$1"
|
||||||
|
if test -z "$lib_path"; then
|
||||||
|
lib_path=$file
|
||||||
|
else
|
||||||
|
lib_path="$lib_path;$file"
|
||||||
|
fi
|
||||||
|
linker_opts="$linker_opts -LIBPATH:$file"
|
||||||
|
}
|
||||||
|
|
||||||
|
# func_cl_dashl library
|
||||||
|
# Do a library search-path lookup for cl
|
||||||
|
func_cl_dashl ()
|
||||||
|
{
|
||||||
|
lib=$1
|
||||||
|
found=no
|
||||||
|
save_IFS=$IFS
|
||||||
|
IFS=';'
|
||||||
|
for dir in $lib_path $LIB
|
||||||
|
do
|
||||||
|
IFS=$save_IFS
|
||||||
|
if $shared && test -f "$dir/$lib.dll.lib"; then
|
||||||
|
found=yes
|
||||||
|
lib=$dir/$lib.dll.lib
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
if test -f "$dir/$lib.lib"; then
|
||||||
|
found=yes
|
||||||
|
lib=$dir/$lib.lib
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
if test -f "$dir/lib$lib.a"; then
|
||||||
|
found=yes
|
||||||
|
lib=$dir/lib$lib.a
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
IFS=$save_IFS
|
||||||
|
|
||||||
|
if test "$found" != yes; then
|
||||||
|
lib=$lib.lib
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# func_cl_wrapper cl arg...
|
||||||
|
# Adjust compile command to suit cl
|
||||||
|
func_cl_wrapper ()
|
||||||
|
{
|
||||||
|
# Assume a capable shell
|
||||||
|
lib_path=
|
||||||
|
shared=:
|
||||||
|
linker_opts=
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
if test -n "$eat"; then
|
||||||
|
eat=
|
||||||
|
else
|
||||||
|
case $1 in
|
||||||
|
-o)
|
||||||
|
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||||
|
eat=1
|
||||||
|
case $2 in
|
||||||
|
*.o | *.[oO][bB][jJ])
|
||||||
|
func_file_conv "$2"
|
||||||
|
set x "$@" -Fo"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
func_file_conv "$2"
|
||||||
|
set x "$@" -Fe"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
-I)
|
||||||
|
eat=1
|
||||||
|
func_file_conv "$2" mingw
|
||||||
|
set x "$@" -I"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-I*)
|
||||||
|
func_file_conv "${1#-I}" mingw
|
||||||
|
set x "$@" -I"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-l)
|
||||||
|
eat=1
|
||||||
|
func_cl_dashl "$2"
|
||||||
|
set x "$@" "$lib"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-l*)
|
||||||
|
func_cl_dashl "${1#-l}"
|
||||||
|
set x "$@" "$lib"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-L)
|
||||||
|
eat=1
|
||||||
|
func_cl_dashL "$2"
|
||||||
|
;;
|
||||||
|
-L*)
|
||||||
|
func_cl_dashL "${1#-L}"
|
||||||
|
;;
|
||||||
|
-static)
|
||||||
|
shared=false
|
||||||
|
;;
|
||||||
|
-Wl,*)
|
||||||
|
arg=${1#-Wl,}
|
||||||
|
save_ifs="$IFS"; IFS=','
|
||||||
|
for flag in $arg; do
|
||||||
|
IFS="$save_ifs"
|
||||||
|
linker_opts="$linker_opts $flag"
|
||||||
|
done
|
||||||
|
IFS="$save_ifs"
|
||||||
|
;;
|
||||||
|
-Xlinker)
|
||||||
|
eat=1
|
||||||
|
linker_opts="$linker_opts $2"
|
||||||
|
;;
|
||||||
|
-*)
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
|
||||||
|
func_file_conv "$1"
|
||||||
|
set x "$@" -Tp"$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
|
||||||
|
func_file_conv "$1" mingw
|
||||||
|
set x "$@" "$file"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
if test -n "$linker_opts"; then
|
||||||
|
linker_opts="-link$linker_opts"
|
||||||
|
fi
|
||||||
|
exec "$@" $linker_opts
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
eat=
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
'')
|
||||||
|
echo "$0: No command. Try '$0 --help' for more information." 1>&2
|
||||||
|
exit 1;
|
||||||
|
;;
|
||||||
|
-h | --h*)
|
||||||
|
cat <<\EOF
|
||||||
|
Usage: compile [--help] [--version] PROGRAM [ARGS]
|
||||||
|
|
||||||
|
Wrapper for compilers which do not understand '-c -o'.
|
||||||
|
Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
|
||||||
|
arguments, and rename the output as expected.
|
||||||
|
|
||||||
|
If you are trying to build a whole package this is not the
|
||||||
|
right script to run: please start by reading the file 'INSTALL'.
|
||||||
|
|
||||||
|
Report bugs to <bug-automake@gnu.org>.
|
||||||
|
EOF
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
-v | --v*)
|
||||||
|
echo "compile $scriptversion"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
|
||||||
|
func_cl_wrapper "$@" # Doesn't return...
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
ofile=
|
||||||
|
cfile=
|
||||||
|
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
if test -n "$eat"; then
|
||||||
|
eat=
|
||||||
|
else
|
||||||
|
case $1 in
|
||||||
|
-o)
|
||||||
|
# configure might choose to run compile as 'compile cc -o foo foo.c'.
|
||||||
|
# So we strip '-o arg' only if arg is an object.
|
||||||
|
eat=1
|
||||||
|
case $2 in
|
||||||
|
*.o | *.obj)
|
||||||
|
ofile=$2
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set x "$@" -o "$2"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
*.c)
|
||||||
|
cfile=$1
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set x "$@" "$1"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if test -z "$ofile" || test -z "$cfile"; then
|
||||||
|
# If no '-o' option was seen then we might have been invoked from a
|
||||||
|
# pattern rule where we don't need one. That is ok -- this is a
|
||||||
|
# normal compilation that the losing compiler can handle. If no
|
||||||
|
# '.c' file was seen then we are probably linking. That is also
|
||||||
|
# ok.
|
||||||
|
exec "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Name of file we expect compiler to create.
|
||||||
|
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
|
||||||
|
|
||||||
|
# Create the lock directory.
|
||||||
|
# Note: use '[/\\:.-]' here to ensure that we don't use the same name
|
||||||
|
# that we are using for the .o file. Also, base the name on the expected
|
||||||
|
# object file name, since that is what matters with a parallel build.
|
||||||
|
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
|
||||||
|
while true; do
|
||||||
|
if mkdir "$lockdir" >/dev/null 2>&1; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
done
|
||||||
|
# FIXME: race condition here if user kills between mkdir and trap.
|
||||||
|
trap "rmdir '$lockdir'; exit 1" 1 2 15
|
||||||
|
|
||||||
|
# Run the compile.
|
||||||
|
"$@"
|
||||||
|
ret=$?
|
||||||
|
|
||||||
|
if test -f "$cofile"; then
|
||||||
|
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
|
||||||
|
elif test -f "${cofile}bj"; then
|
||||||
|
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rmdir "$lockdir"
|
||||||
|
exit $ret
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: shell-script
|
||||||
|
# sh-indentation: 2
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-time-zone: "UTC"
|
||||||
|
# time-stamp-end: "; # UTC"
|
||||||
|
# End:
|
||||||
1530
config.guess
vendored
Executable file
174
config.h.in
Normal file
@@ -0,0 +1,174 @@
|
|||||||
|
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||||
|
|
||||||
|
/* Enable RDRANR Hardware RNG Hash Seed */
|
||||||
|
#undef ENABLE_RDRAND
|
||||||
|
|
||||||
|
/* Define if .gnu.warning accepts long strings. */
|
||||||
|
#undef HAS_GNU_WARNING_LONG
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `INFINITY', and to 0 if you
|
||||||
|
don't. */
|
||||||
|
#undef HAVE_DECL_INFINITY
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `isinf', and to 0 if you don't.
|
||||||
|
*/
|
||||||
|
#undef HAVE_DECL_ISINF
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `isnan', and to 0 if you don't.
|
||||||
|
*/
|
||||||
|
#undef HAVE_DECL_ISNAN
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `nan', and to 0 if you don't. */
|
||||||
|
#undef HAVE_DECL_NAN
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `_finite', and to 0 if you
|
||||||
|
don't. */
|
||||||
|
#undef HAVE_DECL__FINITE
|
||||||
|
|
||||||
|
/* Define to 1 if you have the declaration of `_isnan', and to 0 if you don't.
|
||||||
|
*/
|
||||||
|
#undef HAVE_DECL__ISNAN
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||||
|
#undef HAVE_DLFCN_H
|
||||||
|
|
||||||
|
/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
|
||||||
|
#undef HAVE_DOPRNT
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <endian.h> header file. */
|
||||||
|
#undef HAVE_ENDIAN_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||||
|
#undef HAVE_FCNTL_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||||
|
#undef HAVE_INTTYPES_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <limits.h> header file. */
|
||||||
|
#undef HAVE_LIMITS_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <locale.h> header file. */
|
||||||
|
#undef HAVE_LOCALE_H
|
||||||
|
|
||||||
|
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
|
||||||
|
to 0 otherwise. */
|
||||||
|
#undef HAVE_MALLOC
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <memory.h> header file. */
|
||||||
|
#undef HAVE_MEMORY_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `open' function. */
|
||||||
|
#undef HAVE_OPEN
|
||||||
|
|
||||||
|
/* Define to 1 if your system has a GNU libc compatible `realloc' function,
|
||||||
|
and to 0 otherwise. */
|
||||||
|
#undef HAVE_REALLOC
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `setlocale' function. */
|
||||||
|
#undef HAVE_SETLOCALE
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `snprintf' function. */
|
||||||
|
#undef HAVE_SNPRINTF
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdarg.h> header file. */
|
||||||
|
#undef HAVE_STDARG_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdint.h> header file. */
|
||||||
|
#undef HAVE_STDINT_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||||
|
#undef HAVE_STDLIB_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strcasecmp' function. */
|
||||||
|
#undef HAVE_STRCASECMP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strdup' function. */
|
||||||
|
#undef HAVE_STRDUP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strerror' function. */
|
||||||
|
#undef HAVE_STRERROR
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <strings.h> header file. */
|
||||||
|
#undef HAVE_STRINGS_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <string.h> header file. */
|
||||||
|
#undef HAVE_STRING_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strncasecmp' function. */
|
||||||
|
#undef HAVE_STRNCASECMP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <syslog.h> header file. */
|
||||||
|
#undef HAVE_SYSLOG_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/cdefs.h> header file. */
|
||||||
|
#undef HAVE_SYS_CDEFS_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/param.h> header file. */
|
||||||
|
#undef HAVE_SYS_PARAM_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||||
|
#undef HAVE_SYS_STAT_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||||
|
#undef HAVE_SYS_TYPES_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <unistd.h> header file. */
|
||||||
|
#undef HAVE_UNISTD_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `vasprintf' function. */
|
||||||
|
#undef HAVE_VASPRINTF
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `vprintf' function. */
|
||||||
|
#undef HAVE_VPRINTF
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `vsnprintf' function. */
|
||||||
|
#undef HAVE_VSNPRINTF
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `vsyslog' function. */
|
||||||
|
#undef HAVE_VSYSLOG
|
||||||
|
|
||||||
|
/* Public define for json_inttypes.h */
|
||||||
|
#undef JSON_C_HAVE_INTTYPES_H
|
||||||
|
|
||||||
|
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
||||||
|
*/
|
||||||
|
#undef LT_OBJDIR
|
||||||
|
|
||||||
|
/* Name of package */
|
||||||
|
#undef PACKAGE
|
||||||
|
|
||||||
|
/* Define to the address where bug reports for this package should be sent. */
|
||||||
|
#undef PACKAGE_BUGREPORT
|
||||||
|
|
||||||
|
/* Define to the full name of this package. */
|
||||||
|
#undef PACKAGE_NAME
|
||||||
|
|
||||||
|
/* Define to the full name and version of this package. */
|
||||||
|
#undef PACKAGE_STRING
|
||||||
|
|
||||||
|
/* Define to the one symbol short name of this package. */
|
||||||
|
#undef PACKAGE_TARNAME
|
||||||
|
|
||||||
|
/* Define to the home page for this package. */
|
||||||
|
#undef PACKAGE_URL
|
||||||
|
|
||||||
|
/* Define to the version of this package. */
|
||||||
|
#undef PACKAGE_VERSION
|
||||||
|
|
||||||
|
/* Define to 1 if you have the ANSI C header files. */
|
||||||
|
#undef STDC_HEADERS
|
||||||
|
|
||||||
|
/* Version number of package */
|
||||||
|
#undef VERSION
|
||||||
|
|
||||||
|
/* Define to empty if `const' does not conform to ANSI C. */
|
||||||
|
#undef const
|
||||||
|
|
||||||
|
/* Define to rpl_malloc if the replacement function should be used. */
|
||||||
|
#undef malloc
|
||||||
|
|
||||||
|
/* Define to rpl_realloc if the replacement function should be used. */
|
||||||
|
#undef realloc
|
||||||
|
|
||||||
|
/* Define to `unsigned int' if <sys/types.h> does not define. */
|
||||||
|
#undef size_t
|
||||||
94
config.h.win32
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
/*
|
||||||
|
* $Id: config.h.win32,v 1.2 2006/01/26 02:16:28 mclark Exp $
|
||||||
|
*
|
||||||
|
* Copyright (c) 2004, 2005 Metaparadigm Pte. Ltd.
|
||||||
|
* Michael Clark <michael@metaparadigm.com>
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the MIT license. See COPYING for details.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* config.h.win32 Generated by configure. */
|
||||||
|
|
||||||
|
#define PACKAGE_STRING "JSON C Library 0.2"
|
||||||
|
#define PACKAGE_BUGREPORT "json-c@googlegroups.com"
|
||||||
|
#define PACKAGE_NAME "JSON C Library"
|
||||||
|
#define PACKAGE_TARNAME "json-c"
|
||||||
|
#define PACKAGE_VERSION "0.2"
|
||||||
|
|
||||||
|
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||||
|
|
||||||
|
/* Define to 1 if you don't have `vprintf' but do have `_doprnt.' */
|
||||||
|
/* #undef HAVE_DOPRNT */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||||
|
#define HAVE_FCNTL_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||||
|
#define HAVE_INTTYPES_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <limits.h> header file. */
|
||||||
|
#define HAVE_LIMITS_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
|
||||||
|
to 0 otherwise. */
|
||||||
|
#define HAVE_MALLOC 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <memory.h> header file. */
|
||||||
|
#define HAVE_MEMORY_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `open' function. */
|
||||||
|
#undef HAVE_OPEN
|
||||||
|
|
||||||
|
/* Define to 1 if your system has a GNU libc compatible `realloc' function,
|
||||||
|
and to 0 otherwise. */
|
||||||
|
#define HAVE_REALLOC 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdint.h> header file. */
|
||||||
|
#define HAVE_STDINT_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||||
|
#define HAVE_STDLIB_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strdup' function. */
|
||||||
|
#undef HAVE_STRNDUP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <stdarg.h> header file. */
|
||||||
|
#define HAVE_STDARG_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strerror' function. */
|
||||||
|
#define HAVE_STRERROR 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <strings.h> header file. */
|
||||||
|
#undef HAVE_STRINGS_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <string.h> header file. */
|
||||||
|
#define HAVE_STRING_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <syslog.h> header file. */
|
||||||
|
#undef HAVE_SYSLOG_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/param.h> header file. */
|
||||||
|
#undef HAVE_SYS_PARAM_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||||
|
#define HAVE_SYS_STAT_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||||
|
#define HAVE_SYS_TYPES_H 1
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <unistd.h> header file. */
|
||||||
|
#undef HAVE_UNISTD_H
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `vprintf' function. */
|
||||||
|
#undef HAVE_VPRINTF
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `vsyslog' function. */
|
||||||
|
#undef HAVE_VSYSLOG
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `strncasecmp' function. */
|
||||||
|
#undef HAVE_STRNCASECMP
|
||||||
|
|
||||||
|
/* Define to 1 if you have the ANSI C header files. */
|
||||||
|
#define STDC_HEADERS 1
|
||||||
1779
config.sub
vendored
Executable file
107
configure.ac
Normal file
@@ -0,0 +1,107 @@
|
|||||||
|
AC_PREREQ(2.52)
|
||||||
|
|
||||||
|
# Process this file with autoconf to produce a configure script.
|
||||||
|
AC_INIT([json-c], 0.12, [json-c@googlegroups.com])
|
||||||
|
|
||||||
|
AM_INIT_AUTOMAKE
|
||||||
|
|
||||||
|
AC_PROG_MAKE_SET
|
||||||
|
|
||||||
|
AC_ARG_ENABLE(rdrand,
|
||||||
|
AS_HELP_STRING([--enable-rdrand],
|
||||||
|
[Enable RDRAND Hardware RNG Hash Seed generation on supported x86/x64 platforms.]),
|
||||||
|
[if test x$enableval = xyes; then
|
||||||
|
enable_rdrand=yes
|
||||||
|
AC_DEFINE(ENABLE_RDRAND, 1, [Enable RDRANR Hardware RNG Hash Seed])
|
||||||
|
fi])
|
||||||
|
|
||||||
|
if test "x$enable_rdrand" = "xyes"; then
|
||||||
|
AC_MSG_RESULT([RDRAND Hardware RNG Hash Seed enabled on supported x86/x64 platforms])
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([RDRAND Hardware RNG Hash Seed disabled. Use --enable-rdrand to enable])
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Checks for programs.
|
||||||
|
|
||||||
|
# Checks for libraries.
|
||||||
|
|
||||||
|
# Checks for header files.
|
||||||
|
AM_PROG_CC_C_O
|
||||||
|
AC_CONFIG_HEADER(config.h)
|
||||||
|
AC_CONFIG_HEADER(json_config.h)
|
||||||
|
AC_HEADER_STDC
|
||||||
|
AC_CHECK_HEADERS(fcntl.h limits.h strings.h syslog.h unistd.h [sys/cdefs.h] [sys/param.h] stdarg.h locale.h endian.h)
|
||||||
|
AC_CHECK_HEADER(inttypes.h,[AC_DEFINE([JSON_C_HAVE_INTTYPES_H],[1],[Public define for json_inttypes.h])])
|
||||||
|
|
||||||
|
# Checks for typedefs, structures, and compiler characteristics.
|
||||||
|
AC_C_CONST
|
||||||
|
AC_TYPE_SIZE_T
|
||||||
|
|
||||||
|
# Checks for library functions.
|
||||||
|
AC_FUNC_VPRINTF
|
||||||
|
AC_FUNC_MEMCMP
|
||||||
|
AC_FUNC_MALLOC
|
||||||
|
AC_FUNC_REALLOC
|
||||||
|
AC_CHECK_FUNCS(strcasecmp strdup strerror snprintf vsnprintf vasprintf open vsyslog strncasecmp setlocale)
|
||||||
|
AC_CHECK_DECLS([INFINITY], [], [], [[#include <math.h>]])
|
||||||
|
AC_CHECK_DECLS([nan], [], [], [[#include <math.h>]])
|
||||||
|
AC_CHECK_DECLS([isnan], [], [], [[#include <math.h>]])
|
||||||
|
AC_CHECK_DECLS([isinf], [], [], [[#include <math.h>]])
|
||||||
|
AC_CHECK_DECLS([_isnan], [], [], [[#include <float.h>]])
|
||||||
|
AC_CHECK_DECLS([_finite], [], [], [[#include <float.h>]])
|
||||||
|
|
||||||
|
#check if .section.gnu.warning accepts long strings (for __warn_references)
|
||||||
|
AC_LANG_PUSH([C])
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([if .gnu.warning accepts long strings])
|
||||||
|
AC_LINK_IFELSE([AC_LANG_SOURCE([[
|
||||||
|
extern void json_object_get();
|
||||||
|
__asm__(".section .gnu.json_object_get,\n\t.ascii \"Please link against libjson-c instead of libjson\"\n\t.text");
|
||||||
|
|
||||||
|
int main(int c,char* v) {return 0;}
|
||||||
|
]])], [
|
||||||
|
AC_DEFINE(HAS_GNU_WARNING_LONG, 1, [Define if .gnu.warning accepts long strings.])
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
], [
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_LANG_POP([C])
|
||||||
|
|
||||||
|
AM_PROG_LIBTOOL
|
||||||
|
|
||||||
|
# Check for the -Bsymbolic-functions linker flag
|
||||||
|
AC_ARG_ENABLE([Bsymbolic],
|
||||||
|
[AS_HELP_STRING([--disable-Bsymbolic], [Avoid linking with -Bsymbolic-function])],
|
||||||
|
[],
|
||||||
|
[enable_Bsymbolic=check])
|
||||||
|
|
||||||
|
AS_IF([test "x$enable_Bsymbolic" = "xcheck"],
|
||||||
|
[
|
||||||
|
saved_LDFLAGS="${LDFLAGS}"
|
||||||
|
AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
|
||||||
|
LDFLAGS=-Wl,-Bsymbolic-functions
|
||||||
|
AC_TRY_LINK([], [int main (void) { return 0; }],
|
||||||
|
[
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
enable_Bsymbolic=yes
|
||||||
|
],
|
||||||
|
[
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
enable_Bsymbolic=no
|
||||||
|
])
|
||||||
|
LDFLAGS="${saved_LDFLAGS}"
|
||||||
|
])
|
||||||
|
|
||||||
|
AS_IF([test "x$enable_Bsymbolic" = "xyes"], [JSON_BSYMBOLIC_LDFLAGS=-Wl[,]-Bsymbolic-functions])
|
||||||
|
AC_SUBST(JSON_BSYMBOLIC_LDFLAGS)
|
||||||
|
|
||||||
|
AC_CONFIG_FILES([
|
||||||
|
Makefile
|
||||||
|
json-c.pc
|
||||||
|
tests/Makefile
|
||||||
|
json-c-uninstalled.pc
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_OUTPUT
|
||||||
|
|
||||||
63
debug.c
@@ -11,17 +11,17 @@
|
|||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#include <stdarg.h>
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <stdarg.h>
|
||||||
|
|
||||||
#if HAVE_SYSLOG_H
|
#if HAVE_SYSLOG_H
|
||||||
#include <syslog.h>
|
# include <syslog.h>
|
||||||
#endif /* HAVE_SYSLOG_H */
|
#endif /* HAVE_SYSLOG_H */
|
||||||
|
|
||||||
#if HAVE_UNISTD_H
|
#if HAVE_UNISTD_H
|
||||||
#include <unistd.h>
|
# include <unistd.h>
|
||||||
#endif /* HAVE_UNISTD_H */
|
#endif /* HAVE_UNISTD_H */
|
||||||
|
|
||||||
#if HAVE_SYS_PARAM_H
|
#if HAVE_SYS_PARAM_H
|
||||||
@@ -33,64 +33,51 @@
|
|||||||
static int _syslog = 0;
|
static int _syslog = 0;
|
||||||
static int _debug = 0;
|
static int _debug = 0;
|
||||||
|
|
||||||
void mc_set_debug(int debug)
|
void mc_set_debug(int debug) { _debug = debug; }
|
||||||
{
|
int mc_get_debug(void) { return _debug; }
|
||||||
_debug = debug;
|
|
||||||
}
|
|
||||||
int mc_get_debug(void)
|
|
||||||
{
|
|
||||||
return _debug;
|
|
||||||
}
|
|
||||||
|
|
||||||
extern void mc_set_syslog(int syslog)
|
extern void mc_set_syslog(int syslog)
|
||||||
{
|
{
|
||||||
_syslog = syslog;
|
_syslog = syslog;
|
||||||
}
|
}
|
||||||
|
|
||||||
void mc_debug(const char *msg, ...)
|
void mc_debug(const char *msg, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
if (_debug)
|
if(_debug) {
|
||||||
{
|
va_start(ap, msg);
|
||||||
va_start(ap, msg);
|
|
||||||
#if HAVE_VSYSLOG
|
#if HAVE_VSYSLOG
|
||||||
if (_syslog)
|
if(_syslog) {
|
||||||
{
|
vsyslog(LOG_DEBUG, msg, ap);
|
||||||
vsyslog(LOG_DEBUG, msg, ap);
|
} else
|
||||||
}
|
|
||||||
else
|
|
||||||
#endif
|
#endif
|
||||||
vprintf(msg, ap);
|
vprintf(msg, ap);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void mc_error(const char *msg, ...)
|
void mc_error(const char *msg, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
va_start(ap, msg);
|
va_start(ap, msg);
|
||||||
#if HAVE_VSYSLOG
|
#if HAVE_VSYSLOG
|
||||||
if (_syslog)
|
if(_syslog) {
|
||||||
{
|
|
||||||
vsyslog(LOG_ERR, msg, ap);
|
vsyslog(LOG_ERR, msg, ap);
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
#endif
|
#endif
|
||||||
vfprintf(stderr, msg, ap);
|
vfprintf(stderr, msg, ap);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
}
|
}
|
||||||
|
|
||||||
void mc_info(const char *msg, ...)
|
void mc_info(const char *msg, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
va_start(ap, msg);
|
va_start(ap, msg);
|
||||||
#if HAVE_VSYSLOG
|
#if HAVE_VSYSLOG
|
||||||
if (_syslog)
|
if(_syslog) {
|
||||||
{
|
|
||||||
vsyslog(LOG_INFO, msg, ap);
|
vsyslog(LOG_INFO, msg, ap);
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
#endif
|
#endif
|
||||||
vfprintf(stderr, msg, ap);
|
vfprintf(stderr, msg, ap);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
}
|
}
|
||||||
|
|||||||
67
debug.h
@@ -10,12 +10,8 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
#ifndef _DEBUG_H_
|
||||||
* @file
|
#define _DEBUG_H_
|
||||||
* @brief Do not use, json-c internal, may be changed or removed at any time.
|
|
||||||
*/
|
|
||||||
#ifndef _JSON_C_DEBUG_H_
|
|
||||||
#define _JSON_C_DEBUG_H_
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
@@ -23,22 +19,14 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef JSON_EXPORT
|
extern void mc_set_debug(int debug);
|
||||||
#if defined(_MSC_VER) && defined(JSON_C_DLL)
|
extern int mc_get_debug(void);
|
||||||
#define JSON_EXPORT __declspec(dllexport)
|
|
||||||
#else
|
|
||||||
#define JSON_EXPORT extern
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
JSON_EXPORT void mc_set_debug(int debug);
|
extern void mc_set_syslog(int syslog);
|
||||||
JSON_EXPORT int mc_get_debug(void);
|
|
||||||
|
|
||||||
JSON_EXPORT void mc_set_syslog(int syslog);
|
extern void mc_debug(const char *msg, ...);
|
||||||
|
extern void mc_error(const char *msg, ...);
|
||||||
JSON_EXPORT void mc_debug(const char *msg, ...);
|
extern void mc_info(const char *msg, ...);
|
||||||
JSON_EXPORT void mc_error(const char *msg, ...);
|
|
||||||
JSON_EXPORT void mc_info(const char *msg, ...);
|
|
||||||
|
|
||||||
#ifndef __STRING
|
#ifndef __STRING
|
||||||
#define __STRING(x) #x
|
#define __STRING(x) #x
|
||||||
@@ -46,24 +34,17 @@ JSON_EXPORT void mc_info(const char *msg, ...);
|
|||||||
|
|
||||||
#ifndef PARSER_BROKEN_FIXED
|
#ifndef PARSER_BROKEN_FIXED
|
||||||
|
|
||||||
#define JASSERT(cond) \
|
#define JASSERT(cond) do {} while(0)
|
||||||
do \
|
|
||||||
{ \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#define JASSERT(cond) \
|
#define JASSERT(cond) do { \
|
||||||
do \
|
if (!(cond)) { \
|
||||||
{ \
|
mc_error("cjson assert failure %s:%d : cond \"" __STRING(cond) "failed\n", __FILE__, __LINE__); \
|
||||||
if (!(cond)) \
|
*(int *)0 = 1;\
|
||||||
{ \
|
abort(); \
|
||||||
mc_error("cjson assert failure %s:%d : cond \"" __STRING(cond) "failed\n", \
|
}\
|
||||||
__FILE__, __LINE__); \
|
} while(0)
|
||||||
*(int *)0 = 1; \
|
|
||||||
abort(); \
|
|
||||||
} \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -76,19 +57,11 @@ JSON_EXPORT void mc_info(const char *msg, ...);
|
|||||||
#define MC_DEBUG(x, ...) mc_debug(x, ##__VA_ARGS__)
|
#define MC_DEBUG(x, ...) mc_debug(x, ##__VA_ARGS__)
|
||||||
#define MC_INFO(x, ...) mc_info(x, ##__VA_ARGS__)
|
#define MC_INFO(x, ...) mc_info(x, ##__VA_ARGS__)
|
||||||
#else
|
#else
|
||||||
#define MC_SET_DEBUG(x) \
|
#define MC_SET_DEBUG(x) if (0) mc_set_debug(x)
|
||||||
if (0) \
|
|
||||||
mc_set_debug(x)
|
|
||||||
#define MC_GET_DEBUG() (0)
|
#define MC_GET_DEBUG() (0)
|
||||||
#define MC_SET_SYSLOG(x) \
|
#define MC_SET_SYSLOG(x) if (0) mc_set_syslog(x)
|
||||||
if (0) \
|
#define MC_DEBUG(x, ...) if (0) mc_debug(x, ##__VA_ARGS__)
|
||||||
mc_set_syslog(x)
|
#define MC_INFO(x, ...) if (0) mc_info(x, ##__VA_ARGS__)
|
||||||
#define MC_DEBUG(x, ...) \
|
|
||||||
if (0) \
|
|
||||||
mc_debug(x, ##__VA_ARGS__)
|
|
||||||
#define MC_INFO(x, ...) \
|
|
||||||
if (0) \
|
|
||||||
mc_info(x, ##__VA_ARGS__)
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
|||||||
791
depcomp
Executable file
@@ -0,0 +1,791 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# depcomp - compile a program generating dependencies as side-effects
|
||||||
|
|
||||||
|
scriptversion=2013-05-30.07; # UTC
|
||||||
|
|
||||||
|
# Copyright (C) 1999-2013 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
|
||||||
|
|
||||||
|
case $1 in
|
||||||
|
'')
|
||||||
|
echo "$0: No command. Try '$0 --help' for more information." 1>&2
|
||||||
|
exit 1;
|
||||||
|
;;
|
||||||
|
-h | --h*)
|
||||||
|
cat <<\EOF
|
||||||
|
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
|
||||||
|
|
||||||
|
Run PROGRAMS ARGS to compile a file, generating dependencies
|
||||||
|
as side-effects.
|
||||||
|
|
||||||
|
Environment variables:
|
||||||
|
depmode Dependency tracking mode.
|
||||||
|
source Source file read by 'PROGRAMS ARGS'.
|
||||||
|
object Object file output by 'PROGRAMS ARGS'.
|
||||||
|
DEPDIR directory where to store dependencies.
|
||||||
|
depfile Dependency file to output.
|
||||||
|
tmpdepfile Temporary file to use when outputting dependencies.
|
||||||
|
libtool Whether libtool is used (yes/no).
|
||||||
|
|
||||||
|
Report bugs to <bug-automake@gnu.org>.
|
||||||
|
EOF
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
-v | --v*)
|
||||||
|
echo "depcomp $scriptversion"
|
||||||
|
exit $?
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Get the directory component of the given path, and save it in the
|
||||||
|
# global variables '$dir'. Note that this directory component will
|
||||||
|
# be either empty or ending with a '/' character. This is deliberate.
|
||||||
|
set_dir_from ()
|
||||||
|
{
|
||||||
|
case $1 in
|
||||||
|
*/*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
|
||||||
|
*) dir=;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get the suffix-stripped basename of the given path, and save it the
|
||||||
|
# global variable '$base'.
|
||||||
|
set_base_from ()
|
||||||
|
{
|
||||||
|
base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
|
||||||
|
}
|
||||||
|
|
||||||
|
# If no dependency file was actually created by the compiler invocation,
|
||||||
|
# we still have to create a dummy depfile, to avoid errors with the
|
||||||
|
# Makefile "include basename.Plo" scheme.
|
||||||
|
make_dummy_depfile ()
|
||||||
|
{
|
||||||
|
echo "#dummy" > "$depfile"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Factor out some common post-processing of the generated depfile.
|
||||||
|
# Requires the auxiliary global variable '$tmpdepfile' to be set.
|
||||||
|
aix_post_process_depfile ()
|
||||||
|
{
|
||||||
|
# If the compiler actually managed to produce a dependency file,
|
||||||
|
# post-process it.
|
||||||
|
if test -f "$tmpdepfile"; then
|
||||||
|
# Each line is of the form 'foo.o: dependency.h'.
|
||||||
|
# Do two passes, one to just change these to
|
||||||
|
# $object: dependency.h
|
||||||
|
# and one to simply output
|
||||||
|
# dependency.h:
|
||||||
|
# which is needed to avoid the deleted-header problem.
|
||||||
|
{ sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
|
||||||
|
sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
|
||||||
|
} > "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
else
|
||||||
|
make_dummy_depfile
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# A tabulation character.
|
||||||
|
tab=' '
|
||||||
|
# A newline character.
|
||||||
|
nl='
|
||||||
|
'
|
||||||
|
# Character ranges might be problematic outside the C locale.
|
||||||
|
# These definitions help.
|
||||||
|
upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
||||||
|
lower=abcdefghijklmnopqrstuvwxyz
|
||||||
|
digits=0123456789
|
||||||
|
alpha=${upper}${lower}
|
||||||
|
|
||||||
|
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
||||||
|
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
|
||||||
|
depfile=${depfile-`echo "$object" |
|
||||||
|
sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
|
||||||
|
tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
||||||
|
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
|
||||||
|
# Avoid interferences from the environment.
|
||||||
|
gccflag= dashmflag=
|
||||||
|
|
||||||
|
# Some modes work just like other modes, but use different flags. We
|
||||||
|
# parameterize here, but still list the modes in the big case below,
|
||||||
|
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
||||||
|
# here, because this file can only contain one case statement.
|
||||||
|
if test "$depmode" = hp; then
|
||||||
|
# HP compiler uses -M and no extra arg.
|
||||||
|
gccflag=-M
|
||||||
|
depmode=gcc
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$depmode" = dashXmstdout; then
|
||||||
|
# This is just like dashmstdout with a different argument.
|
||||||
|
dashmflag=-xM
|
||||||
|
depmode=dashmstdout
|
||||||
|
fi
|
||||||
|
|
||||||
|
cygpath_u="cygpath -u -f -"
|
||||||
|
if test "$depmode" = msvcmsys; then
|
||||||
|
# This is just like msvisualcpp but w/o cygpath translation.
|
||||||
|
# Just convert the backslash-escaped backslashes to single forward
|
||||||
|
# slashes to satisfy depend.m4
|
||||||
|
cygpath_u='sed s,\\\\,/,g'
|
||||||
|
depmode=msvisualcpp
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$depmode" = msvc7msys; then
|
||||||
|
# This is just like msvc7 but w/o cygpath translation.
|
||||||
|
# Just convert the backslash-escaped backslashes to single forward
|
||||||
|
# slashes to satisfy depend.m4
|
||||||
|
cygpath_u='sed s,\\\\,/,g'
|
||||||
|
depmode=msvc7
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "$depmode" = xlc; then
|
||||||
|
# IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
|
||||||
|
gccflag=-qmakedep=gcc,-MF
|
||||||
|
depmode=gcc
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$depmode" in
|
||||||
|
gcc3)
|
||||||
|
## gcc 3 implements dependency tracking that does exactly what
|
||||||
|
## we want. Yay! Note: for some reason libtool 1.4 doesn't like
|
||||||
|
## it if -MD -MP comes after the -MF stuff. Hmm.
|
||||||
|
## Unfortunately, FreeBSD c89 acceptance of flags depends upon
|
||||||
|
## the command line argument order; so add the flags where they
|
||||||
|
## appear in depend2.am. Note that the slowdown incurred here
|
||||||
|
## affects only configure: in makefiles, %FASTDEP% shortcuts this.
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
|
||||||
|
*) set fnord "$@" "$arg" ;;
|
||||||
|
esac
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
done
|
||||||
|
"$@"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
mv "$tmpdepfile" "$depfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
gcc)
|
||||||
|
## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
|
||||||
|
## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
|
||||||
|
## (see the conditional assignment to $gccflag above).
|
||||||
|
## There are various ways to get dependency output from gcc. Here's
|
||||||
|
## why we pick this rather obscure method:
|
||||||
|
## - Don't want to use -MD because we'd like the dependencies to end
|
||||||
|
## up in a subdir. Having to rename by hand is ugly.
|
||||||
|
## (We might end up doing this anyway to support other compilers.)
|
||||||
|
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
||||||
|
## -MM, not -M (despite what the docs say). Also, it might not be
|
||||||
|
## supported by the other compilers which use the 'gcc' depmode.
|
||||||
|
## - Using -M directly means running the compiler twice (even worse
|
||||||
|
## than renaming).
|
||||||
|
if test -z "$gccflag"; then
|
||||||
|
gccflag=-MD,
|
||||||
|
fi
|
||||||
|
"$@" -Wp,"$gccflag$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
# The second -e expression handles DOS-style file names with drive
|
||||||
|
# letters.
|
||||||
|
sed -e 's/^[^:]*: / /' \
|
||||||
|
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
||||||
|
## This next piece of magic avoids the "deleted header file" problem.
|
||||||
|
## The problem is that when a header file which appears in a .P file
|
||||||
|
## is deleted, the dependency causes make to die (because there is
|
||||||
|
## typically no way to rebuild the header). We avoid this by adding
|
||||||
|
## dummy dependencies for each header file. Too bad gcc doesn't do
|
||||||
|
## this for us directly.
|
||||||
|
## Some versions of gcc put a space before the ':'. On the theory
|
||||||
|
## that the space means something, we add a space to the output as
|
||||||
|
## well. hp depmode also adds that space, but also prefixes the VPATH
|
||||||
|
## to the object. Take care to not repeat it in the output.
|
||||||
|
## Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
## correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
tr ' ' "$nl" < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
|
||||||
|
| sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
hp)
|
||||||
|
# This case exists only to let depend.m4 do its work. It works by
|
||||||
|
# looking at the text of this script. This case will never be run,
|
||||||
|
# since it is checked for above.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
sgi)
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
"$@" "-Wp,-MDupdate,$tmpdepfile"
|
||||||
|
else
|
||||||
|
"$@" -MDupdate "$tmpdepfile"
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
|
||||||
|
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
# Clip off the initial element (the dependent). Don't try to be
|
||||||
|
# clever and replace this with sed code, as IRIX sed won't handle
|
||||||
|
# lines with more than a fixed number of characters (4096 in
|
||||||
|
# IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
|
||||||
|
# the IRIX cc adds comments like '#:fec' to the end of the
|
||||||
|
# dependency line.
|
||||||
|
tr ' ' "$nl" < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
|
||||||
|
| tr "$nl" ' ' >> "$depfile"
|
||||||
|
echo >> "$depfile"
|
||||||
|
# The second pass generates a dummy entry for each header file.
|
||||||
|
tr ' ' "$nl" < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
||||||
|
>> "$depfile"
|
||||||
|
else
|
||||||
|
make_dummy_depfile
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
xlc)
|
||||||
|
# This case exists only to let depend.m4 do its work. It works by
|
||||||
|
# looking at the text of this script. This case will never be run,
|
||||||
|
# since it is checked for above.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
aix)
|
||||||
|
# The C for AIX Compiler uses -M and outputs the dependencies
|
||||||
|
# in a .u file. In older versions, this file always lives in the
|
||||||
|
# current directory. Also, the AIX compiler puts '$object:' at the
|
||||||
|
# start of each line; $object doesn't have directory information.
|
||||||
|
# Version 6 uses the directory in both cases.
|
||||||
|
set_dir_from "$object"
|
||||||
|
set_base_from "$object"
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
tmpdepfile1=$dir$base.u
|
||||||
|
tmpdepfile2=$base.u
|
||||||
|
tmpdepfile3=$dir.libs/$base.u
|
||||||
|
"$@" -Wc,-M
|
||||||
|
else
|
||||||
|
tmpdepfile1=$dir$base.u
|
||||||
|
tmpdepfile2=$dir$base.u
|
||||||
|
tmpdepfile3=$dir$base.u
|
||||||
|
"$@" -M
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||||
|
do
|
||||||
|
test -f "$tmpdepfile" && break
|
||||||
|
done
|
||||||
|
aix_post_process_depfile
|
||||||
|
;;
|
||||||
|
|
||||||
|
tcc)
|
||||||
|
# tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
|
||||||
|
# FIXME: That version still under development at the moment of writing.
|
||||||
|
# Make that this statement remains true also for stable, released
|
||||||
|
# versions.
|
||||||
|
# It will wrap lines (doesn't matter whether long or short) with a
|
||||||
|
# trailing '\', as in:
|
||||||
|
#
|
||||||
|
# foo.o : \
|
||||||
|
# foo.c \
|
||||||
|
# foo.h \
|
||||||
|
#
|
||||||
|
# It will put a trailing '\' even on the last line, and will use leading
|
||||||
|
# spaces rather than leading tabs (at least since its commit 0394caf7
|
||||||
|
# "Emit spaces for -MD").
|
||||||
|
"$@" -MD -MF "$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
# Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
|
||||||
|
# We have to change lines of the first kind to '$object: \'.
|
||||||
|
sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
|
||||||
|
# And for each line of the second kind, we have to emit a 'dep.h:'
|
||||||
|
# dummy dependency, to avoid the deleted-header problem.
|
||||||
|
sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
## The order of this option in the case statement is important, since the
|
||||||
|
## shell code in configure will try each of these formats in the order
|
||||||
|
## listed in this file. A plain '-MD' option would be understood by many
|
||||||
|
## compilers, so we must ensure this comes after the gcc and icc options.
|
||||||
|
pgcc)
|
||||||
|
# Portland's C compiler understands '-MD'.
|
||||||
|
# Will always output deps to 'file.d' where file is the root name of the
|
||||||
|
# source file under compilation, even if file resides in a subdirectory.
|
||||||
|
# The object file name does not affect the name of the '.d' file.
|
||||||
|
# pgcc 10.2 will output
|
||||||
|
# foo.o: sub/foo.c sub/foo.h
|
||||||
|
# and will wrap long lines using '\' :
|
||||||
|
# foo.o: sub/foo.c ... \
|
||||||
|
# sub/foo.h ... \
|
||||||
|
# ...
|
||||||
|
set_dir_from "$object"
|
||||||
|
# Use the source, not the object, to determine the base name, since
|
||||||
|
# that's sadly what pgcc will do too.
|
||||||
|
set_base_from "$source"
|
||||||
|
tmpdepfile=$base.d
|
||||||
|
|
||||||
|
# For projects that build the same source file twice into different object
|
||||||
|
# files, the pgcc approach of using the *source* file root name can cause
|
||||||
|
# problems in parallel builds. Use a locking strategy to avoid stomping on
|
||||||
|
# the same $tmpdepfile.
|
||||||
|
lockdir=$base.d-lock
|
||||||
|
trap "
|
||||||
|
echo '$0: caught signal, cleaning up...' >&2
|
||||||
|
rmdir '$lockdir'
|
||||||
|
exit 1
|
||||||
|
" 1 2 13 15
|
||||||
|
numtries=100
|
||||||
|
i=$numtries
|
||||||
|
while test $i -gt 0; do
|
||||||
|
# mkdir is a portable test-and-set.
|
||||||
|
if mkdir "$lockdir" 2>/dev/null; then
|
||||||
|
# This process acquired the lock.
|
||||||
|
"$@" -MD
|
||||||
|
stat=$?
|
||||||
|
# Release the lock.
|
||||||
|
rmdir "$lockdir"
|
||||||
|
break
|
||||||
|
else
|
||||||
|
# If the lock is being held by a different process, wait
|
||||||
|
# until the winning process is done or we timeout.
|
||||||
|
while test -d "$lockdir" && test $i -gt 0; do
|
||||||
|
sleep 1
|
||||||
|
i=`expr $i - 1`
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
i=`expr $i - 1`
|
||||||
|
done
|
||||||
|
trap - 1 2 13 15
|
||||||
|
if test $i -le 0; then
|
||||||
|
echo "$0: failed to acquire lock after $numtries attempts" >&2
|
||||||
|
echo "$0: check lockdir '$lockdir'" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
# Each line is of the form `foo.o: dependent.h',
|
||||||
|
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
|
||||||
|
# Do two passes, one to just change these to
|
||||||
|
# `$object: dependent.h' and one to simply `dependent.h:'.
|
||||||
|
sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
|
||||||
|
# Some versions of the HPUX 10.20 sed can't process this invocation
|
||||||
|
# correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
|
||||||
|
| sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
hp2)
|
||||||
|
# The "hp" stanza above does not work with aCC (C++) and HP's ia64
|
||||||
|
# compilers, which have integrated preprocessors. The correct option
|
||||||
|
# to use with these is +Maked; it writes dependencies to a file named
|
||||||
|
# 'foo.d', which lands next to the object file, wherever that
|
||||||
|
# happens to be.
|
||||||
|
# Much of this is similar to the tru64 case; see comments there.
|
||||||
|
set_dir_from "$object"
|
||||||
|
set_base_from "$object"
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
tmpdepfile1=$dir$base.d
|
||||||
|
tmpdepfile2=$dir.libs/$base.d
|
||||||
|
"$@" -Wc,+Maked
|
||||||
|
else
|
||||||
|
tmpdepfile1=$dir$base.d
|
||||||
|
tmpdepfile2=$dir$base.d
|
||||||
|
"$@" +Maked
|
||||||
|
fi
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
|
||||||
|
do
|
||||||
|
test -f "$tmpdepfile" && break
|
||||||
|
done
|
||||||
|
if test -f "$tmpdepfile"; then
|
||||||
|
sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
|
||||||
|
# Add 'dependent.h:' lines.
|
||||||
|
sed -ne '2,${
|
||||||
|
s/^ *//
|
||||||
|
s/ \\*$//
|
||||||
|
s/$/:/
|
||||||
|
p
|
||||||
|
}' "$tmpdepfile" >> "$depfile"
|
||||||
|
else
|
||||||
|
make_dummy_depfile
|
||||||
|
fi
|
||||||
|
rm -f "$tmpdepfile" "$tmpdepfile2"
|
||||||
|
;;
|
||||||
|
|
||||||
|
tru64)
|
||||||
|
# The Tru64 compiler uses -MD to generate dependencies as a side
|
||||||
|
# effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
|
||||||
|
# At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
|
||||||
|
# dependencies in 'foo.d' instead, so we check for that too.
|
||||||
|
# Subdirectories are respected.
|
||||||
|
set_dir_from "$object"
|
||||||
|
set_base_from "$object"
|
||||||
|
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
# Libtool generates 2 separate objects for the 2 libraries. These
|
||||||
|
# two compilations output dependencies in $dir.libs/$base.o.d and
|
||||||
|
# in $dir$base.o.d. We have to check for both files, because
|
||||||
|
# one of the two compilations can be disabled. We should prefer
|
||||||
|
# $dir$base.o.d over $dir.libs/$base.o.d because the latter is
|
||||||
|
# automatically cleaned when .libs/ is deleted, while ignoring
|
||||||
|
# the former would cause a distcleancheck panic.
|
||||||
|
tmpdepfile1=$dir$base.o.d # libtool 1.5
|
||||||
|
tmpdepfile2=$dir.libs/$base.o.d # Likewise.
|
||||||
|
tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
|
||||||
|
"$@" -Wc,-MD
|
||||||
|
else
|
||||||
|
tmpdepfile1=$dir$base.d
|
||||||
|
tmpdepfile2=$dir$base.d
|
||||||
|
tmpdepfile3=$dir$base.d
|
||||||
|
"$@" -MD
|
||||||
|
fi
|
||||||
|
|
||||||
|
stat=$?
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
|
||||||
|
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
||||||
|
do
|
||||||
|
test -f "$tmpdepfile" && break
|
||||||
|
done
|
||||||
|
# Same post-processing that is required for AIX mode.
|
||||||
|
aix_post_process_depfile
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvc7)
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
showIncludes=-Wc,-showIncludes
|
||||||
|
else
|
||||||
|
showIncludes=-showIncludes
|
||||||
|
fi
|
||||||
|
"$@" $showIncludes > "$tmpdepfile"
|
||||||
|
stat=$?
|
||||||
|
grep -v '^Note: including file: ' "$tmpdepfile"
|
||||||
|
if test $stat -ne 0; then
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
exit $stat
|
||||||
|
fi
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
# The first sed program below extracts the file names and escapes
|
||||||
|
# backslashes for cygpath. The second sed program outputs the file
|
||||||
|
# name when reading, but also accumulates all include files in the
|
||||||
|
# hold buffer in order to output them again at the end. This only
|
||||||
|
# works with sed implementations that can handle large buffers.
|
||||||
|
sed < "$tmpdepfile" -n '
|
||||||
|
/^Note: including file: *\(.*\)/ {
|
||||||
|
s//\1/
|
||||||
|
s/\\/\\\\/g
|
||||||
|
p
|
||||||
|
}' | $cygpath_u | sort -u | sed -n '
|
||||||
|
s/ /\\ /g
|
||||||
|
s/\(.*\)/'"$tab"'\1 \\/p
|
||||||
|
s/.\(.*\) \\/\1:/
|
||||||
|
H
|
||||||
|
$ {
|
||||||
|
s/.*/'"$tab"'/
|
||||||
|
G
|
||||||
|
p
|
||||||
|
}' >> "$depfile"
|
||||||
|
echo >> "$depfile" # make sure the fragment doesn't end with a backslash
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvc7msys)
|
||||||
|
# This case exists only to let depend.m4 do its work. It works by
|
||||||
|
# looking at the text of this script. This case will never be run,
|
||||||
|
# since it is checked for above.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
#nosideeffect)
|
||||||
|
# This comment above is used by automake to tell side-effect
|
||||||
|
# dependency tracking mechanisms from slower ones.
|
||||||
|
|
||||||
|
dashmstdout)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout, regardless of -o.
|
||||||
|
"$@" || exit $?
|
||||||
|
|
||||||
|
# Remove the call to Libtool.
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test "X$1" != 'X--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove '-o $object'.
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-o)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
$object)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
test -z "$dashmflag" && dashmflag=-M
|
||||||
|
# Require at least two characters before searching for ':'
|
||||||
|
# in the target name. This is to cope with DOS-style filenames:
|
||||||
|
# a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
|
||||||
|
"$@" $dashmflag |
|
||||||
|
sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
cat < "$tmpdepfile" > "$depfile"
|
||||||
|
# Some versions of the HPUX 10.20 sed can't process this sed invocation
|
||||||
|
# correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
tr ' ' "$nl" < "$tmpdepfile" \
|
||||||
|
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
|
||||||
|
| sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
dashXmstdout)
|
||||||
|
# This case only exists to satisfy depend.m4. It is never actually
|
||||||
|
# run, as this mode is specially recognized in the preamble.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
makedepend)
|
||||||
|
"$@" || exit $?
|
||||||
|
# Remove any Libtool call
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test "X$1" != 'X--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
# X makedepend
|
||||||
|
shift
|
||||||
|
cleared=no eat=no
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $cleared in
|
||||||
|
no)
|
||||||
|
set ""; shift
|
||||||
|
cleared=yes ;;
|
||||||
|
esac
|
||||||
|
if test $eat = yes; then
|
||||||
|
eat=no
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
case "$arg" in
|
||||||
|
-D*|-I*)
|
||||||
|
set fnord "$@" "$arg"; shift ;;
|
||||||
|
# Strip any option that makedepend may not understand. Remove
|
||||||
|
# the object too, otherwise makedepend will parse it as a source file.
|
||||||
|
-arch)
|
||||||
|
eat=yes ;;
|
||||||
|
-*|$object)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"; shift ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
obj_suffix=`echo "$object" | sed 's/^.*\././'`
|
||||||
|
touch "$tmpdepfile"
|
||||||
|
${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
|
||||||
|
rm -f "$depfile"
|
||||||
|
# makedepend may prepend the VPATH from the source file name to the object.
|
||||||
|
# No need to regex-escape $object, excess matching of '.' is harmless.
|
||||||
|
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
|
||||||
|
# Some versions of the HPUX 10.20 sed can't process the last invocation
|
||||||
|
# correctly. Breaking it into two sed invocations is a workaround.
|
||||||
|
sed '1,2d' "$tmpdepfile" \
|
||||||
|
| tr ' ' "$nl" \
|
||||||
|
| sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
|
||||||
|
| sed -e 's/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
||||||
|
;;
|
||||||
|
|
||||||
|
cpp)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout.
|
||||||
|
"$@" || exit $?
|
||||||
|
|
||||||
|
# Remove the call to Libtool.
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test "X$1" != 'X--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Remove '-o $object'.
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
-o)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
$object)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift # fnord
|
||||||
|
shift # $arg
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
"$@" -E \
|
||||||
|
| sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||||
|
-e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
||||||
|
| sed '$ s: \\$::' > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
cat < "$tmpdepfile" >> "$depfile"
|
||||||
|
sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvisualcpp)
|
||||||
|
# Important note: in order to support this mode, a compiler *must*
|
||||||
|
# always write the preprocessed file to stdout.
|
||||||
|
"$@" || exit $?
|
||||||
|
|
||||||
|
# Remove the call to Libtool.
|
||||||
|
if test "$libtool" = yes; then
|
||||||
|
while test "X$1" != 'X--mode=compile'; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
|
IFS=" "
|
||||||
|
for arg
|
||||||
|
do
|
||||||
|
case "$arg" in
|
||||||
|
-o)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
$object)
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
||||||
|
set fnord "$@"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
set fnord "$@" "$arg"
|
||||||
|
shift
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
"$@" -E 2>/dev/null |
|
||||||
|
sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
|
||||||
|
rm -f "$depfile"
|
||||||
|
echo "$object : \\" > "$depfile"
|
||||||
|
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
|
||||||
|
echo "$tab" >> "$depfile"
|
||||||
|
sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
|
||||||
|
rm -f "$tmpdepfile"
|
||||||
|
;;
|
||||||
|
|
||||||
|
msvcmsys)
|
||||||
|
# This case exists only to let depend.m4 do its work. It works by
|
||||||
|
# looking at the text of this script. This case will never be run,
|
||||||
|
# since it is checked for above.
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
|
||||||
|
none)
|
||||||
|
exec "$@"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "Unknown depmode $depmode" 1>&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: shell-script
|
||||||
|
# sh-indentation: 2
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-time-zone: "UTC"
|
||||||
|
# time-stamp-end: "; # UTC"
|
||||||
|
# End:
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
# generate doxygen documentation for json-c API
|
|
||||||
|
|
||||||
find_package(Doxygen)
|
|
||||||
|
|
||||||
if (DOXYGEN_FOUND)
|
|
||||||
|
|
||||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
|
|
||||||
message(STATUS "Wrote ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile")
|
|
||||||
|
|
||||||
add_custom_target(doc
|
|
||||||
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
|
|
||||||
|
|
||||||
else (DOXYGEN_FOUND)
|
|
||||||
message("Warning: doxygen not found, the 'doc' target will not be included")
|
|
||||||
endif(DOXYGEN_FOUND)
|
|
||||||
2366
doc/Doxyfile.in
@@ -1,6 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# Doxygen markdown doesn't support triple-backticks like github does.
|
|
||||||
# Convert all of those to space-prefixed blocks instead.
|
|
||||||
#
|
|
||||||
awk '/```/ { prefix=!prefix; print ""; next; } { if (prefix) { printf " "; } print $0; } ' "$@"
|
|
||||||
72
doc/html/annotated.html
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Data Structures</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">Data Structures</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
|
||||||
|
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
|
||||||
|
<tr id="row_0_" class="even"><td class="entry"><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>
|
||||||
|
<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>
|
||||||
|
<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>
|
||||||
|
<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>
|
||||||
|
<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>
|
||||||
|
<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>
|
||||||
|
<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>
|
||||||
|
<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>
|
||||||
|
<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>
|
||||||
|
<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>
|
||||||
|
</table>
|
||||||
|
</div><!-- directory -->
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 07:37:13 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
281
doc/html/arraylist_8h.html
Normal file
@@ -0,0 +1,281 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: arraylist.h File Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li><a href="globals.html"><span>Globals</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#nested-classes">Data Structures</a> |
|
||||||
|
<a href="#define-members">Macros</a> |
|
||||||
|
<a href="#typedef-members">Typedefs</a> |
|
||||||
|
<a href="#func-members">Functions</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">arraylist.h File Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
||||||
|
Data Structures</h2></td></tr>
|
||||||
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structarray__list.html">array_list</a></td></tr>
|
||||||
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table><table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
|
||||||
|
Macros</h2></td></tr>
|
||||||
|
<tr class="memitem:acd30d910b398421574eb1f59e78617f5"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="arraylist_8h.html#acd30d910b398421574eb1f59e78617f5">ARRAY_LIST_DEFAULT_SIZE</a>   32</td></tr>
|
||||||
|
<tr class="separator:acd30d910b398421574eb1f59e78617f5"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table><table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
|
||||||
|
Typedefs</h2></td></tr>
|
||||||
|
<tr class="memitem:aad83e4ed3c8ea274e6f18459276d774b"><td class="memItemLeft" align="right" valign="top">typedef void( </td><td class="memItemRight" valign="bottom"><a class="el" href="arraylist_8h.html#aad83e4ed3c8ea274e6f18459276d774b">array_list_free_fn</a> )(void *data)</td></tr>
|
||||||
|
<tr class="separator:aad83e4ed3c8ea274e6f18459276d774b"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table><table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||||
|
Functions</h2></td></tr>
|
||||||
|
<tr class="memitem:a0d4bfac055dfd98e17296142abf4d894"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structarray__list.html">array_list</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="arraylist_8h.html#a0d4bfac055dfd98e17296142abf4d894">array_list_new</a> (<a class="el" href="arraylist_8h.html#aad83e4ed3c8ea274e6f18459276d774b">array_list_free_fn</a> *free_fn)</td></tr>
|
||||||
|
<tr class="separator:a0d4bfac055dfd98e17296142abf4d894"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:acd00fb70f7ca82f23b48b812c3498f67"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="arraylist_8h.html#acd00fb70f7ca82f23b48b812c3498f67">array_list_free</a> (struct <a class="el" href="structarray__list.html">array_list</a> *al)</td></tr>
|
||||||
|
<tr class="separator:acd00fb70f7ca82f23b48b812c3498f67"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:aa16207e545b6c1265299abcfa418dc2b"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="arraylist_8h.html#aa16207e545b6c1265299abcfa418dc2b">array_list_get_idx</a> (struct <a class="el" href="structarray__list.html">array_list</a> *al, int i)</td></tr>
|
||||||
|
<tr class="separator:aa16207e545b6c1265299abcfa418dc2b"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a21b8e4c59e52fbc5a9a5a098e3f96e76"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="arraylist_8h.html#a21b8e4c59e52fbc5a9a5a098e3f96e76">array_list_put_idx</a> (struct <a class="el" href="structarray__list.html">array_list</a> *al, int i, void *data)</td></tr>
|
||||||
|
<tr class="separator:a21b8e4c59e52fbc5a9a5a098e3f96e76"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a6e995608aa464244ff3184fb43574dc8"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="arraylist_8h.html#a6e995608aa464244ff3184fb43574dc8">array_list_add</a> (struct <a class="el" href="structarray__list.html">array_list</a> *al, void *data)</td></tr>
|
||||||
|
<tr class="separator:a6e995608aa464244ff3184fb43574dc8"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:aa8393b4aa3dc447660371530439ab70f"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="arraylist_8h.html#aa8393b4aa3dc447660371530439ab70f">array_list_length</a> (struct <a class="el" href="structarray__list.html">array_list</a> *al)</td></tr>
|
||||||
|
<tr class="separator:aa8393b4aa3dc447660371530439ab70f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:afb67cc8e2e5c9be41c3e644536079169"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="arraylist_8h.html#afb67cc8e2e5c9be41c3e644536079169">array_list_sort</a> (struct <a class="el" href="structarray__list.html">array_list</a> *arr, int(*compar)(const void *, const void *))</td></tr>
|
||||||
|
<tr class="separator:afb67cc8e2e5c9be41c3e644536079169"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
<h2 class="groupheader">Macro Definition Documentation</h2>
|
||||||
|
<a class="anchor" id="acd30d910b398421574eb1f59e78617f5"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">#define ARRAY_LIST_DEFAULT_SIZE   32</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<h2 class="groupheader">Typedef Documentation</h2>
|
||||||
|
<a class="anchor" id="aad83e4ed3c8ea274e6f18459276d774b"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">typedef void( array_list_free_fn)(void *data)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<h2 class="groupheader">Function Documentation</h2>
|
||||||
|
<a class="anchor" id="a6e995608aa464244ff3184fb43574dc8"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int array_list_add </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">struct <a class="el" href="structarray__list.html">array_list</a> * </td>
|
||||||
|
<td class="paramname"><em>al</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">void * </td>
|
||||||
|
<td class="paramname"><em>data</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="acd00fb70f7ca82f23b48b812c3498f67"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void array_list_free </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">struct <a class="el" href="structarray__list.html">array_list</a> * </td>
|
||||||
|
<td class="paramname"><em>al</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="aa16207e545b6c1265299abcfa418dc2b"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void* array_list_get_idx </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">struct <a class="el" href="structarray__list.html">array_list</a> * </td>
|
||||||
|
<td class="paramname"><em>al</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">int </td>
|
||||||
|
<td class="paramname"><em>i</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="aa8393b4aa3dc447660371530439ab70f"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int array_list_length </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">struct <a class="el" href="structarray__list.html">array_list</a> * </td>
|
||||||
|
<td class="paramname"><em>al</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a0d4bfac055dfd98e17296142abf4d894"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">struct <a class="el" href="structarray__list.html">array_list</a>* array_list_new </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"><a class="el" href="arraylist_8h.html#aad83e4ed3c8ea274e6f18459276d774b">array_list_free_fn</a> * </td>
|
||||||
|
<td class="paramname"><em>free_fn</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a21b8e4c59e52fbc5a9a5a098e3f96e76"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int array_list_put_idx </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">struct <a class="el" href="structarray__list.html">array_list</a> * </td>
|
||||||
|
<td class="paramname"><em>al</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">int </td>
|
||||||
|
<td class="paramname"><em>i</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">void * </td>
|
||||||
|
<td class="paramname"><em>data</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="afb67cc8e2e5c9be41c3e644536079169"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void array_list_sort </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">struct <a class="el" href="structarray__list.html">array_list</a> * </td>
|
||||||
|
<td class="paramname"><em>arr</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype">int(*)(const void *, const void *) </td>
|
||||||
|
<td class="paramname"><em>compar</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 21:25:13 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
BIN
doc/html/bc_s.png
Normal file
|
After Width: | Height: | Size: 676 B |
BIN
doc/html/bdwn.png
Normal file
|
After Width: | Height: | Size: 147 B |
193
doc/html/bits_8h.html
Normal file
@@ -0,0 +1,193 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: bits.h File Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li><a href="globals.html"><span>Globals</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#define-members">Macros</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">bits.h File Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
|
||||||
|
Macros</h2></td></tr>
|
||||||
|
<tr class="memitem:a3dde282dc23d0eaa3c4840df8dc262d4"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="bits_8h.html#a3dde282dc23d0eaa3c4840df8dc262d4">json_min</a>(a, b)   ((a) < (b) ? (a) : (b))</td></tr>
|
||||||
|
<tr class="separator:a3dde282dc23d0eaa3c4840df8dc262d4"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a57d63d199d4b9ea40359253618951300"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="bits_8h.html#a57d63d199d4b9ea40359253618951300">json_max</a>(a, b)   ((a) > (b) ? (a) : (b))</td></tr>
|
||||||
|
<tr class="separator:a57d63d199d4b9ea40359253618951300"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a1cf38b22d3a118ad48d9282c32c048aa"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="bits_8h.html#a1cf38b22d3a118ad48d9282c32c048aa">hexdigit</a>(x)   (((x) <= '9') ? (x) - '0' : ((x) & 7) + 9)</td></tr>
|
||||||
|
<tr class="separator:a1cf38b22d3a118ad48d9282c32c048aa"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a863a898e607f8c2ff87b7052e326740f"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="bits_8h.html#a863a898e607f8c2ff87b7052e326740f">error_ptr</a>(error)   ((void*)error)</td></tr>
|
||||||
|
<tr class="separator:a863a898e607f8c2ff87b7052e326740f"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a45afe86501cd57ee2beeef9d67a4d40c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="bits_8h.html#a45afe86501cd57ee2beeef9d67a4d40c">error_description</a>(error)   (json_tokener_errors[error])</td></tr>
|
||||||
|
<tr class="separator:a45afe86501cd57ee2beeef9d67a4d40c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a4a887e5fb7cde221bcab9c6f39d93fc1"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="bits_8h.html#a4a887e5fb7cde221bcab9c6f39d93fc1">is_error</a>(ptr)   (ptr == NULL)</td></tr>
|
||||||
|
<tr class="separator:a4a887e5fb7cde221bcab9c6f39d93fc1"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
<h2 class="groupheader">Macro Definition Documentation</h2>
|
||||||
|
<a class="anchor" id="a45afe86501cd57ee2beeef9d67a4d40c"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">#define error_description</td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname">error</td><td>)</td>
|
||||||
|
<td>   (json_tokener_errors[error])</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a863a898e607f8c2ff87b7052e326740f"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">#define error_ptr</td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname">error</td><td>)</td>
|
||||||
|
<td>   ((void*)error)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a1cf38b22d3a118ad48d9282c32c048aa"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">#define hexdigit</td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname">x</td><td>)</td>
|
||||||
|
<td>   (((x) <= '9') ? (x) - '0' : ((x) & 7) + 9)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a4a887e5fb7cde221bcab9c6f39d93fc1"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">#define is_error</td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname">ptr</td><td>)</td>
|
||||||
|
<td>   (ptr == NULL)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a57d63d199d4b9ea40359253618951300"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">#define json_max</td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname">a, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname">b </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td>   ((a) > (b) ? (a) : (b))</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a3dde282dc23d0eaa3c4840df8dc262d4"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">#define json_min</td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname">a, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname">b </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td>   ((a) < (b) ? (a) : (b))</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 13:20:57 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
74
doc/html/classes.html
Normal file
@@ -0,0 +1,74 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Data Structure Index</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Data Fields</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">Data Structure Index</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="qindex"><a class="qindex" href="#letter_A">A</a> | <a class="qindex" href="#letter_D">D</a> | <a class="qindex" href="#letter_J">J</a> | <a class="qindex" href="#letter_L">L</a> | <a class="qindex" href="#letter_P">P</a></div>
|
||||||
|
<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
|
||||||
|
<tr><td rowspan="2" valign="bottom"><a name="letter_A"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  A  </div></td></tr></table>
|
||||||
|
</td><td rowspan="2" valign="bottom"><a name="letter_J"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  J  </div></td></tr></table>
|
||||||
|
</td><td valign="top"><a class="el" href="structjson__object__iterator.html">json_object_iterator</a>   </td><td valign="top"><a class="el" href="structlh__table.html">lh_table</a>   </td><td></td></tr>
|
||||||
|
<tr><td valign="top"><a class="el" href="structjson__tokener.html">json_tokener</a>   </td><td rowspan="2" valign="bottom"><a name="letter_P"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  P  </div></td></tr></table>
|
||||||
|
</td><td></td></tr>
|
||||||
|
<tr><td valign="top"><a class="el" href="structarray__list.html">array_list</a>   </td><td valign="top"><a class="el" href="structjson__object.html">json_object</a>   </td><td valign="top"><a class="el" href="structjson__tokener__srec.html">json_tokener_srec</a>   </td><td></td></tr>
|
||||||
|
<tr><td rowspan="2" valign="bottom"><a name="letter_D"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  D  </div></td></tr></table>
|
||||||
|
</td><td valign="top"><a class="el" href="structjson__object__iter.html">json_object_iter</a>   </td><td rowspan="2" valign="bottom"><a name="letter_L"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">  L  </div></td></tr></table>
|
||||||
|
</td><td valign="top"><a class="el" href="structprintbuf.html">printbuf</a>   </td><td></td></tr>
|
||||||
|
<tr><td></td><td></td><td></td></tr>
|
||||||
|
<tr><td valign="top"><a class="el" href="unionjson__object_1_1data.html">json_object::data</a>   </td><td></td><td valign="top"><a class="el" href="structlh__entry.html">lh_entry</a>   </td><td></td><td></td></tr>
|
||||||
|
<tr><td></td><td></td><td></td><td></td><td></td></tr>
|
||||||
|
</table>
|
||||||
|
<div class="qindex"><a class="qindex" href="#letter_A">A</a> | <a class="qindex" href="#letter_D">D</a> | <a class="qindex" href="#letter_J">J</a> | <a class="qindex" href="#letter_L">L</a> | <a class="qindex" href="#letter_P">P</a></div>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 18:55:53 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
BIN
doc/html/closed.png
Normal file
|
After Width: | Height: | Size: 132 B |
381
doc/html/debug_8h.html
Normal file
@@ -0,0 +1,381 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: debug.h File Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li><a href="globals.html"><span>Globals</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#define-members">Macros</a> |
|
||||||
|
<a href="#func-members">Functions</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">debug.h File Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
|
||||||
|
Macros</h2></td></tr>
|
||||||
|
<tr class="memitem:a375c4dc9f0fb338999de81aab826f9d6"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a375c4dc9f0fb338999de81aab826f9d6">__STRING</a>(x)   #x</td></tr>
|
||||||
|
<tr class="separator:a375c4dc9f0fb338999de81aab826f9d6"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a8ca29550d5b1b73948f4a7bce53f2385"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a8ca29550d5b1b73948f4a7bce53f2385">JASSERT</a>(cond)   do {} while(0)</td></tr>
|
||||||
|
<tr class="separator:a8ca29550d5b1b73948f4a7bce53f2385"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a11ba39cecbe449af5b86fa2f78e9da9d"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a11ba39cecbe449af5b86fa2f78e9da9d">MC_ERROR</a>(x,...)   <a class="el" href="debug_8h.html#abf22ea3a331c7ff21c23da91a07c7cb2">mc_error</a>(x, ##__VA_ARGS__)</td></tr>
|
||||||
|
<tr class="separator:a11ba39cecbe449af5b86fa2f78e9da9d"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a50f21a239fa040a10ad4cfdb4278b02b"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a50f21a239fa040a10ad4cfdb4278b02b">MC_SET_DEBUG</a>(x)   if (0) <a class="el" href="debug_8h.html#af65a73617b71476020a005b20bf02726">mc_set_debug</a>(x)</td></tr>
|
||||||
|
<tr class="separator:a50f21a239fa040a10ad4cfdb4278b02b"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:acb272a4b4444b69cd995236f167f90ba"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#acb272a4b4444b69cd995236f167f90ba">MC_GET_DEBUG</a>()   (0)</td></tr>
|
||||||
|
<tr class="separator:acb272a4b4444b69cd995236f167f90ba"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:acf1e895cb5eb7f334cbe51901e6bb918"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#acf1e895cb5eb7f334cbe51901e6bb918">MC_SET_SYSLOG</a>(x)   if (0) <a class="el" href="debug_8h.html#aadb888da410116384e75a00db30da705">mc_set_syslog</a>(x)</td></tr>
|
||||||
|
<tr class="separator:acf1e895cb5eb7f334cbe51901e6bb918"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:afda355b35d18bf2e6a2a22d5c8eef42c"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#afda355b35d18bf2e6a2a22d5c8eef42c">MC_DEBUG</a>(x,...)   if (0) <a class="el" href="debug_8h.html#a600cf4cbbe19c0c15ca3710210e35aba">mc_debug</a>(x, ##__VA_ARGS__)</td></tr>
|
||||||
|
<tr class="separator:afda355b35d18bf2e6a2a22d5c8eef42c"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a5ef640ce1e9e61c5f6632aefbbfa0041"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a5ef640ce1e9e61c5f6632aefbbfa0041">MC_INFO</a>(x,...)   if (0) <a class="el" href="debug_8h.html#acbb92996a994e316ff65ed3a026e12a4">mc_info</a>(x, ##__VA_ARGS__)</td></tr>
|
||||||
|
<tr class="separator:a5ef640ce1e9e61c5f6632aefbbfa0041"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table><table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
||||||
|
Functions</h2></td></tr>
|
||||||
|
<tr class="memitem:af65a73617b71476020a005b20bf02726"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#af65a73617b71476020a005b20bf02726">mc_set_debug</a> (int debug)</td></tr>
|
||||||
|
<tr class="separator:af65a73617b71476020a005b20bf02726"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a3b3ab3ae8b438384fb109a2e38646b6e"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a3b3ab3ae8b438384fb109a2e38646b6e">mc_get_debug</a> (void)</td></tr>
|
||||||
|
<tr class="separator:a3b3ab3ae8b438384fb109a2e38646b6e"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:aadb888da410116384e75a00db30da705"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#aadb888da410116384e75a00db30da705">mc_set_syslog</a> (int syslog)</td></tr>
|
||||||
|
<tr class="separator:aadb888da410116384e75a00db30da705"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:a600cf4cbbe19c0c15ca3710210e35aba"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#a600cf4cbbe19c0c15ca3710210e35aba">mc_debug</a> (const char *msg,...)</td></tr>
|
||||||
|
<tr class="separator:a600cf4cbbe19c0c15ca3710210e35aba"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:abf22ea3a331c7ff21c23da91a07c7cb2"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#abf22ea3a331c7ff21c23da91a07c7cb2">mc_error</a> (const char *msg,...)</td></tr>
|
||||||
|
<tr class="separator:abf22ea3a331c7ff21c23da91a07c7cb2"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
<tr class="memitem:acbb92996a994e316ff65ed3a026e12a4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="debug_8h.html#acbb92996a994e316ff65ed3a026e12a4">mc_info</a> (const char *msg,...)</td></tr>
|
||||||
|
<tr class="separator:acbb92996a994e316ff65ed3a026e12a4"><td class="memSeparator" colspan="2"> </td></tr>
|
||||||
|
</table>
|
||||||
|
<h2 class="groupheader">Macro Definition Documentation</h2>
|
||||||
|
<a class="anchor" id="a375c4dc9f0fb338999de81aab826f9d6"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">#define __STRING</td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname">x</td><td>)</td>
|
||||||
|
<td>   #x</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a8ca29550d5b1b73948f4a7bce53f2385"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">#define JASSERT</td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname">cond</td><td>)</td>
|
||||||
|
<td>   do {} while(0)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="afda355b35d18bf2e6a2a22d5c8eef42c"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">#define MC_DEBUG</td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname">x, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname"><em>...</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td>   if (0) <a class="el" href="debug_8h.html#a600cf4cbbe19c0c15ca3710210e35aba">mc_debug</a>(x, ##__VA_ARGS__)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a11ba39cecbe449af5b86fa2f78e9da9d"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">#define MC_ERROR</td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname">x, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname"><em>...</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td>   <a class="el" href="debug_8h.html#abf22ea3a331c7ff21c23da91a07c7cb2">mc_error</a>(x, ##__VA_ARGS__)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="acb272a4b4444b69cd995236f167f90ba"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">#define MC_GET_DEBUG</td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname"></td><td>)</td>
|
||||||
|
<td>   (0)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a5ef640ce1e9e61c5f6632aefbbfa0041"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">#define MC_INFO</td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname">x, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname"><em>...</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td>   if (0) <a class="el" href="debug_8h.html#acbb92996a994e316ff65ed3a026e12a4">mc_info</a>(x, ##__VA_ARGS__)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a50f21a239fa040a10ad4cfdb4278b02b"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">#define MC_SET_DEBUG</td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname">x</td><td>)</td>
|
||||||
|
<td>   if (0) <a class="el" href="debug_8h.html#af65a73617b71476020a005b20bf02726">mc_set_debug</a>(x)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="acf1e895cb5eb7f334cbe51901e6bb918"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">#define MC_SET_SYSLOG</td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname">x</td><td>)</td>
|
||||||
|
<td>   if (0) <a class="el" href="debug_8h.html#aadb888da410116384e75a00db30da705">mc_set_syslog</a>(x)</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<h2 class="groupheader">Function Documentation</h2>
|
||||||
|
<a class="anchor" id="a600cf4cbbe19c0c15ca3710210e35aba"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void mc_debug </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">const char * </td>
|
||||||
|
<td class="paramname"><em>msg</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname"><em>...</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="abf22ea3a331c7ff21c23da91a07c7cb2"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void mc_error </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">const char * </td>
|
||||||
|
<td class="paramname"><em>msg</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname"><em>...</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a3b3ab3ae8b438384fb109a2e38646b6e"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">int mc_get_debug </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">void </td>
|
||||||
|
<td class="paramname"></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="acbb92996a994e316ff65ed3a026e12a4"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void mc_info </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">const char * </td>
|
||||||
|
<td class="paramname"><em>msg</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname"><em>...</em> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="af65a73617b71476020a005b20bf02726"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void mc_set_debug </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">int </td>
|
||||||
|
<td class="paramname"><em>debug</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="aadb888da410116384e75a00db30da705"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">void mc_set_syslog </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype">int </td>
|
||||||
|
<td class="paramname"><em>syslog</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 03:15:05 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
58
doc/html/deprecated.html
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Deprecated List</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li class="current"><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">Deprecated List </div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock"><dl class="reflist">
|
||||||
|
<dt><a class="anchor" id="_deprecated000001"></a>Global <a class="el" href="json__object_8h.html#a1345aaf3ee46e9b6185355b733ec362d">THIS_FUNCTION_IS_DEPRECATED</a> (extern struct <a class="el" href="structjson__object.html">json_object</a> *json_object_object_get(struct <a class="el" href="structjson__object.html">json_object</a> *obj, const char *key))</dt>
|
||||||
|
<dd>Please use json_object_object_get_ex </dd>
|
||||||
|
<dt><a class="anchor" id="_deprecated000002"></a>Global <a class="el" href="linkhash_8h.html#a849aa0ce9fe550c16ce81a215b1765ad">THIS_FUNCTION_IS_DEPRECATED</a> (extern const void *lh_table_lookup(struct <a class="el" href="structlh__table.html">lh_table</a> *t, const void *k))</dt>
|
||||||
|
<dd>Use lh_table_lookup_ex instead. </dd>
|
||||||
|
</dl>
|
||||||
|
</div></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 16:22:01 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
1357
doc/html/doxygen.css
Normal file
BIN
doc/html/doxygen.png
Normal file
|
After Width: | Height: | Size: 3.7 KiB |
97
doc/html/dynsections.js
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
function toggleVisibility(linkObj)
|
||||||
|
{
|
||||||
|
var base = $(linkObj).attr('id');
|
||||||
|
var summary = $('#'+base+'-summary');
|
||||||
|
var content = $('#'+base+'-content');
|
||||||
|
var trigger = $('#'+base+'-trigger');
|
||||||
|
var src=$(trigger).attr('src');
|
||||||
|
if (content.is(':visible')===true) {
|
||||||
|
content.hide();
|
||||||
|
summary.show();
|
||||||
|
$(linkObj).addClass('closed').removeClass('opened');
|
||||||
|
$(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
|
||||||
|
} else {
|
||||||
|
content.show();
|
||||||
|
summary.hide();
|
||||||
|
$(linkObj).removeClass('closed').addClass('opened');
|
||||||
|
$(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateStripes()
|
||||||
|
{
|
||||||
|
$('table.directory tr').
|
||||||
|
removeClass('even').filter(':visible:even').addClass('even');
|
||||||
|
}
|
||||||
|
function toggleLevel(level)
|
||||||
|
{
|
||||||
|
$('table.directory tr').each(function(){
|
||||||
|
var l = this.id.split('_').length-1;
|
||||||
|
var i = $('#img'+this.id.substring(3));
|
||||||
|
var a = $('#arr'+this.id.substring(3));
|
||||||
|
if (l<level+1) {
|
||||||
|
i.attr('src','ftv2folderopen.png');
|
||||||
|
a.attr('src','ftv2mnode.png');
|
||||||
|
$(this).show();
|
||||||
|
} else if (l==level+1) {
|
||||||
|
i.attr('src','ftv2folderclosed.png');
|
||||||
|
a.attr('src','ftv2pnode.png');
|
||||||
|
$(this).show();
|
||||||
|
} else {
|
||||||
|
$(this).hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
updateStripes();
|
||||||
|
}
|
||||||
|
|
||||||
|
function toggleFolder(id)
|
||||||
|
{
|
||||||
|
//The clicked row
|
||||||
|
var currentRow = $('#row_'+id);
|
||||||
|
var currentRowImages = currentRow.find("img");
|
||||||
|
|
||||||
|
//All rows after the clicked row
|
||||||
|
var rows = currentRow.nextAll("tr");
|
||||||
|
|
||||||
|
//Only match elements AFTER this one (can't hide elements before)
|
||||||
|
var childRows = rows.filter(function() {
|
||||||
|
var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
|
||||||
|
return this.id.match(re);
|
||||||
|
});
|
||||||
|
|
||||||
|
//First row is visible we are HIDING
|
||||||
|
if (childRows.filter(':first').is(':visible')===true) {
|
||||||
|
currentRowImages.filter("[id^=arr]").attr('src', 'ftv2pnode.png');
|
||||||
|
currentRowImages.filter("[id^=img]").attr('src', 'ftv2folderclosed.png');
|
||||||
|
rows.filter("[id^=row_"+id+"]").hide();
|
||||||
|
} else { //We are SHOWING
|
||||||
|
//All sub images
|
||||||
|
var childImages = childRows.find("img");
|
||||||
|
var childImg = childImages.filter("[id^=img]");
|
||||||
|
var childArr = childImages.filter("[id^=arr]");
|
||||||
|
|
||||||
|
currentRow.find("[id^=arr]").attr('src', 'ftv2mnode.png'); //open row
|
||||||
|
currentRow.find("[id^=img]").attr('src', 'ftv2folderopen.png'); //open row
|
||||||
|
childImg.attr('src','ftv2folderclosed.png'); //children closed
|
||||||
|
childArr.attr('src','ftv2pnode.png'); //children closed
|
||||||
|
childRows.show(); //show all children
|
||||||
|
}
|
||||||
|
updateStripes();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function toggleInherit(id)
|
||||||
|
{
|
||||||
|
var rows = $('tr.inherit.'+id);
|
||||||
|
var img = $('tr.inherit_header.'+id+' img');
|
||||||
|
var src = $(img).attr('src');
|
||||||
|
if (rows.filter(':first').is(':visible')===true) {
|
||||||
|
rows.css('display','none');
|
||||||
|
$(img).attr('src',src.substring(0,src.length-8)+'closed.png');
|
||||||
|
} else {
|
||||||
|
rows.css('display','table-row'); // using show() causes jump in firefox
|
||||||
|
$(img).attr('src',src.substring(0,src.length-10)+'open.png');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
77
doc/html/files.html
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: File List</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li><a href="globals.html"><span>Globals</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">File List</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all files with brief descriptions:</div><div class="directory">
|
||||||
|
<table class="directory">
|
||||||
|
<tr id="row_0_" class="even"><td class="entry"><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"></td></tr>
|
||||||
|
<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="bits_8h.html" target="_self">bits.h</a></td><td class="desc"></td></tr>
|
||||||
|
<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="debug_8h.html" target="_self">debug.h</a></td><td class="desc"></td></tr>
|
||||||
|
<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_8h.html" target="_self">json.h</a></td><td class="desc"></td></tr>
|
||||||
|
<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__c__version_8h.html" target="_self">json_c_version.h</a></td><td class="desc"></td></tr>
|
||||||
|
<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__inttypes_8h.html" target="_self">json_inttypes.h</a></td><td class="desc"></td></tr>
|
||||||
|
<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_8h.html" target="_self">json_object.h</a></td><td class="desc"></td></tr>
|
||||||
|
<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__iterator_8h.html" target="_self">json_object_iterator.h</a></td><td class="desc">Json-c forces clients to use its private data structures for JSON Object iteration. This API corrects that by abstracting the private json-c details </td></tr>
|
||||||
|
<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__object__private_8h.html" target="_self">json_object_private.h</a></td><td class="desc"></td></tr>
|
||||||
|
<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"></td></tr>
|
||||||
|
<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__util_8h.html" target="_self">json_util.h</a></td><td class="desc"></td></tr>
|
||||||
|
<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="linkhash_8h.html" target="_self">linkhash.h</a></td><td class="desc"></td></tr>
|
||||||
|
<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="math__compat_8h.html" target="_self">math_compat.h</a></td><td class="desc"></td></tr>
|
||||||
|
<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="printbuf_8h.html" target="_self">printbuf.h</a></td><td class="desc"></td></tr>
|
||||||
|
<tr id="row_14_" class="even"><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="random__seed_8h.html" target="_self">random_seed.h</a></td><td class="desc"></td></tr>
|
||||||
|
</table>
|
||||||
|
</div><!-- directory -->
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 23:39:37 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
BIN
doc/html/ftv2blank.png
Normal file
|
After Width: | Height: | Size: 86 B |
BIN
doc/html/ftv2cl.png
Normal file
|
After Width: | Height: | Size: 453 B |
BIN
doc/html/ftv2doc.png
Normal file
|
After Width: | Height: | Size: 746 B |
BIN
doc/html/ftv2folderclosed.png
Normal file
|
After Width: | Height: | Size: 616 B |
BIN
doc/html/ftv2folderopen.png
Normal file
|
After Width: | Height: | Size: 597 B |
BIN
doc/html/ftv2lastnode.png
Normal file
|
After Width: | Height: | Size: 86 B |
BIN
doc/html/ftv2link.png
Normal file
|
After Width: | Height: | Size: 746 B |
BIN
doc/html/ftv2mlastnode.png
Normal file
|
After Width: | Height: | Size: 246 B |
BIN
doc/html/ftv2mnode.png
Normal file
|
After Width: | Height: | Size: 246 B |
BIN
doc/html/ftv2mo.png
Normal file
|
After Width: | Height: | Size: 403 B |
BIN
doc/html/ftv2node.png
Normal file
|
After Width: | Height: | Size: 86 B |
BIN
doc/html/ftv2ns.png
Normal file
|
After Width: | Height: | Size: 388 B |
BIN
doc/html/ftv2plastnode.png
Normal file
|
After Width: | Height: | Size: 229 B |
BIN
doc/html/ftv2pnode.png
Normal file
|
After Width: | Height: | Size: 229 B |
BIN
doc/html/ftv2splitbar.png
Normal file
|
After Width: | Height: | Size: 314 B |
BIN
doc/html/ftv2vertline.png
Normal file
|
After Width: | Height: | Size: 86 B |
344
doc/html/functions.html
Normal file
@@ -0,0 +1,344 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Data Fields</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="functions.html"><span>Data Fields</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="functions.html"><span>All</span></a></li>
|
||||||
|
<li><a href="functions_vars.html"><span>Variables</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow4" class="tabs3">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="#index__"><span>_</span></a></li>
|
||||||
|
<li><a href="#index_a"><span>a</span></a></li>
|
||||||
|
<li><a href="#index_b"><span>b</span></a></li>
|
||||||
|
<li><a href="#index_c"><span>c</span></a></li>
|
||||||
|
<li><a href="#index_d"><span>d</span></a></li>
|
||||||
|
<li><a href="#index_e"><span>e</span></a></li>
|
||||||
|
<li><a href="#index_f"><span>f</span></a></li>
|
||||||
|
<li><a href="#index_h"><span>h</span></a></li>
|
||||||
|
<li><a href="#index_i"><span>i</span></a></li>
|
||||||
|
<li><a href="#index_k"><span>k</span></a></li>
|
||||||
|
<li><a href="#index_l"><span>l</span></a></li>
|
||||||
|
<li><a href="#index_m"><span>m</span></a></li>
|
||||||
|
<li><a href="#index_n"><span>n</span></a></li>
|
||||||
|
<li><a href="#index_o"><span>o</span></a></li>
|
||||||
|
<li><a href="#index_p"><span>p</span></a></li>
|
||||||
|
<li><a href="#index_q"><span>q</span></a></li>
|
||||||
|
<li><a href="#index_r"><span>r</span></a></li>
|
||||||
|
<li><a href="#index_s"><span>s</span></a></li>
|
||||||
|
<li><a href="#index_t"><span>t</span></a></li>
|
||||||
|
<li><a href="#index_u"><span>u</span></a></li>
|
||||||
|
<li><a href="#index_v"><span>v</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all struct and union fields with links to the structures/unions they belong to:</div>
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
|
||||||
|
<li>_delete
|
||||||
|
: <a class="el" href="structjson__object.html#a63666be714a8ce8907d56142c1d9dfb7">json_object</a>
|
||||||
|
</li>
|
||||||
|
<li>_pb
|
||||||
|
: <a class="el" href="structjson__object.html#afdcaa9e24bce7c86c33cb6f6ae65cb56">json_object</a>
|
||||||
|
</li>
|
||||||
|
<li>_ref_count
|
||||||
|
: <a class="el" href="structjson__object.html#aca9b93573ba6bb8cf66d87c170a575b2">json_object</a>
|
||||||
|
</li>
|
||||||
|
<li>_to_json_string
|
||||||
|
: <a class="el" href="structjson__object.html#a077a02daac4653f91584dd7f47c3d632">json_object</a>
|
||||||
|
</li>
|
||||||
|
<li>_user_delete
|
||||||
|
: <a class="el" href="structjson__object.html#ad9e57edb1cbd63578490081b2a9636ad">json_object</a>
|
||||||
|
</li>
|
||||||
|
<li>_userdata
|
||||||
|
: <a class="el" href="structjson__object.html#a592a5391c3717ff7e8930476027226fe">json_object</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
|
||||||
|
<li>array
|
||||||
|
: <a class="el" href="structarray__list.html#a7ba65feda2b156148c08667cf155b657">array_list</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
|
||||||
|
<li>bpos
|
||||||
|
: <a class="el" href="structprintbuf.html#aba980ad7406329e32f557dfa0eb7b1b2">printbuf</a>
|
||||||
|
</li>
|
||||||
|
<li>buf
|
||||||
|
: <a class="el" href="structprintbuf.html#a5d7cf8ac260f1f7c50fecaf9bd7bc651">printbuf</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
|
||||||
|
<li>c_array
|
||||||
|
: <a class="el" href="unionjson__object_1_1data.html#a4ad6bf2fd6d8718f55850509edfe2e45">json_object::data</a>
|
||||||
|
</li>
|
||||||
|
<li>c_boolean
|
||||||
|
: <a class="el" href="unionjson__object_1_1data.html#a98a3964e5fb0b3a0e9d8786b8facde5c">json_object::data</a>
|
||||||
|
</li>
|
||||||
|
<li>c_double
|
||||||
|
: <a class="el" href="unionjson__object_1_1data.html#a9cc4abdb21302913701ac0c8dc75e55a">json_object::data</a>
|
||||||
|
</li>
|
||||||
|
<li>c_int64
|
||||||
|
: <a class="el" href="unionjson__object_1_1data.html#a7733181cdb631570913e3a2abfd6937c">json_object::data</a>
|
||||||
|
</li>
|
||||||
|
<li>c_object
|
||||||
|
: <a class="el" href="unionjson__object_1_1data.html#a68089c942f154d4df590d8ecb476a69b">json_object::data</a>
|
||||||
|
</li>
|
||||||
|
<li>c_string
|
||||||
|
: <a class="el" href="unionjson__object_1_1data.html#af9cd2e329ad7ab0a86b1b622290a663a">json_object::data</a>
|
||||||
|
</li>
|
||||||
|
<li>char_offset
|
||||||
|
: <a class="el" href="structjson__tokener.html#a9daae2516fd6df23555d33ef01020a76">json_tokener</a>
|
||||||
|
</li>
|
||||||
|
<li>collisions
|
||||||
|
: <a class="el" href="structlh__table.html#a9458e41d842ce40cd37dc13458ced133">lh_table</a>
|
||||||
|
</li>
|
||||||
|
<li>count
|
||||||
|
: <a class="el" href="structlh__table.html#aa172ed8fe205367b54e0e2cdf9ea8c6c">lh_table</a>
|
||||||
|
</li>
|
||||||
|
<li>current
|
||||||
|
: <a class="el" href="structjson__tokener__srec.html#a466f192f920368a5a6375aeba1e2757f">json_tokener_srec</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
|
||||||
|
<li>deletes
|
||||||
|
: <a class="el" href="structlh__table.html#a8348bdd7e61c8d72b402f6a152013fbf">lh_table</a>
|
||||||
|
</li>
|
||||||
|
<li>depth
|
||||||
|
: <a class="el" href="structjson__tokener.html#ae0e5102b44cc1fc680be3e0fb5fff028">json_tokener</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
|
||||||
|
<li>entry
|
||||||
|
: <a class="el" href="structjson__object__iter.html#a64e326f050826c644c02ed5bcd214faa">json_object_iter</a>
|
||||||
|
</li>
|
||||||
|
<li>equal_fn
|
||||||
|
: <a class="el" href="structlh__table.html#aa646c287a6a46e09da6c7457c981a359">lh_table</a>
|
||||||
|
</li>
|
||||||
|
<li>err
|
||||||
|
: <a class="el" href="structjson__tokener.html#adef37cdc2578d8f8920db14315728cbd">json_tokener</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
|
||||||
|
<li>flags
|
||||||
|
: <a class="el" href="structjson__tokener.html#aabfdcf2825154108669ffa3f4ab9c4ea">json_tokener</a>
|
||||||
|
</li>
|
||||||
|
<li>free_fn
|
||||||
|
: <a class="el" href="structlh__table.html#a30ea5903f4f8126abd6aa489ffe14737">lh_table</a>
|
||||||
|
, <a class="el" href="structarray__list.html#ab7989cdde357e5c7819c562c7680ab74">array_list</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
|
||||||
|
<li>hash_fn
|
||||||
|
: <a class="el" href="structlh__table.html#a1488d1a4a320b1a9bb2f441859544be1">lh_table</a>
|
||||||
|
</li>
|
||||||
|
<li>head
|
||||||
|
: <a class="el" href="structlh__table.html#aa7d986a3b12a9fa47e349713794c30fb">lh_table</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
|
||||||
|
<li>inserts
|
||||||
|
: <a class="el" href="structlh__table.html#afd64becd0d2cfbc91a4c9c9a117498b9">lh_table</a>
|
||||||
|
</li>
|
||||||
|
<li>is_double
|
||||||
|
: <a class="el" href="structjson__tokener.html#ad3bf0aa728ea14549d5aa6ca8dcba070">json_tokener</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
|
||||||
|
<li>k
|
||||||
|
: <a class="el" href="structlh__entry.html#a6b176b3582c9cf553af6431750f5c3b6">lh_entry</a>
|
||||||
|
</li>
|
||||||
|
<li>key
|
||||||
|
: <a class="el" href="structjson__object__iter.html#a0b76228b3a039075e9d84f88fa72ff53">json_object_iter</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
|
||||||
|
<li>len
|
||||||
|
: <a class="el" href="unionjson__object_1_1data.html#ac2386853b8a4e7d0b28a27ed599ccef7">json_object::data</a>
|
||||||
|
</li>
|
||||||
|
<li>length
|
||||||
|
: <a class="el" href="structarray__list.html#a442fcfde196a3cc95a647f0708de814d">array_list</a>
|
||||||
|
</li>
|
||||||
|
<li>lookups
|
||||||
|
: <a class="el" href="structlh__table.html#afd0385c645413d26e682f725a6f52164">lh_table</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
|
||||||
|
<li>max_depth
|
||||||
|
: <a class="el" href="structjson__tokener.html#a9d9b33c3982925349627dc6a3edca940">json_tokener</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
|
||||||
|
<li>name
|
||||||
|
: <a class="el" href="structlh__table.html#aebf4001cde3746ec8025c1d87d4e6279">lh_table</a>
|
||||||
|
</li>
|
||||||
|
<li>next
|
||||||
|
: <a class="el" href="structlh__entry.html#a7c40c46e72d9a0ba071a8d49d535bc67">lh_entry</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
|
||||||
|
<li>o
|
||||||
|
: <a class="el" href="structjson__object.html#a33aff83ffea02b934235c4821cca8cf0">json_object</a>
|
||||||
|
</li>
|
||||||
|
<li>o_type
|
||||||
|
: <a class="el" href="structjson__object.html#a28307a4a3fe6cefe27e28fec56b76b3e">json_object</a>
|
||||||
|
</li>
|
||||||
|
<li>obj
|
||||||
|
: <a class="el" href="structjson__tokener__srec.html#ad2bb71affec1da5ba1d9952c3bf2c12a">json_tokener_srec</a>
|
||||||
|
</li>
|
||||||
|
<li>obj_field_name
|
||||||
|
: <a class="el" href="structjson__tokener__srec.html#a99551c172e97ac2e7a3849a50b4f51ca">json_tokener_srec</a>
|
||||||
|
</li>
|
||||||
|
<li>opaque_
|
||||||
|
: <a class="el" href="structjson__object__iterator.html#a69c61c14f5a36b1dc2217e49cd987f47">json_object_iterator</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
|
||||||
|
<li>pb
|
||||||
|
: <a class="el" href="structjson__tokener.html#a1cdc7f85d7bde95f81bb08b7e61d6684">json_tokener</a>
|
||||||
|
</li>
|
||||||
|
<li>prev
|
||||||
|
: <a class="el" href="structlh__entry.html#a6fb9c3de01fb5af67d8d429921cc6a3b">lh_entry</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_q"></a>- q -</h3><ul>
|
||||||
|
<li>quote_char
|
||||||
|
: <a class="el" href="structjson__tokener.html#aea488b73085ac7c5969ae7fc29e25fa0">json_tokener</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
|
||||||
|
<li>resizes
|
||||||
|
: <a class="el" href="structlh__table.html#ab4cde49bd9ce7a07daaf99af34ddb67e">lh_table</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
|
||||||
|
<li>saved_state
|
||||||
|
: <a class="el" href="structjson__tokener__srec.html#a868b9912dbb1e4813a630c944f522d48">json_tokener_srec</a>
|
||||||
|
</li>
|
||||||
|
<li>size
|
||||||
|
: <a class="el" href="structarray__list.html#aba48a197d3c8f1d56682da23fe883d0a">array_list</a>
|
||||||
|
, <a class="el" href="structprintbuf.html#a12ce6440eaa06a55b96ebdc5a9778dd5">printbuf</a>
|
||||||
|
, <a class="el" href="structlh__table.html#ae251575ec2935bcb0e0589ca8e243839">lh_table</a>
|
||||||
|
</li>
|
||||||
|
<li>st_pos
|
||||||
|
: <a class="el" href="structjson__tokener.html#a8eed213c0a37d09c1df66c8567e44471">json_tokener</a>
|
||||||
|
</li>
|
||||||
|
<li>stack
|
||||||
|
: <a class="el" href="structjson__tokener.html#a3521d62906eb0e15d07d7b4f64a5fac3">json_tokener</a>
|
||||||
|
</li>
|
||||||
|
<li>str
|
||||||
|
: <a class="el" href="structjson__tokener.html#a9772e2170322a19d8da6ce5d7dc46895">json_tokener</a>
|
||||||
|
, <a class="el" href="unionjson__object_1_1data.html#a18a82441c3972195a3bf698bb286634b">json_object::data</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
|
||||||
|
<li>table
|
||||||
|
: <a class="el" href="structlh__table.html#a4fd9c5aba38791b26ab0ec614a5caf8f">lh_table</a>
|
||||||
|
</li>
|
||||||
|
<li>tail
|
||||||
|
: <a class="el" href="structlh__table.html#a479895e45db2bdf9bf5d173fa4b7e277">lh_table</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
|
||||||
|
<li>ucs_char
|
||||||
|
: <a class="el" href="structjson__tokener.html#a32fa73e43fb760e6845231a8482eb064">json_tokener</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
|
||||||
|
<li>v
|
||||||
|
: <a class="el" href="structlh__entry.html#a1b676732ab2ad3eeaedf6ec60a6a0835">lh_entry</a>
|
||||||
|
</li>
|
||||||
|
<li>val
|
||||||
|
: <a class="el" href="structjson__object__iter.html#aaae14a8d17aacddacb0a57234e0a4491">json_object_iter</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 12:14:49 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
344
doc/html/functions_vars.html
Normal file
@@ -0,0 +1,344 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Data Fields - Variables</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="functions.html"><span>Data Fields</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="functions.html"><span>All</span></a></li>
|
||||||
|
<li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow4" class="tabs3">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="#index__"><span>_</span></a></li>
|
||||||
|
<li><a href="#index_a"><span>a</span></a></li>
|
||||||
|
<li><a href="#index_b"><span>b</span></a></li>
|
||||||
|
<li><a href="#index_c"><span>c</span></a></li>
|
||||||
|
<li><a href="#index_d"><span>d</span></a></li>
|
||||||
|
<li><a href="#index_e"><span>e</span></a></li>
|
||||||
|
<li><a href="#index_f"><span>f</span></a></li>
|
||||||
|
<li><a href="#index_h"><span>h</span></a></li>
|
||||||
|
<li><a href="#index_i"><span>i</span></a></li>
|
||||||
|
<li><a href="#index_k"><span>k</span></a></li>
|
||||||
|
<li><a href="#index_l"><span>l</span></a></li>
|
||||||
|
<li><a href="#index_m"><span>m</span></a></li>
|
||||||
|
<li><a href="#index_n"><span>n</span></a></li>
|
||||||
|
<li><a href="#index_o"><span>o</span></a></li>
|
||||||
|
<li><a href="#index_p"><span>p</span></a></li>
|
||||||
|
<li><a href="#index_q"><span>q</span></a></li>
|
||||||
|
<li><a href="#index_r"><span>r</span></a></li>
|
||||||
|
<li><a href="#index_s"><span>s</span></a></li>
|
||||||
|
<li><a href="#index_t"><span>t</span></a></li>
|
||||||
|
<li><a href="#index_u"><span>u</span></a></li>
|
||||||
|
<li><a href="#index_v"><span>v</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
 
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
|
||||||
|
<li>_delete
|
||||||
|
: <a class="el" href="structjson__object.html#a63666be714a8ce8907d56142c1d9dfb7">json_object</a>
|
||||||
|
</li>
|
||||||
|
<li>_pb
|
||||||
|
: <a class="el" href="structjson__object.html#afdcaa9e24bce7c86c33cb6f6ae65cb56">json_object</a>
|
||||||
|
</li>
|
||||||
|
<li>_ref_count
|
||||||
|
: <a class="el" href="structjson__object.html#aca9b93573ba6bb8cf66d87c170a575b2">json_object</a>
|
||||||
|
</li>
|
||||||
|
<li>_to_json_string
|
||||||
|
: <a class="el" href="structjson__object.html#a077a02daac4653f91584dd7f47c3d632">json_object</a>
|
||||||
|
</li>
|
||||||
|
<li>_user_delete
|
||||||
|
: <a class="el" href="structjson__object.html#ad9e57edb1cbd63578490081b2a9636ad">json_object</a>
|
||||||
|
</li>
|
||||||
|
<li>_userdata
|
||||||
|
: <a class="el" href="structjson__object.html#a592a5391c3717ff7e8930476027226fe">json_object</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
|
||||||
|
<li>array
|
||||||
|
: <a class="el" href="structarray__list.html#a7ba65feda2b156148c08667cf155b657">array_list</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_b"></a>- b -</h3><ul>
|
||||||
|
<li>bpos
|
||||||
|
: <a class="el" href="structprintbuf.html#aba980ad7406329e32f557dfa0eb7b1b2">printbuf</a>
|
||||||
|
</li>
|
||||||
|
<li>buf
|
||||||
|
: <a class="el" href="structprintbuf.html#a5d7cf8ac260f1f7c50fecaf9bd7bc651">printbuf</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_c"></a>- c -</h3><ul>
|
||||||
|
<li>c_array
|
||||||
|
: <a class="el" href="unionjson__object_1_1data.html#a4ad6bf2fd6d8718f55850509edfe2e45">json_object::data</a>
|
||||||
|
</li>
|
||||||
|
<li>c_boolean
|
||||||
|
: <a class="el" href="unionjson__object_1_1data.html#a98a3964e5fb0b3a0e9d8786b8facde5c">json_object::data</a>
|
||||||
|
</li>
|
||||||
|
<li>c_double
|
||||||
|
: <a class="el" href="unionjson__object_1_1data.html#a9cc4abdb21302913701ac0c8dc75e55a">json_object::data</a>
|
||||||
|
</li>
|
||||||
|
<li>c_int64
|
||||||
|
: <a class="el" href="unionjson__object_1_1data.html#a7733181cdb631570913e3a2abfd6937c">json_object::data</a>
|
||||||
|
</li>
|
||||||
|
<li>c_object
|
||||||
|
: <a class="el" href="unionjson__object_1_1data.html#a68089c942f154d4df590d8ecb476a69b">json_object::data</a>
|
||||||
|
</li>
|
||||||
|
<li>c_string
|
||||||
|
: <a class="el" href="unionjson__object_1_1data.html#af9cd2e329ad7ab0a86b1b622290a663a">json_object::data</a>
|
||||||
|
</li>
|
||||||
|
<li>char_offset
|
||||||
|
: <a class="el" href="structjson__tokener.html#a9daae2516fd6df23555d33ef01020a76">json_tokener</a>
|
||||||
|
</li>
|
||||||
|
<li>collisions
|
||||||
|
: <a class="el" href="structlh__table.html#a9458e41d842ce40cd37dc13458ced133">lh_table</a>
|
||||||
|
</li>
|
||||||
|
<li>count
|
||||||
|
: <a class="el" href="structlh__table.html#aa172ed8fe205367b54e0e2cdf9ea8c6c">lh_table</a>
|
||||||
|
</li>
|
||||||
|
<li>current
|
||||||
|
: <a class="el" href="structjson__tokener__srec.html#a466f192f920368a5a6375aeba1e2757f">json_tokener_srec</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_d"></a>- d -</h3><ul>
|
||||||
|
<li>deletes
|
||||||
|
: <a class="el" href="structlh__table.html#a8348bdd7e61c8d72b402f6a152013fbf">lh_table</a>
|
||||||
|
</li>
|
||||||
|
<li>depth
|
||||||
|
: <a class="el" href="structjson__tokener.html#ae0e5102b44cc1fc680be3e0fb5fff028">json_tokener</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
|
||||||
|
<li>entry
|
||||||
|
: <a class="el" href="structjson__object__iter.html#a64e326f050826c644c02ed5bcd214faa">json_object_iter</a>
|
||||||
|
</li>
|
||||||
|
<li>equal_fn
|
||||||
|
: <a class="el" href="structlh__table.html#aa646c287a6a46e09da6c7457c981a359">lh_table</a>
|
||||||
|
</li>
|
||||||
|
<li>err
|
||||||
|
: <a class="el" href="structjson__tokener.html#adef37cdc2578d8f8920db14315728cbd">json_tokener</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
|
||||||
|
<li>flags
|
||||||
|
: <a class="el" href="structjson__tokener.html#aabfdcf2825154108669ffa3f4ab9c4ea">json_tokener</a>
|
||||||
|
</li>
|
||||||
|
<li>free_fn
|
||||||
|
: <a class="el" href="structlh__table.html#a30ea5903f4f8126abd6aa489ffe14737">lh_table</a>
|
||||||
|
, <a class="el" href="structarray__list.html#ab7989cdde357e5c7819c562c7680ab74">array_list</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
|
||||||
|
<li>hash_fn
|
||||||
|
: <a class="el" href="structlh__table.html#a1488d1a4a320b1a9bb2f441859544be1">lh_table</a>
|
||||||
|
</li>
|
||||||
|
<li>head
|
||||||
|
: <a class="el" href="structlh__table.html#aa7d986a3b12a9fa47e349713794c30fb">lh_table</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
|
||||||
|
<li>inserts
|
||||||
|
: <a class="el" href="structlh__table.html#afd64becd0d2cfbc91a4c9c9a117498b9">lh_table</a>
|
||||||
|
</li>
|
||||||
|
<li>is_double
|
||||||
|
: <a class="el" href="structjson__tokener.html#ad3bf0aa728ea14549d5aa6ca8dcba070">json_tokener</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_k"></a>- k -</h3><ul>
|
||||||
|
<li>k
|
||||||
|
: <a class="el" href="structlh__entry.html#a6b176b3582c9cf553af6431750f5c3b6">lh_entry</a>
|
||||||
|
</li>
|
||||||
|
<li>key
|
||||||
|
: <a class="el" href="structjson__object__iter.html#a0b76228b3a039075e9d84f88fa72ff53">json_object_iter</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
|
||||||
|
<li>len
|
||||||
|
: <a class="el" href="unionjson__object_1_1data.html#ac2386853b8a4e7d0b28a27ed599ccef7">json_object::data</a>
|
||||||
|
</li>
|
||||||
|
<li>length
|
||||||
|
: <a class="el" href="structarray__list.html#a442fcfde196a3cc95a647f0708de814d">array_list</a>
|
||||||
|
</li>
|
||||||
|
<li>lookups
|
||||||
|
: <a class="el" href="structlh__table.html#afd0385c645413d26e682f725a6f52164">lh_table</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
|
||||||
|
<li>max_depth
|
||||||
|
: <a class="el" href="structjson__tokener.html#a9d9b33c3982925349627dc6a3edca940">json_tokener</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_n"></a>- n -</h3><ul>
|
||||||
|
<li>name
|
||||||
|
: <a class="el" href="structlh__table.html#aebf4001cde3746ec8025c1d87d4e6279">lh_table</a>
|
||||||
|
</li>
|
||||||
|
<li>next
|
||||||
|
: <a class="el" href="structlh__entry.html#a7c40c46e72d9a0ba071a8d49d535bc67">lh_entry</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
|
||||||
|
<li>o
|
||||||
|
: <a class="el" href="structjson__object.html#a33aff83ffea02b934235c4821cca8cf0">json_object</a>
|
||||||
|
</li>
|
||||||
|
<li>o_type
|
||||||
|
: <a class="el" href="structjson__object.html#a28307a4a3fe6cefe27e28fec56b76b3e">json_object</a>
|
||||||
|
</li>
|
||||||
|
<li>obj
|
||||||
|
: <a class="el" href="structjson__tokener__srec.html#ad2bb71affec1da5ba1d9952c3bf2c12a">json_tokener_srec</a>
|
||||||
|
</li>
|
||||||
|
<li>obj_field_name
|
||||||
|
: <a class="el" href="structjson__tokener__srec.html#a99551c172e97ac2e7a3849a50b4f51ca">json_tokener_srec</a>
|
||||||
|
</li>
|
||||||
|
<li>opaque_
|
||||||
|
: <a class="el" href="structjson__object__iterator.html#a69c61c14f5a36b1dc2217e49cd987f47">json_object_iterator</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
|
||||||
|
<li>pb
|
||||||
|
: <a class="el" href="structjson__tokener.html#a1cdc7f85d7bde95f81bb08b7e61d6684">json_tokener</a>
|
||||||
|
</li>
|
||||||
|
<li>prev
|
||||||
|
: <a class="el" href="structlh__entry.html#a6fb9c3de01fb5af67d8d429921cc6a3b">lh_entry</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_q"></a>- q -</h3><ul>
|
||||||
|
<li>quote_char
|
||||||
|
: <a class="el" href="structjson__tokener.html#aea488b73085ac7c5969ae7fc29e25fa0">json_tokener</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_r"></a>- r -</h3><ul>
|
||||||
|
<li>resizes
|
||||||
|
: <a class="el" href="structlh__table.html#ab4cde49bd9ce7a07daaf99af34ddb67e">lh_table</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
|
||||||
|
<li>saved_state
|
||||||
|
: <a class="el" href="structjson__tokener__srec.html#a868b9912dbb1e4813a630c944f522d48">json_tokener_srec</a>
|
||||||
|
</li>
|
||||||
|
<li>size
|
||||||
|
: <a class="el" href="structarray__list.html#aba48a197d3c8f1d56682da23fe883d0a">array_list</a>
|
||||||
|
, <a class="el" href="structprintbuf.html#a12ce6440eaa06a55b96ebdc5a9778dd5">printbuf</a>
|
||||||
|
, <a class="el" href="structlh__table.html#ae251575ec2935bcb0e0589ca8e243839">lh_table</a>
|
||||||
|
</li>
|
||||||
|
<li>st_pos
|
||||||
|
: <a class="el" href="structjson__tokener.html#a8eed213c0a37d09c1df66c8567e44471">json_tokener</a>
|
||||||
|
</li>
|
||||||
|
<li>stack
|
||||||
|
: <a class="el" href="structjson__tokener.html#a3521d62906eb0e15d07d7b4f64a5fac3">json_tokener</a>
|
||||||
|
</li>
|
||||||
|
<li>str
|
||||||
|
: <a class="el" href="structjson__tokener.html#a9772e2170322a19d8da6ce5d7dc46895">json_tokener</a>
|
||||||
|
, <a class="el" href="unionjson__object_1_1data.html#a18a82441c3972195a3bf698bb286634b">json_object::data</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
|
||||||
|
<li>table
|
||||||
|
: <a class="el" href="structlh__table.html#a4fd9c5aba38791b26ab0ec614a5caf8f">lh_table</a>
|
||||||
|
</li>
|
||||||
|
<li>tail
|
||||||
|
: <a class="el" href="structlh__table.html#a479895e45db2bdf9bf5d173fa4b7e277">lh_table</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_u"></a>- u -</h3><ul>
|
||||||
|
<li>ucs_char
|
||||||
|
: <a class="el" href="structjson__tokener.html#a32fa73e43fb760e6845231a8482eb064">json_tokener</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_v"></a>- v -</h3><ul>
|
||||||
|
<li>v
|
||||||
|
: <a class="el" href="structlh__entry.html#a1b676732ab2ad3eeaedf6ec60a6a0835">lh_entry</a>
|
||||||
|
</li>
|
||||||
|
<li>val
|
||||||
|
: <a class="el" href="structjson__object__iter.html#aaae14a8d17aacddacb0a57234e0a4491">json_object_iter</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 19:42:49 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
88
doc/html/globals.html
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Globals</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="globals_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Macros</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow4" class="tabs3">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="globals.html#index__"><span>_</span></a></li>
|
||||||
|
<li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
|
||||||
|
<li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
|
||||||
|
<li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
|
||||||
|
<li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
|
||||||
|
<li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
|
||||||
|
<li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
|
||||||
|
<li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
|
||||||
|
<li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
|
||||||
|
<li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
|
||||||
|
<li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
|
||||||
|
<li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
|
||||||
|
<li>__STRING
|
||||||
|
: <a class="el" href="debug_8h.html#a375c4dc9f0fb338999de81aab826f9d6">debug.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 07:43:53 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
115
doc/html/globals_0x61.html
Normal file
@@ -0,0 +1,115 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Globals</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="globals_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Macros</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow4" class="tabs3">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="globals.html#index__"><span>_</span></a></li>
|
||||||
|
<li class="current"><a href="globals_0x61.html#index_a"><span>a</span></a></li>
|
||||||
|
<li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
|
||||||
|
<li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
|
||||||
|
<li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
|
||||||
|
<li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
|
||||||
|
<li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
|
||||||
|
<li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
|
||||||
|
<li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
|
||||||
|
<li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
|
||||||
|
<li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
|
||||||
|
<li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
|
||||||
|
<li>array_list
|
||||||
|
: <a class="el" href="json__object_8h.html#a6d6d32d8b026ea2025df519b9e90f44a">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>array_list_add()
|
||||||
|
: <a class="el" href="arraylist_8h.html#a6e995608aa464244ff3184fb43574dc8">arraylist.h</a>
|
||||||
|
</li>
|
||||||
|
<li>ARRAY_LIST_DEFAULT_SIZE
|
||||||
|
: <a class="el" href="arraylist_8h.html#acd30d910b398421574eb1f59e78617f5">arraylist.h</a>
|
||||||
|
</li>
|
||||||
|
<li>array_list_free()
|
||||||
|
: <a class="el" href="arraylist_8h.html#acd00fb70f7ca82f23b48b812c3498f67">arraylist.h</a>
|
||||||
|
</li>
|
||||||
|
<li>array_list_free_fn
|
||||||
|
: <a class="el" href="arraylist_8h.html#aad83e4ed3c8ea274e6f18459276d774b">arraylist.h</a>
|
||||||
|
</li>
|
||||||
|
<li>array_list_get_idx()
|
||||||
|
: <a class="el" href="arraylist_8h.html#aa16207e545b6c1265299abcfa418dc2b">arraylist.h</a>
|
||||||
|
</li>
|
||||||
|
<li>array_list_length()
|
||||||
|
: <a class="el" href="arraylist_8h.html#aa8393b4aa3dc447660371530439ab70f">arraylist.h</a>
|
||||||
|
</li>
|
||||||
|
<li>array_list_new()
|
||||||
|
: <a class="el" href="arraylist_8h.html#a0d4bfac055dfd98e17296142abf4d894">arraylist.h</a>
|
||||||
|
</li>
|
||||||
|
<li>array_list_put_idx()
|
||||||
|
: <a class="el" href="arraylist_8h.html#a21b8e4c59e52fbc5a9a5a098e3f96e76">arraylist.h</a>
|
||||||
|
</li>
|
||||||
|
<li>array_list_sort()
|
||||||
|
: <a class="el" href="arraylist_8h.html#afb67cc8e2e5c9be41c3e644536079169">arraylist.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 18:21:29 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
91
doc/html/globals_0x65.html
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Globals</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="globals_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Macros</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow4" class="tabs3">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="globals.html#index__"><span>_</span></a></li>
|
||||||
|
<li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
|
||||||
|
<li class="current"><a href="globals_0x65.html#index_e"><span>e</span></a></li>
|
||||||
|
<li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
|
||||||
|
<li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
|
||||||
|
<li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
|
||||||
|
<li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
|
||||||
|
<li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
|
||||||
|
<li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
|
||||||
|
<li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
|
||||||
|
<li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
|
||||||
|
<li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
|
||||||
|
<li>error_description
|
||||||
|
: <a class="el" href="bits_8h.html#a45afe86501cd57ee2beeef9d67a4d40c">bits.h</a>
|
||||||
|
</li>
|
||||||
|
<li>error_ptr
|
||||||
|
: <a class="el" href="bits_8h.html#a863a898e607f8c2ff87b7052e326740f">bits.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 19:38:33 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
88
doc/html/globals_0x66.html
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Globals</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="globals_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Macros</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow4" class="tabs3">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="globals.html#index__"><span>_</span></a></li>
|
||||||
|
<li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
|
||||||
|
<li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
|
||||||
|
<li class="current"><a href="globals_0x66.html#index_f"><span>f</span></a></li>
|
||||||
|
<li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
|
||||||
|
<li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
|
||||||
|
<li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
|
||||||
|
<li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
|
||||||
|
<li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
|
||||||
|
<li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
|
||||||
|
<li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
|
||||||
|
<li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
|
||||||
|
<li>FALSE
|
||||||
|
: <a class="el" href="json__object_8h.html#aa93f0eb578d23995850d61f7d61c55c1">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 23:52:25 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
88
doc/html/globals_0x68.html
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Globals</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="globals_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Macros</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow4" class="tabs3">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="globals.html#index__"><span>_</span></a></li>
|
||||||
|
<li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
|
||||||
|
<li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
|
||||||
|
<li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
|
||||||
|
<li class="current"><a href="globals_0x68.html#index_h"><span>h</span></a></li>
|
||||||
|
<li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
|
||||||
|
<li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
|
||||||
|
<li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
|
||||||
|
<li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
|
||||||
|
<li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
|
||||||
|
<li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
|
||||||
|
<li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
|
||||||
|
<li>hexdigit
|
||||||
|
: <a class="el" href="bits_8h.html#a1cf38b22d3a118ad48d9282c32c048aa">bits.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 00:20:09 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
88
doc/html/globals_0x69.html
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Globals</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="globals_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Macros</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow4" class="tabs3">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="globals.html#index__"><span>_</span></a></li>
|
||||||
|
<li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
|
||||||
|
<li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
|
||||||
|
<li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
|
||||||
|
<li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
|
||||||
|
<li class="current"><a href="globals_0x69.html#index_i"><span>i</span></a></li>
|
||||||
|
<li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
|
||||||
|
<li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
|
||||||
|
<li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
|
||||||
|
<li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
|
||||||
|
<li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
|
||||||
|
<li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
|
||||||
|
<li>is_error
|
||||||
|
: <a class="el" href="bits_8h.html#a4a887e5fb7cde221bcab9c6f39d93fc1">bits.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 06:03:37 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
499
doc/html/globals_0x6a.html
Normal file
@@ -0,0 +1,499 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Globals</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="globals_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Macros</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow4" class="tabs3">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="globals.html#index__"><span>_</span></a></li>
|
||||||
|
<li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
|
||||||
|
<li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
|
||||||
|
<li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
|
||||||
|
<li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
|
||||||
|
<li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
|
||||||
|
<li class="current"><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
|
||||||
|
<li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
|
||||||
|
<li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
|
||||||
|
<li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
|
||||||
|
<li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
|
||||||
|
<li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_j"></a>- j -</h3><ul>
|
||||||
|
<li>JASSERT
|
||||||
|
: <a class="el" href="debug_8h.html#a8ca29550d5b1b73948f4a7bce53f2385">debug.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_bool
|
||||||
|
: <a class="el" href="json__object_8h.html#a81f02022906fafc71eb9197049f07f73">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_c_get_random_seed()
|
||||||
|
: <a class="el" href="random__seed_8h.html#ae190c6819d7687e110d6ec59a16d006f">random_seed.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_C_MAJOR_VERSION
|
||||||
|
: <a class="el" href="json__c__version_8h.html#a251c3e1f59a379a4a905382b4e855125">json_c_version.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_C_MICRO_VERSION
|
||||||
|
: <a class="el" href="json__c__version_8h.html#a64457730097067ab096906d82e4a51a6">json_c_version.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_C_MINOR_VERSION
|
||||||
|
: <a class="el" href="json__c__version_8h.html#adc87477fbc1c75848fe6b6feec21c2d6">json_c_version.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_C_TO_STRING_NOZERO
|
||||||
|
: <a class="el" href="json__object_8h.html#a34f027c147babf69fc530d088f2b49b0">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_C_TO_STRING_PLAIN
|
||||||
|
: <a class="el" href="json__object_8h.html#a3294cb92765cdeb497cfd346644d1059">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_C_TO_STRING_PRETTY
|
||||||
|
: <a class="el" href="json__object_8h.html#a2025bc677c35f130e117dfda5bf1ef73">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_C_TO_STRING_SPACED
|
||||||
|
: <a class="el" href="json__object_8h.html#aa821746c8668e6ad62bed90ec9e00103">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_C_VERSION
|
||||||
|
: <a class="el" href="json__c__version_8h.html#a894adda66a072bc3fd34ebe91a5aa7f4">json_c_version.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_c_version()
|
||||||
|
: <a class="el" href="json__c__version_8h.html#a536b398f292b0669fc824a8486131a27">json_c_version.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_C_VERSION_NUM
|
||||||
|
: <a class="el" href="json__c__version_8h.html#a78e176eee75ee6aed43c4d65ca4c5b44">json_c_version.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_c_version_num()
|
||||||
|
: <a class="el" href="json__c__version_8h.html#a114bcfed9594f3cd662e43454000938d">json_c_version.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_FILE_BUF_SIZE
|
||||||
|
: <a class="el" href="json__util_8h.html#a084b6afc8f7fbef88976aabe4aca7efd">json_util.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_hex_chars
|
||||||
|
: <a class="el" href="json__object_8h.html#a20dbe4913551cefa6b4b0a77fd4397c4">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_max
|
||||||
|
: <a class="el" href="bits_8h.html#a57d63d199d4b9ea40359253618951300">bits.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_min
|
||||||
|
: <a class="el" href="bits_8h.html#a3dde282dc23d0eaa3c4840df8dc262d4">bits.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_number_chars
|
||||||
|
: <a class="el" href="json__object_8h.html#a27427f89f2fc995639e366635fbe58ac">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object
|
||||||
|
: <a class="el" href="json__object_8h.html#af27907ced0f5a43409ad96430fe0f914">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_array_add()
|
||||||
|
: <a class="el" href="json__object_8h.html#acc89c0f58947d499e2868ac8b62bed49">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_array_get_idx()
|
||||||
|
: <a class="el" href="json__object_8h.html#a5c9120a6d644ea12a61e2ec8520130c6">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_array_length()
|
||||||
|
: <a class="el" href="json__object_8h.html#a2e62d4b19de8f297595f3b4aaa0ec453">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_array_put_idx()
|
||||||
|
: <a class="el" href="json__object_8h.html#a2d19d21b495e1e0d3f711093d97a5104">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_array_sort()
|
||||||
|
: <a class="el" href="json__object_8h.html#aa1b05eeaa9c92f079facece87d6a0149">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_OBJECT_DEF_HASH_ENTRIES
|
||||||
|
: <a class="el" href="json__object_8h.html#a268a63dd1b2e6d81559e268a4529e9bf">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_delete_fn
|
||||||
|
: <a class="el" href="json__object_8h.html#aa647d7c567a06abe1a1a511f6d6860e4">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_free_userdata
|
||||||
|
: <a class="el" href="json__object_8h.html#adda8476609cc566ee62b80eaed310283">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_from_file()
|
||||||
|
: <a class="el" href="json__util_8h.html#a8fa0bba6b7ddb149a2159d99bae709ce">json_util.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_get()
|
||||||
|
: <a class="el" href="json__object_8h.html#acc3628d97c6308dc967006e4268c4e7f">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_get_array()
|
||||||
|
: <a class="el" href="json__object_8h.html#aba4e8df5e00bdc91a89bfb775e04ed70">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_get_boolean()
|
||||||
|
: <a class="el" href="json__object_8h.html#a3be3153ae5158ed24a49d74fbf14149f">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_get_double()
|
||||||
|
: <a class="el" href="json__object_8h.html#a9cf586fba906a597a121423045cb2a45">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_get_int()
|
||||||
|
: <a class="el" href="json__object_8h.html#ae6cab7d4c7c707b9053035a6405d3891">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_get_int64()
|
||||||
|
: <a class="el" href="json__object_8h.html#a3493894ebd226249118582e640af6944">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_get_object()
|
||||||
|
: <a class="el" href="json__object_8h.html#a9840421d6b45a7d00a42e13e379b54b5">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_get_string()
|
||||||
|
: <a class="el" href="json__object_8h.html#ad24f1c4c22b2a7d33e7b562c01f2ca65">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_get_string_len()
|
||||||
|
: <a class="el" href="json__object_8h.html#ad821384d0d8515d5ed4eec44d7101772">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_get_type()
|
||||||
|
: <a class="el" href="json__object_8h.html#adc5e998b4897b6e450bd0975a58d2f72">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_is_type()
|
||||||
|
: <a class="el" href="json__object_8h.html#ab6dc8b19f8da310e78f402f83d6ae6c5">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_iter
|
||||||
|
: <a class="el" href="json__object_8h.html#af88126730e765f2068968f4b16fd074f">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_iter_begin()
|
||||||
|
: <a class="el" href="json__object__iterator_8h.html#a925eb97b5aa5b64986a0f663f53cf0fa">json_object_iterator.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_iter_end()
|
||||||
|
: <a class="el" href="json__object__iterator_8h.html#a1fa3784395fb14496e3f1a1633028fd4">json_object_iterator.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_iter_equal()
|
||||||
|
: <a class="el" href="json__object__iterator_8h.html#a878ca25f72b339882aa2607ac938e79c">json_object_iterator.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_iter_init_default()
|
||||||
|
: <a class="el" href="json__object__iterator_8h.html#af30f56ca510d59da42e5592f9a436c10">json_object_iterator.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_iter_next()
|
||||||
|
: <a class="el" href="json__object__iterator_8h.html#aa98a310c340f6d9b4eeecb673aa5e240">json_object_iterator.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_iter_peek_name()
|
||||||
|
: <a class="el" href="json__object__iterator_8h.html#af17775b9b812a4206a84e4d3fb5774ab">json_object_iterator.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_iter_peek_value()
|
||||||
|
: <a class="el" href="json__object__iterator_8h.html#a47b0af7f1722c10475dffd29efc0b89d">json_object_iterator.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_new_array()
|
||||||
|
: <a class="el" href="json__object_8h.html#a9b5af06e9a99e16c6d9b6459a685ea3f">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_new_boolean()
|
||||||
|
: <a class="el" href="json__object_8h.html#a93cfacfdd1000c739ad19df0a080cb85">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_new_double()
|
||||||
|
: <a class="el" href="json__object_8h.html#a2e9c761833a4f5d0a0c60640377e3cec">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_new_double_s()
|
||||||
|
: <a class="el" href="json__object_8h.html#a50c188c8eb9007f05ab1aa0e22eae90c">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_new_int()
|
||||||
|
: <a class="el" href="json__object_8h.html#aa7db8ceb1afe1b93afc63c10b8c57560">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_new_int64()
|
||||||
|
: <a class="el" href="json__object_8h.html#a54a27690a1927354966189166bba6ca3">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_new_object()
|
||||||
|
: <a class="el" href="json__object_8h.html#af0ed3555604f39ac74b5e28bc5b1f82c">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_new_string()
|
||||||
|
: <a class="el" href="json__object_8h.html#a48eb92a8208e6718e55edf1130e8e4b8">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_new_string_len()
|
||||||
|
: <a class="el" href="json__object_8h.html#a9d14fd03ed7520c4aa33ab53b4569414">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_object_add()
|
||||||
|
: <a class="el" href="json__object_8h.html#a04448b1c63173e1bfe49965835732075">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_object_del()
|
||||||
|
: <a class="el" href="json__object_8h.html#a03653c18aafccd1ffba1ad318e342845">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_object_foreach
|
||||||
|
: <a class="el" href="json__object_8h.html#acf5f514a9e0061c10fc08055762639ee">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_object_foreachC
|
||||||
|
: <a class="el" href="json__object_8h.html#a71f07006c12d78f7bbf4cb716a5af3a6">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_object_get_ex()
|
||||||
|
: <a class="el" href="json__object_8h.html#af3f38b3395b1af8e9d3ac73818c3a936">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_object_length()
|
||||||
|
: <a class="el" href="json__object_8h.html#acde75a8e4ad28056b3e694ff43afbec0">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_private_delete_fn
|
||||||
|
: <a class="el" href="json__object__private_8h.html#aa125a0d39945a73a7d52b9823a2ef741">json_object_private.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_put()
|
||||||
|
: <a class="el" href="json__object_8h.html#a1bb50e2d17832c404c3d5f13fbde5bf5">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_set_serializer()
|
||||||
|
: <a class="el" href="json__object_8h.html#a2ce290cd15dba1c779727c6041d5a2dd">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_to_file()
|
||||||
|
: <a class="el" href="json__util_8h.html#abbd121df84ec3878a5cb8fefaff12ec7">json_util.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_to_file_ext()
|
||||||
|
: <a class="el" href="json__util_8h.html#a4e980954930951bf790c1ec3ba68fb76">json_util.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_to_json_string()
|
||||||
|
: <a class="el" href="json__object_8h.html#a1f62a660e2619559d1f3f54cd7483ff8">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_to_json_string_ext()
|
||||||
|
: <a class="el" href="json__object_8h.html#a84421dab94ccad42e901e534c6d7b658">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_to_json_string_fn
|
||||||
|
: <a class="el" href="json__object_8h.html#af84078100a9025df418f31626ea866fa">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_userdata_to_json_string
|
||||||
|
: <a class="el" href="json__object_8h.html#a8bc341281f4dd60b53b03b2dec0fae28">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_parse_double()
|
||||||
|
: <a class="el" href="json__util_8h.html#a6b5790c15178b6ea97841fc5868b1e1a">json_util.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_parse_int64()
|
||||||
|
: <a class="el" href="json__util_8h.html#a9bb9882ef2859ca2c1ee17805679bc25">json_util.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener
|
||||||
|
: <a class="el" href="json__object_8h.html#a4dd5e5b65aee7f376f529f86b210ff49">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_continue
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a9b26e920ca765df91c84e999561d8fb0">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_TOKENER_DEFAULT_DEPTH
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a5ccd346459feb66e4e0af32005360279">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_depth
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a59b2c36d9cc30c3038e09b9ddee6c86c">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_desc()
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a04c5625212aed3216cc303429e47f642">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_parse_array
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a574846740b785146f164a209dc89574e">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_parse_boolean
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59addbdfe084e20709da3d20c8ae8ca278c">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_parse_comment
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a3588c05b1da8b909a8cbdef66b0a1a28">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_parse_eof
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a8f774f4c7869afdd9b92295fca3a9ded">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_parse_null
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a641bbb8d881fdd1e463f20a1a203b77c">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_parse_number
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59ab1b3ad685eb97235d269cc5b9eb7ab81">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_parse_object_key_name
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a2003bd8e96c6680cd22419c5ceafd4c0">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_parse_object_key_sep
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59af91a2a819b0d6344d6d4e1d2579f28fd">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_parse_object_value_sep
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a9ddb98741aebf7ac44735b4a43717013">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_parse_string
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a033ce89ce7b8f9e591e4bea92121c4c7">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_parse_unexpected
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a3309fa8ea4ab3ee0a81c55b69d223710">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_size
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a1eeed74de65c0c12c9f9c28cf4f3ff1d">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_free()
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af6645ff27c0ca82c6e314390814fcbeb">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_get_error()
|
||||||
|
: <a class="el" href="json__tokener_8h.html#ae8dff7f1ea11702aecf418e0da5574fe">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_new()
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a55d6e8a6f6d90992c063a39e21769c52">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_new_ex()
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a8c0696656dba7dde887a71e5c7686057">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_parse()
|
||||||
|
: <a class="el" href="json__tokener_8h.html#abf031fdf1e5caab71e2225a99588c6bb">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_parse_ex()
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0d9a666c21879647e8831f9cfa691673">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_parse_verbose()
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a1c8f5d8baad383dc8879615d2b02b53c">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_reset()
|
||||||
|
: <a class="el" href="json__tokener_8h.html#ae23dd7ad4737bfc18409af6173ab2b09">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_set_flags()
|
||||||
|
: <a class="el" href="json__tokener_8h.html#aaaee020e15fe8a8fcc4ce1e81b610e36">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_array
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ab3d763300f1914865be09d603ddc11f4">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_array_add
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2aa2a01798ebe318ea91c38a886418f771">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_array_after_sep
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ab1a0ad626ec662c1ba4fb5bfee1cd0a9">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_array_sep
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a4ec7762aeab3424cbb14354c94025865">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_boolean
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a3525b15ecd0a698281b3914115b6bd3e">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_comment
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a8c2680b8873a8dce85f0b1ac25882dc9">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_comment_end
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a62cef297a37a98b1239ea4bbd39723e1">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_comment_eol
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ad8151350b1ef50298bafbab244ac1162">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_comment_start
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a0ff1d1935d49188aa1e6b998d43e655c">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_eatws
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a9db152607ec1872a000f1fcd8757297d">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_escape_unicode
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a6c852da2e694be56799c58c201d6dca0">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_finish
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ad80b689cb709967b67a348de3d8601d2">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_inf
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ab9f6244bfca4924db61ed3050c780b53">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_null
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a668fb2654c59608945370003403a5792">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_number
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a7ce18d281d322af690b45f3b8b599e81">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_object_field
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a77375940a10806e81d99876d13be67fc">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_object_field_end
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a0220aea1d9204aadfffde92c7f73f5f7">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_object_field_start
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a8c7dbda177a5d83a36a64f7cb99b9a29">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_object_field_start_after_sep
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a3a2c9cf26d076936a10a6ae3ca4eb523">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_object_sep
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2adaf3e06c5fc04fd4f04040cd67698215">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_object_value
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a4c7b7deac37355491572f6da84f208aa">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_object_value_add
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ade6bee72f2147e634b19eb84e58eb162">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_start
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a7c4c0bed1ebde45f5a99de4278792d72">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_string
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2aa90ea4c327a285bfbbce49d42d491d65">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_string_escape
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a1cf793d73587f68c4f2b3b4f65ff728e">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_TOKENER_STRICT
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a72be595cb7e090c70b1d29feb1cbfb16">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_success
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59afe2fa9bde03155019b2df30f66a5fcd0">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_type
|
||||||
|
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06c">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_type_array
|
||||||
|
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06cae536c8c9da4648e6b9348abddde6113c">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_type_boolean
|
||||||
|
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06ca5d15299e90dbb9935ff6d3e2c22a285c">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_type_double
|
||||||
|
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06cac6ac2d9a16577d00210fea64d16b47cd">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_type_int
|
||||||
|
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06ca7bf325c213b43c5f970ae2d4443ab956">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_type_null
|
||||||
|
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06ca127e62d156e13517471fcde3378979c1">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_type_object
|
||||||
|
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06cac966c8008f0b2c07da59ee8a60ad440f">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_type_string
|
||||||
|
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06cac9f56e57c09245522d764015a054faa6">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_type_to_name()
|
||||||
|
: <a class="el" href="json__util_8h.html#a74031a1b948dc9fed3f367ea6ce78389">json_util.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 20:04:09 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
163
doc/html/globals_0x6c.html
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Globals</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="globals_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Macros</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow4" class="tabs3">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="globals.html#index__"><span>_</span></a></li>
|
||||||
|
<li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
|
||||||
|
<li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
|
||||||
|
<li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
|
||||||
|
<li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
|
||||||
|
<li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
|
||||||
|
<li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
|
||||||
|
<li class="current"><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
|
||||||
|
<li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
|
||||||
|
<li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
|
||||||
|
<li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
|
||||||
|
<li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
|
||||||
|
<li>lh_abort()
|
||||||
|
: <a class="el" href="linkhash_8h.html#a1294160fa0e80cee04cd745a401f43a4">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_char_equal()
|
||||||
|
: <a class="el" href="linkhash_8h.html#ae4e9f21fb1a556c7a50c6b7ea61f2079">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_char_hash()
|
||||||
|
: <a class="el" href="linkhash_8h.html#a1fcf495b9c4ce169630cb31f638b8435">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>LH_EMPTY
|
||||||
|
: <a class="el" href="linkhash_8h.html#a93fad7f8ae44575dc89c9567859972d2">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_entry_free_fn
|
||||||
|
: <a class="el" href="linkhash_8h.html#a671553d0ee3c2a123190ba0f8ed2b635">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_equal_fn
|
||||||
|
: <a class="el" href="linkhash_8h.html#a91fd85fc81b0c7c83c62f00e84729091">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_foreach
|
||||||
|
: <a class="el" href="linkhash_8h.html#ad7dd67da915065dce2c6f44cb03e2d82">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_foreach_safe
|
||||||
|
: <a class="el" href="linkhash_8h.html#abcbb0df08b4976d0649b826b6bacfca1">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>LH_FREED
|
||||||
|
: <a class="el" href="linkhash_8h.html#ac69428f2de0a6fb080b6fb373d506aa7">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_hash_fn
|
||||||
|
: <a class="el" href="linkhash_8h.html#a38bae27995dcfb6ee3fb109a9be229b2">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_kchar_table_new()
|
||||||
|
: <a class="el" href="linkhash_8h.html#a0aaf11e11ee5b0925279a52eab04bc38">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_kptr_table_new()
|
||||||
|
: <a class="el" href="linkhash_8h.html#a705513954267a16cc1d40a284a7c441e">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>LH_LOAD_FACTOR
|
||||||
|
: <a class="el" href="linkhash_8h.html#a66b61772c29d85eb52b697e0b0dc0aaf">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>LH_PRIME
|
||||||
|
: <a class="el" href="linkhash_8h.html#a032f1bd115df254dda325437203ce5fb">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_ptr_equal()
|
||||||
|
: <a class="el" href="linkhash_8h.html#a6ce3cb97560072c40f5caeaba85f756a">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_ptr_hash()
|
||||||
|
: <a class="el" href="linkhash_8h.html#a2e560f0d3e5a20f6b0bfa4049737db23">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_table
|
||||||
|
: <a class="el" href="json__object_8h.html#a766e90057496fc6712d6be0da180a21f">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_table_delete()
|
||||||
|
: <a class="el" href="linkhash_8h.html#a2fed2c78f70d229edb2d00775ffe593c">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_table_delete_entry()
|
||||||
|
: <a class="el" href="linkhash_8h.html#ae5885a71c3457190fb1dc2d6e20dde3b">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_table_free()
|
||||||
|
: <a class="el" href="linkhash_8h.html#a81653acf740cf8c9fe672e6cd16df0cf">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_table_insert()
|
||||||
|
: <a class="el" href="linkhash_8h.html#a22b897763cc34a98c21c7fe82d151004">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_table_length()
|
||||||
|
: <a class="el" href="linkhash_8h.html#ac9ba631c91fe80fb905f04c7cd526f2b">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_table_lookup_entry()
|
||||||
|
: <a class="el" href="linkhash_8h.html#ad3b6ca2d967a6c3021ee6c39e014a918">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_table_lookup_ex()
|
||||||
|
: <a class="el" href="linkhash_8h.html#a81c270bb0dd9d5c8a3e7ae20bc4d67f3">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_table_new()
|
||||||
|
: <a class="el" href="linkhash_8h.html#ac3ba464ac43c083397b1f1d34f2ddf55">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_table_resize()
|
||||||
|
: <a class="el" href="linkhash_8h.html#a5322eccf3394af7dc1ebb22af8f8c562">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 07:35:21 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
121
doc/html/globals_0x6d.html
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Globals</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="globals_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Macros</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow4" class="tabs3">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="globals.html#index__"><span>_</span></a></li>
|
||||||
|
<li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
|
||||||
|
<li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
|
||||||
|
<li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
|
||||||
|
<li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
|
||||||
|
<li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
|
||||||
|
<li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
|
||||||
|
<li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
|
||||||
|
<li class="current"><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
|
||||||
|
<li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
|
||||||
|
<li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
|
||||||
|
<li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
|
||||||
|
<li>MC_DEBUG
|
||||||
|
: <a class="el" href="debug_8h.html#afda355b35d18bf2e6a2a22d5c8eef42c">debug.h</a>
|
||||||
|
</li>
|
||||||
|
<li>mc_debug()
|
||||||
|
: <a class="el" href="debug_8h.html#a600cf4cbbe19c0c15ca3710210e35aba">debug.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MC_ERROR
|
||||||
|
: <a class="el" href="debug_8h.html#a11ba39cecbe449af5b86fa2f78e9da9d">debug.h</a>
|
||||||
|
</li>
|
||||||
|
<li>mc_error()
|
||||||
|
: <a class="el" href="debug_8h.html#abf22ea3a331c7ff21c23da91a07c7cb2">debug.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MC_GET_DEBUG
|
||||||
|
: <a class="el" href="debug_8h.html#acb272a4b4444b69cd995236f167f90ba">debug.h</a>
|
||||||
|
</li>
|
||||||
|
<li>mc_get_debug()
|
||||||
|
: <a class="el" href="debug_8h.html#a3b3ab3ae8b438384fb109a2e38646b6e">debug.h</a>
|
||||||
|
</li>
|
||||||
|
<li>mc_info()
|
||||||
|
: <a class="el" href="debug_8h.html#acbb92996a994e316ff65ed3a026e12a4">debug.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MC_INFO
|
||||||
|
: <a class="el" href="debug_8h.html#a5ef640ce1e9e61c5f6632aefbbfa0041">debug.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MC_SET_DEBUG
|
||||||
|
: <a class="el" href="debug_8h.html#a50f21a239fa040a10ad4cfdb4278b02b">debug.h</a>
|
||||||
|
</li>
|
||||||
|
<li>mc_set_debug()
|
||||||
|
: <a class="el" href="debug_8h.html#af65a73617b71476020a005b20bf02726">debug.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MC_SET_SYSLOG
|
||||||
|
: <a class="el" href="debug_8h.html#acf1e895cb5eb7f334cbe51901e6bb918">debug.h</a>
|
||||||
|
</li>
|
||||||
|
<li>mc_set_syslog()
|
||||||
|
: <a class="el" href="debug_8h.html#aadb888da410116384e75a00db30da705">debug.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 15:26:49 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
109
doc/html/globals_0x70.html
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Globals</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="globals_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Macros</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow4" class="tabs3">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="globals.html#index__"><span>_</span></a></li>
|
||||||
|
<li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
|
||||||
|
<li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
|
||||||
|
<li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
|
||||||
|
<li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
|
||||||
|
<li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
|
||||||
|
<li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
|
||||||
|
<li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
|
||||||
|
<li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
|
||||||
|
<li class="current"><a href="globals_0x70.html#index_p"><span>p</span></a></li>
|
||||||
|
<li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
|
||||||
|
<li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
|
||||||
|
<li>printbuf
|
||||||
|
: <a class="el" href="json__object_8h.html#ace274df280df67463ff417b1b3392395">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>printbuf_free()
|
||||||
|
: <a class="el" href="printbuf_8h.html#ab525221c767ac65c58ddeea8a655a4e8">printbuf.h</a>
|
||||||
|
</li>
|
||||||
|
<li>printbuf_length
|
||||||
|
: <a class="el" href="printbuf_8h.html#acdd84ad88987c0166b7ba0e3f1f8f1bb">printbuf.h</a>
|
||||||
|
</li>
|
||||||
|
<li>printbuf_memappend()
|
||||||
|
: <a class="el" href="printbuf_8h.html#a22f09779a19db59a83e7cb8c2ce4c75f">printbuf.h</a>
|
||||||
|
</li>
|
||||||
|
<li>printbuf_memappend_fast
|
||||||
|
: <a class="el" href="printbuf_8h.html#a6f3a4dc87fab41c37e3eff42f40dc346">printbuf.h</a>
|
||||||
|
</li>
|
||||||
|
<li>printbuf_memset()
|
||||||
|
: <a class="el" href="printbuf_8h.html#ad7fc6ec4c296e85abf404244614cded5">printbuf.h</a>
|
||||||
|
</li>
|
||||||
|
<li>printbuf_new()
|
||||||
|
: <a class="el" href="printbuf_8h.html#a3e390ebc7660a18335edd89f640fd415">printbuf.h</a>
|
||||||
|
</li>
|
||||||
|
<li>printbuf_reset()
|
||||||
|
: <a class="el" href="printbuf_8h.html#a4393ee3dedb376af11c96fe97532292e">printbuf.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 15:16:09 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
88
doc/html/globals_0x73.html
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Globals</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="globals_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Macros</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow4" class="tabs3">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="globals.html#index__"><span>_</span></a></li>
|
||||||
|
<li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
|
||||||
|
<li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
|
||||||
|
<li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
|
||||||
|
<li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
|
||||||
|
<li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
|
||||||
|
<li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
|
||||||
|
<li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
|
||||||
|
<li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
|
||||||
|
<li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
|
||||||
|
<li class="current"><a href="globals_0x73.html#index_s"><span>s</span></a></li>
|
||||||
|
<li><a href="globals_0x74.html#index_t"><span>t</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
|
||||||
|
<li>sprintbuf()
|
||||||
|
: <a class="el" href="printbuf_8h.html#adf6214db6c8ce994c7f7f1180863c8a4">printbuf.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 22:16:09 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
92
doc/html/globals_0x74.html
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Globals</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="globals_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Macros</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow4" class="tabs3">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="globals.html#index__"><span>_</span></a></li>
|
||||||
|
<li><a href="globals_0x61.html#index_a"><span>a</span></a></li>
|
||||||
|
<li><a href="globals_0x65.html#index_e"><span>e</span></a></li>
|
||||||
|
<li><a href="globals_0x66.html#index_f"><span>f</span></a></li>
|
||||||
|
<li><a href="globals_0x68.html#index_h"><span>h</span></a></li>
|
||||||
|
<li><a href="globals_0x69.html#index_i"><span>i</span></a></li>
|
||||||
|
<li><a href="globals_0x6a.html#index_j"><span>j</span></a></li>
|
||||||
|
<li><a href="globals_0x6c.html#index_l"><span>l</span></a></li>
|
||||||
|
<li><a href="globals_0x6d.html#index_m"><span>m</span></a></li>
|
||||||
|
<li><a href="globals_0x70.html#index_p"><span>p</span></a></li>
|
||||||
|
<li><a href="globals_0x73.html#index_s"><span>s</span></a></li>
|
||||||
|
<li class="current"><a href="globals_0x74.html#index_t"><span>t</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
|
||||||
|
<li>THIS_FUNCTION_IS_DEPRECATED
|
||||||
|
: <a class="el" href="json__object_8h.html#a84fa70b86686ce202058f63905c90078">json_object.h</a>
|
||||||
|
, <a class="el" href="linkhash_8h.html#a849aa0ce9fe550c16ce81a215b1765ad">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>TRUE
|
||||||
|
: <a class="el" href="json__object_8h.html#aa8cecfc5c5c054d2875c03e77b7be15d">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 12:06:17 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
247
doc/html/globals_defs.html
Normal file
@@ -0,0 +1,247 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Globals</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="globals_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow4" class="tabs3">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="#index__"><span>_</span></a></li>
|
||||||
|
<li><a href="#index_a"><span>a</span></a></li>
|
||||||
|
<li><a href="#index_e"><span>e</span></a></li>
|
||||||
|
<li><a href="#index_f"><span>f</span></a></li>
|
||||||
|
<li><a href="#index_h"><span>h</span></a></li>
|
||||||
|
<li><a href="#index_i"><span>i</span></a></li>
|
||||||
|
<li><a href="#index_j"><span>j</span></a></li>
|
||||||
|
<li><a href="#index_l"><span>l</span></a></li>
|
||||||
|
<li><a href="#index_m"><span>m</span></a></li>
|
||||||
|
<li><a href="#index_p"><span>p</span></a></li>
|
||||||
|
<li><a href="#index_t"><span>t</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
 
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index__"></a>- _ -</h3><ul>
|
||||||
|
<li>__STRING
|
||||||
|
: <a class="el" href="debug_8h.html#a375c4dc9f0fb338999de81aab826f9d6">debug.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
|
||||||
|
<li>ARRAY_LIST_DEFAULT_SIZE
|
||||||
|
: <a class="el" href="arraylist_8h.html#acd30d910b398421574eb1f59e78617f5">arraylist.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_e"></a>- e -</h3><ul>
|
||||||
|
<li>error_description
|
||||||
|
: <a class="el" href="bits_8h.html#a45afe86501cd57ee2beeef9d67a4d40c">bits.h</a>
|
||||||
|
</li>
|
||||||
|
<li>error_ptr
|
||||||
|
: <a class="el" href="bits_8h.html#a863a898e607f8c2ff87b7052e326740f">bits.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_f"></a>- f -</h3><ul>
|
||||||
|
<li>FALSE
|
||||||
|
: <a class="el" href="json__object_8h.html#aa93f0eb578d23995850d61f7d61c55c1">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_h"></a>- h -</h3><ul>
|
||||||
|
<li>hexdigit
|
||||||
|
: <a class="el" href="bits_8h.html#a1cf38b22d3a118ad48d9282c32c048aa">bits.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_i"></a>- i -</h3><ul>
|
||||||
|
<li>is_error
|
||||||
|
: <a class="el" href="bits_8h.html#a4a887e5fb7cde221bcab9c6f39d93fc1">bits.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_j"></a>- j -</h3><ul>
|
||||||
|
<li>JASSERT
|
||||||
|
: <a class="el" href="debug_8h.html#a8ca29550d5b1b73948f4a7bce53f2385">debug.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_C_MAJOR_VERSION
|
||||||
|
: <a class="el" href="json__c__version_8h.html#a251c3e1f59a379a4a905382b4e855125">json_c_version.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_C_MICRO_VERSION
|
||||||
|
: <a class="el" href="json__c__version_8h.html#a64457730097067ab096906d82e4a51a6">json_c_version.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_C_MINOR_VERSION
|
||||||
|
: <a class="el" href="json__c__version_8h.html#adc87477fbc1c75848fe6b6feec21c2d6">json_c_version.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_C_TO_STRING_NOZERO
|
||||||
|
: <a class="el" href="json__object_8h.html#a34f027c147babf69fc530d088f2b49b0">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_C_TO_STRING_PLAIN
|
||||||
|
: <a class="el" href="json__object_8h.html#a3294cb92765cdeb497cfd346644d1059">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_C_TO_STRING_PRETTY
|
||||||
|
: <a class="el" href="json__object_8h.html#a2025bc677c35f130e117dfda5bf1ef73">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_C_TO_STRING_SPACED
|
||||||
|
: <a class="el" href="json__object_8h.html#aa821746c8668e6ad62bed90ec9e00103">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_C_VERSION
|
||||||
|
: <a class="el" href="json__c__version_8h.html#a894adda66a072bc3fd34ebe91a5aa7f4">json_c_version.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_C_VERSION_NUM
|
||||||
|
: <a class="el" href="json__c__version_8h.html#a78e176eee75ee6aed43c4d65ca4c5b44">json_c_version.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_FILE_BUF_SIZE
|
||||||
|
: <a class="el" href="json__util_8h.html#a084b6afc8f7fbef88976aabe4aca7efd">json_util.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_max
|
||||||
|
: <a class="el" href="bits_8h.html#a57d63d199d4b9ea40359253618951300">bits.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_min
|
||||||
|
: <a class="el" href="bits_8h.html#a3dde282dc23d0eaa3c4840df8dc262d4">bits.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_OBJECT_DEF_HASH_ENTRIES
|
||||||
|
: <a class="el" href="json__object_8h.html#a268a63dd1b2e6d81559e268a4529e9bf">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_object_foreach
|
||||||
|
: <a class="el" href="json__object_8h.html#acf5f514a9e0061c10fc08055762639ee">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_object_foreachC
|
||||||
|
: <a class="el" href="json__object_8h.html#a71f07006c12d78f7bbf4cb716a5af3a6">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_TOKENER_DEFAULT_DEPTH
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a5ccd346459feb66e4e0af32005360279">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>JSON_TOKENER_STRICT
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a72be595cb7e090c70b1d29feb1cbfb16">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
|
||||||
|
<li>LH_EMPTY
|
||||||
|
: <a class="el" href="linkhash_8h.html#a93fad7f8ae44575dc89c9567859972d2">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_foreach
|
||||||
|
: <a class="el" href="linkhash_8h.html#ad7dd67da915065dce2c6f44cb03e2d82">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_foreach_safe
|
||||||
|
: <a class="el" href="linkhash_8h.html#abcbb0df08b4976d0649b826b6bacfca1">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>LH_FREED
|
||||||
|
: <a class="el" href="linkhash_8h.html#ac69428f2de0a6fb080b6fb373d506aa7">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>LH_LOAD_FACTOR
|
||||||
|
: <a class="el" href="linkhash_8h.html#a66b61772c29d85eb52b697e0b0dc0aaf">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>LH_PRIME
|
||||||
|
: <a class="el" href="linkhash_8h.html#a032f1bd115df254dda325437203ce5fb">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
|
||||||
|
<li>MC_DEBUG
|
||||||
|
: <a class="el" href="debug_8h.html#afda355b35d18bf2e6a2a22d5c8eef42c">debug.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MC_ERROR
|
||||||
|
: <a class="el" href="debug_8h.html#a11ba39cecbe449af5b86fa2f78e9da9d">debug.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MC_GET_DEBUG
|
||||||
|
: <a class="el" href="debug_8h.html#acb272a4b4444b69cd995236f167f90ba">debug.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MC_INFO
|
||||||
|
: <a class="el" href="debug_8h.html#a5ef640ce1e9e61c5f6632aefbbfa0041">debug.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MC_SET_DEBUG
|
||||||
|
: <a class="el" href="debug_8h.html#a50f21a239fa040a10ad4cfdb4278b02b">debug.h</a>
|
||||||
|
</li>
|
||||||
|
<li>MC_SET_SYSLOG
|
||||||
|
: <a class="el" href="debug_8h.html#acf1e895cb5eb7f334cbe51901e6bb918">debug.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
|
||||||
|
<li>printbuf_length
|
||||||
|
: <a class="el" href="printbuf_8h.html#acdd84ad88987c0166b7ba0e3f1f8f1bb">printbuf.h</a>
|
||||||
|
</li>
|
||||||
|
<li>printbuf_memappend_fast
|
||||||
|
: <a class="el" href="printbuf_8h.html#a6f3a4dc87fab41c37e3eff42f40dc346">printbuf.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
|
||||||
|
<li>THIS_FUNCTION_IS_DEPRECATED
|
||||||
|
: <a class="el" href="json__object_8h.html#a84fa70b86686ce202058f63905c90078">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>TRUE
|
||||||
|
: <a class="el" href="json__object_8h.html#aa8cecfc5c5c054d2875c03e77b7be15d">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 23:39:37 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
76
doc/html/globals_enum.html
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Globals</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="globals_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
|
||||||
|
<li class="current"><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Macros</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
 <ul>
|
||||||
|
<li>json_tokener_error
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_type
|
||||||
|
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06c">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 09:39:05 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
215
doc/html/globals_eval.html
Normal file
@@ -0,0 +1,215 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Globals</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="globals_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li class="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Macros</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow4" class="tabs3">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="#index_j"><span>j</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
 
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_j"></a>- j -</h3><ul>
|
||||||
|
<li>json_tokener_continue
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a9b26e920ca765df91c84e999561d8fb0">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_depth
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a59b2c36d9cc30c3038e09b9ddee6c86c">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_parse_array
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a574846740b785146f164a209dc89574e">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_parse_boolean
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59addbdfe084e20709da3d20c8ae8ca278c">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_parse_comment
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a3588c05b1da8b909a8cbdef66b0a1a28">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_parse_eof
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a8f774f4c7869afdd9b92295fca3a9ded">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_parse_null
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a641bbb8d881fdd1e463f20a1a203b77c">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_parse_number
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59ab1b3ad685eb97235d269cc5b9eb7ab81">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_parse_object_key_name
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a2003bd8e96c6680cd22419c5ceafd4c0">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_parse_object_key_sep
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59af91a2a819b0d6344d6d4e1d2579f28fd">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_parse_object_value_sep
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a9ddb98741aebf7ac44735b4a43717013">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_parse_string
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a033ce89ce7b8f9e591e4bea92121c4c7">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_parse_unexpected
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a3309fa8ea4ab3ee0a81c55b69d223710">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_size
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59a1eeed74de65c0c12c9f9c28cf4f3ff1d">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_array
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ab3d763300f1914865be09d603ddc11f4">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_array_add
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2aa2a01798ebe318ea91c38a886418f771">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_array_after_sep
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ab1a0ad626ec662c1ba4fb5bfee1cd0a9">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_array_sep
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a4ec7762aeab3424cbb14354c94025865">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_boolean
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a3525b15ecd0a698281b3914115b6bd3e">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_comment
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a8c2680b8873a8dce85f0b1ac25882dc9">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_comment_end
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a62cef297a37a98b1239ea4bbd39723e1">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_comment_eol
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ad8151350b1ef50298bafbab244ac1162">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_comment_start
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a0ff1d1935d49188aa1e6b998d43e655c">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_eatws
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a9db152607ec1872a000f1fcd8757297d">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_escape_unicode
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a6c852da2e694be56799c58c201d6dca0">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_finish
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ad80b689cb709967b67a348de3d8601d2">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_inf
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ab9f6244bfca4924db61ed3050c780b53">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_null
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a668fb2654c59608945370003403a5792">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_number
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a7ce18d281d322af690b45f3b8b599e81">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_object_field
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a77375940a10806e81d99876d13be67fc">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_object_field_end
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a0220aea1d9204aadfffde92c7f73f5f7">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_object_field_start
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a8c7dbda177a5d83a36a64f7cb99b9a29">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_object_field_start_after_sep
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a3a2c9cf26d076936a10a6ae3ca4eb523">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_object_sep
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2adaf3e06c5fc04fd4f04040cd67698215">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_object_value
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a4c7b7deac37355491572f6da84f208aa">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_object_value_add
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2ade6bee72f2147e634b19eb84e58eb162">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_start
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a7c4c0bed1ebde45f5a99de4278792d72">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_string
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2aa90ea4c327a285bfbbce49d42d491d65">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_state_string_escape
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af026dec71e4548e6200eb2f902f1c4e2a1cf793d73587f68c4f2b3b4f65ff728e">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_success
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0a31f0df8a532ef8be5c09ba40eacb59afe2fa9bde03155019b2df30f66a5fcd0">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_type_array
|
||||||
|
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06cae536c8c9da4648e6b9348abddde6113c">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_type_boolean
|
||||||
|
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06ca5d15299e90dbb9935ff6d3e2c22a285c">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_type_double
|
||||||
|
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06cac6ac2d9a16577d00210fea64d16b47cd">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_type_int
|
||||||
|
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06ca7bf325c213b43c5f970ae2d4443ab956">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_type_null
|
||||||
|
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06ca127e62d156e13517471fcde3378979c1">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_type_object
|
||||||
|
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06cac966c8008f0b2c07da59ee8a60ad440f">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_type_string
|
||||||
|
: <a class="el" href="json__object_8h.html#ac75c61993722a9b8aaa44704072ec06cac9f56e57c09245522d764015a054faa6">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 15:24:25 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
390
doc/html/globals_func.html
Normal file
@@ -0,0 +1,390 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Globals</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="globals_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Macros</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow4" class="tabs3">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="#index_a"><span>a</span></a></li>
|
||||||
|
<li><a href="#index_j"><span>j</span></a></li>
|
||||||
|
<li><a href="#index_l"><span>l</span></a></li>
|
||||||
|
<li><a href="#index_m"><span>m</span></a></li>
|
||||||
|
<li><a href="#index_p"><span>p</span></a></li>
|
||||||
|
<li><a href="#index_s"><span>s</span></a></li>
|
||||||
|
<li><a href="#index_t"><span>t</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
 
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_a"></a>- a -</h3><ul>
|
||||||
|
<li>array_list_add()
|
||||||
|
: <a class="el" href="arraylist_8h.html#a6e995608aa464244ff3184fb43574dc8">arraylist.h</a>
|
||||||
|
</li>
|
||||||
|
<li>array_list_free()
|
||||||
|
: <a class="el" href="arraylist_8h.html#acd00fb70f7ca82f23b48b812c3498f67">arraylist.h</a>
|
||||||
|
</li>
|
||||||
|
<li>array_list_get_idx()
|
||||||
|
: <a class="el" href="arraylist_8h.html#aa16207e545b6c1265299abcfa418dc2b">arraylist.h</a>
|
||||||
|
</li>
|
||||||
|
<li>array_list_length()
|
||||||
|
: <a class="el" href="arraylist_8h.html#aa8393b4aa3dc447660371530439ab70f">arraylist.h</a>
|
||||||
|
</li>
|
||||||
|
<li>array_list_new()
|
||||||
|
: <a class="el" href="arraylist_8h.html#a0d4bfac055dfd98e17296142abf4d894">arraylist.h</a>
|
||||||
|
</li>
|
||||||
|
<li>array_list_put_idx()
|
||||||
|
: <a class="el" href="arraylist_8h.html#a21b8e4c59e52fbc5a9a5a098e3f96e76">arraylist.h</a>
|
||||||
|
</li>
|
||||||
|
<li>array_list_sort()
|
||||||
|
: <a class="el" href="arraylist_8h.html#afb67cc8e2e5c9be41c3e644536079169">arraylist.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_j"></a>- j -</h3><ul>
|
||||||
|
<li>json_c_get_random_seed()
|
||||||
|
: <a class="el" href="random__seed_8h.html#ae190c6819d7687e110d6ec59a16d006f">random_seed.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_c_version()
|
||||||
|
: <a class="el" href="json__c__version_8h.html#a536b398f292b0669fc824a8486131a27">json_c_version.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_c_version_num()
|
||||||
|
: <a class="el" href="json__c__version_8h.html#a114bcfed9594f3cd662e43454000938d">json_c_version.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_array_add()
|
||||||
|
: <a class="el" href="json__object_8h.html#acc89c0f58947d499e2868ac8b62bed49">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_array_get_idx()
|
||||||
|
: <a class="el" href="json__object_8h.html#a5c9120a6d644ea12a61e2ec8520130c6">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_array_length()
|
||||||
|
: <a class="el" href="json__object_8h.html#a2e62d4b19de8f297595f3b4aaa0ec453">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_array_put_idx()
|
||||||
|
: <a class="el" href="json__object_8h.html#a2d19d21b495e1e0d3f711093d97a5104">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_array_sort()
|
||||||
|
: <a class="el" href="json__object_8h.html#aa1b05eeaa9c92f079facece87d6a0149">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_from_file()
|
||||||
|
: <a class="el" href="json__util_8h.html#a8fa0bba6b7ddb149a2159d99bae709ce">json_util.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_get()
|
||||||
|
: <a class="el" href="json__object_8h.html#acc3628d97c6308dc967006e4268c4e7f">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_get_array()
|
||||||
|
: <a class="el" href="json__object_8h.html#aba4e8df5e00bdc91a89bfb775e04ed70">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_get_boolean()
|
||||||
|
: <a class="el" href="json__object_8h.html#a3be3153ae5158ed24a49d74fbf14149f">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_get_double()
|
||||||
|
: <a class="el" href="json__object_8h.html#a9cf586fba906a597a121423045cb2a45">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_get_int()
|
||||||
|
: <a class="el" href="json__object_8h.html#ae6cab7d4c7c707b9053035a6405d3891">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_get_int64()
|
||||||
|
: <a class="el" href="json__object_8h.html#a3493894ebd226249118582e640af6944">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_get_object()
|
||||||
|
: <a class="el" href="json__object_8h.html#a9840421d6b45a7d00a42e13e379b54b5">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_get_string()
|
||||||
|
: <a class="el" href="json__object_8h.html#ad24f1c4c22b2a7d33e7b562c01f2ca65">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_get_string_len()
|
||||||
|
: <a class="el" href="json__object_8h.html#ad821384d0d8515d5ed4eec44d7101772">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_get_type()
|
||||||
|
: <a class="el" href="json__object_8h.html#adc5e998b4897b6e450bd0975a58d2f72">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_is_type()
|
||||||
|
: <a class="el" href="json__object_8h.html#ab6dc8b19f8da310e78f402f83d6ae6c5">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_iter_begin()
|
||||||
|
: <a class="el" href="json__object__iterator_8h.html#a925eb97b5aa5b64986a0f663f53cf0fa">json_object_iterator.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_iter_end()
|
||||||
|
: <a class="el" href="json__object__iterator_8h.html#a1fa3784395fb14496e3f1a1633028fd4">json_object_iterator.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_iter_equal()
|
||||||
|
: <a class="el" href="json__object__iterator_8h.html#a878ca25f72b339882aa2607ac938e79c">json_object_iterator.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_iter_init_default()
|
||||||
|
: <a class="el" href="json__object__iterator_8h.html#af30f56ca510d59da42e5592f9a436c10">json_object_iterator.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_iter_next()
|
||||||
|
: <a class="el" href="json__object__iterator_8h.html#aa98a310c340f6d9b4eeecb673aa5e240">json_object_iterator.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_iter_peek_name()
|
||||||
|
: <a class="el" href="json__object__iterator_8h.html#af17775b9b812a4206a84e4d3fb5774ab">json_object_iterator.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_iter_peek_value()
|
||||||
|
: <a class="el" href="json__object__iterator_8h.html#a47b0af7f1722c10475dffd29efc0b89d">json_object_iterator.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_new_array()
|
||||||
|
: <a class="el" href="json__object_8h.html#a9b5af06e9a99e16c6d9b6459a685ea3f">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_new_boolean()
|
||||||
|
: <a class="el" href="json__object_8h.html#a93cfacfdd1000c739ad19df0a080cb85">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_new_double()
|
||||||
|
: <a class="el" href="json__object_8h.html#a2e9c761833a4f5d0a0c60640377e3cec">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_new_double_s()
|
||||||
|
: <a class="el" href="json__object_8h.html#a50c188c8eb9007f05ab1aa0e22eae90c">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_new_int()
|
||||||
|
: <a class="el" href="json__object_8h.html#aa7db8ceb1afe1b93afc63c10b8c57560">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_new_int64()
|
||||||
|
: <a class="el" href="json__object_8h.html#a54a27690a1927354966189166bba6ca3">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_new_object()
|
||||||
|
: <a class="el" href="json__object_8h.html#af0ed3555604f39ac74b5e28bc5b1f82c">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_new_string()
|
||||||
|
: <a class="el" href="json__object_8h.html#a48eb92a8208e6718e55edf1130e8e4b8">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_new_string_len()
|
||||||
|
: <a class="el" href="json__object_8h.html#a9d14fd03ed7520c4aa33ab53b4569414">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_object_add()
|
||||||
|
: <a class="el" href="json__object_8h.html#a04448b1c63173e1bfe49965835732075">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_object_del()
|
||||||
|
: <a class="el" href="json__object_8h.html#a03653c18aafccd1ffba1ad318e342845">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_object_get_ex()
|
||||||
|
: <a class="el" href="json__object_8h.html#af3f38b3395b1af8e9d3ac73818c3a936">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_object_length()
|
||||||
|
: <a class="el" href="json__object_8h.html#acde75a8e4ad28056b3e694ff43afbec0">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_put()
|
||||||
|
: <a class="el" href="json__object_8h.html#a1bb50e2d17832c404c3d5f13fbde5bf5">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_set_serializer()
|
||||||
|
: <a class="el" href="json__object_8h.html#a2ce290cd15dba1c779727c6041d5a2dd">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_to_file()
|
||||||
|
: <a class="el" href="json__util_8h.html#abbd121df84ec3878a5cb8fefaff12ec7">json_util.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_to_file_ext()
|
||||||
|
: <a class="el" href="json__util_8h.html#a4e980954930951bf790c1ec3ba68fb76">json_util.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_to_json_string()
|
||||||
|
: <a class="el" href="json__object_8h.html#a1f62a660e2619559d1f3f54cd7483ff8">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_to_json_string_ext()
|
||||||
|
: <a class="el" href="json__object_8h.html#a84421dab94ccad42e901e534c6d7b658">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_parse_double()
|
||||||
|
: <a class="el" href="json__util_8h.html#a6b5790c15178b6ea97841fc5868b1e1a">json_util.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_parse_int64()
|
||||||
|
: <a class="el" href="json__util_8h.html#a9bb9882ef2859ca2c1ee17805679bc25">json_util.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_error_desc()
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a04c5625212aed3216cc303429e47f642">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_free()
|
||||||
|
: <a class="el" href="json__tokener_8h.html#af6645ff27c0ca82c6e314390814fcbeb">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_get_error()
|
||||||
|
: <a class="el" href="json__tokener_8h.html#ae8dff7f1ea11702aecf418e0da5574fe">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_new()
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a55d6e8a6f6d90992c063a39e21769c52">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_new_ex()
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a8c0696656dba7dde887a71e5c7686057">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_parse()
|
||||||
|
: <a class="el" href="json__tokener_8h.html#abf031fdf1e5caab71e2225a99588c6bb">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_parse_ex()
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a0d9a666c21879647e8831f9cfa691673">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_parse_verbose()
|
||||||
|
: <a class="el" href="json__tokener_8h.html#a1c8f5d8baad383dc8879615d2b02b53c">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_reset()
|
||||||
|
: <a class="el" href="json__tokener_8h.html#ae23dd7ad4737bfc18409af6173ab2b09">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener_set_flags()
|
||||||
|
: <a class="el" href="json__tokener_8h.html#aaaee020e15fe8a8fcc4ce1e81b610e36">json_tokener.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_type_to_name()
|
||||||
|
: <a class="el" href="json__util_8h.html#a74031a1b948dc9fed3f367ea6ce78389">json_util.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_l"></a>- l -</h3><ul>
|
||||||
|
<li>lh_abort()
|
||||||
|
: <a class="el" href="linkhash_8h.html#a1294160fa0e80cee04cd745a401f43a4">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_char_equal()
|
||||||
|
: <a class="el" href="linkhash_8h.html#ae4e9f21fb1a556c7a50c6b7ea61f2079">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_char_hash()
|
||||||
|
: <a class="el" href="linkhash_8h.html#a1fcf495b9c4ce169630cb31f638b8435">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_kchar_table_new()
|
||||||
|
: <a class="el" href="linkhash_8h.html#a0aaf11e11ee5b0925279a52eab04bc38">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_kptr_table_new()
|
||||||
|
: <a class="el" href="linkhash_8h.html#a705513954267a16cc1d40a284a7c441e">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_ptr_equal()
|
||||||
|
: <a class="el" href="linkhash_8h.html#a6ce3cb97560072c40f5caeaba85f756a">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_ptr_hash()
|
||||||
|
: <a class="el" href="linkhash_8h.html#a2e560f0d3e5a20f6b0bfa4049737db23">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_table_delete()
|
||||||
|
: <a class="el" href="linkhash_8h.html#a2fed2c78f70d229edb2d00775ffe593c">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_table_delete_entry()
|
||||||
|
: <a class="el" href="linkhash_8h.html#ae5885a71c3457190fb1dc2d6e20dde3b">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_table_free()
|
||||||
|
: <a class="el" href="linkhash_8h.html#a81653acf740cf8c9fe672e6cd16df0cf">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_table_insert()
|
||||||
|
: <a class="el" href="linkhash_8h.html#a22b897763cc34a98c21c7fe82d151004">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_table_length()
|
||||||
|
: <a class="el" href="linkhash_8h.html#ac9ba631c91fe80fb905f04c7cd526f2b">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_table_lookup_entry()
|
||||||
|
: <a class="el" href="linkhash_8h.html#ad3b6ca2d967a6c3021ee6c39e014a918">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_table_lookup_ex()
|
||||||
|
: <a class="el" href="linkhash_8h.html#a81c270bb0dd9d5c8a3e7ae20bc4d67f3">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_table_new()
|
||||||
|
: <a class="el" href="linkhash_8h.html#ac3ba464ac43c083397b1f1d34f2ddf55">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_table_resize()
|
||||||
|
: <a class="el" href="linkhash_8h.html#a5322eccf3394af7dc1ebb22af8f8c562">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_m"></a>- m -</h3><ul>
|
||||||
|
<li>mc_debug()
|
||||||
|
: <a class="el" href="debug_8h.html#a600cf4cbbe19c0c15ca3710210e35aba">debug.h</a>
|
||||||
|
</li>
|
||||||
|
<li>mc_error()
|
||||||
|
: <a class="el" href="debug_8h.html#abf22ea3a331c7ff21c23da91a07c7cb2">debug.h</a>
|
||||||
|
</li>
|
||||||
|
<li>mc_get_debug()
|
||||||
|
: <a class="el" href="debug_8h.html#a3b3ab3ae8b438384fb109a2e38646b6e">debug.h</a>
|
||||||
|
</li>
|
||||||
|
<li>mc_info()
|
||||||
|
: <a class="el" href="debug_8h.html#acbb92996a994e316ff65ed3a026e12a4">debug.h</a>
|
||||||
|
</li>
|
||||||
|
<li>mc_set_debug()
|
||||||
|
: <a class="el" href="debug_8h.html#af65a73617b71476020a005b20bf02726">debug.h</a>
|
||||||
|
</li>
|
||||||
|
<li>mc_set_syslog()
|
||||||
|
: <a class="el" href="debug_8h.html#aadb888da410116384e75a00db30da705">debug.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_p"></a>- p -</h3><ul>
|
||||||
|
<li>printbuf_free()
|
||||||
|
: <a class="el" href="printbuf_8h.html#ab525221c767ac65c58ddeea8a655a4e8">printbuf.h</a>
|
||||||
|
</li>
|
||||||
|
<li>printbuf_memappend()
|
||||||
|
: <a class="el" href="printbuf_8h.html#a22f09779a19db59a83e7cb8c2ce4c75f">printbuf.h</a>
|
||||||
|
</li>
|
||||||
|
<li>printbuf_memset()
|
||||||
|
: <a class="el" href="printbuf_8h.html#ad7fc6ec4c296e85abf404244614cded5">printbuf.h</a>
|
||||||
|
</li>
|
||||||
|
<li>printbuf_new()
|
||||||
|
: <a class="el" href="printbuf_8h.html#a3e390ebc7660a18335edd89f640fd415">printbuf.h</a>
|
||||||
|
</li>
|
||||||
|
<li>printbuf_reset()
|
||||||
|
: <a class="el" href="printbuf_8h.html#a4393ee3dedb376af11c96fe97532292e">printbuf.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
|
||||||
|
<li>sprintbuf()
|
||||||
|
: <a class="el" href="printbuf_8h.html#adf6214db6c8ce994c7f7f1180863c8a4">printbuf.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<h3><a class="anchor" id="index_t"></a>- t -</h3><ul>
|
||||||
|
<li>THIS_FUNCTION_IS_DEPRECATED()
|
||||||
|
: <a class="el" href="json__object_8h.html#a1345aaf3ee46e9b6185355b733ec362d">json_object.h</a>
|
||||||
|
, <a class="el" href="linkhash_8h.html#a849aa0ce9fe550c16ce81a215b1765ad">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 16:05:13 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
112
doc/html/globals_type.html
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Globals</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_func.html"><span>Functions</span></a></li>
|
||||||
|
<li><a href="globals_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Macros</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
 <ul>
|
||||||
|
<li>array_list
|
||||||
|
: <a class="el" href="json__object_8h.html#a6d6d32d8b026ea2025df519b9e90f44a">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>array_list_free_fn
|
||||||
|
: <a class="el" href="arraylist_8h.html#aad83e4ed3c8ea274e6f18459276d774b">arraylist.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_bool
|
||||||
|
: <a class="el" href="json__object_8h.html#a81f02022906fafc71eb9197049f07f73">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object
|
||||||
|
: <a class="el" href="json__object_8h.html#af27907ced0f5a43409ad96430fe0f914">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_delete_fn
|
||||||
|
: <a class="el" href="json__object_8h.html#aa647d7c567a06abe1a1a511f6d6860e4">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_iter
|
||||||
|
: <a class="el" href="json__object_8h.html#af88126730e765f2068968f4b16fd074f">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_private_delete_fn
|
||||||
|
: <a class="el" href="json__object__private_8h.html#aa125a0d39945a73a7d52b9823a2ef741">json_object_private.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_to_json_string_fn
|
||||||
|
: <a class="el" href="json__object_8h.html#af84078100a9025df418f31626ea866fa">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_tokener
|
||||||
|
: <a class="el" href="json__object_8h.html#a4dd5e5b65aee7f376f529f86b210ff49">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_type
|
||||||
|
: <a class="el" href="json__object_8h.html#aba5eff84f8638d22f50403175f270c96">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_entry_free_fn
|
||||||
|
: <a class="el" href="linkhash_8h.html#a671553d0ee3c2a123190ba0f8ed2b635">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_equal_fn
|
||||||
|
: <a class="el" href="linkhash_8h.html#a91fd85fc81b0c7c83c62f00e84729091">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_hash_fn
|
||||||
|
: <a class="el" href="linkhash_8h.html#a38bae27995dcfb6ee3fb109a9be229b2">linkhash.h</a>
|
||||||
|
</li>
|
||||||
|
<li>lh_table
|
||||||
|
: <a class="el" href="json__object_8h.html#a766e90057496fc6712d6be0da180a21f">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>printbuf
|
||||||
|
: <a class="el" href="json__object_8h.html#ace274df280df67463ff417b1b3392395">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 01:11:21 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
79
doc/html/globals_vars.html
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Globals</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="files.html"><span>File List</span></a></li>
|
||||||
|
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow3" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="globals.html"><span>All</span></a></li>
|
||||||
|
<li><a href="globals_func.html"><span>Functions</span></a></li>
|
||||||
|
<li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
|
||||||
|
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
|
||||||
|
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
|
||||||
|
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
|
||||||
|
<li><a href="globals_defs.html"><span>Macros</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="contents">
|
||||||
|
 <ul>
|
||||||
|
<li>json_hex_chars
|
||||||
|
: <a class="el" href="json__object_8h.html#a20dbe4913551cefa6b4b0a77fd4397c4">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_number_chars
|
||||||
|
: <a class="el" href="json__object_8h.html#a27427f89f2fc995639e366635fbe58ac">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_free_userdata
|
||||||
|
: <a class="el" href="json__object_8h.html#adda8476609cc566ee62b80eaed310283">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
<li>json_object_userdata_to_json_string
|
||||||
|
: <a class="el" href="json__object_8h.html#a8bc341281f4dd60b53b03b2dec0fae28">json_object.h</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 03:21:29 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
52
doc/html/index.html
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<meta name="generator" content="Doxygen 1.8.5"/>
|
||||||
|
<title>json-c: Main Page</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">json-c
|
||||||
|
 <span id="projectnumber">0.12</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.5 -->
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li><a href="pages.html"><span>Related Pages</span></a></li>
|
||||||
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">json-c Documentation</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Thu Apr 10 2014 09:15:37 for json-c by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.5
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||