From afa0d0ac0df60e37fd9473f50041505246228b35 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Tue, 10 Oct 2006 14:40:17 -0300 Subject: new constant LUA_OK --- lbaselib.c | 16 ++++++++-------- ldo.c | 14 +++++++------- loadlib.c | 6 ++---- lstate.c | 8 ++++---- ltests.c | 8 ++++---- lua.c | 50 ++++++++++++++++++++++++++------------------------ lua.h | 5 +++-- 7 files changed, 54 insertions(+), 53 deletions(-) diff --git a/lbaselib.c b/lbaselib.c index a6412d3c..d7413232 100644 --- a/lbaselib.c +++ b/lbaselib.c @@ -1,5 +1,5 @@ /* -** $Id: lbaselib.c,v 1.191 2006/06/02 15:34:00 roberto Exp roberto $ +** $Id: lbaselib.c,v 1.192 2006/09/11 14:07:24 roberto Exp roberto $ ** Basic library ** See Copyright Notice in lua.h */ @@ -264,7 +264,7 @@ static int luaB_ipairs (lua_State *L) { static int load_aux (lua_State *L, int status) { - if (status == 0) /* OK? */ + if (status == LUA_OK) return 1; else { lua_pushnil(L); @@ -325,7 +325,7 @@ static int luaB_load (lua_State *L) { static int luaB_dofile (lua_State *L) { const char *fname = luaL_optstring(L, 1, NULL); int n = lua_gettop(L); - if (luaL_loadfile(L, fname) != 0) lua_error(L); + if (luaL_loadfile(L, fname) != LUA_OK) lua_error(L); lua_call(L, 0, LUA_MULTRET); return lua_gettop(L) - n; } @@ -373,7 +373,7 @@ static int luaB_pcall (lua_State *L) { int status; luaL_checkany(L, 1); status = lua_pcall(L, lua_gettop(L) - 1, LUA_MULTRET, 0); - lua_pushboolean(L, (status == 0)); + lua_pushboolean(L, (status == LUA_OK)); lua_insert(L, 1); return lua_gettop(L); /* return status + all results */ } @@ -385,7 +385,7 @@ static int luaB_xpcall (lua_State *L) { lua_settop(L, 2); lua_insert(L, 1); /* put error function under function to be called */ status = lua_pcall(L, 0, LUA_MULTRET, 1); - lua_pushboolean(L, (status == 0)); + lua_pushboolean(L, (status == LUA_OK)); lua_replace(L, 1); return lua_gettop(L); /* return status + all results */ } @@ -481,13 +481,13 @@ static int auxresume (lua_State *L, lua_State *co, int narg) { int status; if (!lua_checkstack(co, narg)) luaL_error(L, "too many arguments to resume"); - if (lua_status(co) == 0 && lua_gettop(co) == 0) { + if (lua_status(co) == LUA_OK && lua_gettop(co) == 0) { lua_pushliteral(L, "cannot resume dead coroutine"); return -1; /* error flag */ } lua_xmove(L, co, narg); status = lua_resume(co, narg); - if (status == 0 || status == LUA_YIELD) { + if (status == LUA_OK || status == LUA_YIELD) { int nres = lua_gettop(co); if (!lua_checkstack(L, nres)) luaL_error(L, "too many results to resume"); @@ -565,7 +565,7 @@ static int luaB_costatus (lua_State *L) { case LUA_YIELD: lua_pushliteral(L, "suspended"); break; - case 0: { + case LUA_OK: { lua_Debug ar; if (lua_getstack(co, 0, &ar) > 0) /* does it have frames? */ lua_pushliteral(L, "normal"); /* it is running */ diff --git a/ldo.c b/ldo.c index d0fd01ef..86a9c986 100644 --- a/ldo.c +++ b/ldo.c @@ -1,5 +1,5 @@ /* -** $Id: ldo.c,v 2.42 2006/09/11 14:07:24 roberto Exp roberto $ +** $Id: ldo.c,v 2.43 2006/09/19 13:57:50 roberto Exp roberto $ ** Stack and Call structure of Lua ** See Copyright Notice in lua.h */ @@ -110,7 +110,7 @@ void luaD_throw (lua_State *L, int errcode) { int luaD_rawrunprotected (lua_State *L, Pfunc f, void *ud) { unsigned short oldnCcalls = G(L)->nCcalls; struct lua_longjmp lj; - lj.status = 0; + lj.status = LUA_OK; lj.previous = L->errorJmp; /* chain new error handler */ L->errorJmp = &lj; LUAI_TRY(L, &lj, @@ -391,14 +391,14 @@ void luaD_call (lua_State *L, StkId func, int nResults) { static void resume (lua_State *L, void *ud) { StkId firstArg = cast(StkId, ud); CallInfo *ci = L->ci; - if (L->status == 0) { /* start coroutine? */ + if (L->status == LUA_OK) { /* start coroutine? */ lua_assert(ci == L->base_ci && firstArg > L->base); if (luaD_precall(L, firstArg - 1, LUA_MULTRET) != PCRLUA) return; } else { /* resuming from previous yield */ lua_assert(L->status == LUA_YIELD); - L->status = 0; + L->status = LUA_OK; if (!f_isLua(ci)) { /* `common' yield? */ /* finish interrupted execution of `OP_CALL' */ lua_assert(GET_OPCODE(*((ci-1)->savedpc - 1)) == OP_CALL || @@ -426,7 +426,7 @@ LUA_API int lua_resume (lua_State *L, int nargs) { int status; lua_lock(L); if (L->status != LUA_YIELD) { - if (L->status != 0) + if (L->status != LUA_OK) return resume_error(L, "cannot resume dead coroutine"); else if (L->ci != L->base_ci) return resume_error(L, "cannot resume non-suspended coroutine"); @@ -437,7 +437,7 @@ LUA_API int lua_resume (lua_State *L, int nargs) { return resume_error(L, "C stack overflow"); L->baseCcalls = ++G(L)->nCcalls; status = luaD_rawrunprotected(L, resume, L->top - nargs); - if (status != 0) { /* error? */ + if (status != LUA_OK) { /* error? */ L->status = cast_byte(status); /* mark thread as `dead' */ luaD_seterrorobj(L, status, L->top); L->ci->top = L->top; @@ -473,7 +473,7 @@ int luaD_pcall (lua_State *L, Pfunc func, void *u, ptrdiff_t old_errfunc = L->errfunc; L->errfunc = ef; status = luaD_rawrunprotected(L, func, u); - if (status != 0) { /* an error occurred? */ + if (status != LUA_OK) { /* an error occurred? */ StkId oldtop = restorestack(L, old_top); luaF_close(L, oldtop); /* close possible pending closures */ luaD_seterrorobj(L, status, oldtop); diff --git a/loadlib.c b/loadlib.c index 36778891..98d60008 100644 --- a/loadlib.c +++ b/loadlib.c @@ -1,5 +1,5 @@ /* -** $Id: loadlib.c,v 1.54 2006/07/03 20:16:49 roberto Exp roberto $ +** $Id: loadlib.c,v 1.55 2006/09/11 14:07:24 roberto Exp roberto $ ** Dynamic library loader for Lua ** See Copyright Notice in lua.h ** @@ -89,8 +89,6 @@ static lua_CFunction ll_sym (lua_State *L, void *lib, const char *sym) { ** ======================================================================= */ -#include - #undef setprogdir @@ -382,7 +380,7 @@ static int loader_Lua (lua_State *L) { const char *name = luaL_checkstring(L, 1); filename = findfile(L, name, "path"); if (filename == NULL) return 1; /* library not found in this path */ - if (luaL_loadfile(L, filename) != 0) + if (luaL_loadfile(L, filename) != LUA_OK) loaderror(L, filename); return 1; /* library loaded successfully */ } diff --git a/lstate.c b/lstate.c index 66fffbc9..dc2827c3 100644 --- a/lstate.c +++ b/lstate.c @@ -1,5 +1,5 @@ /* -** $Id: lstate.c,v 2.38 2006/08/15 19:59:20 roberto Exp roberto $ +** $Id: lstate.c,v 2.39 2006/09/11 14:07:24 roberto Exp roberto $ ** Global State ** See Copyright Notice in lua.h */ @@ -95,7 +95,7 @@ static void preinit_state (lua_State *L, global_State *g) { L->openupval = NULL; L->size_ci = 0; L->baseCcalls = 0; - L->status = 0; + L->status = LUA_OK; L->base_ci = L->ci = NULL; L->savedpc = NULL; L->errfunc = 0; @@ -189,7 +189,7 @@ LUA_API lua_State *lua_newstate (lua_Alloc f, void *ud) { g->gcstepmul = LUAI_GCMUL; g->gcdept = 0; for (i=0; imt[i] = NULL; - if (luaD_rawrunprotected(L, f_luaopen, NULL) != 0) { + if (luaD_rawrunprotected(L, f_luaopen, NULL) != LUA_OK) { /* memory allocation error: free partial state */ close_state(L); L = NULL; @@ -216,7 +216,7 @@ LUA_API void lua_close (lua_State *L) { L->ci = L->base_ci; L->base = L->top = L->ci->base; G(L)->nCcalls = 0; - } while (luaD_rawrunprotected(L, callallgcTM, NULL) != 0); + } while (luaD_rawrunprotected(L, callallgcTM, NULL) != LUA_OK); lua_assert(G(L)->tmudata == NULL); luai_userstateclose(L); close_state(L); diff --git a/ltests.c b/ltests.c index 665b5d90..c2d88d2e 100644 --- a/ltests.c +++ b/ltests.c @@ -1,5 +1,5 @@ /* -** $Id: ltests.c,v 2.38 2006/07/11 15:53:29 roberto Exp roberto $ +** $Id: ltests.c,v 2.39 2006/09/11 14:07:24 roberto Exp roberto $ ** Internal Module for Debugging of the Lua Implementation ** See Copyright Notice in lua.h */ @@ -690,7 +690,7 @@ static int doonnewstack (lua_State *L) { size_t l; const char *s = luaL_checklstring(L, 1, &l); int status = luaL_loadbuffer(L1, s, l, s); - if (status == 0) + if (status == LUA_OK) status = lua_pcall(L1, 0, 0, 0); lua_pushinteger(L, status); return 1; @@ -759,9 +759,9 @@ static int doremote (lua_State *L) { int status; lua_settop(L1, 0); status = luaL_loadbuffer(L1, code, lcode, code); - if (status == 0) + if (status == LUA_OK) status = lua_pcall(L1, 0, LUA_MULTRET, 0); - if (status != 0) { + if (status != LUA_OK) { lua_pushnil(L); lua_pushinteger(L, status); lua_pushstring(L, lua_tostring(L1, -1)); diff --git a/lua.c b/lua.c index e0f56fc0..38419c14 100644 --- a/lua.c +++ b/lua.c @@ -1,5 +1,5 @@ /* -** $Id: lua.c,v 1.162 2006/09/11 14:07:24 roberto Exp roberto $ +** $Id: lua.c,v 1.163 2006/09/18 14:03:18 roberto Exp roberto $ ** Lua stand-alone interpreter ** See Copyright Notice in lua.h */ @@ -63,7 +63,7 @@ static void l_message (const char *pname, const char *msg) { static int report (lua_State *L, int status) { - if (status && !lua_isnil(L, -1)) { + if (status != LUA_OK && !lua_isnil(L, -1)) { const char *msg = lua_tostring(L, -1); if (msg == NULL) msg = "(error object is not a string)"; l_message(progname, msg); @@ -101,7 +101,7 @@ static int docall (lua_State *L, int narg, int clear) { signal(SIGINT, SIG_DFL); lua_remove(L, base); /* remove traceback function */ /* force a complete garbage collection in case of errors */ - if (status != 0) lua_gc(L, LUA_GCCOLLECT, 0); + if (status != LUA_OK) lua_gc(L, LUA_GCCOLLECT, 0); return status; } @@ -130,13 +130,15 @@ static int getargs (lua_State *L, char **argv, int n) { static int dofile (lua_State *L, const char *name) { - int status = luaL_loadfile(L, name) || docall(L, 0, 1); + int status = luaL_loadfile(L, name); + if (status == LUA_OK) status = docall(L, 0, 1); return report(L, status); } static int dostring (lua_State *L, const char *s, const char *name) { - int status = luaL_loadbuffer(L, s, strlen(s), name) || docall(L, 0, 1); + int status = luaL_loadbuffer(L, s, strlen(s), name); + if (status == LUA_OK) status = docall(L, 0, 1); return report(L, status); } @@ -218,12 +220,12 @@ static void dotty (lua_State *L) { const char *oldprogname = progname; progname = NULL; while ((status = loadline(L)) != -1) { - if (status == 0) status = docall(L, 0, 0); + if (status == LUA_OK) status = docall(L, 0, 0); report(L, status); - if (status == 0 && lua_gettop(L) > 0) { /* any result to print? */ + if (status == LUA_OK && lua_gettop(L) > 0) { /* any result to print? */ lua_getglobal(L, "print"); lua_insert(L, 1); - if (lua_pcall(L, lua_gettop(L)-1, 0, 0) != 0) + if (lua_pcall(L, lua_gettop(L)-1, 0, 0) != LUA_OK) l_message(progname, lua_pushfstring(L, "error calling " LUA_QL("print") " (%s)", lua_tostring(L, -1))); @@ -246,7 +248,7 @@ static int handle_script (lua_State *L, char **argv, int n) { fname = NULL; /* stdin */ status = luaL_loadfile(L, fname); lua_insert(L, -(narg+1)); - if (status == 0) + if (status == LUA_OK) status = docall(L, narg, 0); else lua_pop(L, narg); @@ -301,28 +303,28 @@ static int runargs (lua_State *L, char **argv, int n) { const char *chunk = argv[i] + 2; if (*chunk == '\0') chunk = argv[++i]; lua_assert(chunk != NULL); - if (dostring(L, chunk, "=(command line)") != 0) - return 1; + if (dostring(L, chunk, "=(command line)") != LUA_OK) + return 0; break; } case 'l': { const char *filename = argv[i] + 2; if (*filename == '\0') filename = argv[++i]; lua_assert(filename != NULL); - if (dolibrary(L, filename)) - return 1; /* stop if file fails */ + if (dolibrary(L, filename) != LUA_OK) + return 0; /* stop if file fails */ break; } default: break; } } - return 0; + return 1; } static int handle_luainit (lua_State *L) { const char *init = getenv(LUA_INIT); - if (init == NULL) return 0; /* status OK */ + if (init == NULL) return LUA_OK; else if (init[0] == '@') return dofile(L, init+1); else @@ -333,7 +335,7 @@ static int handle_luainit (lua_State *L) { struct Smain { int argc; char **argv; - int status; + int ok; }; @@ -347,20 +349,20 @@ static int pmain (lua_State *L) { lua_gc(L, LUA_GCSTOP, 0); /* stop collector during initialization */ luaL_openlibs(L); /* open libraries */ lua_gc(L, LUA_GCRESTART, 0); - s->status = handle_luainit(L); - if (s->status != 0) return 0; + s->ok = (handle_luainit(L) == LUA_OK); + if (!s->ok) return 0; script = collectargs(argv, &has_i, &has_v, &has_e); if (script < 0) { /* invalid args? */ print_usage(); - s->status = 1; + s->ok = 0; return 0; } if (has_v) print_version(); - s->status = runargs(L, argv, (script > 0) ? script : s->argc); - if (s->status != 0) return 0; + s->ok = runargs(L, argv, (script > 0) ? script : s->argc); + if (!s->ok) return 0; if (script) - s->status = handle_script(L, argv, script); - if (s->status != 0) return 0; + s->ok = (handle_script(L, argv, script) == LUA_OK); + if (!s->ok) return 0; if (has_i) dotty(L); else if (script == 0 && !has_e && !has_v) { @@ -387,6 +389,6 @@ int main (int argc, char **argv) { status = lua_cpcall(L, &pmain, &s); report(L, status); lua_close(L); - return (status || s.status) ? EXIT_FAILURE : EXIT_SUCCESS; + return (s.ok && status == LUA_OK) ? EXIT_SUCCESS : EXIT_FAILURE; } diff --git a/lua.h b/lua.h index 7e698e36..960b9857 100644 --- a/lua.h +++ b/lua.h @@ -1,5 +1,5 @@ /* -** $Id: lua.h,v 1.219 2006/09/11 14:07:24 roberto Exp roberto $ +** $Id: lua.h,v 1.220 2006/09/18 14:03:18 roberto Exp roberto $ ** Lua - An Extensible Extension Language ** Lua.org, PUC-Rio, Brazil (http://www.lua.org) ** See Copyright Notice at the end of this file @@ -39,7 +39,8 @@ #define lua_upvalueindex(i) (LUA_GLOBALSINDEX-(i)) -/* thread status; 0 is OK */ +/* thread status */ +#define LUA_OK 0 #define LUA_YIELD 1 #define LUA_ERRRUN 2 #define LUA_ERRSYNTAX 3 -- cgit v1.2.3-55-g6feb