X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-lua%2Fruntime.c;h=0fb777c578ea0a807f43b09b4c13af26f3d1d527;hp=8788ed5848cc608b756b22737116beb81c4baab8;hb=a83b73d30397ee8e5c33668bcc0f1712ac74ff29;hpb=88d22daa9c1316d5ccc4b4bb60d40cc96c767757 diff --git a/lib-lua/runtime.c b/lib-lua/runtime.c index 8788ed5..0fb777c 100644 --- a/lib-lua/runtime.c +++ b/lib-lua/runtime.c @@ -21,6 +21,7 @@ #include "lib-lua_priv.h" static lua_State *L; +static reg_entry registry[LTK_count]; static const luaL_Reg lualibs[] = { {"", luaopen_base}, @@ -66,3 +67,30 @@ int mlua_wrap(void (*errfun)(const char *fmt, ...), int status) return status; } +const char *mlua_reggets(int tk) +{ + if (registry[tk].type != REG_STR) + return NULL; + return registry[tk].s; +} + +int mlua_reggeti(int tk) +{ + if (registry[tk].type != REG_INT) + return -1; + return registry[tk].i; +} + +void mlua_regsets(int tk, const char *s) +{ + reg_entry_wipe(registry + tk); + registry[tk].type = REG_STR; + registry[tk].s = m_strdup(s); +} + +void mlua_regseti(int tk, int i) +{ + reg_entry_wipe(registry + tk); + registry[tk].type = REG_INT; + registry[tk].i = i; +}