From 660a4d7e1c752164aadafcdadb740745f2b123f7 Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Mon, 20 Apr 2015 17:04:33 +0100 Subject: [PATCH] elua lib: docs for elua_util_error_report + remove unnecessary arg --- src/lib/elua/Elua.h | 17 +++++++++++++++-- src/lib/elua/elua.c | 25 +++++++++++-------------- 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/src/lib/elua/Elua.h b/src/lib/elua/Elua.h index 08bfc0c3aa..3a172515c5 100644 --- a/src/lib/elua/Elua.h +++ b/src/lib/elua/Elua.h @@ -449,8 +449,21 @@ EAPI Eina_Bool elua_util_app_load(Elua_State *es, const char *appname); EAPI int elua_util_script_run(Elua_State *es, int argc, char **argv, int n, int *quit); -EAPI int elua_util_error_report(const Elua_State *es, const char *pname, - int status); +/** + * @brief Reports an error using Eina logging. + * + * If the given status is 0, this function just returns it. Otherwise, it takes + * the topmost item on the Lua stack, converts it to string (if it cannot be + * converted, a "(non-string error)" placeholder is used) and logs it out + * as an error, together with the program name set on Elua state init. + * + * @param[in] es The Elua state. + * @param[in] status The status code. + * @return The status code. + * + * @ingroup Elua + */ +EAPI int elua_util_error_report(const Elua_State *es, int status); #endif diff --git a/src/lib/elua/elua.c b/src/lib/elua/elua.c index 488438ab0d..234674dfd9 100644 --- a/src/lib/elua/elua.c +++ b/src/lib/elua/elua.c @@ -278,7 +278,7 @@ elua_state_i18n_setup(const Elua_State *es) EINA_SAFETY_ON_NULL_RETURN_VAL(es->coredir, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(es->progname, EINA_FALSE); snprintf(buf, sizeof(buf), "%s/gettext.lua", es->coredir); - if (elua_util_error_report(es, es->progname, elua_io_loadfile(es, buf))) + if (elua_util_error_report(es, elua_io_loadfile(es, buf))) return EINA_FALSE; lua_createtable(es->luastate, 0, 0); luaL_register(es->luastate, NULL, gettextlib); @@ -311,7 +311,7 @@ elua_state_modules_setup(const Elua_State *es) EINA_SAFETY_ON_NULL_RETURN_VAL(es->coredir, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(es->progname, EINA_FALSE); snprintf(buf, sizeof(buf), "%s/module.lua", es->coredir); - if (elua_util_error_report(es, es->progname, elua_io_loadfile(es, buf))) + if (elua_util_error_report(es, elua_io_loadfile(es, buf))) return EINA_FALSE; lua_pushcfunction(es->luastate, _elua_module_system_init); lua_createtable(es->luastate, 0, 0); @@ -437,8 +437,7 @@ elua_util_require(Elua_State *es, const char *libname) EINA_SAFETY_ON_NULL_RETURN_VAL(es->luastate, -1); EINA_SAFETY_ON_FALSE_RETURN_VAL(elua_state_require_ref_push(es), -1); lua_pushstring(es->luastate, libname); - return elua_util_error_report(es, es->progname, - lua_pcall(es->luastate, 1, 0, 0)); + return elua_util_error_report(es, lua_pcall(es->luastate, 1, 0, 0)); } EAPI int @@ -446,9 +445,8 @@ elua_util_file_run(Elua_State *es, const char *fname) { EINA_SAFETY_ON_NULL_RETURN_VAL(es, -1); EINA_SAFETY_ON_NULL_RETURN_VAL(es->luastate, -1); - return elua_util_error_report(es, es->progname, - elua_io_loadfile(es, fname) - || _elua_docall(es, 0, 1)); + return elua_util_error_report(es, elua_io_loadfile(es, fname) + || _elua_docall(es, 0, 1)); } EAPI int @@ -456,10 +454,9 @@ elua_util_string_run(Elua_State *es, const char *chunk, const char *chname) { EINA_SAFETY_ON_NULL_RETURN_VAL(es, -1); EINA_SAFETY_ON_NULL_RETURN_VAL(es->luastate, -1); - return elua_util_error_report(es, es->progname, - luaL_loadbuffer(es->luastate, chunk, strlen(chunk), - chname) - || _elua_docall(es, 0, 0)); + return elua_util_error_report(es, luaL_loadbuffer(es->luastate, chunk, + strlen(chunk), chname) + || _elua_docall(es, 0, 0)); } EAPI Eina_Bool @@ -515,7 +512,7 @@ elua_util_script_run(Elua_State *es, int argc, char **argv, int n, int *quit) *quit = lua_toboolean(es->luastate, -1); lua_pop(es->luastate, 1); } - return elua_util_error_report(es, es->progname, status); + return elua_util_error_report(es, status); } static void @@ -525,13 +522,13 @@ _elua_errmsg(const char *pname, const char *msg) } EAPI int -elua_util_error_report(const Elua_State *es, const char *pname, int status) +elua_util_error_report(const Elua_State *es, int status) { EINA_SAFETY_ON_FALSE_RETURN_VAL(es && es->luastate, status); if (status && !lua_isnil(es->luastate, -1)) { const char *msg = lua_tostring(es->luastate, -1); - _elua_errmsg(pname, msg ? msg : "(non-string error)"); + _elua_errmsg(es->progname, msg ? msg : "(non-string error)"); lua_pop(es->luastate, 1); } return status;