Mercurial > vim
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 |