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));
}
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;
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);
}
}
}
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;
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;
}
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);
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)
{