aboutsummaryrefslogtreecommitdiff
path: root/common/lua/linit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'common/lua/linit.cpp')
-rw-r--r--common/lua/linit.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/common/lua/linit.cpp b/common/lua/linit.cpp
new file mode 100644
index 0000000000..a01f28d1ff
--- /dev/null
+++ b/common/lua/linit.cpp
@@ -0,0 +1,37 @@
+/*
+** $Id$
+** Initialization of libraries for lua.c
+** See Copyright Notice in lua.h
+*/
+
+
+#define linit_c
+#define LUA_LIB
+
+#include "lua.h"
+
+#include "lualib.h"
+#include "lauxlib.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},
+ {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);
+ }
+}