0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.2.1908: Lua is initialized even when not used

Problem:    Lua is initialized even when not used.
Solution:   Put lua_init() after check for "eap->skip". (Christian Brabandt,
            closes #7191).  Avoid compiler warnings.
This commit is contained in:
Bram Moolenaar 2020-10-26 20:18:08 +01:00
parent f9d51354de
commit c8970b9464
3 changed files with 20 additions and 9 deletions

View File

@ -33,7 +33,7 @@ typedef struct {
char_u *name; // funcref
dict_T *self; // selfdict
} luaV_Funcref;
typedef void (*msgfunc_T)(char_u *);
typedef int (*msgfunc_T)(char *);
typedef struct {
int lua_funcref; // ref to a lua func
@ -788,11 +788,11 @@ luaV_msgfunc(lua_State *L, msgfunc_T mf)
{
if (*p++ == '\0') // break?
{
mf((char_u *) s);
mf((char *)s);
s = p;
}
}
mf((char_u *) s);
mf((char *)s);
lua_pop(L, 2); // original and modified strings
}
@ -2372,18 +2372,19 @@ lua_end(void)
void
ex_lua(exarg_T *eap)
{
char *script;
if (lua_init() == FAIL) return;
script = (char *) script_get(eap, eap->arg);
if (!eap->skip)
char *script = (char *)script_get(eap, eap->arg);
if (!eap->skip && lua_init() == OK)
{
char *s = (script) ? script : (char *) eap->arg;
char *s = script != NULL ? script : (char *)eap->arg;
luaV_setrange(L, eap->line1, eap->line2);
if (luaL_loadbuffer(L, s, strlen(s), LUAVIM_CHUNKNAME)
|| lua_pcall(L, 0, 0, 0))
luaV_emsg(L);
}
if (script != NULL) vim_free(script);
if (script != NULL)
vim_free(script);
}
void

View File

@ -1,6 +1,14 @@
" Tests for Lua.
source check.vim
" This test also works without the lua feature.
func Test_skip_lua()
if 0
lua print("Not executed")
endif
endfunc
CheckFeature lua
CheckFeature float

View File

@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1908,
/**/
1907,
/**/