mirror of
https://github.com/neovim/neovim.git
synced 2025-09-14 15:28:17 +00:00
vim-patch:7.4.2071
Problem: The return value of type() is difficult to use.
Solution: Define v:t_ constants. (Ken Takata)
f562e72df7
This commit is contained in:
@@ -387,6 +387,13 @@ static struct vimvar {
|
||||
VV(VV__NULL_LIST, "_null_list", VAR_LIST, VV_RO),
|
||||
VV(VV__NULL_DICT, "_null_dict", VAR_DICT, VV_RO),
|
||||
VV(VV_VIM_DID_ENTER, "vim_did_enter", VAR_NUMBER, VV_RO),
|
||||
VV(VV_TYPE_NUMBER, "t_number", VAR_NUMBER, VV_RO),
|
||||
VV(VV_TYPE_STRING, "t_string", VAR_NUMBER, VV_RO),
|
||||
VV(VV_TYPE_FUNC, "t_func", VAR_NUMBER, VV_RO),
|
||||
VV(VV_TYPE_LIST, "t_list", VAR_NUMBER, VV_RO),
|
||||
VV(VV_TYPE_DICT, "t_dict", VAR_NUMBER, VV_RO),
|
||||
VV(VV_TYPE_FLOAT, "t_float", VAR_NUMBER, VV_RO),
|
||||
VV(VV_TYPE_BOOL, "t_bool", VAR_NUMBER, VV_RO),
|
||||
};
|
||||
#undef VV
|
||||
|
||||
@@ -400,7 +407,7 @@ static struct vimvar {
|
||||
#define vv_dict vv_di.di_tv.vval.v_dict
|
||||
#define vv_tv vv_di.di_tv
|
||||
|
||||
static dictitem_T vimvars_var; /* variable used for v: */
|
||||
static dictitem_T vimvars_var; // variable used for v:
|
||||
#define vimvarht vimvardict.dv_hashtab
|
||||
|
||||
typedef struct {
|
||||
@@ -563,6 +570,13 @@ void eval_init(void)
|
||||
set_vim_var_nr(VV_SEARCHFORWARD, 1L);
|
||||
set_vim_var_nr(VV_HLSEARCH, 1L);
|
||||
set_vim_var_nr(VV_COUNT1, 1);
|
||||
set_vim_var_nr(VV_TYPE_NUMBER, VAR_TYPE_NUMBER);
|
||||
set_vim_var_nr(VV_TYPE_STRING, VAR_TYPE_STRING);
|
||||
set_vim_var_nr(VV_TYPE_FUNC, VAR_TYPE_FUNC);
|
||||
set_vim_var_nr(VV_TYPE_LIST, VAR_TYPE_LIST);
|
||||
set_vim_var_nr(VV_TYPE_DICT, VAR_TYPE_DICT);
|
||||
set_vim_var_nr(VV_TYPE_FLOAT, VAR_TYPE_FLOAT);
|
||||
set_vim_var_nr(VV_TYPE_BOOL, VAR_TYPE_BOOL);
|
||||
|
||||
set_vim_var_special(VV_FALSE, kSpecialVarFalse);
|
||||
set_vim_var_special(VV_TRUE, kSpecialVarTrue);
|
||||
@@ -16801,17 +16815,17 @@ static void f_type(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
int n = -1;
|
||||
|
||||
switch (argvars[0].v_type) {
|
||||
case VAR_NUMBER: n = 0; break;
|
||||
case VAR_STRING: n = 1; break;
|
||||
case VAR_FUNC: n = 2; break;
|
||||
case VAR_LIST: n = 3; break;
|
||||
case VAR_DICT: n = 4; break;
|
||||
case VAR_FLOAT: n = 5; break;
|
||||
case VAR_NUMBER: n = VAR_TYPE_NUMBER; break;
|
||||
case VAR_STRING: n = VAR_TYPE_STRING; break;
|
||||
case VAR_FUNC: n = VAR_TYPE_FUNC; break;
|
||||
case VAR_LIST: n = VAR_TYPE_LIST; break;
|
||||
case VAR_DICT: n = VAR_TYPE_DICT; break;
|
||||
case VAR_FLOAT: n = VAR_TYPE_FLOAT; break;
|
||||
case VAR_SPECIAL: {
|
||||
switch (argvars[0].vval.v_special) {
|
||||
case kSpecialVarTrue:
|
||||
case kSpecialVarFalse: {
|
||||
n = 6;
|
||||
n = VAR_TYPE_BOOL;
|
||||
break;
|
||||
}
|
||||
case kSpecialVarNull: {
|
||||
|
Reference in New Issue
Block a user