633 Commits

Author SHA1 Message Date
Dave Gamble
12d7ccf63b fix typo. 2016-05-29 15:40:47 +01:00
Irwan Djajadi
224c2a8485 Fix compiler error when it encountered 1.0/0.0. It does not want to deal
with division by 0.
Tricked the compiler to use volatile local variable zero instead, so it
does not know for sure whether or not it's going to be zero.
2016-04-22 14:27:20 -05:00
Dave Gamble
e6b352d126 tidy up some code that was added a while back. 2016-03-20 00:24:41 +00:00
Dave Gamble
b4151361de Allow for global/local error pointers. If you supply a return_parse_end
to cJSON_ParseWithOpts, then that will store the error pointer (if
parsing fails).
2016-03-19 18:41:44 +00:00
Dave Gamble
c6d868cf06 add this to .gitignore 2016-03-19 18:26:57 +00:00
Dave Gamble
fe967cd1ff extra checking for memory allocation failure. 2016-03-19 18:14:19 +00:00
Dave Gamble
ee579ecbd6 Integrate patch for handling broken unicode surrogate pairs, with
thanks to kolman and Irwan Djajadi on SourceForge.
2016-03-19 18:14:06 +00:00
Kevin Branigan
a6a75645e4 Merge pull request #26 from nagamalli9999/master
Using values in powers of two for cJSON_* constants
2016-03-06 20:10:15 +00:00
Kevin Branigan
dbf16a0eb8 Merge pull request #31 from ChristianSch/master
fixed segmentation fault for non-json input / provided test case
2016-03-06 20:09:02 +00:00
Christian Schulze
52d7d14f6c fixed segfault when the lib tries to parse HTML with embedded CSS; provided test case 2016-03-06 16:43:53 +01:00
Kevin Branigan
e70366a65a Merge pull request #29 from schmidtw/master
Publish the libraries and headers to the right directories during 'make install'.
2016-02-16 17:33:32 +00:00
Weston Schmidt
a5c60cd223 Improve the locations so the destination is correct as well as the include path. 2016-02-15 06:36:21 -08:00
Weston Schmidt
2cac21e156 Add install targets. 2016-02-15 06:21:48 -08:00
Kevin Branigan
53b7e74c9c Merge pull request #27 from nagamalli9999/makefile-uninstall
Added uninstall rule to Makefile
2016-02-11 13:09:29 -05:00
Eswar Yaganti
5daac864a3 Added uninstall rule to Makefile 2016-02-11 18:26:54 +05:30
Eswar Yaganti
8d94ecec75 Merge branch 'master' of https://github.com/nagamalli9999/cJSON 2016-02-10 10:01:03 +05:30
Eswar Yaganti
ce546b54d8 Changed the #define values of cJSON* data types
We can use bitops to check if the parsed JSON is of a particular types
using OR
2016-02-10 09:58:13 +05:30
Eswar Yaganti
51371c899e Changed the #define values of cJSON* data types
We can use bitops to check if the parsed JSON is of a particular types
using OR
2016-02-09 22:52:10 +05:30
Kevin Branigan
e95313adad Merge pull request #24 from FSMaxB/fix_code_order
Fix printing of empty string pointers
2015-10-25 23:48:38 -04:00
Max Bruckner
8222e9b8c4 Fix printing of empty string pointers
Once the check if str is NULL is reached, str has already been
derereferenced in the for loop, so in the case that the if clause would
be entered, the program has already crashed due to a null pointer
dereference.

By checking the content of str before dereferencing, the code in the if
clause is actually useful.

for (ptr=str;*ptr;ptr++) flag|=((*ptr>0 && *ptr<32)||(*ptr=='\"')||(*ptr=='\\'))?1:0;

...

if (!str)
...
2015-10-26 03:08:47 +01:00
Kevin Branigan
d4906be4f0 Merge pull request #23 from FSMaxB/format_fix
Fix format problem with empty objects
2015-10-25 22:02:33 -04:00
Max Bruckner
9cc37a2844 Fix format problem with empty objects
When printing empty objects, the closing curly brace was missing one
indentation level.

