diff options
Diffstat (limited to 'src/sysbin/lx/lxlib.c')
-rw-r--r-- | src/sysbin/lx/lxlib.c | 14 |
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; +} |