diff --git a/src/json.c b/src/json.c index 8674bf2659..3a5de7092c 100644 --- a/src/json.c +++ b/src/json.c @@ -455,7 +455,8 @@ json_decode_string(js_read_T *reader, typval_T *res, int quote) STR2NR_HEX + STR2NR_FORCE, &nr, NULL, 4, TRUE); if (len == 0) { - ga_clear(&ga); + if (res != NULL) + ga_clear(&ga); return FAIL; } p += len + 2; @@ -471,7 +472,8 @@ json_decode_string(js_read_T *reader, typval_T *res, int quote) STR2NR_HEX + STR2NR_FORCE, &nr2, NULL, 4, TRUE); if (len == 0) { - ga_clear(&ga); + if (res != NULL) + ga_clear(&ga); return FAIL; } if (0xdc00 <= nr2 && nr2 <= 0xdfff) @@ -484,6 +486,7 @@ json_decode_string(js_read_T *reader, typval_T *res, int quote) if (res != NULL) { char_u buf[NUMBUFLEN]; + buf[utf_char2bytes((int)nr, buf)] = NUL; ga_concat(&ga, buf); } diff --git a/src/version.c b/src/version.c index 5345a5fdc3..b006864123 100644 --- a/src/version.c +++ b/src/version.c @@ -767,6 +767,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1409, /**/ 1408, /**/