Implement native JSON support using Jansson
commitcb99cf5a99680af7dc2c49fdf5b840d1ff4dd928
authorPhilipp Stephani <phst@google.com>
Mon, 18 Sep 2017 08:51:39 +0000 (18 10:51 +0200)
committerPhilipp Stephani <phst@google.com>
Mon, 18 Sep 2017 14:34:47 +0000 (18 16:34 +0200)
tree8b6d73ffc577bc69fc6833c4dea4b5e555b9598b
parent61a5c30e70926f48480b03b79f4f531c8d64418e
Implement native JSON support using Jansson

* configure.ac: New option --with-json.

* src/json.c (Fjson_serialize, Fjson_insert, Fjson_parse_string)
(Fjson_parse_buffer): New defuns.
(json_out_of_memory, json_parse_error, json_release_object)
(check_string_without_embedded_nulls, json_check, lisp_to_json)
(json_insert, json_insert_callback, json_to_lisp)
(json_read_buffer_callback, Fjson_parse_buffer, define_error): New
helper function.
(syms_of_json): New file.

* src/lisp.h: Declaration for syms_of_json.

* src/emacs.c (main): Enable JSON functions.

* src/Makefile.in (JSON_LIBS, JSON_CFLAGS, JSON_OBJ, EMACS_CFLAGS)
(base_obj, LIBES): Compile json.c if --with-json is enabled.

* test/src/json-tests.el (json-serialize/roundtrip)
(json-serialize/object, json-parse-string/object): New unit tests.
configure.ac
src/Makefile.in
src/emacs.c
src/json.c [new file with mode: 0644]
src/lisp.h
test/src/json-tests.el [new file with mode: 0644]