Example from the output of test_utils:

BEFORE FIX:
{
	"foo":	"bar",
	"child":	{
		"grandchild":	{
	}
	}
}

AFTER FIX:
{
	"foo":	"bar",
	"child":	{
		"grandchild":	{
		}
	}
}
2015-10-26 02:43:44 +01:00
Kevin Branigan
361b9a58cb Merge pull request #19 from FSMaxB/fix_boolean
fix boolean expression
2015-10-18 17:03:47 -04:00
Kevin Branigan
99c46e7661 Merge pull request #20 from FSMaxB/fix_memory_leaks
fix memory leaks
2015-10-18 17:03:25 -04:00
Kevin Branigan
c7241f5314 Merge pull request #22 from FSMaxB/unreachable_line
Remove line that will never be executed
2015-10-18 17:03:03 -04:00
Max Bruckner
7c25dc9135 Remove line that will never be executed 2015-10-16 15:01:24 +02:00
Max Bruckner
58bc383b28 fix memory leaks 2015-10-14 11:02:56 +02:00
Max Bruckner
ec71726ef8 fix boolean expression
This expression was always false.
2015-10-13 20:33:37 +02:00
Kevin Branigan
1a20eb8494 Fixed linux compile to support fpclassify (issue #18) 2015-10-05 13:46:14 -04:00
Kevin Branigan
8865d869db cJSON_HasObjectItem didn’t compile 2015-10-01 12:03:27 -04:00
Kevin Branigan
322e440e78 Merge pull request #16 from npi3pak/patch-1
README.md: fixed formatting
2015-10-01 11:38:53 -04:00
Kevin Branigan
11fb0d0215 Merge pull request #15 from dieyushi/master
add new macro for iterating over an array
2015-10-01 11:38:33 -04:00
Kevin Branigan
1e1de63244 Merge pull request #13 from rmeertens/master
added cJSON_HasObjectItem
2015-10-01 11:37:44 -04:00
Kevin Branigan
11b8c97f41 Merge pull request #17 from Scypho/master
Handle invalid numbers
2015-10-01 11:36:19 -04:00
Linus Wallgren
e4b96fa820 Handle invalid numbers
Previously cJSON generated invalid JSON when a number was infinite or
similar. This patch changes the behaviour to match javascript, that is
to render such a number as null.
2015-10-01 17:27:59 +02:00
IvanVoid
0b807e21a4 README.md: fixed formatting 2015-09-25 19:14:39 +03:00
root
0da343068e add new macro for iterating over an array 2015-09-16 21:28:01 +08:00
Roland Meertens
b175877d8b +usefull function 2015-09-15 02:40:27 +02:00
Kevin Branigan
affedd65ba Merge pull request #11 from etodd/win-math-lib-fix
Remove "m" library dependency on Windows.
2015-08-20 12:35:07 -04:00
Evan Todd
ebd06067a4 Remove "m" library dependency on Windows. 2015-08-19 23:03:08 -04:00
Kevin Branigan
a819694712 Merge pull request #10 from ajaybhargav/master
Update gitignore to avoid tracking unwanted files
2015-08-12 11:10:06 -04:00
Ajay Bhargav
acff70b22d Update gitignore to avoid tracking unwanted files
.gitignore updated to avoid tracking files generated after build. Following list
of files are added:
*.o
*.a
*.so
*.swp
*.patch
tags

Signed-off-by: Ajay Bhargav <ajay.bhargav@einfochips.com>
2015-08-12 12:53:33 +05:30
Kevin Branigan
f86b9bdfcf Merge pull request #9 from anton-sergeev/master
Merge latest upstream code (svn rev. 73) into github fork
2015-07-27 21:33:42 -04:00
Anton Sergeev
956129116f Support cJSON_Utils library in CMakeLists.txt
Signed-off-by: Anton Sergeev <Anton.Sergeev@elecard.ru>
2015-07-28 03:48:28 +06:00
Anton Sergeev
74793934ad Merge latest upstream code (r73) into github fork.
Signed-off-by: Anton Sergeev <Anton.Sergeev@elecard.ru>

Conflicts:
	cJSON.c
	test.c
2015-07-28 03:48:06 +06:00
Kevin Branigan
2bd1e80f6c Merge pull request #8 from anton-sergeev/master
Add CMakeLists.txt
2015-07-15 10:34:08 -04:00
Anton Sergeev
262189428e Add CMakeLists.txt
Signed-off-by: Anton Sergeev <Anton.Sergeev@elecard.ru>
2015-07-15 14:08:45 +06:00
Kevin Branigan
7632993ebe Merge pull request #7 from DongwenHuang/master
Update cJSON.c
2015-06-15 10:59:20 -04:00
DongwenHuang
10b888be54 Update cJSON.c 2015-06-15 17:13:22 +08:00
Kevin Branigan
0fd1435f4b Merge pull request #6 from DongwenHuang/master
Update test.c
2015-06-12 14:25:52 -04:00
DongwenHuang
4132e9301d Update test.c 2015-06-12 12:44:42 +08:00
Dave Gamble
8004ed3115 Fix bug with the sort.
git-svn-id: svn://svn.code.sf.net/p/cjson/code@73 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2015-02-13 20:33:06 +00:00
Dave Gamble
174c62902c Since we anticipate repeated comparisons, add in a test for sorted lists, which can reduce
cost for sorted objects to O(N)


git-svn-id: svn://svn.code.sf.net/p/cjson/code@72 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2015-02-13 20:31:33 +00:00
Dave Gamble
491cf029b2 Rework cJSON_Utils object compare functions to use an O(N) algorithm on sorted lists.
It's a bit of a shame to use the sorts, because cJSON is otherwise incredibly stable (json->cJSON->json is unmodified modulo formatting),
but it means we get usable performance, rather than O(N^2) which will make CPUs cry.


git-svn-id: svn://svn.code.sf.net/p/cjson/code@71 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2015-02-13 19:53:27 +00:00
Dave Gamble
c4ddd7aaa3 Correct comment and variable declaration style to be more compatible. Added cJSONUtils_SortObject for sorting the members of an object alphabetically.
git-svn-id: svn://svn.code.sf.net/p/cjson/code@70 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2015-02-13 19:19:26 +00:00
Dave Gamble
1d9b70e706 Fix comment style for proper ansi c compliance.
git-svn-id: svn://svn.code.sf.net/p/cjson/code@69 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2015-02-13 19:07:29 +00:00
Dave Gamble
9d0a4cbf2a adjust the test very slightly
git-svn-id: svn://svn.code.sf.net/p/cjson/code@68 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2015-02-11 11:34:01 +00:00
Dave Gamble
b44a338c6d Optimise out escapable array.
git-svn-id: svn://svn.code.sf.net/p/cjson/code@67 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2015-02-11 11:31:35 +00:00
Dave Gamble
060e6563c0 Add more patch functionality and some more utils.
Also add a new #define to cJSON.h for SetNumberValue.


git-svn-id: svn://svn.code.sf.net/p/cjson/code@66 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2015-02-11 01:29:40 +00:00
Dave Gamble
3c6b3cc617 start of JSON Patch implementation. cJSON gained a cJSON_InsertItemToArray which pushes elements up by one.
This is needed for JSON Patch. Everything but Test is implemented for ApplyPatches.


git-svn-id: svn://svn.code.sf.net/p/cjson/code@65 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2015-02-10 14:17:59 +00:00
Dave Gamble
858671cc7f rework cJSONUtils_GetPointer to avoid malloc/free by using strcmp with pointer-encoding awareness.
git-svn-id: svn://svn.code.sf.net/p/cjson/code@64 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2015-02-10 12:14:59 +00:00
Dave Gamble
c0f5e2056b add cJSON_Utils which includes JSON Pointer implementation
git-svn-id: svn://svn.code.sf.net/p/cjson/code@63 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2015-02-09 18:29:05 +00:00
Dave Gamble
2abfb716d1 fix formatting.
git-svn-id: svn://svn.code.sf.net/p/cjson/code@62 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2015-02-09 17:38:18 +00:00
Dave Gamble
d9fc81e6c8 Added buffered printing methods for faster printing.
git-svn-id: svn://svn.code.sf.net/p/cjson/code@61 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2015-02-09 17:34:35 +00:00
Dave Gamble
70984d47e9 patch to optimise array/object printing.
git-svn-id: svn://svn.code.sf.net/p/cjson/code@60 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2015-02-09 17:28:26 +00:00
Dave Gamble
575724a15f optimises for number/string print
git-svn-id: svn://svn.code.sf.net/p/cjson/code@59 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2015-02-09 17:25:55 +00:00
Kevin Branigan
2ffefcec73 Merge pull request #4 from rafaeldias/master
Fixed issue with ansi (single-line comments) and updated Makefile for compiling dynamic and static lib.
2015-02-03 00:31:11 -05:00
Rafael Leal Dias
a3eafd540d Fixed issue withh ansi (single-line comments) and updated Makefile for compiling dynamic and static lib. 2015-01-30 12:06:14 -02:00
Kevin Branigan
65478ea731 Merge pull request #1 from pontillo/master
Merge latest upstream code into github fork
2014-05-21 11:26:06 -04:00
Mike Pontillo
cf50682983 Merge latest upstream code into github fork.
Conflicts:
	cJSON.c
	cJSON.h
	test.c
2014-05-20 20:03:20 -07:00
Dave Gamble
28691956a6 fix \u parser
git-svn-id: http://svn.code.sf.net/p/cjson/code@58 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2013-08-19 14:49:06 +00:00
Dave Gamble
c537515c17 inbuilt hex parser for unicode, which ought to be a lot faster.
git-svn-id: http://svn.code.sf.net/p/cjson/code@57 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2013-08-14 13:20:42 +00:00
Dave Gamble
22e51c92f0 license file separated out :)
git-svn-id: http://svn.code.sf.net/p/cjson/code@56 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2013-08-14 13:16:18 +00:00
Dave Gamble
73cc8dd1c4 cJSON_Minify (which strips comments),
fixed buffer overflow
const * for array creates


