diff --git a/src/bin/elua/main.c b/src/bin/elua/main.c index 7c0784069d..cdd88f79af 100644 --- a/src/bin/elua/main.c +++ b/src/bin/elua/main.c @@ -203,7 +203,7 @@ static int elua_dofile(Elua_State *es, const char *fname) { return elua_report_error(es, elua_progname, - elua_io_loadfile(es->luastate, fname) + elua_io_loadfile(es, fname) || elua_docall(es, 0, 1)); } @@ -236,10 +236,9 @@ static int elua_doscript(Elua_State *es, int argc, char **argv, int n, int *quit) { int status; - lua_State *L = es->luastate; const char *fname = argv[n]; int narg = elua_getargs(es, argc, argv, n); - lua_setglobal(L, "arg"); + lua_setglobal(es->luastate, "arg"); if (fname[0] == '-' && !fname[1]) { fname = NULL; @@ -251,28 +250,28 @@ elua_doscript(Elua_State *es, int argc, char **argv, int n, int *quit) if (f) { fclose(f); - status = elua_io_loadfile(L, fname); + status = elua_io_loadfile(es, fname); } else status = !elua_loadapp(es, fname); } else { - status = elua_io_loadfile(L, fname); + status = elua_io_loadfile(es, fname); } - lua_insert(L, -(narg + 1)); + lua_insert(es->luastate, -(narg + 1)); if (!status) { status = elua_docall(es, narg, 1); } else { - lua_pop(L, narg); + lua_pop(es->luastate, narg); } if (!status) { - *quit = lua_toboolean(L, -1); - lua_pop(L, 1); + *quit = lua_toboolean(es->luastate, -1); + lua_pop(es->luastate, 1); } return elua_report_error(es, elua_progname, status); } @@ -434,7 +433,7 @@ elua_main(lua_State *L) } } snprintf(modfile, sizeof(modfile), "%s/module.lua", coref); - if (elua_report_error(es, elua_progname, elua_io_loadfile(L, modfile))) + if (elua_report_error(es, elua_progname, elua_io_loadfile(es, modfile))) { m->status = 1; return 0; @@ -447,7 +446,7 @@ elua_main(lua_State *L) lua_call(L, 2, 0); snprintf(modfile, sizeof(modfile), "%s/gettext.lua", coref); - if (elua_report_error(es, elua_progname, elua_io_loadfile(L, modfile))) + if (elua_report_error(es, elua_progname, elua_io_loadfile(es, modfile))) { m->status = 1; return 0; diff --git a/src/lib/elua/Elua.h b/src/lib/elua/Elua.h index e4df8afdb1..2010a5aa96 100644 --- a/src/lib/elua/Elua.h +++ b/src/lib/elua/Elua.h @@ -84,7 +84,7 @@ EAPI int elua_report_error(Elua_State *es, const char *pname, int status); EAPI void elua_state_setup_i18n(Elua_State *es); EAPI int elua_io_popen(lua_State *L); -EAPI int elua_io_loadfile(lua_State *L, const char *fname); +EAPI int elua_io_loadfile(Elua_State *es, const char *fname); EAPI void elua_io_register(lua_State *L); #endif diff --git a/src/lib/elua/cache.c b/src/lib/elua/cache.c index e272843c69..2bc0cbef05 100644 --- a/src/lib/elua/cache.c +++ b/src/lib/elua/cache.c @@ -150,13 +150,16 @@ getf_map(lua_State *L EINA_UNUSED, void *ud, size_t *size) } EAPI int -elua_io_loadfile(lua_State *L, const char *fname) +elua_io_loadfile(Elua_State *es, const char *fname) { Map_Stream s; int status; Eina_File *f; const char *chname; Eina_Bool bcache = EINA_FALSE; + lua_State *L; + if (!es || !es->luastate) return -1; + L = es->luastate; if (!fname) { return elua_loadstdin(L); @@ -187,8 +190,9 @@ elua_io_loadfile(lua_State *L, const char *fname) static int loadfile(lua_State *L) { + Elua_State *es = elua_state_from_lua_get(L); const char *fname = luaL_optstring(L, 1, NULL); - int status = elua_io_loadfile(L, fname), + int status = elua_io_loadfile(es, fname), hasenv = (lua_gettop(L) >= 3); if (!status) {