static int json_encode_item(garray_T *gap, typval_T *val, int copyID, int options);
+static char e_json_error[] = N_("E491: json decode error at '%s'");
+
/*
* Encode "val" into a JSON format string.
* The result is added to "gap"
retval = json_decode_string(reader, cur_item, *p);
else
{
- emsg(_(e_invarg));
+ semsg(_(e_json_error), p);
retval = FAIL;
}
break;
case ',': // comma: empty item
if ((options & JSON_JS) == 0)
{
- emsg(_(e_invarg));
+ semsg(_(e_json_error), p);
retval = FAIL;
break;
}
}
if (!VIM_ISDIGIT(*sp))
{
- emsg(_(e_invarg));
+ semsg(_(e_json_error), p);
retval = FAIL;
break;
}
&nr, NULL, 0, TRUE);
if (len == 0)
{
- emsg(_(e_invarg));
+ semsg(_(e_json_error), p);
retval = FAIL;
goto theend;
}
retval = MAYBE;
else
{
- emsg(_(e_invarg));
+ semsg(_(e_json_error), p);
retval = FAIL;
}
goto theend;
retval = MAYBE;
else
{
- emsg(_(e_invarg));
+ semsg(_(e_json_error), p);
retval = FAIL;
}
goto theend;
retval = MAYBE;
else
{
- emsg(_(e_invarg));
+ semsg(_(e_json_error), p);
retval = FAIL;
}
goto theend;
res->v_type = VAR_SPECIAL;
res->vval.v_number = VVAL_NONE;
}
- emsg(_(e_invarg));
+ semsg(_(e_json_error), p);
theend:
ga_clear(&stack);
if (ret != OK)
{
if (ret == MAYBE)
- emsg(_(e_invarg));
+ semsg(_(e_json_error), reader->js_buf);
return FAIL;
}
json_skip_white(reader);
call assert_fails("call json_decode('{\"\": \"ok\", \"\": \"bad\"}')", 'E938:')
call assert_equal({'n': 1}, json_decode('{"n":1,}'))
- call assert_fails("call json_decode(\"{'n':'1',}\")", 'E474:')
- call assert_fails("call json_decode(\"'n'\")", 'E474:')
+ call assert_fails("call json_decode(\"{'n':'1',}\")", 'E491:')
+ call assert_fails("call json_decode(\"'n'\")", 'E491:')
- call assert_fails('call json_decode("\"")', "E474:")
- call assert_fails('call json_decode("blah")', "E474:")
+ call assert_fails('call json_decode("\"")', "E491:")
+ call assert_fails('call json_decode("blah")', "E491:")
call assert_fails('call json_decode("true blah")', "E488:")
- call assert_fails('call json_decode("<foobar>")', "E474:")
+ call assert_fails('call json_decode("<foobar>")', "E491:")
call assert_fails('call json_decode("{\"a\":1,\"a\":2}")', "E938:")
- call assert_fails('call json_decode("{")', "E474:")
- call assert_fails('call json_decode("{foobar}")', "E474:")
- call assert_fails('call json_decode("{\"n\",")', "E474:")
- call assert_fails('call json_decode("{\"n\":")', "E474:")
- call assert_fails('call json_decode("{\"n\":1")', "E474:")
- call assert_fails('call json_decode("{\"n\":1,")', "E474:")
- call assert_fails('call json_decode("{\"n\",1}")', "E474:")
- call assert_fails('call json_decode("{-}")', "E474:")
+ call assert_fails('call json_decode("{")', "E491:")
+ call assert_fails('call json_decode("{foobar}")', "E491:")
+ call assert_fails('call json_decode("{\"n\",")', "E491:")
+ call assert_fails('call json_decode("{\"n\":")', "E491:")
+ call assert_fails('call json_decode("{\"n\":1")', "E491:")
+ call assert_fails('call json_decode("{\"n\":1,")', "E491:")
+ call assert_fails('call json_decode("{\"n\",1}")', "E491:")
+ call assert_fails('call json_decode("{-}")', "E491:")
- call assert_fails('call json_decode("[foobar]")', "E474:")
- call assert_fails('call json_decode("[")', "E474:")
- call assert_fails('call json_decode("[1")', "E474:")
- call assert_fails('call json_decode("[1,")', "E474:")
- call assert_fails('call json_decode("[1 2]")', "E474:")
+ call assert_fails('call json_decode("[foobar]")', "E491:")
+ call assert_fails('call json_decode("[")', "E491:")
+ call assert_fails('call json_decode("[1")', "E491:")
+ call assert_fails('call json_decode("[1,")', "E491:")
+ call assert_fails('call json_decode("[1 2]")', "E491:")
- call assert_fails('call json_decode("[1,,2]")', "E474:")
+ call assert_fails('call json_decode("[1,,2]")', "E491:")
- call assert_fails('call json_decode("{{}:42}")', "E474:")
- call assert_fails('call json_decode("{[]:42}")', "E474:")
+ call assert_fails('call json_decode("{{}:42}")', "E491:")
+ call assert_fails('call json_decode("{[]:42}")', "E491:")
- call assert_fails('call json_decode("\"\\u111Z\"")', 'E474:')
+ call assert_fails('call json_decode("\"\\u111Z\"")', 'E491:')
call assert_equal('[😂]', json_decode('"[\uD83D\uDE02]"'))
call assert_equal('a😂b', json_decode('"a\uD83D\uDE02b"'))
endfunc