0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00

patch 7.4.1164

Problem:    No tests for comparing special variables.  Error in jsondecode()
            not reported.  test_json does not work Japanse system.
Solution:   Set scriptencoding. (Ken Takata) Add a few more tests. Add error.
This commit is contained in:
Bram Moolenaar
2016-01-24 15:05:32 +01:00
parent 17a13437c9
commit 6039c7f053
4 changed files with 38 additions and 5 deletions

View File

@@ -220,7 +220,7 @@ json_decode_array(js_read_T *reader, typval_T *res)
listitem_T *li;
if (rettv_list_alloc(res) == FAIL)
goto fail;
goto failsilent;
++reader->js_used; /* consume the '[' */
while (TRUE)
@@ -253,6 +253,8 @@ json_decode_array(js_read_T *reader, typval_T *res)
goto fail;
}
fail:
EMSG(_(e_invarg));
failsilent:
res->v_type = VAR_SPECIAL;
res->vval.v_number = VVAL_NONE;
}
@@ -268,7 +270,7 @@ json_decode_object(js_read_T *reader, typval_T *res)
char_u *key;
if (rettv_dict_alloc(res) == FAIL)
goto fail;
goto failsilent;
++reader->js_used; /* consume the '{' */
while (TRUE)
@@ -293,7 +295,7 @@ json_decode_object(js_read_T *reader, typval_T *res)
if (key != NULL)
EMSG(_(e_emptykey));
clear_tv(&tvkey);
goto fail;
goto failsilent;
}
json_skip_white(reader);
@@ -329,6 +331,8 @@ json_decode_object(js_read_T *reader, typval_T *res)
goto fail;
}
fail:
EMSG(_(e_invarg));
failsilent:
res->v_type = VAR_SPECIAL;
res->vval.v_number = VVAL_NONE;
}