elua lib: add progname to state
authorDaniel Kolesa <d.kolesa@samsung.com>
Fri, 10 Apr 2015 13:36:26 +0000 (14:36 +0100)
committerDaniel Kolesa <d.kolesa@osg.samsung.com>
Wed, 6 May 2015 14:05:20 +0000 (15:05 +0100)
src/bin/elua/main.c
src/lib/elua/Elua.h
src/lib/elua/elua.c
src/lib/elua/elua_private.h

index 6497f3d..24bd916 100644 (file)
@@ -376,7 +376,7 @@ main(int argc, char **argv)
 
    INF("elua logging initialized: %d", _el_log_domain);
 
-   if (!(es = elua_state_new()))
+   if (!(es = elua_state_new((argv[0] && argv[0][0]) ? argv[0] : "elua")))
      {
         ERR("could not initialize elua state.");
         elua_bin_shutdown(es, 1);
index 9814cf2..cc7442d 100644 (file)
@@ -65,7 +65,7 @@ typedef struct _Elua_State Elua_State;
 EAPI int elua_init(void);
 EAPI int elua_shutdown(void);
 
-EAPI Elua_State *elua_state_new(void);
+EAPI Elua_State *elua_state_new(const char *progname);
 EAPI Elua_State *elua_state_from_lua_get(lua_State *L);
 
 EAPI void elua_state_free(Elua_State *es);
index 9299b8f..fb85901 100644 (file)
@@ -63,7 +63,7 @@ elua_shutdown(void)
 }
 
 EAPI Elua_State *
-elua_state_new(void)
+elua_state_new(const char *progname)
 {
    Elua_State *ret = NULL;
    lua_State *L = luaL_newstate();
@@ -71,6 +71,7 @@ elua_state_new(void)
      return NULL;
    ret = calloc(1, sizeof(Elua_State));
    ret->luastate = L;
+   if (progname) ret->progname = eina_stringshare_add(progname);
    luaL_openlibs(L);
    lua_pushlightuserdata(L, ret);
    lua_setfield(L, LUA_REGISTRYINDEX, "elua_ptr");
@@ -95,6 +96,7 @@ elua_state_free(Elua_State *es)
      eina_list_free(es->cmods);
    EINA_LIST_FREE(es->lincs, data)
      eina_stringshare_del(data);
+   eina_stringshare_del(es->progname);
    eina_stringshare_del(es->coredir);
    eina_stringshare_del(es->moddir);
    eina_stringshare_del(es->appsdir);
index aa00cd3..fbf7bb3 100644 (file)
@@ -30,6 +30,7 @@
 struct _Elua_State
 {
    lua_State *luastate;
+   Eina_Stringshare *progname;
    Eina_Stringshare *coredir;
    Eina_Stringshare *moddir;
    Eina_Stringshare *appsdir;