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:
parent
f9d51354de
commit
c8970b9464
19
src/if_lua.c
19
src/if_lua.c
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user