From: Daniel Kolesa Date: Fri, 10 Apr 2015 15:58:27 +0000 (+0100) Subject: elua lib: move i18n initialization there X-Git-Tag: v1.15.0-alpha1~752^2~55 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8041b042fe8e105fd82dee860a8a91b822307915;p=platform%2Fupstream%2Fefl.git elua lib: move i18n initialization there --- diff --git a/src/bin/elua/main.c b/src/bin/elua/main.c index b335ce469d..cf499aa174 100644 --- a/src/bin/elua/main.c +++ b/src/bin/elua/main.c @@ -163,12 +163,8 @@ elua_main(lua_State *L) luaL_register(L, NULL, cutillib); lua_call(L, 2, 0); - snprintf(modfile, sizeof(modfile), "%s/gettext.lua", coredir); - if (elua_report_error(es, elua_state_prog_name_get(es), - elua_io_loadfile(es, modfile))) + if (!elua_state_setup_i18n(es)) goto error; - elua_state_setup_i18n(es); - lua_call(L, 1, 0); elua_io_register(es); lua_gc(L, LUA_GCRESTART, 0); diff --git a/src/lib/elua/Elua.h b/src/lib/elua/Elua.h index cb1edc13ee..5100f512e4 100644 --- a/src/lib/elua/Elua.h +++ b/src/lib/elua/Elua.h @@ -89,7 +89,7 @@ EAPI lua_State *elua_state_lua_state_get(const Elua_State *es); EAPI int elua_report_error(const Elua_State *es, const char *pname, int status); -EAPI void elua_state_setup_i18n(const Elua_State *es); +EAPI Eina_Bool elua_state_setup_i18n(const Elua_State *es); EAPI int elua_io_loadfile(const Elua_State *es, const char *fname); EAPI void elua_io_register(const Elua_State *es); diff --git a/src/lib/elua/elua.c b/src/lib/elua/elua.c index 32f203cc6b..3bda98b30f 100644 --- a/src/lib/elua/elua.c +++ b/src/lib/elua/elua.c @@ -283,7 +283,7 @@ const luaL_reg gettextlib[] = { NULL, NULL } }; -EAPI void +EAPI Eina_Bool elua_state_setup_i18n(const Elua_State *es) { #ifdef ENABLE_NLS @@ -291,6 +291,14 @@ elua_state_setup_i18n(const Elua_State *es) char *(*dngettextp)(const char*, const char*, const char*, unsigned long) = dngettext; #endif + char buf[PATH_MAX]; + EINA_SAFETY_ON_NULL_RETURN_VAL(es, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(es->luastate, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(es->coredir, EINA_FALSE); + snprintf(buf, sizeof(buf), "%s/gettext.lua", es->coredir); + if (elua_report_error(es, elua_state_prog_name_get(es), + elua_io_loadfile(es, buf))) + return EINA_FALSE; lua_createtable(es->luastate, 0, 0); luaL_register(es->luastate, NULL, gettextlib); #ifdef ENABLE_NLS @@ -299,6 +307,8 @@ elua_state_setup_i18n(const Elua_State *es) lua_pushlightuserdata(es->luastate, *((void**)&dngettextp)); lua_setfield(es->luastate, -2, "dngettext"); #endif + lua_call(es->luastate, 1, 0); + return EINA_TRUE; } EAPI int