Commit Graph

65 Commits

Author SHA1 Message Date
65478ea731 Merge pull request #1 from pontillo/master
Merge latest upstream code into github fork
2014-05-21 11:26:06 -04:00
cf50682983 Merge latest upstream code into github fork.
Conflicts:
	cJSON.c
	cJSON.h
	test.c
2014-05-20 20:03:20 -07:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
65de016c38 a few more README changes 2011-08-22 00:55:11 -04:00
b051ed05d7 updated Makefile, README and gitignore 2011-08-22 00:52:03 -04:00
ebba183f1e updated README markdown, gitignore, added the Makefile and fixed weird comments in test.c 2011-08-22 00:47:25 -04:00
4cc55858fd renamed README to README.md 2011-08-22 00:44:33 -04:00
fc0df31a18 init commit 2011-08-22 00:43:38 -04:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
69dca155a9 comment these out for clarity...
git-svn-id: http://svn.code.sf.net/p/cjson/code@16 e3330c51-1366-4df0-8b21-3ccf24e3d50e
2009-11-11 00:14:51 +00:00