vim-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.
9b4a15d5db
This commit is contained in:
Billy Su
2020-04-28 23:21:50 +08:00
parent dbc8ec9446
commit 1805fb469a
20 changed files with 162 additions and 100 deletions

View File

@@ -795,9 +795,9 @@ json_decode_string_cycle_start:
}
p += 3;
POP(((typval_T) {
.v_type = VAR_SPECIAL,
.v_type = VAR_BOOL,
.v_lock = VAR_UNLOCKED,
.vval = { .v_special = kSpecialVarTrue },
.vval = { .v_bool = kBoolVarTrue },
}), false);
break;
}
@@ -808,9 +808,9 @@ json_decode_string_cycle_start:
}
p += 4;
POP(((typval_T) {
.v_type = VAR_SPECIAL,
.v_type = VAR_BOOL,
.v_lock = VAR_UNLOCKED,
.vval = { .v_special = kSpecialVarFalse },
.vval = { .v_bool = kBoolVarFalse },
}), false);
break;
}
@@ -954,10 +954,10 @@ int msgpack_to_vim(const msgpack_object mobj, typval_T *const rettv)
}
case MSGPACK_OBJECT_BOOLEAN: {
*rettv = (typval_T) {
.v_type = VAR_SPECIAL,
.v_type = VAR_BOOL,
.v_lock = VAR_UNLOCKED,
.vval = {
.v_special = mobj.via.boolean ? kSpecialVarTrue : kSpecialVarFalse
.v_bool = mobj.via.boolean ? kBoolVarTrue : kBoolVarFalse
},
};
break;