]> granicus.if.org Git - mutt/commitdiff
Vikas' set_boolean patch.
authorThomas Roessler <roessler@does-not-exist.org>
Thu, 7 Jan 1999 19:01:30 +0000 (19:01 +0000)
committerThomas Roessler <roessler@does-not-exist.org>
Thu, 7 Jan 1999 19:01:30 +0000 (19:01 +0000)
init.c

diff --git a/init.c b/init.c
index 4e55f57c9be41b838090a17cad132c98750a4678..6f4b03af2b5179c4d9c9b41dcee5930f10e33152 100644 (file)
--- a/init.c
+++ b/init.c
@@ -748,8 +748,23 @@ static int parse_set (BUFFER *tmp, BUFFER *s, unsigned long data, BUFFER *err)
     { 
       if (s && *s->dptr == '=')
       {
-       snprintf (err->data, err->dsize, _("%s is a boolean var!"), tmp->data);
-       return (-1);
+       if (unset || inv || query)
+       {
+         snprintf (err->data, err->dsize, "Usage: set variable=yes|no");
+         return (-1);
+       }
+
+       s->dptr++;
+       mutt_extract_token (tmp, s, 0);
+       if (mutt_strcasecmp ("yes", tmp->data) == 0)
+         unset = inv = 0;
+       else if (mutt_strcasecmp ("no", tmp->data) == 0)
+         unset = 1;
+       else
+       {
+         snprintf (err->data, err->dsize, "Usage: set variable=yes|no");
+         return (-1);
+       }
       }
 
       if (query)
@@ -1427,6 +1442,9 @@ int mutt_var_value_complete (char *buffer, size_t len, int pos)
                  (*((short *) MuttVars[idx].data) & SORT_LAST) ? "last-" : "",
                  p);
       }
+      else if (DTYPE (MuttVars[idx].type) == DT_BOOL)
+       snprintf (pt, dlen, "%s%s", tmp, 
+                 option (MuttVars[idx].data) ? "yes" : "no");
       else
        return 0;
       return 1;