Commit Graph

181 Commits

Author SHA1 Message Date
Max Bruckner
034003ce2b reformatting: cJSON_CreateString 2016-10-02 19:04:28 +07:00
Max Bruckner
3f9f4970b4 reformatting: cJSON_CreateNumber 2016-10-02 19:04:27 +07:00
Max Bruckner
99f61f2b35 reformatting: cJSON_CreateBool 2016-10-02 19:04:27 +07:00
Max Bruckner
a0b5d6b13a reformatting: cJSON_CreateFalse 2016-10-02 19:04:27 +07:00
Max Bruckner
fdfb9fff86 reformatting: cJSON_CreateTrue 2016-10-02 19:04:27 +07:00
Max Bruckner
cf7835b67d reformatting: cJSON_CreateNull 2016-10-02 19:04:26 +07:00
Max Bruckner
3a8043273e reformatting: cJSON_ReplaceItemInObject 2016-10-02 19:04:26 +07:00
Max Bruckner
dc8eb30467 reformatting: cJSON_ReplaceItemInArray 2016-10-02 19:04:26 +07:00
Max Bruckner
69dcfcf238 reformatting: cJSON_InsertItemInArray 2016-10-02 19:04:26 +07:00
Max Bruckner
207bb05e8c reformatting: cJSON_DeleteItemFromObject 2016-10-02 19:04:25 +07:00
Max Bruckner
96ec74c9d5 reformatting: cJSON_DetachItemFromObject 2016-10-02 19:04:25 +07:00
Max Bruckner
6e5063f9cc reformatting: cJSON_DeleteItemFromArray 2016-10-02 19:04:25 +07:00
Max Bruckner
c636621779 reformatting: cJSON_DetachItemFromArray 2016-10-02 19:04:25 +07:00
Max Bruckner
b602ef1cd5 reformatting: cJSON_AddItemReferenceToObject 2016-10-02 19:04:24 +07:00
Max Bruckner
55e33d7100 reformatting: cJSON_AddItemReferenceToArray 2016-10-02 19:04:24 +07:00
Max Bruckner
b55120eeb2 reformatting: cJSON_AddItemToObjectCS 2016-10-02 19:04:24 +07:00
Max Bruckner
196885ad93 reformatting: cJSON_AddItemToObject 2016-10-02 19:04:24 +07:00
Max Bruckner
c26f9b918d reformatting: cJSON_AddItemToArray 2016-10-02 19:04:23 +07:00
Max Bruckner
09545c0eb2 reformatting: create_reference 2016-10-02 19:04:23 +07:00
Max Bruckner
17e13946fe reformatting: cJSON_HasObjectItem 2016-10-02 19:04:23 +07:00
Max Bruckner
af44d57007 reformatting: cJSON_GetObjectItem 2016-10-02 19:04:23 +07:00
Max Bruckner
05c2dc3c2f reformatting: cJSON_GetArrayItem 2016-10-02 19:04:22 +07:00
Max Bruckner
4fdb6499f0 reformatting: cJSON_GetArraySize 2016-10-02 19:04:22 +07:00
Max Bruckner
31e53a1297 reformatting: print_object 2016-10-02 19:04:22 +07:00
Max Bruckner
25632fad13 reformatting: parse_object 2016-10-02 19:04:22 +07:00
Max Bruckner
782770c6ba reformatting: print_array 2016-10-02 19:04:21 +07:00
Max Bruckner
ad711e6fab reformatting: parse_array 2016-10-02 19:04:21 +07:00
Max Bruckner
a9f752e034 reformatting: print_value: 255 -> 0xFF 2016-10-02 19:04:21 +07:00
Max Bruckner
de4dc19e72 reformatting: print_value 2016-10-02 19:04:21 +07:00
Max Bruckner
c5f635d24a reformatting: parse_value 2016-10-02 19:04:20 +07:00
Max Bruckner
9b7eb6a46d reformatting: cJSON_PrintBuffered 2016-10-02 19:04:20 +07:00
Max Bruckner
ec46581b68 reformatting: cJSON_PrintUnformatted 2016-10-02 19:04:20 +07:00
Max Bruckner
1748902d3c reformatting: cJSON_Print 2016-10-02 19:04:20 +07:00
Max Bruckner
f36d9c9ef2 reformatting: cJSON_Parse 2016-10-02 19:04:19 +07:00
Max Bruckner
e809022349 reformatting: cJSON_ParseWithOpts 2016-10-02 19:04:19 +07:00
Max Bruckner
f1dd51bfb5 reformatting: skip 2016-10-02 19:04:19 +07:00
Max Bruckner
d42febea50 reformatting: Predeclared print prototypes 2016-10-02 19:04:18 +07:00
Max Bruckner
7423692586 reformatting: print_string 2016-10-02 19:04:18 +07:00
Max Bruckner
c71cd6cc1c reformatting: print_string_ptr 2016-10-02 19:04:18 +07:00
Max Bruckner
c88d045888 reformatting: parse_string 2016-10-02 19:04:16 +07:00
Max Bruckner
2e2dc873b2 reformatting: firstByteMark 2016-10-02 19:01:27 +07:00
Max Bruckner
e10f2bf08d reformatting: parse_hex4 2016-10-02 19:01:27 +07:00
Max Bruckner
67845e3dc6 reformatting: print_number 2016-10-02 19:01:27 +07:00
Max Bruckner
282006d918 reformatting: update 2016-10-02 19:01:26 +07:00
Max Bruckner
7f9a2691bf reformatting: ensure 2016-10-02 19:01:26 +07:00
Max Bruckner
b53ce73709 reformatting: printbuffer 2016-10-02 19:01:26 +07:00
Max Bruckner
d5bd497636 reformatting: pow2gt 2016-10-02 19:01:26 +07:00
Max Bruckner
88cbe57ba4 reformatting: parse_number 2016-10-02 19:01:25 +07:00
Max Bruckner
46cfa68a2b reformatting: cJSON_Delete 2016-10-02 19:01:25 +07:00
Max Bruckner
55488f66f6 reformatting: cJSON_New_Item 2016-10-02 19:01:25 +07:00
Max Bruckner
8db7e6d320 reformatting: cJSON_InitHooks 2016-10-02 19:01:25 +07:00
Max Bruckner
18081c03c4 reformatting: cJSON_strdup 2016-10-02 19:01:24 +07:00
Max Bruckner
542ed727d7 reformatting: cJSON_strcasecmp 2016-10-02 19:01:24 +07:00
Max Bruckner
c42b774f9f reformatting: cJSON_GetErrorPtr 2016-10-02 19:01:24 +07:00
Max Bruckner
94df772485 fix buffer overflow (#30) 2016-10-02 18:56:53 +07:00
Dave Gamble
2fe50bd557 get rid of isnormal test!! 2016-05-29 16:19:14 +01:00
Dave Gamble
87f55416c1 we can safely remove this, since the initial d==0 case catches this. 2016-05-29 16:01:06 +01: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
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
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
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
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
Max Bruckner
7c25dc9135 Remove line that will never be executed 2015-10-16 15:01:24 +02:00
Kevin Branigan
8865d869db cJSON_HasObjectItem didn’t compile 2015-10-01 12:03:27 -04:00
Kevin Branigan
1e1de63244 Merge pull request #13 from rmeertens/master
added cJSON_HasObjectItem
2015-10-01 11:37:44 -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
Roland Meertens
b175877d8b +usefull function 2015-09-15 02:40:27 +02: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
DongwenHuang
10b888be54 Update cJSON.c 2015-06-15 17:13:22 +08: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
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
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
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
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
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
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
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
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