diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-07-22 23:03:57 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-07-22 23:03:57 +0200 |
commit | 29b7d7a9aac591f920edb89241c8cde27378e50b (patch) | |
tree | 96368a556edd943bec67f303778bc0c864573860 /src/json.c | |
parent | e5e6950193ddf365c6c507ddefcd7f9db939e5ac (diff) |
patch 8.1.1734: the evalfunc.c file is too bigv8.1.1734
Problem: The evalfunc.c file is too big.
Solution: Move some functions to other files.
Diffstat (limited to 'src/json.c')
-rw-r--r-- | src/json.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/json.c b/src/json.c index 3a5de7092c..c9a6230d26 100644 --- a/src/json.c +++ b/src/json.c @@ -1127,3 +1127,52 @@ json_find_end(js_read_T *reader, int options) return ret; } #endif + +/* + * "js_decode()" function + */ + void +f_js_decode(typval_T *argvars, typval_T *rettv) +{ + js_read_T reader; + + reader.js_buf = tv_get_string(&argvars[0]); + reader.js_fill = NULL; + reader.js_used = 0; + if (json_decode_all(&reader, rettv, JSON_JS) != OK) + emsg(_(e_invarg)); +} + +/* + * "js_encode()" function + */ + void +f_js_encode(typval_T *argvars, typval_T *rettv) +{ + rettv->v_type = VAR_STRING; + rettv->vval.v_string = json_encode(&argvars[0], JSON_JS); +} + +/* + * "json_decode()" function + */ + void +f_json_decode(typval_T *argvars, typval_T *rettv) +{ + js_read_T reader; + + reader.js_buf = tv_get_string(&argvars[0]); + reader.js_fill = NULL; + reader.js_used = 0; + json_decode_all(&reader, rettv, 0); +} + +/* + * "json_encode()" function + */ + void +f_json_encode(typval_T *argvars, typval_T *rettv) +{ + rettv->v_type = VAR_STRING; + rettv->vval.v_string = json_encode(&argvars[0], 0); +} |