diff options
Diffstat (limited to 'src/lua/jin.cpp')
-rw-r--r-- | src/lua/jin.cpp | 24 |
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); } |