X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-lua%2Fmadmutt.c;h=6fe2b4d629bc8f179270680e9ddb2bd07b797c29;hp=29907f3024f4c77a296824b4b3205ac69bbc5e26;hb=a83b73d30397ee8e5c33668bcc0f1712ac74ff29;hpb=0dd5b492f18e549ef95b0ac6765329473e426633 diff --git a/lib-lua/madmutt.c b/lib-lua/madmutt.c index 29907f3..6fe2b4d 100644 --- a/lib-lua/madmutt.c +++ b/lib-lua/madmutt.c @@ -81,9 +81,6 @@ static int madmutt_assign(lua_State *L) char buf[STRING]; int i; - default: - return luaL_error(L, "read-only or inexistant property '%s'", idx, tk); - case LTK_DOTLOCK: case LTK_SENDMAIL: case LTK_SHELL: @@ -99,30 +96,56 @@ static int madmutt_assign(lua_State *L) i = quadopt_parse(val); if (i < 0) return luaL_error(L, "invalid quad option value: '%s'", val); - mlua_regsetq(tk, i); + mlua_regseti(tk, i); return 0; + + case LTK_UNKNOWN: + case LTK_count: + break; } + + return luaL_error(L, "read-only or inexistant property '%s'", idx, tk); } static int madmutt_get(lua_State *L) { const char *idx = luaL_checkstring(L, 2); - int tk; - - switch ((tk = lua_which_token(idx, -1))) { - default: - lua_getmetatable(L, 1); - lua_replace(L, 1); - lua_rawget(L, 1); - return 1; + enum lua_token tk = lua_which_token(idx, -1); + switch (tk) { case LTK_DOTLOCK: case LTK_SENDMAIL: case LTK_SHELL: + case LTK_EDITOR: lua_pushstring(L, mlua_reggets(tk)); + return 1; + + case LTK_QUIT: + switch (mlua_reggeti(tk)) { + case M_YES: + lua_pushstring(L, "yes"); + return 1; + case M_NO: + lua_pushstring(L, "no"); + return 1; + case M_ASKNO: + lua_pushstring(L, "ask-no"); + return 1; + case M_ASKYES: + lua_pushstring(L, "ask-yes"); + return 1; + default: + return 0; + } + + case LTK_UNKNOWN: + case LTK_count: break; } + lua_getmetatable(L, 1); + lua_replace(L, 1); + lua_rawget(L, 1); return 1; } @@ -248,7 +271,7 @@ static const struct { ** Contains the path of the \fTmadmutt_dotlock(1)\fP binary to be used by ** Madmutt. */ - {"editor", madmutt_init_editor, NULL }, + { "editor", madmutt_init_editor, NULL }, /* ** .pp ** This variable specifies which editor is used by Madmutt. @@ -268,7 +291,7 @@ static const struct { ** Command to use when spawning a subshell. By default, the user's login ** shell from \fT/etc/passwd\fP is used. */ - {"quit", NULL, "yes" } + { "quit", NULL, "yes" }, /* ** .pp ** This variable controls whether ``quit'' and ``exit'' actually quit