Compare commits
1114 Commits
json-c-0.1
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
52ddfb35f1 | ||
|
|
8c987e0b73 | ||
|
|
d7f14cb330 | ||
|
|
c293d9b61c | ||
|
|
8c01a7c32f | ||
|
|
d61b41c8bb | ||
|
|
1d4885ad09 | ||
|
|
92a4911e88 | ||
|
|
798d8f7235 | ||
|
|
a0c6bb32dd | ||
|
|
af2671a212 | ||
|
|
46defb4349 | ||
|
|
bda8299eb1 | ||
|
|
1c3b98ddb5 | ||
|
|
22e470ac5c | ||
|
|
3d86402028 | ||
|
|
653a12c7c2 | ||
|
|
d05ea4851f | ||
|
|
8948568031 | ||
|
|
b01b5b701b | ||
|
|
26fcd8d569 | ||
|
|
9774826e79 | ||
|
|
14c8e2e5ee | ||
|
|
e4b9dfba49 | ||
|
|
a1249bfda0 | ||
|
|
dc44b05961 | ||
|
|
20974e5f88 | ||
|
|
a7b34a299b | ||
|
|
243ed1a51c | ||
|
|
f565798e2c | ||
|
|
8c012da8a6 | ||
|
|
bd7355470e | ||
|
|
40fe4d2b04 | ||
|
|
2c412d4593 | ||
|
|
0883c24130 | ||
|
|
fbdd4bed24 | ||
|
|
33f4cb9353 | ||
|
|
a5bc36de26 | ||
|
|
3723b182db | ||
|
|
e3a33ae8ae | ||
|
|
461d9f90c4 | ||
|
|
2372e9518e | ||
|
|
8af05ab785 | ||
|
|
7974657c56 | ||
|
|
dbefb48948 | ||
|
|
bf92456789 | ||
|
|
7cee5237dc | ||
|
|
7bca694b47 | ||
|
|
51bcdd0000 | ||
|
|
a304464807 | ||
|
|
7b73916815 | ||
|
|
ee83daa409 | ||
|
|
ca1a6b0cc9 | ||
|
|
daff6eb746 | ||
|
|
254b5abef8 | ||
|
|
d31d635af1 | ||
|
|
743ebf53e5 | ||
|
|
f928e7c0fa | ||
|
|
4feebc1cd6 | ||
|
|
961c31f8ed | ||
|
|
0c3588330a | ||
|
|
8c13801f2c | ||
|
|
c63d4a4194 | ||
|
|
77bb5c54fc | ||
|
|
839fbe0d63 | ||
|
|
ff8ed0f094 | ||
|
|
565f181f65 | ||
|
|
828c12b226 | ||
|
|
474ee12435 | ||
|
|
d6b973e047 | ||
|
|
07148f33a1 | ||
|
|
2ec0b87b58 | ||
|
|
6aab3da807 | ||
|
|
c793374f16 | ||
|
|
e9bd26d568 | ||
|
|
7ebdc4ddf8 | ||
|
|
87900c0a2e | ||
|
|
e5ca4d3b3d | ||
|
|
e3db88d114 | ||
|
|
6bfab90c87 | ||
|
|
ecb7a4c9a3 | ||
|
|
906d1581de | ||
|
|
9b8d170d1f | ||
|
|
6e481aa061 | ||
|
|
781675758f | ||
|
|
833233faa8 | ||
|
|
31a22fb2da | ||
|
|
0051f2dbe0 | ||
|
|
0741ce3918 | ||
|
|
e3464a2ab4 | ||
|
|
61016412fb | ||
|
|
f2eac07129 | ||
|
|
e93ae70417 | ||
|
|
0bc2dd5e60 | ||
|
|
9c44c7ed52 | ||
|
|
401249cbdf | ||
|
|
66f7869219 | ||
|
|
dabed80523 | ||
|
|
f6c8eba84e | ||
|
|
76f819e51d | ||
|
|
eef983b1df | ||
|
|
c0cf4bc23b | ||
|
|
e85c8ada54 | ||
|
|
2c84476c77 | ||
|
|
407ddb4350 | ||
|
|
33337523f5 | ||
|
|
7ff7eab603 | ||
|
|
88bce2b38e | ||
|
|
a907f7dd1b | ||
|
|
ad8b8afa7d | ||
|
|
4186537557 | ||
|
|
9ff6b68baf | ||
|
|
1a7defaa69 | ||
|
|
c4a615a052 | ||
|
|
159822dd8a | ||
|
|
990acb4e19 | ||
|
|
502522a93d | ||
|
|
12ea386989 | ||
|
|
6dd8618170 | ||
|
|
3dad6941da | ||
|
|
f7e9d8e216 | ||
|
|
85ed501a3d | ||
|
|
077661f3d1 | ||
|
|
87127d31c6 | ||
|
|
1ee12100b6 | ||
|
|
0bcfb6bc84 | ||
|
|
bef40a342e | ||
|
|
2316dbae85 | ||
|
|
612ba56f06 | ||
|
|
469bc0e4bb | ||
|
|
ce3184243a | ||
|
|
9dbf2880cc | ||
|
|
a14a3a680c | ||
|
|
efc530594b | ||
|
|
3b8363fcdc | ||
|
|
538b046884 | ||
|
|
e4d9fbd52a | ||
|
|
1c38dea651 | ||
|
|
5a46a3b76d | ||
|
|
43d3118935 | ||
|
|
d5c5b2caec | ||
|
|
a86d7a8f5a | ||
|
|
5568916eb1 | ||
|
|
71d845e819 | ||
|
|
c8b0a90e95 | ||
|
|
9b36c72945 | ||
|
|
9803032b9d | ||
|
|
bdfdb5fe10 | ||
|
|
11311ed2a3 | ||
|
|
e9d3ab209a | ||
|
|
4d529f92dc | ||
|
|
d0f32a5a43 | ||
|
|
efd536af48 | ||
|
|
4d5507f5dc | ||
|
|
d1716fe431 | ||
|
|
1741bcd3ea | ||
|
|
343f24f920 | ||
|
|
6ec5e5842d | ||
|
|
b6ba9429d0 | ||
|
|
3cc0c47221 | ||
|
|
7b971b52aa | ||
|
|
debe8b70b7 | ||
|
|
79c147203e | ||
|
|
1a2fdc49e7 | ||
|
|
b1fb1508ee | ||
|
|
bc35549f90 | ||
|
|
d6f46ae104 | ||
|
|
c50bf9df9c | ||
|
|
57bef5edc4 | ||
|
|
777dd06be8 | ||
|
|
84248a7884 | ||
|
|
81f0807b63 | ||
|
|
57ea393004 | ||
|
|
9417f4e726 | ||
|
|
257b29c991 | ||
|
|
d1deed499f | ||
|
|
6eca65617a | ||
|
|
ac4dfa44cb | ||
|
|
9462c0a7b5 | ||
|
|
bdd5e03d6e | ||
|
|
4b0c6de760 | ||
|
|
253a5fa99d | ||
|
|
9749b0cb66 | ||
|
|
2e9b7456a5 | ||
|
|
5282e73600 | ||
|
|
8b35a78d29 | ||
|
|
22773b1e51 | ||
|
|
16208fc01a | ||
|
|
2a2d861bc0 | ||
|
|
213bb5caa1 | ||
|
|
d28ac67dde | ||
|
|
5d98f7825a | ||
|
|
f63573460c | ||
|
|
6ee0a35a20 | ||
|
|
11546bfd07 | ||
|
|
5d00384e0d | ||
|
|
49c3721a5a | ||
|
|
2f0942bdd7 | ||
|
|
6ba1adf8ef | ||
|
|
86b46cac07 | ||
|
|
f2fc1ca00a | ||
|
|
acccefd770 | ||
|
|
de5a64888a | ||
|
|
7e3eba72db | ||
|
|
7d303478a4 | ||
|
|
66dcdf549e | ||
|
|
4902f9cb87 | ||
|
|
558d48a6f3 | ||
|
|
46b58ad9e7 | ||
|
|
0b937f6173 | ||
|
|
65274cf3b5 | ||
|
|
0c0d901443 | ||
|
|
e244146dfd | ||
|
|
a1c092bd7b | ||
|
|
716978f20d | ||
|
|
9e6acc9a4e | ||
|
|
5accae04bb | ||
|
|
79459b2de2 | ||
|
|
2326e34390 | ||
|
|
6e533471a8 | ||
|
|
a7d85bfba9 | ||
|
|
cbc603b587 | ||
|
|
f0d93cee14 | ||
|
|
9b832c8710 | ||
|
|
543a8eb5f9 | ||
|
|
94b2a0cb29 | ||
|
|
a4389f4f30 | ||
|
|
4493db76d6 | ||
|
|
1491d92038 | ||
|
|
d07da04c14 | ||
|
|
63c602ff80 | ||
|
|
4355242477 | ||
|
|
bd56cc8bf7 | ||
|
|
723ac8cbb5 | ||
|
|
3bb54f97e7 | ||
|
|
5c72257220 | ||
|
|
66cce0a1d7 | ||
|
|
b11f79c52c | ||
|
|
78246db72f | ||
|
|
a1ea216878 | ||
|
|
d783ad76c7 | ||
|
|
f2c0df404b | ||
|
|
82d9433813 | ||
|
|
296db618e9 | ||
|
|
3b4f1e92ad | ||
|
|
928fa96db7 | ||
|
|
a5c2e11460 | ||
|
|
2d2382d709 | ||
|
|
320548caf6 | ||
|
|
9a90b8477b | ||
|
|
1cb56e705f | ||
|
|
1763edaba3 | ||
|
|
a5fed59756 | ||
|
|
0910e18bbd | ||
|
|
f1fb9abf14 | ||
|
|
42aa6f7257 | ||
|
|
286b4fdd27 | ||
|
|
a66a6cc51b | ||
|
|
21f767f63f | ||
|
|
9b0fb2b33e | ||
|
|
8bf3b45a29 | ||
|
|
05c5d15075 | ||
|
|
d6d4b71d7d | ||
|
|
382f9462c2 | ||
|
|
8be2ffdcd7 | ||
|
|
4fc44f32df | ||
|
|
9361d8d3a8 | ||
|
|
dc1ef7d566 | ||
|
|
e91e4cc9fb | ||
|
|
f61f1a7a91 | ||
|
|
db6a6cc2b2 | ||
|
|
6a0df2609e | ||
|
|
8c727e5ce1 | ||
|
|
be9671e48a | ||
|
|
9dde931a1c | ||
|
|
75bf657cc2 | ||
|
|
9ca50cf2f8 | ||
|
|
0b7e78c309 | ||
|
|
00098efc96 | ||
|
|
9b53c92ea3 | ||
|
|
cd7109f767 | ||
|
|
78e390a261 | ||
|
|
8abeebc9b2 | ||
|
|
1f8b64f62c | ||
|
|
94909840be | ||
|
|
9c0565100a | ||
|
|
ba181548bc | ||
|
|
041cef434a | ||
|
|
f787810890 | ||
|
|
7c859c54e4 | ||
|
|
c456963110 | ||
|
|
0f61f6921b | ||
|
|
69d650528d | ||
|
|
4754f47434 | ||
|
|
1fcb9e476b | ||
|
|
987d3b2c86 | ||
|
|
0fd3b7d316 | ||
|
|
df27756491 | ||
|
|
7af593c140 | ||
|
|
785a94b7a2 | ||
|
|
eb08a92218 | ||
|
|
369e8477d2 | ||
|
|
b4e72c2655 | ||
|
|
f941931804 | ||
|
|
1bc7a6b223 | ||
|
|
df62119b7f | ||
|
|
bcb6d7d347 | ||
|
|
e50154f615 | ||
|
|
583911a66c | ||
|
|
4298431150 | ||
|
|
2b439ea598 | ||
|
|
cf30cba4ac | ||
|
|
f052e42f56 | ||
|
|
104b408ee8 | ||
|
|
0ffb384409 | ||
|
|
98b7ee93fd | ||
|
|
4e9e44e525 | ||
|
|
8c7849e6e3 | ||
|
|
f3d8006d34 | ||
|
|
8b43ff0c22 | ||
|
|
bfec9c8685 | ||
|
|
56a89f902f | ||
|
|
46eea84554 | ||
|
|
88cce7b9c5 | ||
|
|
6cf4847796 | ||
|
|
002411293d | ||
|
|
66f8ca3c03 | ||
|
|
55bf2d365d | ||
|
|
47189b5ff1 | ||
|
|
de02d09c32 | ||
|
|
870965e1ea | ||
|
|
616b1050b2 | ||
|
|
4a23d3413d | ||
|
|
730e3d044f | ||
|
|
64de4b6e9f | ||
|
|
1962ba7de3 | ||
|
|
024e835f4c | ||
|
|
78a0f2ea5d | ||
|
|
e46b9cdb7d | ||
|
|
9a7de35b92 | ||
|
|
cb10a13e94 | ||
|
|
2508109b18 | ||
|
|
4d9f6dd22e | ||
|
|
2330c6f0de | ||
|
|
6542d33cd1 | ||
|
|
10a9ac245e | ||
|
|
6fa8b7ff42 | ||
|
|
6068d3f6d1 | ||
|
|
b01d50b8dc | ||
|
|
c2c94024f5 | ||
|
|
6465e74020 | ||
|
|
34334e5d3f | ||
|
|
0b67caec1a | ||
|
|
a4e3700972 | ||
|
|
5f3bf70f03 | ||
|
|
f23486a321 | ||
|
|
6eac6986c9 | ||
|
|
84e6032883 | ||
|
|
7a72805e34 | ||
|
|
7d3c2d9fad | ||
|
|
a68566bf6a | ||
|
|
197e372464 | ||
|
|
36118b681e | ||
|
|
50179fb09f | ||
|
|
da76ee26e7 | ||
|
|
e26a1195f4 | ||
|
|
99bb2121c6 | ||
|
|
0710c835a1 | ||
|
|
401b29c021 | ||
|
|
60494684a1 | ||
|
|
9128ec49b1 | ||
|
|
5ebfeaedc5 | ||
|
|
4c10712114 | ||
|
|
c1b872d817 | ||
|
|
85c244f048 | ||
|
|
02fe2e0ccd | ||
|
|
ecdfeb18cf | ||
|
|
66d91fdf86 | ||
|
|
c4cc673071 | ||
|
|
0a16b23adf | ||
|
|
eab1375123 | ||
|
|
b0466b626b | ||
|
|
0fc9d91277 | ||
|
|
bc06f82f85 | ||
|
|
481d0a8ede | ||
|
|
1c6086a86a | ||
|
|
fe308b8862 | ||
|
|
9ecb1222bd | ||
|
|
0351bb55c8 | ||
|
|
d1f83bf5ea | ||
|
|
5d89fc8a9d | ||
|
|
02b687b9a6 | ||
|
|
853b4b5dee | ||
|
|
4a546e7b2f | ||
|
|
fbe1543644 | ||
|
|
1e94da779a | ||
|
|
61e2bae511 | ||
|
|
fa6a7dccb9 | ||
|
|
cc802039a8 | ||
|
|
12b2e1159d | ||
|
|
8f3592b3d5 | ||
|
|
3008401b2a | ||
|
|
a8a0590921 | ||
|
|
a85d2395ff | ||
|
|
76dd99abb2 | ||
|
|
78642dcb9b | ||
|
|
dd040ba446 | ||
|
|
5b15c7567d | ||
|
|
311c5e5b2b | ||
|
|
5385a566db | ||
|
|
0a3d22b9bb | ||
|
|
1526c84a13 | ||
|
|
add7b13a9a | ||
|
|
d414d3eabc | ||
|
|
2e71fe0963 | ||
|
|
199c52e2db | ||
|
|
3648c3ed2c | ||
|
|
003b58782b | ||
|
|
26f080997d | ||
|
|
06742d6277 | ||
|
|
a59d5acfab | ||
|
|
4f43a077a4 | ||
|
|
519dfe1591 | ||
|
|
45b6416652 | ||
|
|
abc9a0731b | ||
|
|
090ae4e4d4 | ||
|
|
22870ac2bd | ||
|
|
a100573eec | ||
|
|
558ef8609c | ||
|
|
929d74512a | ||
|
|
e97fc20bfd | ||
|
|
31243e4d12 | ||
|
|
d07b910149 | ||
|
|
952db0f397 | ||
|
|
77d935b7ae | ||
|
|
099016b7e8 | ||
|
|
8e3d3d5544 | ||
|
|
c66e7377f3 | ||
|
|
8086314026 | ||
|
|
a555d0e2f2 | ||
|
|
4d36b0287d | ||
|
|
9b64c3e347 | ||
|
|
ee90110f9b | ||
|
|
0e5bbcaa16 | ||
|
|
f9605e9072 | ||
|
|
1059007024 | ||
|
|
d9981f67dd | ||
|
|
00272292a7 | ||
|
|
55d053118e | ||
|
|
f6f76f9430 | ||
|
|
05623b3a2e | ||
|
|
fa6bc1e2d7 | ||
|
|
8b511c402b | ||
|
|
ba4527904a | ||
|
|
2babb5b780 | ||
|
|
31ab57ca8b | ||
|
|
9ed00a694b | ||
|
|
4badbe9c20 | ||
|
|
0a95f98b8d | ||
|
|
ecb9354bb1 | ||
|
|
23ddcbd4da | ||
|
|
5cc11289b4 | ||
|
|
4dc0f1718e | ||
|
|
4313465f25 | ||
|
|
8bdb420d0f | ||
|
|
6bf6a9e248 | ||
|
|
a9114392b4 | ||
|
|
04bb0fca73 | ||
|
|
b14363ae32 | ||
|
|
8c33d1c3c9 | ||
|
|
7fb8d56458 | ||
|
|
053eaa61d7 | ||
|
|
ab5425a6a6 | ||
|
|
511edb51a4 | ||
|
|
2876fcc137 | ||
|
|
8096125618 | ||
|
|
f56c5c1a60 | ||
|
|
74bbe349c4 | ||
|
|
110c60fcdd | ||
|
|
76e1472808 | ||
|
|
d0dc3489dc | ||
|
|
4742a2ab1d | ||
|
|
165e6f58fc | ||
|
|
8269f90956 | ||
|
|
5e699f7f73 | ||
|
|
c58d56ab7c | ||
|
|
d52f1ff2c1 | ||
|
|
d47fb12e85 | ||
|
|
73a2ed115a | ||
|
|
fd0ae5aba6 | ||
|
|
78cd37fb18 | ||
|
|
37355cf0e6 | ||
|
|
270dc2f999 | ||
|
|
0734c5303d | ||
|
|
69ceb38f2f | ||
|
|
0dac15c1ca | ||
|
|
e756777c92 | ||
|
|
58670ec64e | ||
|
|
a989651bd4 | ||
|
|
61392c867f | ||
|
|
0a070ef312 | ||
|
|
545464322b | ||
|
|
b64bdfe381 | ||
|
|
0c60125211 | ||
|
|
95737df9d4 | ||
|
|
96ab2f6596 | ||
|
|
96bb334650 | ||
|
|
f357081b57 | ||
|
|
2782a6b62c | ||
|
|
a86ae1df9a | ||
|
|
829e0829dd | ||
|
|
cf8421c36d | ||
|
|
fb0b653612 | ||
|
|
a3b82cbc77 | ||
|
|
677a8ccf44 | ||
|
|
19bbf2c069 | ||
|
|
5e19c26cae | ||
|
|
9acc4e9d71 | ||
|
|
9a494081cb | ||
|
|
31f1ab2be1 | ||
|
|
8b162c4b89 | ||
|
|
c117d8a8a8 | ||
|
|
a8cec740f0 | ||
|
|
df7833e9a3 | ||
|
|
ed54353d84 | ||
|
|
5d9b8e0fef | ||
|
|
56f81811c2 | ||
|
|
6afcf1606b | ||
|
|
3822177473 | ||
|
|
c2ba379b03 | ||
|
|
203bacb24d | ||
|
|
d1650a582e | ||
|
|
541a0b609a | ||
|
|
353ef26bda | ||
|
|
1204a1fded | ||
|
|
a06339215e | ||
|
|
b15e7ba470 | ||
|
|
e94eb90f9f | ||
|
|
c14c6caa32 | ||
|
|
a8c9284f06 | ||
|
|
0030e905b4 | ||
|
|
e56ab0146f | ||
|
|
b3296e778f | ||
|
|
737aee40c4 | ||
|
|
2d44f865c3 | ||
|
|
6359b79847 | ||
|
|
9532f94fa4 | ||
|
|
1160c8625c | ||
|
|
c816de212b | ||
|
|
30e00cf757 | ||
|
|
e3b6521baa | ||
|
|
5a2b9139f9 | ||
|
|
a0129c9761 | ||
|
|
77d7a99c75 | ||
|
|
0ccb296263 | ||
|
|
f69fbd897b | ||
|
|
3c3b5920f7 | ||
|
|
c684b1d40b | ||
|
|
518f337ce8 | ||
|
|
4bf7ffa984 | ||
|
|
ae13ca524a | ||
|
|
0ffdbb2395 | ||
|
|
1934eddf29 | ||
|
|
7ad72b81c5 | ||
|
|
010f33d460 | ||
|
|
787a8b3f1c | ||
|
|
360d28b961 | ||
|
|
bb5971ba2a | ||
|
|
eca74dcccf | ||
|
|
e651e96a5b | ||
|
|
a255510cca | ||
|
|
8c0cb0bd28 | ||
|
|
0421772bbc | ||
|
|
4bfed6eb2f | ||
|
|
5fe4448541 | ||
|
|
a5089f5a79 | ||
|
|
48ae9e8874 | ||
|
|
ee34939e74 | ||
|
|
424b315ce0 | ||
|
|
1446572997 | ||
|
|
d6b968dff7 | ||
|
|
78d8e5c3d5 | ||
|
|
6c55f65d07 | ||
|
|
0819a55ffb | ||
|
|
37b4da6b92 | ||
|
|
581b94b3bd | ||
|
|
11a638048d | ||
|
|
a92e6d2c28 | ||
|
|
41f434e89f | ||
|
|
b99be9cf4e | ||
|
|
7f30afc6e5 | ||
|
|
f19abcf981 | ||
|
|
bdaff94e9a | ||
|
|
25aedddcdf | ||
|
|
3d3b014971 | ||
|
|
b1ad748842 | ||
|
|
af8dd4a307 | ||
|
|
baed9983b3 | ||
|
|
ac26ea9c5b | ||
|
|
ddd049045d | ||
|
|
7ef51239a9 | ||
|
|
760c1e284c | ||
|
|
eae040a84a | ||
|
|
374ffe87c6 | ||
|
|
05b41b159e | ||
|
|
087534c030 | ||
|
|
d0b87ee87b | ||
|
|
8799623806 | ||
|
|
a91aa5e35d | ||
|
|
509600a7f7 | ||
|
|
4f69529a04 | ||
|
|
dd08b70e46 | ||
|
|
dd0eef6aab | ||
|
|
163db3f6d0 | ||
|
|
1da4b23235 | ||
|
|
a49f1dee8a | ||
|
|
897b49f475 | ||
|
|
b140c473d1 | ||
|
|
6288be340c | ||
|
|
57e79e1d0b | ||
|
|
50e7fff0f3 | ||
|
|
c8e1b59ae5 | ||
|
|
1c7e891e44 | ||
|
|
4a94ddbd8b | ||
|
|
e2f46b9f79 | ||
|
|
68abf12afa | ||
|
|
48984dbd42 | ||
|
|
8ab8df1170 | ||
|
|
a9c34d5531 | ||
|
|
3969487376 | ||
|
|
07ea04e651 | ||
|
|
634900d270 | ||
|
|
44605744dc | ||
|
|
21c886534f | ||
|
|
2b1903cc69 | ||
|
|
485f2a02c7 | ||
|
|
c2036ab9fc | ||
|
|
3e81b4abe3 | ||
|
|
c46a0636c6 | ||
|
|
f1713b3f62 | ||
|
|
259d5078c4 | ||
|
|
6b0745ea1f | ||
|
|
38a112380b | ||
|
|
906188e1cf | ||
|
|
c9a0ac5886 | ||
|
|
d98fc501fb | ||
|
|
45c601bfa4 | ||
|
|
158c248d5c | ||
|
|
ab3e40b37c | ||
|
|
1f46d2f40f | ||
|
|
39c9fa0a2b | ||
|
|
3003161eff | ||
|
|
6460446aa6 | ||
|
|
ee4691c9fb | ||
|
|
9c4b07faec | ||
|
|
7a9075c16b | ||
|
|
240627f260 | ||
|
|
745cadc944 | ||
|
|
83cb93b7ae | ||
|
|
2942870325 | ||
|
|
3b108935d0 | ||
|
|
506a32d4ab | ||
|
|
7539ab2d2e | ||
|
|
753de5a5a9 | ||
|
|
80bf857b27 | ||
|
|
aa831c7960 | ||
|
|
fc1b113b29 | ||
|
|
71f5c2d50b | ||
|
|
c3e11d6812 | ||
|
|
dba65cbd30 | ||
|
|
5bb5e2e8fc | ||
|
|
b0bceaa8bf | ||
|
|
3943960874 | ||
|
|
e8cec5c9e4 | ||
|
|
ebe520e96e | ||
|
|
ba5a02e8a9 | ||
|
|
994e6c1f60 | ||
|
|
705e2fd010 | ||
|
|
31d4d3dee7 | ||
|
|
0a8ac2ed92 | ||
|
|
08c8231cc8 | ||
|
|
bf29aa0f8c | ||
|
|
91f9884591 | ||
|
|
d189d7b5ff | ||
|
|
f2e991a341 | ||
|
|
2327b23d8e | ||
|
|
901d59b29f | ||
|
|
3df1f98b4a | ||
|
|
a056893263 | ||
|
|
e3752b5894 | ||
|
|
c1c71097a1 | ||
|
|
fb042f449b | ||
|
|
37a2edf468 | ||
|
|
4bbc72f633 | ||
|
|
7a4759f165 | ||
|
|
4414d068b3 | ||
|
|
7038bb8061 | ||
|
|
dfc0fddf22 | ||
|
|
0b3616d580 | ||
|
|
c75ebe8973 | ||
|
|
8bd62177e7 | ||
|
|
f8c632f579 | ||
|
|
da4b34355d | ||
|
|
104aef0a6e | ||
|
|
2fd95844c3 | ||
|
|
1e301d94be | ||
|
|
1e08150838 | ||
|
|
f8eb1dec64 | ||
|
|
cdc4e9f64b | ||
|
|
250de31f17 | ||
|
|
c652b6ad29 | ||
|
|
d5da847f51 | ||
|
|
0992aac61f | ||
|
|
cfd09c87f0 | ||
|
|
c233f5c05e | ||
|
|
5ea6a05bfa | ||
|
|
9aca3b6a08 | ||
|
|
8c214902d9 | ||
|
|
e411b1a36e | ||
|
|
84dcc01da1 | ||
|
|
87556afe2a | ||
|
|
5b6d62259a | ||
|
|
94fd101601 | ||
|
|
25afa92ed5 | ||
|
|
c123a1c21b | ||
|
|
89747ac758 | ||
|
|
a19031411d | ||
|
|
f83cf244cd | ||
|
|
963e707ca4 | ||
|
|
0631c37c7f | ||
|
|
8c4a941475 | ||
|
|
d447fbca77 | ||
|
|
d582d3ae5a | ||
|
|
8c82f0e5c3 | ||
|
|
219025727d | ||
|
|
f2f103b986 | ||
|
|
d6d81e6ece | ||
|
|
c01635e03e | ||
|
|
ae242720b6 | ||
|
|
11ab365324 | ||
|
|
a47eafe868 | ||
|
|
0e7ec2ffcd | ||
|
|
aedd36ac8b | ||
|
|
95015d474e | ||
|
|
2643658b6f | ||
|
|
7709cb1355 | ||
|
|
b34d26ff25 | ||
|
|
e00a07b885 | ||
|
|
5dae561d33 | ||
|
|
96efeadd6e | ||
|
|
437716c5b4 | ||
|
|
d99edade72 | ||
|
|
4dd92180c6 | ||
|
|
3628f16dd6 | ||
|
|
1eab22f0da | ||
|
|
bf80d5ad0e | ||
|
|
91662a5b69 | ||
|
|
9c9529f798 | ||
|
|
f81da5e57a | ||
|
|
31a6c2fac8 | ||
|
|
ba11d334db | ||
|
|
48f7e389fb | ||
|
|
4d1e0b4409 | ||
|
|
2a22858fe7 | ||
|
|
b8738dd623 | ||
|
|
05c85ddc21 | ||
|
|
04788421fe | ||
|
|
49003242d1 | ||
|
|
185f43afef | ||
|
|
6727b46454 | ||
|
|
03f3b95248 | ||
|
|
5641227c9b | ||
|
|
fabb84a785 | ||
|
|
e424af32b7 | ||
|
|
ac09581cc2 | ||
|
|
c9c84ca7ee | ||
|
|
cf913621f1 | ||
|
|
579f0746f0 | ||
|
|
cfbdf7757b | ||
|
|
139eb64b43 | ||
|
|
66a77d129a | ||
|
|
8899f3fbfb | ||
|
|
1110e84cce | ||
|
|
dc79d94c38 | ||
|
|
d9879c2533 | ||
|
|
5454c4eaa3 | ||
|
|
4ac47a0219 | ||
|
|
edde8eff9f | ||
|
|
e3fabe9a44 | ||
|
|
5355d387e9 | ||
|
|
e1561ed1df | ||
|
|
7e608c5728 | ||
|
|
32f503f738 | ||
|
|
d58693b0f0 | ||
|
|
837a249f01 | ||
|
|
e9f9f14f22 | ||
|
|
b301f4ea01 | ||
|
|
86a3a6475f | ||
|
|
548d000891 | ||
|
|
b2afca4560 | ||
|
|
2d1da5ab13 | ||
|
|
8777c9477a | ||
|
|
5b11e9adff | ||
|
|
ab0d4dbc69 | ||
|
|
95dff31951 | ||
|
|
447d67d5f3 | ||
|
|
95e174e2fb | ||
|
|
81f6edbfd5 | ||
|
|
3141c3976b | ||
|
|
256ebcd827 | ||
|
|
474376f30a | ||
|
|
2f1fe55f66 | ||
|
|
ef7b08ce7f | ||
|
|
e0e34f0a13 | ||
|
|
db8dbbf371 | ||
|
|
0a99e7a5c1 | ||
|
|
65884f4d9e | ||
|
|
af87944585 | ||
|
|
36dbe2d74e | ||
|
|
8d8a785bd2 | ||
|
|
d8fbfc7aa1 | ||
|
|
ddce7c28e4 | ||
|
|
fcad0ec015 | ||
|
|
730ab7b019 | ||
|
|
40317f079e | ||
|
|
c0b7d762b2 | ||
|
|
bc2e30453b | ||
|
|
fb72160caf | ||
|
|
85f57859fd | ||
|
|
7b9432d564 | ||
|
|
effab3f91a | ||
|
|
9d47ae824c | ||
|
|
ba8625a701 | ||
|
|
dd8dcb8228 | ||
|
|
061afc7993 | ||
|
|
b64402ede2 | ||
|
|
a14ada5730 | ||
|
|
33db761551 | ||
|
|
1d3e97f2ab | ||
|
|
f7a44ad101 | ||
|
|
7b7a76e161 | ||
|
|
55ecae3e58 | ||
|
|
5a99e527ff | ||
|
|
5e33dabda1 | ||
|
|
fd9b3b2260 | ||
|
|
7fd74fc7a3 | ||
|
|
4deed587e7 | ||
|
|
a3f97eeeeb | ||
|
|
db3115cee9 | ||
|
|
cc201fdcaa | ||
|
|
cec97ebc6f | ||
|
|
73636c2ed0 | ||
|
|
8f6ecbf37b | ||
|
|
4fb2eefac2 | ||
|
|
a36396992d | ||
|
|
e8e574fbe4 | ||
|
|
23e064ad29 | ||
|
|
1a94c70336 | ||
|
|
8581806558 | ||
|
|
e76ea37772 | ||
|
|
2c2deb87f8 | ||
|
|
f10a5ae4d7 | ||
|
|
4b5e39c89c | ||
|
|
cfbbb23141 | ||
|
|
a9f265d166 | ||
|
|
d3f813a14e | ||
|
|
2cda677d06 | ||
|
|
6bd86d1044 | ||
|
|
0f81ecf5f4 | ||
|
|
4e673656a1 | ||
|
|
014924ba89 | ||
|
|
82f5a4ab29 | ||
|
|
175d934cff | ||
|
|
8c86207258 | ||
|
|
d74b7eb144 | ||
|
|
482e771af1 | ||
|
|
3948fcad2d | ||
|
|
bad6c9a427 | ||
|
|
9a64fd7d55 | ||
|
|
91977159ee | ||
|
|
3fab117e4e | ||
|
|
f6f852fd93 | ||
|
|
75825a9f01 | ||
|
|
9ff0f4987f | ||
|
|
8157784483 | ||
|
|
177c401e02 | ||
|
|
0a010a59eb | ||
|
|
779b77a164 | ||
|
|
a443b9f7e7 | ||
|
|
1e4824a841 | ||
|
|
61db4cfac5 | ||
|
|
ca7a1973e2 | ||
|
|
d050f1e622 | ||
|
|
47f32a76ef | ||
|
|
8cb86a583a | ||
|
|
c0da680f13 | ||
|
|
742e059da1 | ||
|
|
97dd7d5103 | ||
|
|
8e12f4a21c | ||
|
|
7601f20d70 | ||
|
|
e8ce1db471 | ||
|
|
ee7fc26de1 | ||
|
|
2fbdee19da | ||
|
|
0e91183300 | ||
|
|
aaba8c1080 | ||
|
|
d4899bd4d5 | ||
|
|
f8132f932d | ||
|
|
33339ae595 | ||
|
|
ecdc14f535 | ||
|
|
7e12b9f47c | ||
|
|
80150a18d3 | ||
|
|
818156f6f7 | ||
|
|
be63ba99ca | ||
|
|
a26305d428 | ||
|
|
e518b22b72 | ||
|
|
9a313f767f | ||
|
|
6a0667567d | ||
|
|
36a28fcb0c | ||
|
|
05f025c075 | ||
|
|
5fd99e62ed | ||
|
|
5653bc61a4 | ||
|
|
0df34b4c96 | ||
|
|
b2fbf93df0 | ||
|
|
c5c93724fe | ||
|
|
0c749d96ea | ||
|
|
928858457b | ||
|
|
bdead39f63 | ||
|
|
702b42eaf3 | ||
|
|
43afcc0d99 | ||
|
|
fe941a26a3 | ||
|
|
ab7c09dc8e | ||
|
|
34b4a490b1 | ||
|
|
989e39d995 | ||
|
|
e2ee223dc2 | ||
|
|
69f018c49e | ||
|
|
fae09456ae | ||
|
|
9f9c3326fe | ||
|
|
21e5ffbcf8 | ||
|
|
ea1499a372 | ||
|
|
c5b5a984cd | ||
|
|
0fcf1d1ae7 | ||
|
|
5fccfed4f4 | ||
|
|
c4d060bf80 | ||
|
|
e40505e489 | ||
|
|
61cd433131 | ||
|
|
e076ae756d | ||
|
|
8215c0ac0e | ||
|
|
b222d4386e | ||
|
|
4d62de3898 | ||
|
|
0ad87649d4 | ||
|
|
9f9a9ac426 | ||
|
|
71d0615e98 | ||
|
|
f3db59d990 | ||
|
|
bc3e691a1e | ||
|
|
51b011ce24 | ||
|
|
d758f4a8a7 | ||
|
|
33ae9f5d44 | ||
|
|
ab1d761865 | ||
|
|
f2e7dda910 | ||
|
|
36b4003118 | ||
|
|
f40b08d8f0 | ||
|
|
250a3987cf | ||
|
|
9688f343a5 | ||
|
|
1fceb2207a | ||
|
|
fa76e4a8c9 | ||
|
|
4091b9c87e | ||
|
|
7d637362b7 | ||
|
|
deb9fa482d | ||
|
|
344009bf26 | ||
|
|
54ae254537 | ||
|
|
b366750e11 | ||
|
|
868b20ce4e | ||
|
|
2b255d0ebf | ||
|
|
b1d65b62db | ||
|
|
1071385896 | ||
|
|
29005ef7b1 | ||
|
|
29ef73f21d | ||
|
|
78cf6e63ff | ||
|
|
5fb63a09f9 | ||
|
|
595891729e | ||
|
|
f285c0a2e5 | ||
|
|
ae66b24369 | ||
|
|
40de3c67cd | ||
|
|
d13cfe10f6 | ||
|
|
a42caac805 | ||
|
|
0539191d18 | ||
|
|
1eb5a700f9 | ||
|
|
e61eb409fd | ||
|
|
ce7ad480f4 | ||
|
|
0e1a057449 | ||
|
|
f87e378d48 | ||
|
|
c2b004ba0e | ||
|
|
22fdcfc71a | ||
|
|
28c1ca1240 | ||
|
|
7ae5c3f7a6 | ||
|
|
5e4e5f7d9d | ||
|
|
f4ca1325ae | ||
|
|
996be85843 | ||
|
|
9a2915ce66 | ||
|
|
b2c5969aff | ||
|
|
21dc5dc92b | ||
|
|
2200ffa8b0 | ||
|
|
3345b25962 | ||
|
|
9edf2418e0 | ||
|
|
1fb87cd196 | ||
|
|
e3fb74942a | ||
|
|
c6a97eb9ce | ||
|
|
82bdbdba24 | ||
|
|
4e0c8b55fb | ||
|
|
afa9f824e7 | ||
|
|
02a2151b2b | ||
|
|
138c2a6b97 | ||
|
|
dffdee966f | ||
|
|
dec5fcd50b | ||
|
|
00e475c434 | ||
|
|
77a4276a8c | ||
|
|
7150b7f28d | ||
|
|
79c99aeb2b | ||
|
|
537f8bcbdb | ||
|
|
882b7d95cc | ||
|
|
980cdd61be | ||
|
|
65be8275da | ||
|
|
316da85818 | ||
|
|
5a6a378725 | ||
|
|
7e98ed93f4 | ||
|
|
9d85367679 | ||
|
|
827f0fd8ef | ||
|
|
23ee243113 | ||
|
|
92e9a5032b | ||
|
|
45c56b80c4 | ||
|
|
36610fb697 | ||
|
|
c97bbd3797 | ||
|
|
b82a51a5cd | ||
|
|
239c146a4b | ||
|
|
fd43c2b99a | ||
|
|
80c1f69b9e | ||
|
|
10d50aadf2 | ||
|
|
82030cd0af | ||
|
|
88dedb8824 | ||
|
|
f786feac0a | ||
|
|
17e11e2c92 | ||
|
|
f6f8436e97 | ||
|
|
3f012eb0f8 | ||
|
|
467102fa78 | ||
|
|
f37b0a10a5 | ||
|
|
12916e229c | ||
|
|
c4f8cc34df | ||
|
|
1ae4b50bde | ||
|
|
8f8d03df46 | ||
|
|
2d549662be | ||
|
|
d8e44dc685 | ||
|
|
1757a31750 | ||
|
|
d4f8f92eb0 | ||
|
|
93b1fe63e5 | ||
|
|
a8bbefbbb4 | ||
|
|
55530bfc0f | ||
|
|
e8a302017f | ||
|
|
b594c34f57 | ||
|
|
92d4cf15f0 | ||
|
|
cd8bd7f617 | ||
|
|
75d7409c4e | ||
|
|
cbedf2f7ca | ||
|
|
e4fce5d6ae | ||
|
|
e1eb298de1 | ||
|
|
82a1316f76 | ||
|
|
93582ad85e | ||
|
|
36b0169ed6 | ||
|
|
cdca9d3c8e | ||
|
|
736f4b3581 | ||
|
|
9d3d8d6fc0 | ||
|
|
e1a3f33a26 | ||
|
|
d5baa0381f | ||
|
|
18b3c49296 | ||
|
|
bf32650c83 | ||
|
|
720d566d03 | ||
|
|
9be71700eb | ||
|
|
72310c87a5 | ||
|
|
0137103f4b | ||
|
|
a74f6b2867 | ||
|
|
68d856f618 | ||
|
|
7e3a6c6b9d | ||
|
|
da62fca305 | ||
|
|
484ca368f0 | ||
|
|
a500c1f0b5 | ||
|
|
9db3099572 | ||
|
|
99d8fc975e | ||
|
|
4d18d39d99 | ||
|
|
0609a5729c | ||
|
|
ec4879ac5b | ||
|
|
6ec6fdaf8c | ||
|
|
2c722277ee | ||
|
|
f88db708ac | ||
|
|
fcf5ad1bd6 | ||
|
|
2f5789bdef | ||
|
|
37f5d8696d | ||
|
|
048dcf288a | ||
|
|
ca0ebe0f71 | ||
|
|
db833f2411 | ||
|
|
a7534dbb7e | ||
|
|
4841c48f81 | ||
|
|
d4e81f9ec8 | ||
|
|
1da0599e0e | ||
|
|
2149a04ca8 | ||
|
|
92a7740e90 | ||
|
|
795e9151a1 | ||
|
|
4569e3e430 | ||
|
|
40aab4c502 | ||
|
|
332a594fd4 | ||
|
|
7870978c2e | ||
|
|
23620b827c | ||
|
|
fa54bd542e | ||
|
|
259c5c0b5f | ||
|
|
515ba0dfb7 | ||
|
|
2be921d883 |
55
.clang-format
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
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
|
||||||
15
.editorconfig
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# 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
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
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
|
||||||
228
.github/workflows/meson.yml
vendored
Normal file
@@ -0,0 +1,228 @@
|
|||||||
|
name: meson
|
||||||
|
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: ${{github.workflow}}-${{github.head_ref}}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
Linux-GCC:
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
cc: ['9', '13']
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: egor-tensin/setup-gcc@v1
|
||||||
|
with:
|
||||||
|
version: ${{matrix.cc}}
|
||||||
|
|
||||||
|
- name: Install packages
|
||||||
|
run: |
|
||||||
|
python3 -m pip install meson ninja
|
||||||
|
|
||||||
|
- name: Compile and Test
|
||||||
|
run: |
|
||||||
|
meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug
|
||||||
|
meson compile -C "${{github.workspace}}/build" --verbose
|
||||||
|
meson test -C "${{github.workspace}}/build" --verbose
|
||||||
|
Linux-Clang:
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
cc: ['9', '22']
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: egor-tensin/setup-clang@v1
|
||||||
|
|
||||||
|
- name: Install packages
|
||||||
|
run: |
|
||||||
|
python3 -m pip install meson ninja
|
||||||
|
|
||||||
|
- name: Compile and Test
|
||||||
|
run: |
|
||||||
|
meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug
|
||||||
|
meson compile -C "${{github.workspace}}/build" --verbose
|
||||||
|
meson test -C "${{github.workspace}}/build" --verbose
|
||||||
|
VisualStudio:
|
||||||
|
runs-on: windows-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
platform: ['x64', 'x86']
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install packages
|
||||||
|
run: |
|
||||||
|
python -m pip install meson ninja
|
||||||
|
|
||||||
|
- uses: ilammy/msvc-dev-cmd@v1
|
||||||
|
with:
|
||||||
|
arch: ${{matrix.platform}}
|
||||||
|
|
||||||
|
- name: Compile and Test
|
||||||
|
env:
|
||||||
|
CFLAGS: '/analyze'
|
||||||
|
run: |
|
||||||
|
meson setup "${{github.workspace}}/build" --wrap-mode=forcefallback -Dwarning_level=3 -Dbuildtype=debug
|
||||||
|
meson compile -C "${{github.workspace}}/build" --verbose
|
||||||
|
meson test -C "${{github.workspace}}/build" --verbose
|
||||||
|
VisualStudio-clang-cl:
|
||||||
|
runs-on: windows-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install packages
|
||||||
|
run: |
|
||||||
|
python -m pip install meson ninja
|
||||||
|
|
||||||
|
- uses: ilammy/msvc-dev-cmd@v1
|
||||||
|
|
||||||
|
- name: Compile and Test
|
||||||
|
env:
|
||||||
|
CC: clang-cl
|
||||||
|
run: |
|
||||||
|
meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug
|
||||||
|
meson compile -C "${{github.workspace}}/build" --verbose
|
||||||
|
meson test -C "${{github.workspace}}/build" --verbose
|
||||||
|
MSYS2:
|
||||||
|
runs-on: windows-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
platform: ['UCRT64', 'CLANG64']
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: msys2 {0}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- uses: msys2/setup-msys2@v2
|
||||||
|
with:
|
||||||
|
msystem: ${{matrix.platform}}
|
||||||
|
pacboy: >-
|
||||||
|
cc:p
|
||||||
|
cmake:p
|
||||||
|
meson:p
|
||||||
|
ninja:p
|
||||||
|
pkgconf:p
|
||||||
|
|
||||||
|
- name: Compile and Test
|
||||||
|
run: |
|
||||||
|
meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug
|
||||||
|
meson compile -C "${{github.workspace}}/build" --verbose
|
||||||
|
meson test -C "${{github.workspace}}/build" --verbose
|
||||||
|
Cygwin:
|
||||||
|
runs-on: windows-latest
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: msys2 {0}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: msys2/setup-msys2@v2
|
||||||
|
with:
|
||||||
|
msystem: 'MSYS'
|
||||||
|
install: >-
|
||||||
|
gcc
|
||||||
|
meson
|
||||||
|
ninja
|
||||||
|
- name: Compile and Test
|
||||||
|
run: |
|
||||||
|
meson setup build -Dwarning_level=3 -Dcpp_std=gnu++20 -Dbuildtype=debug
|
||||||
|
meson compile -C build --verbose
|
||||||
|
meson test -C build --verbose
|
||||||
|
MacOS:
|
||||||
|
runs-on: macos-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install packages
|
||||||
|
run: |
|
||||||
|
brew install meson
|
||||||
|
|
||||||
|
- name: Compile and Test
|
||||||
|
run: |
|
||||||
|
meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug
|
||||||
|
meson compile -C "${{github.workspace}}/build" --verbose
|
||||||
|
meson test -C "${{github.workspace}}/build" --verbose
|
||||||
|
DragonflyBSD:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: vmactions/dragonflybsd-vm@v1
|
||||||
|
with:
|
||||||
|
prepare: |
|
||||||
|
pkg install -y ninja meson pkgconf
|
||||||
|
run: |
|
||||||
|
meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug
|
||||||
|
meson compile -C "${{github.workspace}}/build" --verbose
|
||||||
|
meson test -C "${{github.workspace}}/build" --verbose
|
||||||
|
FreeBSD:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: vmactions/freebsd-vm@v1
|
||||||
|
with:
|
||||||
|
prepare: |
|
||||||
|
pkg install -y ninja meson pkgconf
|
||||||
|
run: |
|
||||||
|
meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug
|
||||||
|
meson compile -C "${{github.workspace}}/build" --verbose
|
||||||
|
meson test -C "${{github.workspace}}/build" --verbose
|
||||||
|
NetBSD:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: vmactions/netbsd-vm@v1
|
||||||
|
with:
|
||||||
|
prepare: |
|
||||||
|
/usr/sbin/pkg_add meson pkgconf
|
||||||
|
run: |
|
||||||
|
meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug
|
||||||
|
meson compile -C "${{github.workspace}}/build" --verbose
|
||||||
|
meson test -C "${{github.workspace}}/build" --verbose
|
||||||
|
OmniOS:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: vmactions/omnios-vm@v1
|
||||||
|
with:
|
||||||
|
prepare: |
|
||||||
|
pkg install gcc14 meson-313 ninja pkg-config python-313
|
||||||
|
run: |
|
||||||
|
/usr/lib/python3.13/bin/meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug
|
||||||
|
/usr/lib/python3.13/bin/meson compile -C "${{github.workspace}}/build" --verbose
|
||||||
|
/usr/lib/python3.13/bin/meson test -C "${{github.workspace}}/build" --verbose
|
||||||
|
OpenBSD:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: vmactions/openbsd-vm@v1
|
||||||
|
with:
|
||||||
|
prepare: |
|
||||||
|
pkg_add ninja meson pkgconf
|
||||||
|
run: |
|
||||||
|
meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug
|
||||||
|
meson compile -C "${{github.workspace}}/build" --verbose
|
||||||
|
meson test -C "${{github.workspace}}/build" --verbose
|
||||||
|
Alpine:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
platform: ['x86_64', 'x86', 'armhf', 'armv7', 'aarch64', 'ppc64le', 'riscv64', 's390x']
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: alpine.sh {0}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: jirutka/setup-alpine@v1
|
||||||
|
with:
|
||||||
|
branch: edge
|
||||||
|
arch: ${{matrix.platform}}
|
||||||
|
packages: >
|
||||||
|
build-base pkgconf meson samurai
|
||||||
|
- name: Compile and Test
|
||||||
|
run: |
|
||||||
|
meson setup "${{github.workspace}}/build" -Dwarning_level=3 -Dbuildtype=debug
|
||||||
|
meson compile -C "${{github.workspace}}/build" --verbose
|
||||||
|
meson test -C "${{github.workspace}}/build" --verbose
|
||||||
109
.gitignore
vendored
@@ -1,34 +1,19 @@
|
|||||||
|
# Temp files
|
||||||
*~
|
*~
|
||||||
*.swp
|
*.swp
|
||||||
/INSTALL
|
*.bak
|
||||||
.deps/
|
*.backup
|
||||||
.libs/
|
\#*
|
||||||
/aclocal.m4
|
.\#*
|
||||||
/autom4te.cache
|
*\#
|
||||||
/config.guess
|
*.sav
|
||||||
/json_config.h
|
*.save
|
||||||
/compile
|
*.autosav
|
||||||
/config.h
|
*.autosave
|
||||||
/config.log
|
.DS_Store
|
||||||
/config.status
|
|
||||||
/config.sub
|
# Tests
|
||||||
/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
|
||||||
@@ -36,20 +21,76 @@
|
|||||||
/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
|
||||||
*.lo
|
/*/Debug
|
||||||
*.o
|
/*/Release
|
||||||
/libjson-c.la
|
|
||||||
/libjson.la
|
# Archives
|
||||||
|
*.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
Normal file
@@ -0,0 +1,147 @@
|
|||||||
|
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
|
||||||
97
AUTHORS
@@ -1,5 +1,94 @@
|
|||||||
Michael Clark <michael@metaparadigm.com>
|
Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||||
Jehiah Czebotar <jehiah@gmail.com>
|
Alan Urmancheev <108410815+alurm@users.noreply.github.com>
|
||||||
Eric Haszlakiewicz <hawicz+json-c@gmail.com>
|
Alexander Dahl <post@lespocky.de>
|
||||||
|
Alexandru Ardelean <ardeleanalex@gmail.com>
|
||||||
|
An7ar35 <eadavison@protonmail.com>
|
||||||
|
andy5995 <andy400-dev@yahoo.com>
|
||||||
|
Anton Lundin <glance@ac2.se>
|
||||||
|
Aram Poghosyan <Aram.Poghosyan@teamviewer.com>
|
||||||
|
Awildidiot <69577313+0xfadead@users.noreply.github.com>
|
||||||
|
Björn Esser <besser82@fedoraproject.org>
|
||||||
|
BonsaY <bonsay@posteo.de>
|
||||||
|
Bruno Haible <bruno@clisp.org>
|
||||||
|
Cameron Armstrong <cameronscottarmstrong@gmail.com>
|
||||||
|
Careles <zhancheng1996@gmail.com>
|
||||||
|
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)
|
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>
|
||||||
|
Evan Si <evsi@amazon.com>
|
||||||
|
Even Rouault <even.rouault@spatialys.com>
|
||||||
|
evo <149657734+evo-i@users.noreply.github.com>
|
||||||
|
Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
||||||
|
Federico Francescon <federico.francescon@higeco.com>
|
||||||
|
Gianluigi Tiesi <sherpya@netfarm.it>
|
||||||
|
grdowns <grdowns@microsoft.com>
|
||||||
|
Guilhem Saurel <guilhem.saurel@laas.fr>
|
||||||
|
HansolChoe <hansol614@gmail.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>
|
||||||
|
Ján Tomko <jtomko@redhat.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>
|
||||||
|
Lakshmi-Surekha <Lakshmi.Kovvuri@ibm.com>
|
||||||
|
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>
|
||||||
|
Michele Locati <michele@locati.it>
|
||||||
|
myd7349 <myd7349@gmail.com>
|
||||||
|
Pascal Cuoq <cuoq@trust-in-soft.com>
|
||||||
|
Pavel Zwerschke <pavelzw@gmail.com>
|
||||||
|
Pawday <pawday@mail.ru>
|
||||||
|
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 Pang <robertpang@google.com>
|
||||||
|
Robert <roby_p97@yahoo.com>
|
||||||
|
Rolf Eike Beer <eb@emlix.com>
|
||||||
|
Rosen Penev <rosenp@gmail.com>
|
||||||
|
Rubasri Kalidas <rubasri.kalidas@intel.com>
|
||||||
|
Sergey Sharshunov <s.sharshunov@gmail.com>
|
||||||
|
Shane F. Carr <shane@unicode.org>
|
||||||
|
Simon McVittie <smcv@collabora.com>
|
||||||
|
Simon Resch <simon.resch@code-intelligence.de>
|
||||||
|
Simon Sobisch <simonsobisch@web.de>
|
||||||
|
ssrlive <30760636+ssrlive@users.noreply.github.com>
|
||||||
|
Timothée Ravier <tim@siosm.fr>
|
||||||
|
Tobias Nießen <tniessen@users.noreply.github.com>
|
||||||
|
Tobias Stoeckmann <tobias@stoeckmann.org>
|
||||||
|
Tudor Brindus <me@tbrindus.ca>
|
||||||
|
Tyler Erickson <tyler.erickson@seagate.com>
|
||||||
|
Tyler Erickson <vonericsen@gmail.com>
|
||||||
|
Unmanned Player <36690541+unmanned-player@users.noreply.github.com>
|
||||||
|
Yurii Rashkovskii <yrashk@gmail.com>
|
||||||
|
|||||||
@@ -1,4 +1,14 @@
|
|||||||
# 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)
|
||||||
|
|||||||
660
CMakeLists.txt
Normal file
@@ -0,0 +1,660 @@
|
|||||||
|
# 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.18.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)
|
||||||
|
|
||||||
|
# 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 and macOS by calling freelocale" OFF)
|
||||||
|
option(BUILD_APPS "Default to building apps" ON)
|
||||||
|
|
||||||
|
# macOS (Darwin) has the same newlocale() bug as older FreeBSD versions:
|
||||||
|
# newlocale() does not free the locale object passed to it, causing memory leaks.
|
||||||
|
# See: https://github.com/json-c/json-c/issues/668
|
||||||
|
if(APPLE AND NOT NEWLOCALE_NEEDS_FREELOCALE)
|
||||||
|
message(STATUS "macOS detected: enabling NEWLOCALE_NEEDS_FREELOCALE to prevent memory leaks")
|
||||||
|
set(NEWLOCALE_NEEDS_FREELOCALE ON CACHE BOOL "macOS needs freelocale workaround" FORCE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (AMIGA)
|
||||||
|
set(DISABLE_THREAD_LOCAL_STORAGE ON)
|
||||||
|
set(ENABLE_THREADING OFF)
|
||||||
|
set(BUILD_SHARED_LIBS OFF)
|
||||||
|
set(BUILD_APPS OFF)
|
||||||
|
set(DISABLE_STATIC_FPIC ON)
|
||||||
|
if ($ENV{CROSS_PFX} STREQUAL "m68k-amigaos")
|
||||||
|
set(AMIGA_M68K ON)
|
||||||
|
set(BUILD_TESTING OFF)
|
||||||
|
if (${M68K_CRT} STREQUAL "newlib")
|
||||||
|
set(NEWLIB ON)
|
||||||
|
elseif(${M68K_CRT} STREQUAL "clib2")
|
||||||
|
set(CLIB2 ON)
|
||||||
|
elseif(${M68K_CRT} STREQUAL "ixemul")
|
||||||
|
set(IXEMUL ON)
|
||||||
|
elseif(${M68K_CRT} STREQUAL "nix20")
|
||||||
|
set(NIX20 ON)
|
||||||
|
elseif(${M68K_CRT} STREQUAL "nix13")
|
||||||
|
set(NIX13 ON)
|
||||||
|
else()
|
||||||
|
set(NEWLIB ON)
|
||||||
|
endif()
|
||||||
|
message(STATUS "Building for Motorola 68k AmigaOS using CRT: ${M68K_CRT}")
|
||||||
|
elseif ($ENV{CROSS_PFX} STREQUAL "ppc-amigaos")
|
||||||
|
set(AMIGA_PPC ON)
|
||||||
|
message(STATUS "Building for PowerPC AmigaOS")
|
||||||
|
elseif($ENV{CROSS_PFX} STREQUAL "ppc-morphos")
|
||||||
|
set(MORPHOS ON)
|
||||||
|
if (NOIXEMUL)
|
||||||
|
message(STATUS "Building for PowerPC MorphOS without ixemul")
|
||||||
|
set(DISABLE_WERROR ON)
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -noixemul")
|
||||||
|
else()
|
||||||
|
message(STATUS "Building for PowerPC MorphOS with ixemul")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "Unsupported AmigaOS target")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
message(STATUS "Building for ${CMAKE_SYSTEM_NAME}")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (UNIX OR MINGW OR CYGWIN OR AMIGA)
|
||||||
|
list(APPEND CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (BUILD_SHARED_LIBS)
|
||||||
|
add_definitions(-D JSON_C_DLL)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (UNIX OR AMIGA)
|
||||||
|
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 ("${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(CLANG_CL TRUE)
|
||||||
|
else()
|
||||||
|
set(CLANG_CL FALSE)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if ((MSVC AND NOT (MSVC_VERSION LESS 1800)) OR MINGW OR CYGWIN OR UNIX OR AMIGA OR CLANG_CL)
|
||||||
|
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 OR AMIGA)
|
||||||
|
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)
|
||||||
|
if (NOT AMIGA_M68K)
|
||||||
|
check_symbol_exists(arc4random "stdlib.h" HAVE_ARC4RANDOM)
|
||||||
|
endif()
|
||||||
|
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)
|
||||||
|
if (NOT NIX20 AND NOT NIX13)
|
||||||
|
# libnix does not fully support this yet
|
||||||
|
check_symbol_exists(duplocale "locale.h" HAVE_DUPLOCALE)
|
||||||
|
endif()
|
||||||
|
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")
|
||||||
|
if (CLANG_CL)
|
||||||
|
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()
|
||||||
|
if (AMIGA_M68K)
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fbaserel")
|
||||||
|
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
|
||||||
|
)
|
||||||
|
|
||||||
|
set(JSON_C_RESOURCES)
|
||||||
|
|
||||||
|
if (BUILD_SHARED_LIBS AND WIN32)
|
||||||
|
enable_language(RC)
|
||||||
|
set(JSON_C_RESOURCES ${JSON_C_RESOURCES} ${PROJECT_SOURCE_DIR}/libjson.rc)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
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}
|
||||||
|
${JSON_C_RESOURCES}
|
||||||
|
)
|
||||||
|
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||||
|
VERSION 5.4.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()
|
||||||
494
ChangeLog
@@ -1,5 +1,468 @@
|
|||||||
|
|
||||||
|
0.19 (up to commit 8948568, 2026-01-18)
|
||||||
|
========================================
|
||||||
|
|
||||||
|
Deprecated and removed features:
|
||||||
|
--------------------------------
|
||||||
|
* none
|
||||||
|
|
||||||
|
New features
|
||||||
|
------------
|
||||||
|
* Add support for Commodore Amiga and MorphOS
|
||||||
|
* Allow builds with CMake 4 - sync minimum version across all CMakeLists.txt files
|
||||||
|
* Update openssl command to work for newer versions of openssl.
|
||||||
|
* Add support for building json-c with meson
|
||||||
|
* Support MSVC in packages that use GNU Autoconf.
|
||||||
|
* Add VERSIONINFO to libjson-c.dll
|
||||||
|
* Make json_tokener_free(NULL) a no-op, to simplify cleanup paths.
|
||||||
|
* Explicitly handle NaN values when converting to int
|
||||||
|
* Set errno=RANGE in json_object_get_int/int64/uint64() when the source value can't be represented in the target type.
|
||||||
|
* Make json_parse a bit more useful by adding -u (validate UTF8) and -P (specify arbitrary tokener parse flags), and read from stdin if no filename is provided.
|
||||||
|
* Fix the apps/json_parse "-s" (strict) option so it actually does something, and default to non-strict.
|
||||||
|
|
||||||
|
|
||||||
|
Significant changes and bug fixes
|
||||||
|
---------------------------------
|
||||||
|
* Issue #867 - also disallow control characters in keys in JSON_TOKENER_STRICT mode
|
||||||
|
* Issue #875: cast to unsigned char so bytes above 0x7f aren't interpreted as negative, which was causing the strict-mode control characters check to incorrectly trigger.
|
||||||
|
* Issue #881: don't allow json_tokener_new_ex() with a depth < 1
|
||||||
|
* Fix linkhash breaking -std=c89
|
||||||
|
* Fixing Cmake build when using clang-cl, avoids errors about redefining existing symbols
|
||||||
|
* Fix AIX build failure - Add CMake detection for getopt.h
|
||||||
|
* Fix bug involving supplemental code points that look like high surrogates
|
||||||
|
* Fix runtime issue with test_util_file.c in Windows (add O_BINARY)
|
||||||
|
* Fix macro WIN32_LEAN_AND_MEAN redefined
|
||||||
|
|
||||||
|
0.18 (up to commit 6bfab90, 2024-09-15)
|
||||||
|
========================================
|
||||||
|
|
||||||
|
Deprecated and removed features:
|
||||||
|
--------------------------------
|
||||||
|
* Clean up pre-3.9 CMake support in CMakeLists.txt
|
||||||
|
|
||||||
|
New features
|
||||||
|
------------
|
||||||
|
* Build pkg-config for msvc as well
|
||||||
|
|
||||||
|
Significant changes and bug fixes
|
||||||
|
---------------------------------
|
||||||
|
* Critical fix for binary compatibility with 0.16: Move the
|
||||||
|
json_tokener_error_memory entry to the end of enum json_tokener_error.
|
||||||
|
* Issue #829: attempt to detect clang-cl.exe and pass MSVC-compatile command
|
||||||
|
line arguments.
|
||||||
|
* PR #831 - rename WIN32 to _WIN32
|
||||||
|
* PR #839 - Fix gcc 5 "may be used uninitialized" failure in json_pointer.c
|
||||||
|
* PR #849 - random_seed.c: add a Coverity Scan suppression
|
||||||
|
* Issue #854: Set error=json_tokener_error_memory in
|
||||||
|
json_tokener_parser_verbose() when allocating the tokener fails.
|
||||||
|
* Issue #857: fix a few places where json_tokener should have been returning
|
||||||
|
json_tokener_error_memory but wasn't.
|
||||||
|
* Handle yet another out-of-memory condition in json_tokener, duplocate can
|
||||||
|
return NULL.
|
||||||
|
* Various fixes in the fuzzers
|
||||||
|
* A few minor doc fixes
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
|
0.17 (up to commit 077661f, 2023-08-08)
|
||||||
|
========================================
|
||||||
|
|
||||||
|
Known Bugs
|
||||||
|
----------
|
||||||
|
* DO NOT USE THE 0.17 RELEASE: json_tokener_error_memory in misplaced in the
|
||||||
|
json_tokener_error enum, leading to binary compatibility issues.
|
||||||
|
|
||||||
|
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
|
||||||
@@ -12,11 +475,11 @@
|
|||||||
* 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.
|
||||||
@@ -39,6 +502,7 @@
|
|||||||
|
|
||||||
|
|
||||||
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.
|
||||||
@@ -62,6 +526,7 @@
|
|||||||
* 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.
|
||||||
@@ -70,7 +535,7 @@
|
|||||||
* 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 effecient way to set and
|
* Add a printbuf_memset() function to provide an efficient 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
|
||||||
@@ -80,7 +545,7 @@
|
|||||||
* 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.
|
||||||
@@ -110,6 +575,7 @@
|
|||||||
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
|
||||||
@@ -126,7 +592,7 @@
|
|||||||
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>
|
||||||
@@ -140,6 +606,7 @@
|
|||||||
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
|
||||||
@@ -152,19 +619,22 @@
|
|||||||
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 foward slash on tokenizing and output
|
* Add escaping of forward 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<EFBFBD>rklund, johbjo09 at kth dot se
|
Johan Bjö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
|
||||||
@@ -177,18 +647,21 @@
|
|||||||
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)
|
||||||
@@ -203,12 +676,13 @@
|
|||||||
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<EFBFBD>rklund (johbjo09 at kth.se)
|
spotted by Johan Bjö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,370 +1,2 @@
|
|||||||
Installation Instructions
|
|
||||||
*************************
|
|
||||||
|
|
||||||
Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
|
See README.md for installation instructions.
|
||||||
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
@@ -1,74 +0,0 @@
|
|||||||
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 \
|
|
||||||
> $@
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
AM_CFLAGS = -Wall -Werror -Wno-error=deprecated-declarations -Wextra -Wwrite-strings -Wno-unused-parameter -std=gnu99 -D_GNU_SOURCE -D_REENTRANT
|
|
||||||
|
|
||||||
1080
Makefile.in
46
README
@@ -1,45 +1 @@
|
|||||||
Building on Unix with git, gcc and autotools
|
See README.md or README.html
|
||||||
|
|
||||||
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
|
|
||||||
|
|||||||
@@ -1,50 +0,0 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
||||||
<head>
|
|
||||||
<title>JSON-C - A JSON implementation in C - Win32 specific notes</title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<h2>Windows specific notes for JSON-C</h2>
|
|
||||||
<p>Please send Win32 bug reports to <a href="mailto:christopher.watford@gmail.com">christopher.watford@gmail.com</a></p>
|
|
||||||
<p><b>Win32 Specific Changes:</b></p>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
Various functions have been redefined to their Win32 version (i.e. <tt>open</tt>
|
|
||||||
on win32 is <tt>_open</tt>)</li>
|
|
||||||
<li>
|
|
||||||
Implemented missing functions from MS's libc (i.e. <tt>vasprintf</tt>)</li>
|
|
||||||
<li>
|
|
||||||
Added code to allow Win64 support without integer resizing issues, this
|
|
||||||
probably makes it much nicer on 64bit machines everywhere (i.e. using <tt>ptrdiff_t</tt>
|
|
||||||
for pointer math)</li>
|
|
||||||
</ul>
|
|
||||||
<p><b>Porting Changelog:</b></p>
|
|
||||||
<dl>
|
|
||||||
<dt><tt>printbuf.c</tt> - C. Watford (christopher.watford@gmail.com)</dt>
|
|
||||||
<dd>
|
|
||||||
Added a Win32/Win64 compliant implementation of <tt>vasprintf</tt></dd>
|
|
||||||
<dt><tt>debug.c</tt> - C. Watford (christopher.watford@gmail.com)</dt>
|
|
||||||
<dd>
|
|
||||||
Removed usage of <tt>vsyslog</tt> on Win32/Win64 systems, needs to be handled
|
|
||||||
by a configure script</dd>
|
|
||||||
<dt><tt>json_object.c</tt> - C. Watford (christopher.watford@gmail.com)</dt>
|
|
||||||
<dd>
|
|
||||||
Added scope operator to wrap usage of <tt>json_object_object_foreach</tt>, this needs to be
|
|
||||||
rethought to be more ANSI C friendly</dd>
|
|
||||||
<dt><tt>json_object.h</tt> - C. Watford (christopher.watford@gmail.com)</dt>
|
|
||||||
<dd>
|
|
||||||
Added Microsoft C friendly version of <tt>json_object_object_foreach</tt></dd>
|
|
||||||
<dt><tt>json_tokener.c</tt> - C. Watford (christopher.watford@gmail.com)</dt>
|
|
||||||
<dd>
|
|
||||||
Added a Win32/Win64 compliant implementation of <tt>strndup</tt></dd>
|
|
||||||
<dt><tt>json_util.c</tt> - C. Watford (christopher.watford@gmail.com)</dt>
|
|
||||||
<dd>
|
|
||||||
Added cast and mask to suffice <tt>size_t</tt> v. <tt>unsigned int</tt>
|
|
||||||
conversion correctness</dd>
|
|
||||||
</dl>
|
|
||||||
<p>This program is free software; you can redistribute it and/or modify it under
|
|
||||||
the terms of the MIT License. See COPYING for details.</p>
|
|
||||||
<hr />
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
25
README.html
@@ -8,27 +8,34 @@
|
|||||||
<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.</p>
|
JSON formatted strings back into the C representation of JSON objects.
|
||||||
|
It aims to conform to <a href="https://tools.ietf.org/html/rfc7159">RFC 7159</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
<h3>Building</h3>
|
<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 and are not using the VS project file, be sure
|
<p>If you are on Win32 cmake is required, generally:</p>
|
||||||
to rename <tt>config.h.win32</tt> to <tt>config.h</tt> before building.</p>
|
<ul>
|
||||||
|
<li>mkdir build</li>
|
||||||
|
<li>cd build</li>
|
||||||
|
<li>cmake ..</li>
|
||||||
|
<li>msbuild "json-c.vcxproj" /m /verbosity:normal /p:OutDir=lib\</li>
|
||||||
|
<li>Or, open the project in Visual Studio</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<h3>Documentation</h3>
|
<h3>Documentation</h3>
|
||||||
<P>Doxygen generated documentation exists <a href="doc/html/json__object_8h.html">here</a>
|
<P>Doxygen generated documentation exists <a href="https://json-c.github.io/json-c/">here</a>.</P>
|
||||||
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="http://groups.google.com/group/json-c">Mailing List</a></h3>
|
<h3><a href="https://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>
|
||||||
|
|||||||
414
README.md
Normal file
@@ -0,0 +1,414 @@
|
|||||||
|
\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)
|
||||||
|
8. [Building for Commodore Amiga or MorphOS](#amiga)
|
||||||
|
9. [Linking to libjson-c](#linking)
|
||||||
|
10. [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"></a>
|
||||||
|
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="amiga"></a>
|
||||||
|
Building for Commodore Amiga or MorphOS
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
Building for Commodore Amiga is supported for both Motorola 68k (AmigaOS 3) and PowerPC (AmigaOS 4) architectures. MorphOS on compatible PowerPC hardware is also supported. You can set up a cross compiler locally, however it is much easier to use the already preconfigured Amiga development environment wtthin a Docker container.
|
||||||
|
|
||||||
|
Install Docker on your machine if you don't already have it. You can download Docker Desktop for Windows/macOS/Linux [here](https://www.docker.com/products/docker-desktop/).
|
||||||
|
|
||||||
|
### To build for Motorola 68k Amiga:
|
||||||
|
|
||||||
|
```
|
||||||
|
mkdir build
|
||||||
|
docker run --rm \
|
||||||
|
-v ${PWD}:/work \
|
||||||
|
-e USER=$( id -u ) -e GROUP=$( id -g ) \
|
||||||
|
-it sacredbanana/amiga-compiler:m68k-amigaos bash
|
||||||
|
cd build
|
||||||
|
cmake -DM68K_CRT=newlib ..
|
||||||
|
make
|
||||||
|
```
|
||||||
|
|
||||||
|
libjson-c.a will get created in the build directory.
|
||||||
|
|
||||||
|
You can change newlib to nix20, nix13, ixemul or clib2 if you would like to build the library suited for libnix or clib2 instead. Newlib is default.
|
||||||
|
|
||||||
|
### To build for PowerPC Amiga:
|
||||||
|
|
||||||
|
```
|
||||||
|
mkdir build
|
||||||
|
docker run --rm \
|
||||||
|
-v ${PWD}:/work \
|
||||||
|
-e USER=$( id -u ) -e GROUP=$( id -g ) \
|
||||||
|
-it sacredbanana/amiga-compiler:ppc-amigaos bash
|
||||||
|
cd build
|
||||||
|
cmake ..
|
||||||
|
make
|
||||||
|
```
|
||||||
|
|
||||||
|
libjson-c.a will get created in the build directory.
|
||||||
|
|
||||||
|
### To build for PowerPC MorphOS:
|
||||||
|
|
||||||
|
```
|
||||||
|
mkdir build
|
||||||
|
docker run --rm \
|
||||||
|
-v ${PWD}:/work \
|
||||||
|
-e USER=$( id -u ) -e GROUP=$( id -g ) \
|
||||||
|
-it sacredbanana/amiga-compiler:ppc-morphos bash
|
||||||
|
cd build
|
||||||
|
cmake -DNOIXEMUL=1 ..
|
||||||
|
make
|
||||||
|
```
|
||||||
|
|
||||||
|
If you are making an application that absolutely requires ixemul, then remove the `-DNOIXEMUL=1`.
|
||||||
|
|
||||||
|
libjson-c.a will get created in the build directory.
|
||||||
|
|
||||||
|
<a name="linking"></a>
|
||||||
|
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"></a>
|
||||||
|
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,78 +1,130 @@
|
|||||||
|
|
||||||
Release checklist:
|
# Release checklist:
|
||||||
|
|
||||||
release=0.12
|
## Pre-release tasks
|
||||||
git clone https://github.com/json-c/json-c json-c-${release}
|
|
||||||
cd json-c-${release}
|
* Figure out whether a release is worthwhile to do.
|
||||||
|
* 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.
|
||||||
|
|
||||||
git branch json-c-${release}
|
cd json-c-${release}
|
||||||
git checkout json-c-${release}
|
git checkout -b json-c-${release}
|
||||||
|
|
||||||
------------
|
------------
|
||||||
|
|
||||||
Update the version in json_c_version.h
|
Using ${release}:
|
||||||
Update the version in Doxyfile
|
Update the version in json_c_version.h
|
||||||
Update the version in configure.in
|
Update the version in CMakeLists.txt (VERSION in the project(...) line)
|
||||||
Use ${release}.
|
|
||||||
|
|
||||||
Update the libjson_la_LDFLAGS line in Makefile.am to the new version.
|
Update the set_target_properties() line in CmakeLists.txt to set the shared
|
||||||
Generally, unless we're doing a major release, change:
|
library version. Generally, unless we're doing a major release, change:
|
||||||
-version-info x:y:z
|
VERSION x.y.z
|
||||||
to
|
to
|
||||||
-version-info x:y+1:z
|
VERSION x.y+1.z
|
||||||
|
|
||||||
------------
|
git commit -a -m "Bump version to ${release}"
|
||||||
|
|
||||||
Generate the configure script and other files:
|
If we're doing a major release (SONAME bump), also bump the version
|
||||||
sh autogen.sh
|
of ALL symbols in json-c.sym.
|
||||||
git add -f Makefile.in aclocal.m4 config.guess \
|
See explanation at https://github.com/json-c/json-c/issues/621
|
||||||
config.sub configure depcomp install-sh \
|
More info at: https://software.intel.com/sites/default/files/m/a/1/e/dsohowto.pdf
|
||||||
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
|
|
||||||
git add -f doc
|
(cd ../distcheck && make doc)
|
||||||
git commit doc
|
cp -r -p ../distcheck/doc/{html,Doxyfile} doc/.
|
||||||
|
rm doc/Doxyfile # Remove generated file w/ hardcoded paths
|
||||||
|
git add -f doc
|
||||||
|
git commit doc -m "Generate docs for the ${release} release"
|
||||||
|
|
||||||
------------
|
------------
|
||||||
|
|
||||||
cd ..
|
Create the release tarballs:
|
||||||
echo .git > excludes
|
|
||||||
echo autom4te.cache >> excludes
|
|
||||||
tar -czf json-c-${release}.tar.gz -X excludes json-c-${release}
|
|
||||||
|
|
||||||
echo doc >> excludes
|
cd ..
|
||||||
tar -czf json-c-${release}-nodoc.tar.gz -X excludes json-c-${release}
|
echo .git > excludes
|
||||||
|
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}"
|
|
||||||
|
|
||||||
git push origin json-c-${release}
|
cd json-c-${release}
|
||||||
git push --tags
|
git tag -a json-c-${release}-$(date +%Y%m%d) -m "Release json-c-${release}"
|
||||||
|
|
||||||
|
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 folder.
|
Upload the two tarballs in the json-c_releases/releases folder.
|
||||||
When uploading, use "Reduced Redundancy", and make the uploaded files publicly accessible.
|
* Expand "Permissions", pick "Grant public-read access"
|
||||||
|
* 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
|
||||||
@@ -81,37 +133,57 @@ 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.
|
|
||||||
|
|
||||||
Leave the libjson_la_LDFLAGS line in Makefile.am alone.
|
Add new section to ChangeLog for ${release}+1
|
||||||
For more details see:
|
|
||||||
http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
|
Use ${release}.99 to indicate a version "newer" than anything on the branch:
|
||||||
|
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}/.
|
||||||
cp ../json-c-${release}/README-WIN32.html json-c-${release}/.
|
git add json-c-${release}
|
||||||
git add json-c-${release}
|
rm json-c-current-release
|
||||||
git commit
|
ln -s json-c-${release} json-c-current-release
|
||||||
|
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 sha1 -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
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
In general:
|
||||||
|
For minor changes to a function, copy the existing formatting.
|
||||||
|
When changing the style, commit that separately from other changes.
|
||||||
|
For new code and major changes to a function, switch to the official json-c style.
|
||||||
|
|
||||||
|
Official json-c style:
|
||||||
|
|
||||||
|
Aim for readability, not strict conformance to fixed style rules.
|
||||||
|
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.
|
||||||
50
abi-check.sh
Executable file
@@ -0,0 +1,50 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# The 0.17 release is broken
|
||||||
|
prev=0.18
|
||||||
|
release=0.19
|
||||||
|
|
||||||
|
# ... clone json-c, abi-compliance-checker, abi-dumper
|
||||||
|
|
||||||
|
if [ "$1" != "--skip-build" ] ; then
|
||||||
|
mkdir build
|
||||||
|
cd build
|
||||||
|
CFLAGS=-Og cmake -DCMAKE_INSTALL_PREFIX=~/json-c-installs/json-c-${release} ..
|
||||||
|
make && make test && make install
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Assume the old version has already been built
|
||||||
|
|
||||||
|
cd ~/abi-compliance-checker
|
||||||
|
mkxml()
|
||||||
|
{
|
||||||
|
ver="$1"
|
||||||
|
if [ ! -e ../json-c-installs/json-c-${ver}/lib64 ] ; then
|
||||||
|
ln -s lib ../json-c-installs/json-c-${ver}/lib64
|
||||||
|
fi
|
||||||
|
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
125
apps/CMakeLists.txt
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
|
||||||
|
cmake_minimum_required(VERSION 3.9...3.12) # see ../CMakeLists.txt for why
|
||||||
|
|
||||||
|
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 whether getopt.h exists
|
||||||
|
check_include_file(getopt.h HAVE_GETOPT_H)
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
8
apps/cmake/apps_config.h.in
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
/* 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
|
||||||
222
apps/json_parse.c
Normal file
@@ -0,0 +1,222 @@
|
|||||||
|
#include <assert.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#ifdef HAVE_GETOPT_H
|
||||||
|
#include <getopt.h>
|
||||||
|
#endif
|
||||||
|
#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 validate_utf8 = 0;
|
||||||
|
static int tokener_flags = 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;
|
||||||
|
}
|
||||||
|
if (strict_mode)
|
||||||
|
{
|
||||||
|
tokener_flags |= JSON_TOKENER_STRICT;
|
||||||
|
#ifdef JSON_TOKENER_ALLOW_TRAILING_CHARS
|
||||||
|
tokener_flags |= JSON_TOKENER_ALLOW_TRAILING_CHARS;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
if (validate_utf8)
|
||||||
|
{
|
||||||
|
tokener_flags |= JSON_TOKENER_VALIDATE_UTF8;
|
||||||
|
}
|
||||||
|
if (tokener_flags)
|
||||||
|
{
|
||||||
|
json_tokener_set_flags(tok, tokener_flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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] [-u] [filename]\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 - Set JSON_C_TO_STRING_COLOR to colorize the output\n");
|
||||||
|
fprintf(fp, " -P - Initialize tokener flags to the given value\n");
|
||||||
|
fprintf(fp, " -s - Parse in strict mode, add flags:\n");
|
||||||
|
fprintf(fp, " JSON_TOKENER_STRICT|JSON_TOKENER_ALLOW_TRAILING_CHARS\n");
|
||||||
|
fprintf(fp, " -u - Add the JSON_TOKENER_VALIDATE_UTF8 flag when parsing\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, "cfF:hnP:su")) != -1)
|
||||||
|
{
|
||||||
|
switch (opt)
|
||||||
|
{
|
||||||
|
case 'c': color = JSON_C_TO_STRING_COLOR; break;
|
||||||
|
case 'f': formatted_output = JSON_C_TO_STRING_PRETTY; break;
|
||||||
|
case 'F': formatted_output = atoi(optarg); break;
|
||||||
|
case 'n': show_output = 0; break;
|
||||||
|
case 'P': tokener_flags = atoi(optarg); break;
|
||||||
|
case 's': strict_mode = 1; break;
|
||||||
|
case 'u': validate_utf8 = 1; break;
|
||||||
|
case 'h': usage(argv[0], 0, NULL);
|
||||||
|
default: /* '?' */ usage(argv[0], EXIT_FAILURE, "Unknown arguments");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int fd = STDIN_FILENO;
|
||||||
|
fname = "stdin";
|
||||||
|
if (argc > optind && strcmp(argv[optind], "-") != 0)
|
||||||
|
{
|
||||||
|
fname = argv[optind];
|
||||||
|
fd = open(fname, O_RDONLY, 0);
|
||||||
|
}
|
||||||
|
showmem();
|
||||||
|
if (parseit(fd, showobj) != 0)
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
showmem();
|
||||||
|
|
||||||
|
exit(EXIT_SUCCESS);
|
||||||
|
}
|
||||||
27
apps/meson.build
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
|
||||||
|
appconf_data = configuration_data()
|
||||||
|
# Check for json_tokener_get_parse_end symbol
|
||||||
|
appconf_data.set('HAVE_JSON_TOKENER_GET_PARSE_END',
|
||||||
|
cc.has_function('json_tokener_get_parse_end', prefix: '#include <json_tokener.h>') ? 1 : 0
|
||||||
|
)
|
||||||
|
|
||||||
|
# Check for getrusage if sys/resource.h is available
|
||||||
|
appconf_data.set('HAVE_SYS_RESOURCE_H', cc.has_header('sys/resource.h') ? 1 : 0, description: 'Define to 1 if you have the <sys/resource.h> header file.')
|
||||||
|
if appconf_data.get('HAVE_SYS_RESOURCE_H') == 1
|
||||||
|
appconf_data.set('HAVE_GETRUSAGE',
|
||||||
|
cc.has_function('getrusage', prefix: '#include <sys/resource.h>') ? 1 : 0, description: 'Define if you have the `getrusage` function. ')
|
||||||
|
else
|
||||||
|
appconf_data.set('HAVE_GETRUSAGE', 0, description: 'Define if you have the `getrusage` function. ')
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Generate apps_config.h
|
||||||
|
configure_file(
|
||||||
|
output: 'apps_config.h',
|
||||||
|
configuration: appconf_data
|
||||||
|
)
|
||||||
|
|
||||||
|
# Build json_parse executable
|
||||||
|
executable('json_parse', 'json_parse.c',
|
||||||
|
dependencies: [jsonc_dep],
|
||||||
|
install: false
|
||||||
|
)
|
||||||
125
appveyor.yml
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
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,91 +11,216 @@
|
|||||||
|
|
||||||
#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 */
|
||||||
|
|
||||||
#include "bits.h"
|
#ifndef SIZE_T_MAX
|
||||||
|
#if SIZEOF_SIZE_T == SIZEOF_INT
|
||||||
|
#define SIZE_T_MAX UINT_MAX
|
||||||
|
#elif SIZEOF_SIZE_T == SIZEOF_LONG
|
||||||
|
#define SIZE_T_MAX ULONG_MAX
|
||||||
|
#elif SIZEOF_SIZE_T == SIZEOF_LONG_LONG
|
||||||
|
#define SIZE_T_MAX ULLONG_MAX
|
||||||
|
#else
|
||||||
|
#error Unable to determine size of size_t
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "arraylist.h"
|
#include "arraylist.h"
|
||||||
|
|
||||||
struct array_list*
|
struct array_list *array_list_new(array_list_free_fn *free_fn)
|
||||||
array_list_new(array_list_free_fn *free_fn)
|
|
||||||
{
|
{
|
||||||
struct array_list *arr;
|
return array_list_new2(free_fn, ARRAY_LIST_DEFAULT_SIZE);
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extern void
|
struct array_list *array_list_new2(array_list_free_fn *free_fn, int initial_size)
|
||||||
array_list_free(struct array_list *arr)
|
|
||||||
{
|
{
|
||||||
int i;
|
struct array_list *arr;
|
||||||
for(i = 0; i < arr->length; i++)
|
|
||||||
if(arr->array[i]) arr->free_fn(arr->array[i]);
|
if (initial_size < 0 || (size_t)initial_size >= SIZE_T_MAX / sizeof(void *))
|
||||||
free(arr->array);
|
return NULL;
|
||||||
free(arr);
|
arr = (struct array_list *)malloc(sizeof(struct array_list));
|
||||||
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
void*
|
extern void array_list_free(struct array_list *arr)
|
||||||
array_list_get_idx(struct array_list *arr, int i)
|
|
||||||
{
|
{
|
||||||
if(i >= arr->length) return NULL;
|
size_t i;
|
||||||
return arr->array[i];
|
for (i = 0; i < arr->length; i++)
|
||||||
|
if (arr->array[i])
|
||||||
|
arr->free_fn(arr->array[i]);
|
||||||
|
free(arr->array);
|
||||||
|
free(arr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int array_list_expand_internal(struct array_list *arr, int max)
|
void *array_list_get_idx(struct array_list *arr, size_t i)
|
||||||
{
|
{
|
||||||
void *t;
|
if (i >= arr->length)
|
||||||
int new_size;
|
return NULL;
|
||||||
|
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
static int array_list_expand_internal(struct array_list *arr, size_t max)
|
||||||
array_list_put_idx(struct array_list *arr, int idx, void *data)
|
|
||||||
{
|
{
|
||||||
if(array_list_expand_internal(arr, idx+1)) return -1;
|
void *t;
|
||||||
if(arr->array[idx]) arr->free_fn(arr->array[idx]);
|
size_t new_size;
|
||||||
arr->array[idx] = data;
|
|
||||||
if(arr->length <= idx) arr->length = idx + 1;
|
if (max < arr->size)
|
||||||
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
|
int array_list_shrink(struct array_list *arr, size_t empty_slots)
|
||||||
array_list_add(struct array_list *arr, void *data)
|
|
||||||
{
|
{
|
||||||
return array_list_put_idx(arr, arr->length, data);
|
void *t;
|
||||||
|
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
int array_list_insert_idx(struct array_list *arr, size_t idx, void *data)
|
||||||
array_list_sort(struct array_list *arr, int(*sort_fn)(const void *, const void *))
|
|
||||||
{
|
{
|
||||||
qsort(arr->array, arr->length, sizeof(arr->array[0]),
|
size_t move_amount;
|
||||||
(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;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
//static inline int _array_list_put_idx(struct array_list *arr, size_t idx, void *data)
|
||||||
array_list_length(struct array_list *arr)
|
int array_list_put_idx(struct array_list *arr, size_t idx, void *data)
|
||||||
{
|
{
|
||||||
return arr->length;
|
if (idx > SIZE_T_MAX - 1)
|
||||||
|
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,45 +9,79 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _arraylist_h_
|
/**
|
||||||
#define _arraylist_h_
|
* @file
|
||||||
|
* @brief Internal methods for working with json_type_array objects.
|
||||||
|
* Although this is exposed by the json_object_get_array() method,
|
||||||
|
* it is not recommended for direct use.
|
||||||
|
*/
|
||||||
|
#ifndef _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;
|
||||||
int length;
|
size_t length;
|
||||||
int size;
|
size_t size;
|
||||||
array_list_free_fn *free_fn;
|
array_list_free_fn *free_fn;
|
||||||
};
|
};
|
||||||
|
typedef struct array_list array_list;
|
||||||
|
|
||||||
extern struct array_list*
|
/**
|
||||||
array_list_new(array_list_free_fn *free_fn);
|
* Allocate an array_list of the default size (32).
|
||||||
|
* @deprecated Use array_list_new2() instead.
|
||||||
|
*/
|
||||||
|
extern struct array_list *array_list_new(array_list_free_fn *free_fn);
|
||||||
|
|
||||||
extern void
|
/**
|
||||||
array_list_free(struct array_list *al);
|
* Allocate an array_list of the desired size.
|
||||||
|
*
|
||||||
|
* 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*
|
extern void array_list_free(struct array_list *al);
|
||||||
array_list_get_idx(struct array_list *al, int i);
|
|
||||||
|
|
||||||
extern int
|
extern void *array_list_get_idx(struct array_list *al, size_t i);
|
||||||
array_list_put_idx(struct array_list *al, int i, void *data);
|
|
||||||
|
|
||||||
extern int
|
extern int array_list_insert_idx(struct array_list *al, size_t i, void *data);
|
||||||
array_list_add(struct array_list *al, void *data);
|
|
||||||
|
|
||||||
extern int
|
extern int array_list_put_idx(struct array_list *al, size_t i, void *data);
|
||||||
array_list_length(struct array_list *al);
|
|
||||||
|
|
||||||
extern void
|
extern int array_list_add(struct array_list *al, void *data);
|
||||||
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
@@ -1,13 +0,0 @@
|
|||||||
#!/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
|
|
||||||
80
bench/README.bench.md
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
|
||||||
|
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).
|
||||||
|
|
||||||
284
bench/jc-bench.sh
Executable file
@@ -0,0 +1,284 @@
|
|||||||
|
#!/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
@@ -1,28 +0,0 @@
|
|||||||
/*
|
|
||||||
* $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
Executable file
@@ -0,0 +1,100 @@
|
|||||||
|
#!/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}"
|
||||||
4
cmake/Config.cmake.in
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
@PACKAGE_INIT@
|
||||||
|
|
||||||
|
include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake")
|
||||||
|
check_required_components("@PROJECT_NAME@")
|
||||||
234
cmake/config.h.in
Normal file
@@ -0,0 +1,234 @@
|
|||||||
|
|
||||||
|
/* 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 you have the `duplocale' function. */
|
||||||
|
#cmakedefine HAVE_DUPLOCALE
|
||||||
|
|
||||||
|
/* 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
|
||||||
5
cmake/json_config.h.in
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
/* 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
@@ -1,347 +0,0 @@
|
|||||||
#! /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
174
config.h.in
@@ -1,174 +0,0 @@
|
|||||||
/* 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
|
|
||||||
@@ -1,94 +0,0 @@
|
|||||||
/*
|
|
||||||
* $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
107
configure.ac
@@ -1,107 +0,0 @@
|
|||||||
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,51 +33,64 @@
|
|||||||
static int _syslog = 0;
|
static int _syslog = 0;
|
||||||
static int _debug = 0;
|
static int _debug = 0;
|
||||||
|
|
||||||
void mc_set_debug(int debug) { _debug = debug; }
|
void mc_set_debug(int 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);
|
{
|
||||||
} else
|
vsyslog(LOG_DEBUG, msg, ap);
|
||||||
|
}
|
||||||
|
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,8 +10,12 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef _DEBUG_H_
|
/**
|
||||||
#define _DEBUG_H_
|
* @file
|
||||||
|
* @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>
|
||||||
|
|
||||||
@@ -19,14 +23,22 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern void mc_set_debug(int debug);
|
#ifndef JSON_EXPORT
|
||||||
extern int mc_get_debug(void);
|
#if defined(_MSC_VER) && defined(JSON_C_DLL)
|
||||||
|
#define JSON_EXPORT __declspec(dllexport)
|
||||||
|
#else
|
||||||
|
#define JSON_EXPORT extern
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
extern void mc_set_syslog(int syslog);
|
JSON_EXPORT void mc_set_debug(int debug);
|
||||||
|
JSON_EXPORT int mc_get_debug(void);
|
||||||
|
|
||||||
extern void mc_debug(const char *msg, ...);
|
JSON_EXPORT void mc_set_syslog(int syslog);
|
||||||
extern void mc_error(const char *msg, ...);
|
|
||||||
extern void mc_info(const char *msg, ...);
|
JSON_EXPORT void mc_debug(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
|
||||||
@@ -34,17 +46,24 @@ extern void mc_info(const char *msg, ...);
|
|||||||
|
|
||||||
#ifndef PARSER_BROKEN_FIXED
|
#ifndef PARSER_BROKEN_FIXED
|
||||||
|
|
||||||
#define JASSERT(cond) do {} while(0)
|
#define JASSERT(cond) \
|
||||||
|
do \
|
||||||
|
{ \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#define JASSERT(cond) do { \
|
#define JASSERT(cond) \
|
||||||
if (!(cond)) { \
|
do \
|
||||||
mc_error("cjson assert failure %s:%d : cond \"" __STRING(cond) "failed\n", __FILE__, __LINE__); \
|
{ \
|
||||||
*(int *)0 = 1;\
|
if (!(cond)) \
|
||||||
abort(); \
|
{ \
|
||||||
}\
|
mc_error("cjson assert failure %s:%d : cond \"" __STRING(cond) "failed\n", \
|
||||||
} while(0)
|
__FILE__, __LINE__); \
|
||||||
|
*(int *)0 = 1; \
|
||||||
|
abort(); \
|
||||||
|
} \
|
||||||
|
} while (0)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -57,11 +76,19 @@ extern 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) if (0) mc_set_debug(x)
|
#define 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) if (0) mc_set_syslog(x)
|
#define MC_SET_SYSLOG(x) \
|
||||||
#define MC_DEBUG(x, ...) if (0) mc_debug(x, ##__VA_ARGS__)
|
if (0) \
|
||||||
#define MC_INFO(x, ...) if (0) mc_info(x, ##__VA_ARGS__)
|
mc_set_syslog(x)
|
||||||
|
#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
@@ -1,791 +0,0 @@
|
|||||||
#! /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:
|
|
||||||
16
doc/CMakeLists.txt
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# 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
Normal file
6
doc/fixup_markdown.sh
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
#!/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; } ' "$@"
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
<!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>
|
|
||||||
@@ -1,281 +0,0 @@
|
|||||||
<!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>
|
|
||||||
|
Before Width: | Height: | Size: 676 B |
|
Before Width: | Height: | Size: 147 B |
@@ -1,193 +0,0 @@
|
|||||||
<!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>
|
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
<!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>
|
|
||||||
|
Before Width: | Height: | Size: 132 B |
@@ -1,381 +0,0 @@
|
|||||||
<!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>
|
|
||||||
@@ -1,58 +0,0 @@
|
|||||||
<!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
|
Before Width: | Height: | Size: 3.7 KiB |
@@ -1,97 +0,0 @@
|
|||||||
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');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,77 +0,0 @@
|
|||||||
<!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>
|
|
||||||
|
Before Width: | Height: | Size: 86 B |
|
Before Width: | Height: | Size: 453 B |
|
Before Width: | Height: | Size: 746 B |
|
Before Width: | Height: | Size: 616 B |
|
Before Width: | Height: | Size: 597 B |
|
Before Width: | Height: | Size: 86 B |
|
Before Width: | Height: | Size: 746 B |
|
Before Width: | Height: | Size: 246 B |
|
Before Width: | Height: | Size: 246 B |
|
Before Width: | Height: | Size: 403 B |
|
Before Width: | Height: | Size: 86 B |
|
Before Width: | Height: | Size: 388 B |
|
Before Width: | Height: | Size: 229 B |
|
Before Width: | Height: | Size: 229 B |
|
Before Width: | Height: | Size: 314 B |
|
Before Width: | Height: | Size: 86 B |
@@ -1,344 +0,0 @@
|
|||||||
<!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>
|
|
||||||
@@ -1,344 +0,0 @@
|
|||||||
<!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>
|
|
||||||
@@ -1,88 +0,0 @@
|
|||||||
<!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>
|
|
||||||
@@ -1,115 +0,0 @@
|
|||||||
<!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>
|
|
||||||
@@ -1,91 +0,0 @@
|
|||||||
<!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>
|
|
||||||
@@ -1,88 +0,0 @@
|
|||||||
<!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>
|
|
||||||
@@ -1,88 +0,0 @@
|
|||||||
<!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>
|
|
||||||
@@ -1,88 +0,0 @@
|
|||||||
<!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>
|
|
||||||
@@ -1,499 +0,0 @@
|
|||||||
<!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>
|
|
||||||
@@ -1,163 +0,0 @@
|
|||||||
<!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>
|
|
||||||
@@ -1,121 +0,0 @@
|
|||||||
<!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>
|
|
||||||
@@ -1,109 +0,0 @@
|
|||||||
<!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>
|
|
||||||
@@ -1,88 +0,0 @@
|
|||||||
<!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>
|
|
||||||
@@ -1,92 +0,0 @@
|
|||||||
<!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>
|
|
||||||
@@ -1,247 +0,0 @@
|
|||||||
<!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>
|
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
<!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>
|
|
||||||
@@ -1,215 +0,0 @@
|
|||||||
<!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>
|
|
||||||
@@ -1,390 +0,0 @@
|
|||||||
<!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>
|
|
||||||
@@ -1,112 +0,0 @@
|
|||||||
<!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>
|
|
||||||