From b04c097db4bf8c45342bca403ca2c8a6d5783a84 Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 26 Oct 2018 18:40:32 +0800 Subject: =?UTF-8?q?*=E4=BF=AE=E5=A4=8D=E9=94=99=E8=AF=AF=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E5=85=B3=E9=97=ADbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/jin/main.cpp | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) (limited to 'src/jin/main.cpp') diff --git a/src/jin/main.cpp b/src/jin/main.cpp index 2d65064..2144fbc 100644 --- a/src/jin/main.cpp +++ b/src/jin/main.cpp @@ -11,21 +11,16 @@ using namespace JinEngine::Lua; using namespace JinEngine::Filesystem; -int main(int argc, char* argv[]) +static void setParamters(lua_State* L, int argc, char* args[]) { - lua_State* L = luax_newstate(); - - // Open lua standard module. - luax_openlibs(L); - // Open jin module. - luaopen_jin(L); // Add args to field. luax_newtable(L); for (int i = 0; i < argc; ++i) - luax_setrawstring(L, -2, i + 1, argv[i]); + luax_setrawstring(L, -2, i + 1, args[i]); luax_setfield(L, -2, "args"); // Push current working directory. // Absolute directory. + // An 1KB buffer. Buffer cwd = Buffer(1024); #ifdef _WIN32 _getcwd((char*)&cwd, cwd.size()); @@ -33,11 +28,26 @@ int main(int argc, char* argv[]) #elif defined __APPLE__ #endif luax_setfieldstring(L, "cwd", (char*)&cwd); - luax_clear(L); +} + +int main(int argc, char* args[]) +{ + // Global lua runtime. + lua_State* L = luax_newstate(); + + // Open lua standard module. + luax_openlibs(L); + // Open jin module. + luaopen_jin(L); + // Set parameters. + setParamters(L, argc, args); + // Clear lua stack. + luax_clearstack(L); // Boot jin and run it. boot(L); + // Close lua lib. luax_close(L); return 0; -- cgit v1.1-26-g67d0