comparison src/json.c @ 13031:c35d266308c2 v8.0.1391

patch 8.0.1391: encoding empty string to JSON sometimes gives "null" commit https://github.com/vim/vim/commit/b29d328eb403a243431f4d0d5b360b4ac46bbc3e Author: Bram Moolenaar <Bram@vim.org> Date: Fri Dec 15 21:25:01 2017 +0100 patch 8.0.1391: encoding empty string to JSON sometimes gives "null" Problem: Encoding empty string to JSON sometimes gives "null". Solution: Handle NULL string as empty string. (closes https://github.com/vim/vim/issues/2446)
author Christian Brabandt <cb@256bit.org>
date Fri, 15 Dec 2017 21:30:05 +0100
parents 287049007bbc
children 7495e3ee1a69
comparison
equal deleted inserted replaced
13030:92a0a33f8296 13031:c35d266308c2
90 { 90 {
91 char_u *res = str; 91 char_u *res = str;
92 char_u numbuf[NUMBUFLEN]; 92 char_u numbuf[NUMBUFLEN];
93 93
94 if (res == NULL) 94 if (res == NULL)
95 ga_concat(gap, (char_u *)"null"); 95 ga_concat(gap, (char_u *)"\"\"");
96 else 96 else
97 { 97 {
98 #if defined(FEAT_MBYTE) && defined(USE_ICONV) 98 #if defined(FEAT_MBYTE) && defined(USE_ICONV)
99 vimconv_T conv; 99 vimconv_T conv;
100 char_u *converted = NULL; 100 char_u *converted = NULL;
235 return FAIL; 235 return FAIL;
236 236
237 case VAR_LIST: 237 case VAR_LIST:
238 l = val->vval.v_list; 238 l = val->vval.v_list;
239 if (l == NULL) 239 if (l == NULL)
240 ga_concat(gap, (char_u *)"null"); 240 ga_concat(gap, (char_u *)"[]");
241 else 241 else
242 { 242 {
243 if (l->lv_copyID == copyID) 243 if (l->lv_copyID == copyID)
244 ga_concat(gap, (char_u *)"[]"); 244 ga_concat(gap, (char_u *)"[]");
245 else 245 else
270 break; 270 break;
271 271
272 case VAR_DICT: 272 case VAR_DICT:
273 d = val->vval.v_dict; 273 d = val->vval.v_dict;
274 if (d == NULL) 274 if (d == NULL)
275 ga_concat(gap, (char_u *)"null"); 275 ga_concat(gap, (char_u *)"{}");
276 else 276 else
277 { 277 {
278 if (d->dv_copyID == copyID) 278 if (d->dv_copyID == copyID)
279 ga_concat(gap, (char_u *)"{}"); 279 ga_concat(gap, (char_u *)"{}");
280 else 280 else