projects
/
apps
/
madmutt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
stylish updates.
[apps/madmutt.git]
/
lib-lua
/
runtime.c
diff --git
a/lib-lua/runtime.c
b/lib-lua/runtime.c
index
a442401
..
0fb777c
100644
(file)
--- a/
lib-lua/runtime.c
+++ b/
lib-lua/runtime.c
@@
-21,6
+21,7
@@
#include "lib-lua_priv.h"
static lua_State *L;
#include "lib-lua_priv.h"
static lua_State *L;
+static reg_entry registry[LTK_count];
static const luaL_Reg lualibs[] = {
{"", luaopen_base},
static const luaL_Reg lualibs[] = {
{"", luaopen_base},
@@
-66,18
+67,30
@@
int mlua_wrap(void (*errfun)(const char *fmt, ...), int status)
return 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;
+ if (registry[tk].type != REG_STR)
+ return NULL;
+ return registry[tk].s;
+}
- 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);
+int mlua_reggeti(int tk)
+{
+ if (registry[tk].type != REG_INT)
+
return -1
;
+
return registry[tk].i
;
+}
- return res;
+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;
+}