void hlua_class_function(lua_State *L, const char *name, int (*function)(lua_State *L));
void *hlua_checkudata(lua_State *L, int ud, int class_ref);
int hlua_register_metatable(struct lua_State *L, char *name);
+int hlua_fcn_post_init(lua_State *L);
int hlua_fcn_reg_core_fcn(lua_State *L);
int hlua_dump_object(lua_State *L);
enum hlua_exec ret;
const char *error;
+ /* Call post initialisation function in safe environement. */
+ if (!SET_SAFE_LJMP(gL.T)) {
+ if (lua_type(gL.T, -1) == LUA_TSTRING)
+ error = lua_tostring(gL.T, -1);
+ else
+ error = "critical error";
+ fprintf(stderr, "Lua post-init: %s.\n", error);
+ exit(1);
+ }
+ hlua_fcn_post_init(gL.T);
+ RESET_SAFE_LJMP(gL.T);
+
list_for_each_entry(init, &hlua_init_functions, l) {
lua_rawgeti(gL.T, LUA_REGISTRYINDEX, init->function_ref);
ret = hlua_ctx_resume(&gL, 0);
return 1;
}
+int hlua_fcn_post_init(lua_State *L)
+{
+ return 1;
+}
+
int hlua_fcn_reg_core_fcn(lua_State *L)
{
if (!hlua_concat_init(L))