diff options
Diffstat (limited to 'Sluift/linit.c')
-rw-r--r-- | Sluift/linit.c | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/Sluift/linit.c b/Sluift/linit.c index 8f0614b..ad27b37 100644 --- a/Sluift/linit.c +++ b/Sluift/linit.c @@ -4,33 +4,34 @@ #include "sluift.h" static const luaL_Reg lualibs[] = { - {"", luaopen_base}, - {LUA_LOADLIBNAME, luaopen_package}, - {LUA_TABLIBNAME, luaopen_table}, - {LUA_IOLIBNAME, luaopen_io}, - {LUA_OSLIBNAME, luaopen_os}, - {LUA_STRLIBNAME, luaopen_string}, - {LUA_MATHLIBNAME, luaopen_math}, - {LUA_DBLIBNAME, luaopen_debug}, - {"sluift", luaopen_sluift}, - {NULL, NULL} + {"", luaopen_base}, + {LUA_LOADLIBNAME, luaopen_package}, + {LUA_TABLIBNAME, luaopen_table}, + {LUA_IOLIBNAME, luaopen_io}, + {LUA_OSLIBNAME, luaopen_os}, + {LUA_STRLIBNAME, luaopen_string}, + {LUA_MATHLIBNAME, luaopen_math}, + {LUA_DBLIBNAME, luaopen_debug}, + {"sluift", luaopen_sluift}, + {NULL, NULL} }; LUALIB_API void luaL_openlibs (lua_State *L) { - const luaL_Reg *lib = lualibs; - for (; lib->func; lib++) { - lua_pushcfunction(L, lib->func); - lua_pushstring(L, lib->name); - lua_call(L, 1, 0); - } + const luaL_Reg *lib = lualibs; + for (; lib->func; lib++) { + lua_pushcfunction(L, lib->func); + lua_pushstring(L, lib->name); + lua_call(L, 1, 0); + } /* Import sluift into global namespace */ - lua_getfield(L, LUA_GLOBALSINDEX, "sluift"); + lua_pushglobaltable(L); + lua_getfield(L, -1, "sluift"); for (lua_pushnil(L); lua_next(L, -2); ) { lua_pushvalue(L, -2); lua_pushvalue(L, -2); - lua_settable(L, LUA_GLOBALSINDEX); + lua_settable(L, -6); lua_pop(L, 1); } } |