aboutsummaryrefslogtreecommitdiff
path: root/src/lua/jin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua/jin.cpp')
-rw-r--r--src/lua/jin.cpp24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/lua/jin.cpp b/src/lua/jin.cpp
index 39291ac..87e7bac 100644
--- a/src/lua/jin.cpp
+++ b/src/lua/jin.cpp
@@ -53,10 +53,10 @@ namespace JinEngine
}
LUA_IMPLEMENT const luax_Str s[] = {
- { "version", VERSION },
- { "author", AUTHOR },
- { "codename", CODE_NAME },
- { 0, 0 }
+ { "version", VERSION },
+ { "author", AUTHOR },
+ { "codename", CODE_NAME },
+ { 0, 0 }
};
LUA_IMPLEMENT const luax_Num n[] = {
@@ -64,11 +64,9 @@ namespace JinEngine
{ 0, 0 }
};
- /* register jin module, keep it on the top of stack */
- LUA_EXPORT int luaopen_jin(lua_State* L)
+ // Register jin module, keep it on the top of stack.
+ LUA_EXPORT void open(lua_State* L)
{
- LuaState::set(L);
-
luax_globaltable(L, MODULE_NAME);
// Register values.
@@ -100,11 +98,17 @@ namespace JinEngine
luax_setfield(L, -2, modules[i].name);
}
- return 1;
+ // Pop jin table.
+ luax_pop(L, 1);
}
- LUA_EXPORT void boot(lua_State* L)
+ LUA_EXPORT void boot(lua_State* L, const char* cwd)
{
+ luax_getglobal(L, MODULE_NAME);
+ luax_newtable(L);
+ luax_setfieldstring(L, "cwd", cwd);
+ luax_setfield(L, -2, "args");
+ luax_clearstack(L);
JinEngine::Embed::boot(L);
}