From: Mike Pall Date: Mon, 22 Nov 2010 21:39:06 +0000 (+0100) Subject: Support os.exit(status|true|false [,close]) (from Lua 5.2). X-Git-Tag: v2.0.0-beta6~211 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=73384567962fa8ec7759dc460e1abbb1d388d77d;p=thirdparty%2FLuaJIT.git Support os.exit(status|true|false [,close]) (from Lua 5.2). --- diff --git a/src/lib_os.c b/src/lib_os.c index 690bffe8..a62fd3b4 100644 --- a/src/lib_os.c +++ b/src/lib_os.c @@ -92,8 +92,15 @@ LJLIB_CF(os_getenv) LJLIB_CF(os_exit) { - exit(lj_lib_optint(L, 1, EXIT_SUCCESS)); - return 0; /* to avoid warnings */ + int status; + if (L->base < L->top && tvisbool(L->base)) + status = boolV(L->base) ? EXIT_SUCCESS : EXIT_FAILURE; + else + status = lj_lib_optint(L, 1, EXIT_SUCCESS); + if (L->base+1 < L->top && tvistruecond(L->base+1)) + lua_close(L); + exit(status); + return 0; /* Unreachable. */ } LJLIB_CF(os_clock)