diff --git a/extensions/scripting/lua-bindings/CMakeLists.txt b/extensions/scripting/lua-bindings/CMakeLists.txt index c766bf493e..5becef74e5 100644 --- a/extensions/scripting/lua-bindings/CMakeLists.txt +++ b/extensions/scripting/lua-bindings/CMakeLists.txt @@ -185,10 +185,6 @@ if(WINDOWS) target_compile_definitions(${ENGINEX_LUA_LIB} PUBLIC _USRLUASTATIC) endif() -target_compile_definitions(${ENGINEX_LUA_LIB} - PUBLIC LUA_COMPAT_MODULE -) - set_target_properties(${ENGINEX_LUA_LIB} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" diff --git a/extensions/scripting/lua-bindings/manual/CCLuaStack.cpp b/extensions/scripting/lua-bindings/manual/CCLuaStack.cpp index d8ffc0299d..2e97cf769f 100644 --- a/extensions/scripting/lua-bindings/manual/CCLuaStack.cpp +++ b/extensions/scripting/lua-bindings/manual/CCLuaStack.cpp @@ -69,8 +69,7 @@ namespace { size_t sz; s = lua_tolstring(L, -1, &sz); /* get result */ if (s == NULL) - return luaL_error(L, LUA_QL("tostring") " must return a string to " - LUA_QL("print")); + return luaL_error(L, "'tostring' must return a string to 'print'"); if (i>1) out->append("\t"); out->append(s, sz); lua_pop(L, 1); /* pop result */ @@ -188,11 +187,17 @@ void LuaStack::addSearchPath(const char* path) void LuaStack::addLuaLoader(lua_CFunction func) { if (!func) return; + +#if LUA_VERSION_NUM >= 504 || (LUA_VERSION_NUM >= 502 && !defined(LUA_COMPAT_LOADERS)) + const char* realname = "searchers"; +#else + const char* realname = "loaders"; +#endif // stack content after the invoking of the function // get loader table lua_getglobal(_state, "package"); /* L: package */ - lua_getfield(_state, -1, "loaders"); /* L: package, loaders */ + lua_getfield(_state, -1, realname); /* L: package, loaders */ // insert loader into index 2 lua_pushcfunction(_state, func); /* L: package, loaders, func */ @@ -205,7 +210,7 @@ void LuaStack::addLuaLoader(lua_CFunction func) lua_rawseti(_state, -2, 2); /* L: package, loaders */ // set loaders into package - lua_setfield(_state, -2, "loaders"); /* L: package */ + lua_setfield(_state, -2, realname); /* L: package */ lua_pop(_state, 1); }