aboutsummaryrefslogtreecommitdiff
path: root/src/sysbin/lx/lxlib.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sysbin/lx/lxlib.c')
-rw-r--r--src/sysbin/lx/lxlib.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/sysbin/lx/lxlib.c b/src/sysbin/lx/lxlib.c
index 9f6843b..ed266f7 100644
--- a/src/sysbin/lx/lxlib.c
+++ b/src/sysbin/lx/lxlib.c
@@ -29,6 +29,13 @@ bool lx_checkboolean(lua_State *L, int arg) {
return lua_toboolean(L, arg);
}
+void* lx_checklightudata(lua_State *L, int arg) {
+ if (!lua_islightuserdata(L, arg)) {
+ luaL_argerror(L, arg, "expected light userdata");
+ }
+ return lua_touserdata(L, arg);
+}
+
void setintfield (lua_State *L, const char *key, int value) {
lua_pushinteger(L, value);
@@ -39,3 +46,10 @@ void setstrfield (lua_State *L, const char *key, const char* value) {
lua_pushstring(L, value);
lua_setfield(L, -2, key);
}
+
+int getintfield(lua_State *L, int arg, const char *key) {
+ lua_getfield(L, arg, key);
+ int v = luaL_checkinteger(L, -1);
+ lua_pop(L, 1);
+ return v;
+}