fix: vvlua_partial

This commit is contained in:
Jakub Łuczyński 2020-02-11 13:08:32 +01:00
parent 1e0a9b2690
commit 3c413f1523
2 changed files with 9 additions and 3 deletions

View File

@ -8249,10 +8249,16 @@ static void check_vars(const char *name, size_t len)
}
}
/// check if special v:lua value for calling lua functions
bool is_luafunc(partial_T *partial)
{
return partial == vvlua_partial;
}
/// check if special v:lua value for calling lua functions
static bool tv_is_luafunc(typval_T *tv)
{
return tv->v_type == VAR_PARTIAL && tv->vval.v_partial == vvlua_partial;
return tv->v_type == VAR_PARTIAL && is_luafunc(tv->vval.v_partial);
}
/// check the function name after "v:lua."

View File

@ -1304,7 +1304,7 @@ call_func(
rettv->vval.v_number = 0;
error = ERROR_UNKNOWN;
if (partial == vvlua_partial) {
if (is_luafunc(partial)) {
if (len > 0) {
error = ERROR_NONE;
executor_call_lua((const char *)funcname, len,
@ -1556,7 +1556,7 @@ trans_function_name(
*pp = (char_u *)end;
} else if (lv.ll_tv->v_type == VAR_PARTIAL
&& lv.ll_tv->vval.v_partial != NULL) {
if (lv.ll_tv->vval.v_partial == vvlua_partial && *end == '.') {
if (is_luafunc(lv.ll_tv->vval.v_partial) && *end == '.') {
len = check_luafunc_name((const char *)end+1, true);
if (len == 0) {
EMSG2(e_invexpr2, "v:lua");