1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-15 04:11:53 -08:00
emacs/doc/lispref
Philipp Stephani ab203e36d5 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_malloc, json_free, json_has_prefix, json_has_suffix)
(json_make_string, json_build_string, json_encode)
(json_out_of_memory, json_parse_error)
(json_release_object, check_string_without_embedded_nulls, json_check)
(lisp_to_json, lisp_to_json_toplevel, lisp_to_json_toplevel_1)
(json_insert, json_insert_callback, json_to_lisp)
(json_read_buffer_callback, Fjson_parse_buffer, define_error): New
helper functions.
(init_json, syms_of_json): New file.

* src/lisp.h: Declaration for init_json and syms_of_json.

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

* src/eval.c (internal_catch_all, internal_catch_all_1): New helper
functions to catch all signals.
(syms_of_eval): Add uninterned symbol to signify out of memory.

* 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)
(json-parse-string/string, json-serialize/string)
(json-parse-string/incomplete, json-parse-string/trailing)
(json-parse-buffer/incomplete, json-parse-buffer/trailing): New unit
tests.

* doc/lispref/text.texi (Parsing JSON): New manual section.
2017-12-10 13:49:08 +01:00
..
abbrevs.texi Update copyright year to 2017 2016-12-31 19:42:26 -08:00
anti.texi Rewrite Antinews for Emacs 26 2017-09-02 12:37:51 +03:00
back.texi Update copyright year to 2017 2016-12-31 19:42:26 -08:00
backups.texi Be more consistent about "directory name" in manual 2017-09-09 13:41:20 -07:00
book-spine.texi
buffers.texi Accept new always' value for option buffer-offer-save' 2017-09-24 14:57:40 -07:00
ChangeLog.1 maint: shorten https://lists.gnu.org/archive/html/... links 2017-11-25 22:48:12 -08:00
commands.texi * doc/lispref/commands.texi (Adjusting Point): Fix wording. (Bug#29042) 2017-10-28 19:48:49 +03:00
compile.texi Improve discoverability of 'defvar' for suppressing warnings 2017-11-24 16:36:33 +02:00
control.texi Amend documentation for text-quoting-style becoming a user option. 2017-10-01 11:27:16 +00:00
customize.texi Be more consistent about "directory name" in manual 2017-09-09 13:41:20 -07:00
debugging.texi ; Typo fixes, mostly repeated words 2017-10-09 22:55:06 -07:00
display.texi Fix some duplicate words typos 2017-10-27 20:45:23 -04:00
doclicense.texi Merge from Gnulib 2017-10-01 18:31:10 -07:00
edebug.texi Merge from origin/emacs-26 2017-11-14 17:43:06 -05:00
elisp.texi Add macros thunk-let' and thunk-let*' 2017-12-01 08:54:05 +01:00
errors.texi Improve documentation of "constant" symbols 2017-11-26 20:23:15 +02:00
eval.texi ; * doc/lispref/eval.texi (Deferred Eval): Improve wording. 2017-12-01 20:26:35 +02:00
files.texi Merge from origin/emacs-26 2017-11-02 21:01:44 -07:00
frames.texi In frame parameters documentation mention desktop saving/restoring 2017-11-02 09:28:25 +01:00
functions.texi Fix a typo in the ELisp manual 2017-10-30 20:45:39 +02:00
gpl.texi Merge from Gnulib 2017-10-01 18:31:10 -07:00
hash.texi Use float instead of Lisp_Object for rehash_size 2017-02-21 15:39:17 -08:00
help.texi Amend documentation for text-quoting-style becoming a user option. 2017-10-01 11:27:16 +00:00
hooks.texi Remove Vwindow_text_change_functions and related code 2017-07-07 08:40:24 +02:00
index.texi
internals.texi Change vectorlike from struct to union 2017-11-13 10:16:51 -08:00
intro.texi Remove the build number from emacs-version variable 2017-02-17 20:15:21 -05:00
keymaps.texi Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
lay-flat.texi Update copyright year to 2017 2016-12-31 19:42:26 -08:00
lists.texi alist-get: Add optional arg TESTFN 2017-07-17 21:30:50 +09:00
loading.texi Be more consistent about "directory name" in manual 2017-09-09 13:41:20 -07:00
macros.texi Documentation fix in elisp reference manual 2017-02-24 10:21:31 +09:00
Makefile.in Prefer HTTPS to FTP and HTTP in documentation 2017-09-13 15:54:37 -07:00
maps.texi Update copyright year to 2017 2016-12-31 19:42:26 -08:00
markers.texi Update copyright year to 2017 2016-12-31 19:42:26 -08:00
minibuf.texi Fix doc and doc-strings for minibuffer window related functions (Bug#28978) 2017-10-30 19:43:29 +01:00
modes.texi Improve documentation of self-insert-uses-region-functions 2017-11-24 12:49:04 +02:00
nonascii.texi Prefer HTTPS to FTP and HTTP in documentation 2017-09-13 15:54:37 -07:00
numbers.texi Make logcount act like CL on negative arg 2017-09-30 15:38:14 -07:00
objects.texi Reorder type predicates in ELisp manual 2017-11-24 10:07:40 +02:00
os.texi Fix some duplicate words typos 2017-10-27 20:45:23 -04:00
package.texi Prefer HTTPS to FTP and HTTP in documentation 2017-09-13 15:54:37 -07:00
positions.texi Add absolute optional parameter to line-number-at-pos (Bug#26417) 2017-07-03 14:43:02 +02:00
processes.texi Prefer HTTPS to FTP and HTTP in documentation 2017-09-13 15:54:37 -07:00
README Prefer HTTPS to FTP and HTTP in documentation 2017-09-13 15:54:37 -07:00
records.texi Deprecate copy-record in favor of copy-sequence 2017-04-07 18:54:40 -07:00
searching.texi ; Typo fixes, mostly repeated words 2017-10-09 22:55:06 -07:00
sequences.texi Fix a typo in ELisp manual 2017-12-01 21:56:31 +02:00
spellfile
streams.texi Merge from origin/emacs-25 2017-01-01 01:10:47 -08:00
strings.texi Allow 'make-string' callers force creation of multibyte strings 2017-11-04 15:00:25 +02:00
symbols.texi Remove "baroque" use of prefix argument from gensym 2017-09-13 10:38:05 -04:00
syntax.texi Doc amendment for syntax-ppss. 2017-10-01 16:08:20 +00:00
text.texi Implement native JSON support using Jansson 2017-12-10 13:49:08 +01:00
threads.texi Rudimentary error handling for non-main threads 2017-01-18 18:00:16 +02:00
tips.texi Fix ELisp "Warning Tips" 2017-11-27 18:24:29 +02:00
two-volume-cross-refs.txt Prefer HTTPS to FTP and HTTP in documentation 2017-09-13 15:54:37 -07:00
two-volume.make Prefer HTTPS to FTP and HTTP in documentation 2017-09-13 15:54:37 -07:00
variables.texi Update documentation of '.dir-locals-2.el' 2017-11-28 19:17:48 +02:00
windows.texi In windows.texi mention special splitting behavior of side and atomic windows 2017-12-06 09:53:30 +01:00

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Copyright (C) 2001-2017 Free Software Foundation, Inc.  -*- outline -*-
See the end of the file for license conditions.


README for the Emacs Lisp Reference Manual.

* This directory contains the texinfo source files for the Emacs Lisp
Reference Manual.

* Report bugs in the Lisp Manual (or in Emacs) using M-x report-emacs-bug.
To ask questions, use the help-gnu-emacs mailing list.

* The Emacs Lisp Reference Manual is quite large.  It totals around
1100 pages in smallbook format; the info files total around 3.0 megabytes.

* You can format this manual for Info, for printing hardcopy using TeX,
or for HTML.

* You can buy nicely printed copies from the Free Software Foundation.
Buying a manual from the Free Software Foundation helps support our GNU
development work.  See <https://shop.fsf.org/>.
(At time of writing, this manual is out of print.)

* The master file for formatting this manual for Tex is called 'elisp.texi'.
It contains @include commands to include all the chapters that make up
the manual.

* This distribution contains a Makefile that you can use with GNU Make.

** To make an Info file, you need to install Texinfo, then run 'make info'.

** Use 'make elisp.pdf' or 'make elisp.html' to create PDF or HTML versions.


This file is part of GNU Emacs.

GNU Emacs is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

GNU Emacs is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.