Mercurial > vim
diff src/json.c @ 19102:ba9f50bfda83 v8.2.0111
patch 8.2.0111: VAR_SPECIAL is also used for booleans
Commit: https://github.com/vim/vim/commit/9b4a15d5dba354d2e1e02871470bad103f34769a
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Jan 11 16:05:23 2020 +0100
patch 8.2.0111: VAR_SPECIAL is also used for booleans
Problem: VAR_SPECIAL is also used for booleans.
Solution: Add VAR_BOOL for better type checking.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 11 Jan 2020 16:15:04 +0100 |
parents | f41b55f9357c |
children | 94eda51ba9ba |
line wrap: on
line diff
--- a/src/json.c +++ b/src/json.c @@ -193,11 +193,17 @@ json_encode_item(garray_T *gap, typval_T switch (val->v_type) { - case VAR_SPECIAL: + case VAR_BOOL: switch (val->vval.v_number) { case VVAL_FALSE: ga_concat(gap, (char_u *)"false"); break; case VVAL_TRUE: ga_concat(gap, (char_u *)"true"); break; + } + break; + + case VAR_SPECIAL: + switch (val->vval.v_number) + { case VVAL_NONE: if ((options & JSON_JS) != 0 && (options & JSON_NO_NONE) == 0) // empty item @@ -818,7 +824,7 @@ json_decode_item(js_read_T *reader, typv reader->js_used += 5; if (cur_item != NULL) { - cur_item->v_type = VAR_SPECIAL; + cur_item->v_type = VAR_BOOL; cur_item->vval.v_number = VVAL_FALSE; } retval = OK; @@ -829,7 +835,7 @@ json_decode_item(js_read_T *reader, typv reader->js_used += 4; if (cur_item != NULL) { - cur_item->v_type = VAR_SPECIAL; + cur_item->v_type = VAR_BOOL; cur_item->vval.v_number = VVAL_TRUE; } retval = OK;