elua lib: elua_io_loadfile now uses Elua_State
This commit is contained in:
parent
e4baa1bc12
commit
128aa3a1ea
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue