]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-lua: Check for function presence instead of Lua version in compat code
authorJosef 'Jeff' Sipek <jeff.sipek@open-xchange.com>
Thu, 4 Mar 2021 22:05:45 +0000 (17:05 -0500)
committerjeff.sipek <jeff.sipek@open-xchange.com>
Wed, 10 Mar 2021 19:12:41 +0000 (19:12 +0000)
m4/want_lua.m4
src/lib-lua/dlua-compat.c
src/lib-lua/dlua-compat.h

index 659a0cf7468b8e71ef1437cab1bc6a4dc31be129..7b049d7d2a6f7b8a9b9049bb37a0fd6daa0e98ba 100644 (file)
@@ -39,6 +39,8 @@ AC_DEFUN([DOVECOT_WANT_LUA],[
    old_CFLAGS="$CFLAGS"
    CFLAGS="$CFLAGS $LUA_CFLAGS $LUA_LIBS"
 
+   AC_CHECK_FUNCS([luaL_setfuncs])
+   AC_CHECK_FUNCS([luaL_setmetatable])
    AC_CHECK_FUNCS([lua_isinteger])
    AC_CHECK_FUNCS([lua_tointegerx])
 
index c9ab8db388e59829638054fe7dbf349515e862f7..39d5db7cc8eb5bb49a5e883765b4beb3c7a381d0 100644 (file)
@@ -4,7 +4,7 @@
 #include "strnum.h"
 #include "dlua-script-private.h"
 
-#if !defined(LUA_VERSION_NUM) || LUA_VERSION_NUM < 502
+#ifndef HAVE_LUAL_SETFUNCS
 void luaL_setfuncs(lua_State *L, const luaL_Reg *l, int nup)
 {
        luaL_checkstack(L, nup + 1, "too many upvalues");
@@ -18,7 +18,9 @@ void luaL_setfuncs(lua_State *L, const luaL_Reg *l, int nup)
        }
        lua_pop(L, nup);
 }
+#endif
 
+#ifndef HAVE_LUAL_SETMETATABLE
 void luaL_setmetatable(lua_State *L, const char *tname)
 {
        luaL_checkstack(L, 1, "not enough stack slots");
index f53b7009b7c3348013ecfb6aa960e5339437abb4..c972ef93d2402a3ce258fa34da5c08142af2ba6e 100644 (file)
 #  define lua_load(L, r, s, fn, m) lua_load(L, r, s, fn)
 #  define luaL_newlibtable(L, l) (lua_createtable(L, 0, sizeof(l)/sizeof(*(l))-1))
 #  define luaL_newlib(L, l) (luaL_newlibtable(L, l), luaL_register(L, NULL, l))
+#endif
+
+#ifndef HAVE_LUAL_SETFUNCS
 void luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup);
+#endif
+
+#ifndef HAVE_LUAL_SETMETATABLE
 void luaL_setmetatable (lua_State *L, const char *tname);
 #endif