From ba1c2357af62a61e8084d77783868a10815b8556 Mon Sep 17 00:00:00 2001 From: Přemysl Eric Janouch
Date: Wed, 2 Sep 2020 19:05:20 +0200 Subject: degesch: fix Lua 5.4 build Not sure about how well it works yet. Lua 5.3 is still made preferential by the order of pkgconfig lookup. --- CMakeLists.txt | 2 +- degesch.c | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bf41327..7f5ee6b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -85,7 +85,7 @@ include_directories (${libffi_INCLUDE_DIRS}) link_directories (${libffi_LIBRARY_DIRS}) # FIXME: other Lua versions may be acceptable, don't know yet -pkg_search_module (lua lua53 lua5.3 lua-5.3 lua>=5.3) +pkg_search_module (lua lua53 lua5.3 lua-5.3 lua54 lua5.4 lua-5.4 lua>=5.3) option (WITH_LUA "Enable support for Lua plugins" ${lua_FOUND}) if (WITH_LUA) diff --git a/degesch.c b/degesch.c index 5afd49c..5ba7a42 100644 --- a/degesch.c +++ b/degesch.c @@ -9646,12 +9646,19 @@ lua_task_resume (struct lua_task *self, int index) n = 2; } +#if LUA_VERSION_NUM >= 504 + int nresults = 0; + int res = lua_resume (L, NULL, n, &nresults); +#else int res = lua_resume (L, NULL, n); + int nresults = lua_gettop (L); +#endif + struct error *error = NULL; if (res == LUA_YIELD) { // AFAIK we don't get any good error context information from here - if (lua_task_schedule (self, lua_gettop (L), &error)) + if (lua_task_schedule (self, nresults, &error)) return; } // For simplicity ignore any results from successful returns -- cgit v1.2.3-70-g09d2