rationalize settings into a central registry.
[apps/madmutt.git] / lib-lua / runtime.c
index a442401..552587c 100644 (file)
@@ -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,18 +67,16 @@ int mlua_wrap(void (*errfun)(const char *fmt, ...), int status)
     return status;
 }
 
-ssize_t mlua_value(char *buf, ssize_t len,
-                   const char *table, const char *key)
+const char *mlua_reggets(int tk)
 {
-    ssize_t res;
-
-    lua_getglobal(L, table);
-    lua_pushstring(L, key);
-    lua_gettable(L, -2);
-    res = m_strcpy(buf, len, lua_tostring(L, -1));
-    lua_remove(L, -1);
-    lua_remove(L, -1);
-
-    return res;
+    if (registry[tk].type != REG_STR)
+        return NULL;
+    return registry[tk].s;
 }
 
+void mlua_regsets(int tk, const char *s)
+{
+    reg_entry_wipe(registry + tk);
+    registry[tk].type = REG_STR;
+    registry[tk].s    = m_strdup(s);
+}