git-svn-id: http://svn.code.sf.net/p/cjson/code@55 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2013-08-14 12:58:13 +00:00
Dave Gamble
46e3724aa8 clean up test.c
git-svn-id: http://svn.code.sf.net/p/cjson/code@54 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2013-02-09 12:57:04 +00:00
Dave Gamble
15adf71272 Tidy comments. Add cJSON_SetIntValue.
git-svn-id: http://svn.code.sf.net/p/cjson/code@53 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2013-02-09 12:56:01 +00:00
Dave Gamble
2c9474e9e3 fix non-explicit cast
git-svn-id: http://svn.code.sf.net/p/cjson/code@52 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2013-02-09 12:55:11 +00:00
Dave Gamble
02a1e544f7 add cJSON_AddBoolToObject().
git-svn-id: http://svn.code.sf.net/p/cjson/code@51 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2013-02-06 12:59:21 +00:00
Dave Gamble
96c59f3e49 Wire in ParseWithOpts to allow detection of JSON with following garbage.
git-svn-id: http://svn.code.sf.net/p/cjson/code@50 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2013-02-06 12:44:17 +00:00
Dave Gamble
d755436ba7 tests for cJSON_Duplicate, so it will fail by returning 0 if anything fails to allocate
git-svn-id: http://svn.code.sf.net/p/cjson/code@49 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2013-02-05 18:26:51 +00:00
Dave Gamble
927aa631b8 Added cJSON_Duplicate. With commentary
git-svn-id: http://svn.code.sf.net/p/cjson/code@48 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2013-02-05 18:23:22 +00:00
Dave Gamble
a7fe08778f bracket logic (to quiet a warning).
Fix for potential buffer overflow printing extremely large integers.


