elua lib: add progname to state

This commit is contained in:
Daniel Kolesa 2015-04-10 14:36:26 +01:00 committed by Daniel Kolesa
parent 865e2e3364
commit 13bd7ba653
4 changed files with 6 additions and 3 deletions

View 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);

View 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);

View 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);

View File

@ -30,6 +30,7 @@
struct _Elua_State
{
lua_State *luastate;
Eina_Stringshare *progname;
Eina_Stringshare *coredir;
Eina_Stringshare *moddir;
Eina_Stringshare *appsdir;