diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2018-06-04 11:11:20 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2018-06-04 11:11:20 +0300 |
commit | c3850a4d3f94436aab6b23020242bc99c71506ee (patch) | |
tree | 644cd582c39c833124d1d071a4b7738bac97428d /include/grecs/json.h | |
parent | 43a1c4ce04cf9301b88c8df31087fe84dcb7e232 (diff) | |
download | grecs-c3850a4d3f94436aab6b23020242bc99c71506ee.tar.gz grecs-c3850a4d3f94436aab6b23020242bc99c71506ee.tar.bz2 |
json: improve parser reentrability
* include/grecs/json.h (jsonlex_cleanup): New proto.
* src/json-lex.l (jsonlex_setup): Initialize parser state.
Initialize json_current_locus_point.file to a non-NULL value.
(jsonlex_cleanup): New function.
* src/json-gram.y (json_parse_string): Call jsonlex_cleanup before returning.
* src/diag.c (default_print_diag): Print the passed errcode argument,
instead of errno.
Diffstat (limited to 'include/grecs/json.h')
-rw-r--r-- | include/grecs/json.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/grecs/json.h b/include/grecs/json.h index f8402e7..49a6b87 100644 --- a/include/grecs/json.h +++ b/include/grecs/json.h @@ -54,6 +54,7 @@ extern struct grecs_locus json_err_locus; extern struct json_value *json_return_obj; void jsonlex_setup(char const *s, size_t l); +void jsonlex_cleanup(void); void jsonlex_diag(const char *s); int json_unescape(char c, char *o); |