git-svn-id: http://svn.code.sf.net/p/cjson/code@47 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2013-02-05 17:42:42 +00:00
Dave Gamble
8c60f99c72 fix handling of utf16 surrogate pairs!
git-svn-id: http://svn.code.sf.net/p/cjson/code@46 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2013-02-05 17:38:48 +00:00
Dave Gamble
8aa084918f Revert last patch. Simpler fix for empty arrays/objects is to handle them explicitly and then bail.
Saves plenty of unnecessary state-tracking.


git-svn-id: http://svn.code.sf.net/p/cjson/code@45 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2013-02-05 17:27:59 +00:00
Dave Gamble
3ddf3a5911 stable solution for printing arrays - based on patch donated by Jerome Lang.
Resolves issue in case malloc(0)!=0.



git-svn-id: http://svn.code.sf.net/p/cjson/code@44 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2013-02-05 17:14:12 +00:00
Dave Gamble
4678f33b5c Fix up ANSI issues.
git-svn-id: http://svn.code.sf.net/p/cjson/code@43 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2013-02-05 17:00:31 +00:00
Dave Gamble
fd1ac4f179 make parse_number more robust!
git-svn-id: http://svn.code.sf.net/p/cjson/code@42 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2011-10-10 15:33:19 +00:00
Dave Gamble
0d268cfef7 Update to cJSON! We now support UTF-16 surrogate pairs :)
git-svn-id: http://svn.code.sf.net/p/cjson/code@41 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2011-10-10 15:22:34 +00:00
Kevin Branigan
65de016c38 a few more README changes 2011-08-22 00:55:11 -04:00
Kevin Branigan
b051ed05d7 updated Makefile, README and gitignore 2011-08-22 00:52:03 -04:00
Kevin Branigan
ebba183f1e updated README markdown, gitignore, added the Makefile and fixed weird comments in test.c 2011-08-22 00:47:25 -04:00
Kevin Branigan
4cc55858fd renamed README to README.md 2011-08-22 00:44:33 -04:00
Kevin Branigan
fc0df31a18 init commit 2011-08-22 00:43:38 -04:00
Dave Gamble
9061b7a7e7 Fix c99 violation!
git-svn-id: http://svn.code.sf.net/p/cjson/code@40 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2011-03-14 21:34:03 +00:00
Dave Gamble
15dada46b5 Fix missing cast for compilation as c++!!
git-svn-id: http://svn.code.sf.net/p/cjson/code@39 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2011-03-07 16:35:13 +00:00
Dave Gamble
6a58ba5285 Include some analysis so that you can debug a failed parse.
You really oughtn't go too far with this, because it's only loose information; as I've said before, cJSON +isn't+ a validating parser. But this might give you enough info to save yourself on some rare occasion ;)



git-svn-id: http://svn.code.sf.net/p/cjson/code@38 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2011-03-02 21:22:57 +00:00
Dave Gamble
b5d57642c2 Handle control-chars.
In a certain sense, we shouldn't be seeing them, but this way we at least handle them well.


git-svn-id: http://svn.code.sf.net/p/cjson/code@37 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2011-03-02 21:04:46 +00:00
Dave Gamble
b5d2db4d9a print_object was calling free() rather than cJSON_free() under failure conditions!
git-svn-id: http://svn.code.sf.net/p/cjson/code@36 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2011-03-02 19:15:06 +00:00
Dave Gamble
6f51f007a9 cJSON_Parse("") should return 0.
git-svn-id: http://svn.code.sf.net/p/cjson/code@35 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2011-03-02 19:12:29 +00:00
Dave Gamble
02d86ef778 Update to permit compilation with gcc -ansi flag
(changed all C++ // comments to C /* */ comments).



git-svn-id: http://svn.code.sf.net/p/cjson/code@34 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2011-03-02 19:09:43 +00:00