elua lib: elua_io_loadfile now uses Elua_State
authorDaniel Kolesa <d.kolesa@samsung.com>
Thu, 9 Apr 2015 12:48:06 +0000 (13:48 +0100)
committerDaniel Kolesa <d.kolesa@osg.samsung.com>
Wed, 6 May 2015 14:05:19 +0000 (15:05 +0100)
src/bin/elua/main.c
src/lib/elua/Elua.h
src/lib/elua/cache.c

index 7c0784069d96f60eb79a1d92cf0da38f49004204..cdd88f79afa2319a555a2cb26f0bedf709f58b1c 100644 (file)
@@ -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;
index e4df8afdb12003272419fcbf0bd0803114dba154..2010a5aa961d79de62821364c0df30bc16a82d06 100644 (file)
@@ -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
index e272843c69a42ab772d6fe6ca31ac636a459426b..2bc0cbef05f60c77915ee5993311ba58b7c2eba1 100644 (file)
@@ -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)
      {