diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-10-26 20:18:08 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-10-26 20:18:08 +0100 |
commit | c8970b94645d0730f4a7cc42388ff32665398e8b (patch) | |
tree | 74b67ceec823a1e80960d9afcec2f8e6d6a6d754 /src | |
parent | f9d51354de069dddc049b9e109b1932c92e5aee6 (diff) |
patch 8.2.1908: Lua is initialized even when not usedv8.2.1908
Problem: Lua is initialized even when not used.
Solution: Put lua_init() after check for "eap->skip". (Christian Brabandt,
closes #7191). Avoid compiler warnings.
Diffstat (limited to 'src')
-rw-r--r-- | src/if_lua.c | 19 | ||||
-rw-r--r-- | src/testdir/test_lua.vim | 8 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 20 insertions, 9 deletions
diff --git a/src/if_lua.c b/src/if_lua.c index 77f2afe54b..e20298311d 100644 --- a/src/if_lua.c +++ b/src/if_lua.c @@ -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 diff --git a/src/testdir/test_lua.vim b/src/testdir/test_lua.vim index d21c40de5b..43b4aa30ff 100644 --- a/src/testdir/test_lua.vim +++ b/src/testdir/test_lua.vim @@ -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 diff --git a/src/version.c b/src/version.c index 52d64fc1f4..91736ec0ad 100644 --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1908, +/**/ 1907, /**/ 1906, |