X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-lua%2Fruntime.c;h=f570b559e646d7fd289645be27c6132727a0dcd3;hp=60a683535355e5cfbe3bbf4105bce89ee162e858;hb=6b771604433435b4280a5fbae2612134fe4129dd;hpb=6729a8ab646a00a661858b7ac7ee21f770bff3d3 diff --git a/lib-lua/runtime.c b/lib-lua/runtime.c index 60a6835..f570b55 100644 --- a/lib-lua/runtime.c +++ b/lib-lua/runtime.c @@ -18,23 +18,28 @@ */ #include -#include "lib-lua_priv.h" +#include -static lua_State *L; +#include -static const luaL_Reg lualibs[] = { - {"", luaopen_base}, - {LUA_LOADLIBNAME, luaopen_package}, - {LUA_TABLIBNAME, luaopen_table}, - {LUA_IOLIBNAME, luaopen_io}, - {LUA_STRLIBNAME, luaopen_string}, - {LUA_MATHLIBNAME, luaopen_math}, - {LUA_DBLIBNAME, luaopen_debug}, - {LUA_MADMUTT, luaopen_madmutt}, -}; +static lua_State *L; -void mlua_initialize(void) +void luaM_initialize(void) { + static const luaL_Reg lualibs[] = { + {"", luaopen_base}, + {LUA_OSLIBNAME, luaopen_os}, + {LUA_LOADLIBNAME, luaopen_package}, + {LUA_TABLIBNAME, luaopen_table}, + {LUA_IOLIBNAME, luaopen_io}, + {LUA_STRLIBNAME, luaopen_string}, + {LUA_MATHLIBNAME, luaopen_math}, + {LUA_DBLIBNAME, luaopen_debug}, + {"MCore", luaopen_MCore}, + {"MTransport", luaopen_MTransport}, + {"MAlias", luaopen_MAlias}, + }; + int i; L = lua_open(); @@ -45,18 +50,18 @@ void mlua_initialize(void) } } -void mlua_shutdown(void) +void luaM_shutdown(void) { lua_close(L); } -int mlua_dofile(const char *filename) +int luaM_dofile(const char *filename) { return luaL_dofile(L, filename); } -int mlua_wrap(void (*errfun)(const char *fmt, ...), int status) +int luaM_wrap(void (*errfun)(const char *fmt, ...), int status) { if (status) { (*errfun)("-[lua]-: %s\n", lua_tostring(L, -1)); @@ -65,3 +70,16 @@ int mlua_wrap(void (*errfun)(const char *fmt, ...), int status) return status; } + +quadopt_t luaM_checkquadopt(lua_State *Ls, int narg) +{ + const char *s; + int i = luaL_checkinteger(Ls, narg); + + if (i & ~3) { + s = lua_pushfstring(Ls, "int in [0-3] expected, got %d", i); + return luaL_argerror(Ls, narg, s); + } + return i; +} +