make quadopts be consistently dealt with as strings.
authorPierre Habouzit <madcoder@debian.org>
Mon, 26 Mar 2007 23:05:51 +0000 (01:05 +0200)
committerPierre Habouzit <madcoder@debian.org>
Mon, 26 Mar 2007 23:05:51 +0000 (01:05 +0200)
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
lib-lua/base.cpkg
lib-lua/lib-lua.h
lib-lua/runtime.c

index f9b7304..221e2a0 100644 (file)
@@ -7,7 +7,7 @@
 @type quadopt_t {
     .ctype = unsigned : 2;
     .check = luaM_checkquadopt($L, $$);
 @type quadopt_t {
     .ctype = unsigned : 2;
     .check = luaM_checkquadopt($L, $$);
-    .push  = lua_pushinteger($L, $$);
+    .push  = luaM_pushquadopt($L, $$);
 };
 
 @type string_t {
 };
 
 @type string_t {
index 862b6b5..569e77e 100644 (file)
@@ -47,6 +47,8 @@ int luaM_wrap(void (*errfun)(const char *fmt, ...)
               int status);
 
 quadopt_t luaM_checkquadopt(lua_State *L, int narg);
               int status);
 
 quadopt_t luaM_checkquadopt(lua_State *L, int narg);
+void luaM_pushquadopt(lua_State *Ls, int val);
+
 const char *luaM_checkrx(lua_State *Ls, int narg);
 char *luaM_pathnew(const char *val);
 rx_t *luaM_rxnew(const char* val);
 const char *luaM_checkrx(lua_State *Ls, int narg);
 char *luaM_pathnew(const char *val);
 rx_t *luaM_rxnew(const char* val);
index f7401e2..923222b 100644 (file)
@@ -97,6 +97,17 @@ quadopt_t luaM_checkquadopt(lua_State *Ls, int narg)
     return i;
 }
 
     return i;
 }
 
+void luaM_pushquadopt(lua_State *Ls, int val)
+{
+    switch (val) {
+      case M_YES:    return lua_pushstring(Ls, "yes");
+      case M_NO:     return lua_pushstring(Ls, "no");
+      case M_ASKYES: return lua_pushstring(Ls, "ask-yes");
+      case M_ASKNO:  return lua_pushstring(Ls, "ask-no");
+      default:       return lua_pushnil(Ls);
+    }
+}
+
 const char *luaM_checkrx(lua_State *Ls, int narg)
 {
     const char *s = luaL_checkstring(Ls, narg);
 const char *luaM_checkrx(lua_State *Ls, int narg)
 {
     const char *s = luaL_checkstring(Ls, narg);