diff --git a/src/bin/elua/main.c b/src/bin/elua/main.c index 6497f3d62d..24bd916c8d 100644 --- a/src/bin/elua/main.c +++ b/src/bin/elua/main.c @@ -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); diff --git a/src/lib/elua/Elua.h b/src/lib/elua/Elua.h index 9814cf2390..cc7442dd4c 100644 --- a/src/lib/elua/Elua.h +++ b/src/lib/elua/Elua.h @@ -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); diff --git a/src/lib/elua/elua.c b/src/lib/elua/elua.c index 9299b8ff6e..fb85901ec2 100644 --- a/src/lib/elua/elua.c +++ b/src/lib/elua/elua.c @@ -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); diff --git a/src/lib/elua/elua_private.h b/src/lib/elua/elua_private.h index aa00cd300f..fbf7bb3ca9 100644 --- a/src/lib/elua/elua_private.h +++ b/src/lib/elua/elua_private.h @@ -30,6 +30,7 @@ struct _Elua_State { lua_State *luastate; + Eina_Stringshare *progname; Eina_Stringshare *coredir; Eina_Stringshare *moddir; Eina_Stringshare *appsdir;