mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-05-28 00:21:57 +02:00
patch 9.2.0294: if_lua: lua interface does not work with lua 5.5
Problem: if_lua: lua interface does not work with lua 5.5
(Lyderic Landry)
Solution: Use the new lua API `luaL_openselectedlibs()`
(Yee Cheng Chin)
Lua 5.5 removed the API function `openlibs` with `openselectedlibs`,
with `luaL_openlibs` replaced by a macro that just calls the new
`luaL_openselectedlibs` in the headers (see lua/lua@d738c8d18). This
broke Vim's dynamic Lua build as we try to redefine `luaL_openlibs`
ourselves and also this function can no longer be loaded from the lib.
Update the code to use the new API call instead to fix the issue.
fixes: #19814
closes: #19842
closes: #19909
Signed-off-by: Yee Cheng Chin <ychin.git@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
bd8b6c6b05
commit
22db4a3c57
+17
-1
@@ -215,7 +215,11 @@ static void luaV_call_lua_func_free(void *state);
|
||||
# define luaopen_os dll_luaopen_os
|
||||
# define luaopen_package dll_luaopen_package
|
||||
# define luaopen_debug dll_luaopen_debug
|
||||
# define luaL_openlibs dll_luaL_openlibs
|
||||
# if LUA_VERSION_NUM >= 505
|
||||
# define luaL_openselectedlibs dll_luaL_openselectedlibs
|
||||
# else
|
||||
# define luaL_openlibs dll_luaL_openlibs
|
||||
# endif
|
||||
|
||||
// lauxlib
|
||||
# if LUA_VERSION_NUM <= 501
|
||||
@@ -331,7 +335,11 @@ int (*dll_luaopen_io) (lua_State *L);
|
||||
int (*dll_luaopen_os) (lua_State *L);
|
||||
int (*dll_luaopen_package) (lua_State *L);
|
||||
int (*dll_luaopen_debug) (lua_State *L);
|
||||
# if LUA_VERSION_NUM >= 505
|
||||
void (*dll_luaL_openselectedlibs) (lua_State *L, int load, int preload);
|
||||
# else
|
||||
void (*dll_luaL_openlibs) (lua_State *L);
|
||||
# endif
|
||||
|
||||
typedef void **luaV_function;
|
||||
typedef struct {
|
||||
@@ -439,7 +447,11 @@ static const luaV_Reg luaV_dll[] = {
|
||||
{"luaopen_os", (luaV_function) &dll_luaopen_os},
|
||||
{"luaopen_package", (luaV_function) &dll_luaopen_package},
|
||||
{"luaopen_debug", (luaV_function) &dll_luaopen_debug},
|
||||
# if LUA_VERSION_NUM >= 505
|
||||
{"luaL_openselectedlibs", (luaV_function) &dll_luaL_openselectedlibs},
|
||||
# else
|
||||
{"luaL_openlibs", (luaV_function) &dll_luaL_openlibs},
|
||||
# endif
|
||||
{NULL, NULL}
|
||||
};
|
||||
|
||||
@@ -2570,7 +2582,11 @@ luaopen_vim(lua_State *L)
|
||||
luaV_newstate(void)
|
||||
{
|
||||
lua_State *L = luaL_newstate();
|
||||
# if LUA_VERSION_NUM >= 505
|
||||
luaL_openselectedlibs(L, ~0, 0); // core libs
|
||||
# else
|
||||
luaL_openlibs(L); // core libs
|
||||
# endif
|
||||
lua_pushcfunction(L, luaopen_vim); // vim
|
||||
lua_call(L, 0, 0);
|
||||
return L;
|
||||
|
||||
@@ -734,6 +734,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
294,
|
||||
/**/
|
||||
293,
|
||||
/**/
|
||||
|
||||
Reference in New Issue
Block a user