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

View File

@ -1,6 +1,14 @@
" Tests for Lua. " Tests for Lua.
source check.vim 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 lua
CheckFeature float CheckFeature float

View File

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