diff --git a/Library/lua/LuaManager.cpp b/Library/lua/LuaManager.cpp index 5f4a78a1..c73abca5 100644 --- a/Library/lua/LuaManager.cpp +++ b/Library/lua/LuaManager.cpp @@ -29,9 +29,27 @@ void LuaManager::Initialize() { // Initialize Lua c_State = lua_open(); - - // Load Lua base libraries - luaL_openlibs(c_State); + + // Initialize standard libraries except debug, modified from linit.c + 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 }, + { NULL, NULL } + }; + + const luaL_Reg* lib = lualibs; + for (; lib->func; lib++) + { + lua_pushcfunction(c_State, lib->func); + lua_pushstring(c_State, lib->name); + lua_call(c_State, 1, 0); + } // Register custom types and functions RegisterGlobal(c_State); diff --git a/Library/lua/glue/LuaGlobal.cpp b/Library/lua/glue/LuaGlobal.cpp index 354653b6..26f54d8b 100644 --- a/Library/lua/glue/LuaGlobal.cpp +++ b/Library/lua/glue/LuaGlobal.cpp @@ -20,7 +20,7 @@ #include "../LuaManager.h" #include "../../Litestep.h" -static int Global_Print(lua_State* L) +static int Print(lua_State* L) { // Modified version of luaB_print() std::string message; @@ -59,5 +59,5 @@ static int Global_Print(lua_State* L) void LuaManager::RegisterGlobal(lua_State* L) { - lua_register(L, "print", Global_Print); + lua_register(L, "print", Print); } diff --git a/Library/lua/glue/LuaMeasure.cpp b/Library/lua/glue/LuaMeasure.cpp index 8b427947..398ea652 100644 --- a/Library/lua/glue/LuaMeasure.cpp +++ b/Library/lua/glue/LuaMeasure.cpp @@ -147,7 +147,7 @@ static int GetStringValue(lua_State* L) void LuaManager::RegisterMeasure(lua_State* L) { - const luaL_reg functions[] = + const luaL_Reg functions[] = { { "GetName", GetName }, { "GetOption", GetOption }, diff --git a/Library/lua/glue/LuaMeter.cpp b/Library/lua/glue/LuaMeter.cpp index c5ada44b..d23bf902 100644 --- a/Library/lua/glue/LuaMeter.cpp +++ b/Library/lua/glue/LuaMeter.cpp @@ -148,7 +148,7 @@ static int SetText(lua_State* L) void LuaManager::RegisterMeter(lua_State* L) { - const luaL_reg functions[] = + const luaL_Reg functions[] = { { "GetName", GetName }, { "GetOption", GetOption }, diff --git a/Library/lua/glue/LuaMeterWindow.cpp b/Library/lua/glue/LuaMeterWindow.cpp index 1778b006..21869004 100644 --- a/Library/lua/glue/LuaMeterWindow.cpp +++ b/Library/lua/glue/LuaMeterWindow.cpp @@ -179,7 +179,7 @@ static int MakePathAbsolute(lua_State* L) void LuaManager::RegisterMeterWindow(lua_State* L) { - const luaL_reg functions[] = + const luaL_Reg functions[] = { { "Bang", Bang }, { "GetMeter", GetMeter },