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
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
Dave Gamble
de7afcc458
change firstByteMark to unsigned to prevent constant overflow warning
...
git-svn-id: http://svn.code.sf.net/p/cjson/code@33 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2010-02-18 10:40:37 +00:00
Dave Gamble
149d013543
Wrong order for variable declaration.
...
git-svn-id: http://svn.code.sf.net/p/cjson/code@32 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2010-02-13 22:32:15 +00:00
Dave Gamble
6711153d41
CreateBool, because it's useful ;)
...
git-svn-id: http://svn.code.sf.net/p/cjson/code@31 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2010-02-12 16:24:54 +00:00
Dave Gamble
3fb3989bb1
All memory allocations are now checked, and should fail gracefully in a low memory environment.
...
git-svn-id: http://svn.code.sf.net/p/cjson/code@30 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2010-01-27 13:01:15 +00:00
Dave Gamble
7dd9280267
Fix handling of non-ascii characters!
...
Many thanks to an anonymous submitter for this fix!!
git-svn-id: http://svn.code.sf.net/p/cjson/code@29 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2010-01-23 12:44:58 +00:00
Dave Gamble
d9840479f5
Include ctype.h for tolower()
...
git-svn-id: http://svn.code.sf.net/p/cjson/code@28 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2010-01-07 23:07:58 +00:00
Dave Gamble
ee4ce32ea8
make strcasecmp STABLE if passed a null string
...
git-svn-id: http://svn.code.sf.net/p/cjson/code@27 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2010-01-01 23:13:31 +00:00
Dave Gamble
6420cfe7c4
solve the stricmp/strcasecmp in a dumb way for good.
...
I might make cJSON_strcasecmp hookable, depending on what feedback i get.
There are now +NO+ #ifdef/#endif WINDOWS clauses, just neat ANSI C.
Also, this DOES NOT represent an efficiency hit for parsing, since the casecmp code is ONLY used for retrieval of object values, which would be after the parse stage.
git-svn-id: http://svn.code.sf.net/p/cjson/code@26 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-12-09 15:43:38 +00:00
Dave Gamble
efe33fabbb
ID: 2907153
...
declare variable first, so we're proper c ;)
git-svn-id: http://svn.code.sf.net/p/cjson/code@25 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-12-09 12:31:32 +00:00
Dave Gamble
37963a72b9
Don't crash if someone calls cJSON_Print(0);
...
git-svn-id: http://svn.code.sf.net/p/cjson/code@24 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-26 20:17:25 +00:00
Dave Gamble
091c0676c1
return 0!
...
git-svn-id: http://svn.code.sf.net/p/cjson/code@23 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-25 19:33:40 +00:00
Dave Gamble
341bb3c640
oops! remember to kill dead pointers on Detach!!
...
git-svn-id: http://svn.code.sf.net/p/cjson/code@22 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-25 17:06:26 +00:00
Dave Gamble
79a796aed2
Detatch and Remove objects from Arrays/Objects.
...
git-svn-id: http://svn.code.sf.net/p/cjson/code@21 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-25 17:04:05 +00:00
Dave Gamble
29b085bc5d
Feature Request: 2903802.
...
If you need to add an existing cJSON to a new object, but the existing object
must not be affected by this, use cJSON_AddItemReferenceTo<Array|Object>.
This will make a "reference" to the existing object (which is what you really mean to do),
and allow you to use it with a new object without fear of names being corrupted or things
being deleted.
Think of it like a reference, since that's pretty much what it is.
If you modify the resulting object (i.e. you AddItemReference, then retrieve with GetObjectItem,
and then start adding/replacing) you'll modify the object you pass in (in other words, this
doesn't clone everything, since that would probably end up being wasteful of space), however,
if you add it, and treat it as if it were const, everything will be fine!
git-svn-id: http://svn.code.sf.net/p/cjson/code@20 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-25 16:52:07 +00:00
Dave Gamble
c4e8954eb2
Feature request: 2903779.
...
Unformatted output. :)
git-svn-id: http://svn.code.sf.net/p/cjson/code@19 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-25 15:27:39 +00:00
Dave Gamble
501ff3b3d0
if it's a big number, but still an integer, print it exactly!
...
git-svn-id: http://svn.code.sf.net/p/cjson/code@18 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-25 15:18:19 +00:00
Dave Gamble
0dbe29ffe8
fix bug 2895595 from jshvrsn whereby values outside of INT_MIN/INT_MAX range are printed incorrectly as ints.
...
git-svn-id: http://svn.code.sf.net/p/cjson/code@17 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-11 00:15:53 +00:00
Dave Gamble
991b577247
fix the ReplaceObject functions; tighten them up, add some more checks for stability.
...
git-svn-id: http://svn.code.sf.net/p/cjson/code@14 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-10 23:50:43 +00:00
Dave Gamble
b3bd706f8f
prototype versions of ReplaceObject.
...
Based on an idea from Daniel Harcek; these are designed to allow you to replace entries in an object or array with new
values. The old values get deleted and the new ones are wired into place.
This leads to a structure like this:
cJSON_ReplaceItemInObject(myobject, "spooncount", cJSON_CreateNumber(24));
cJSON +NEVER+ type checks, so it's perfectly legal to replace an object with a string (to cJSON) though it may not be in your schema!
git-svn-id: http://svn.code.sf.net/p/cjson/code@13 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-10 23:32:11 +00:00
Dave Gamble
5cca4e2c57
simplify the rendering code so there's no 'realloc' going on.
...
That seemed horribly inefficient to me.
Now we use multiple passes and can test for failure more carefully.
git-svn-id: http://svn.code.sf.net/p/cjson/code@12 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-10 22:57:37 +00:00
Dave Gamble
37da1d2493
Fix for printing values that contain % literals. Thanks to Jimmy Tam!
...
git-svn-id: http://svn.code.sf.net/p/cjson/code@11 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-06 15:41:44 +00:00
Dave Gamble
7ca2c994a7
incorporate hooks feature from bug 2883206
...
also new errorhandling for memory failure cases. +I HAVE NOT CHECKED THIS FOR ABILITY TO LEAK!+
git-svn-id: http://svn.code.sf.net/p/cjson/code@10 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-10-29 00:21:54 +00:00
Dave Gamble
c052999a71
fix bug: 2885206, whereby memory would leak in print_object if print_value failed.
...
git-svn-id: http://svn.code.sf.net/p/cjson/code@9 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-10-29 00:06:15 +00:00
Dave Gamble
75e1702659
fix bug: 2859459 (crash when printing JSON)
...
handling of string length was incorrect.
git-svn-id: http://svn.code.sf.net/p/cjson/code@8 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-10-28 23:59:05 +00:00
Dave Gamble
e5fe65f58a
...try that again... better WINDOWS/WIN32/__WIN32__ (for Borland C) sentinelling
...
also missed the casts on realloc()
git-svn-id: http://svn.code.sf.net/p/cjson/code@6 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-09-09 18:56:31 +00:00
Dave Gamble
6d50358e26
Windows/c++ support (with thanks to Ron Hall):
...
added strcasecmp->stricmp
added (char*) casts to all mallocs (as reqd by c++)
added skip(value) to cJSON_Parse to allow for whitespace before the actual data
git-svn-id: http://svn.code.sf.net/p/cjson/code@5 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-09-09 10:44:00 +00:00
Dave Gamble
a4a4e7cbff
make these PROPERLY ansi-c compliant ;)
...
git-svn-id: http://svn.code.sf.net/p/cjson/code@2 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-08-26 03:57:15 +00:00
Dave Gamble
805b652e51
here it is, cJSON 1.0
...
git-svn-id: http://svn.code.sf.net/p/cjson/code@1 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-08-26 03:55:20 +00:00