Home GnuPG
Diffusion GPGME 8eb08b318913

core: Import cJSON code from the payproc project.

Description

core: Import cJSON code from the payproc project.

* src/cJSON.c: New.
* src/cJSON.h: New.
* src/cJSON.readme: New.

This is a copy of the code from the payproc commit
af5d6b4f820ee19e246a2cab6f56465fe91f1233. The code was originally
added to payproc with the commit below.

commit 7ae7ef29bc5ec19e005e6a5a739233d655f3f05f
Author: Werner Koch <wk@gnupg.org>
AuthorDate: Wed Apr 2 09:01:42 2014 +0200
Commit: Werner Koch <wk@gnupg.org>
CommitDate: Wed Apr 2 09:12:02 2014 +0200

Simplify cJSON and add new macros.

  • src/cJSON.h: Re-indented.

(cjson_t): New.
(cjson_is_): New macros.

  • src/cJSON.c: Re-indented. Include errno.h and our util.h.

(ep): Remove global var.
(cJSON_GetErrorPtr): Remove.
(cJSON_strcasecmp): Cast args for use with tolower.
(cJSON_malloc, cJSON_free): Remove. Change callers to use xtrymalloc
and xfree.
(cJSON_InitHooks): Remove.
(cJSON_strdup): Remove. Change callers to use xtrystrdup.
(cJSON_New_Item): Simplify.
(cJSON_ParseWithOpts, cJSON_Parse): Add arg R_ERROFF.

(parse_string, parse_value, parse_array, parse_object): Add arg EP.

cJSON has been taken from cjson-code-58.zip. The README file has been
renamed to cJSON.readme and the files have been changed to GNU coding
standards. Because that parser is small enough to be source copied it
does not make sense to treat it as a library and I changed the memory
allocation functions to the usual xmalloc ones. The only external
dependency now is out util.h which declares those functions.

The lowercase cjson_t better fits into our coding style as well as the

new macros. Thanks to Dave Gamble for this nice parser.

  • Signed-off-by: Werner Koch <wk@gnupg.org>

Details

Provenance
wernerAuthored on Mar 14 2018, 10:55 AM
Parents
rMe846c3daeeb4: docs: TODO
Branches
Unknown
Tags
Unknown