summaryrefslogtreecommitdiffstats
path: root/init.c
diff options
context:
space:
mode:
authorThomas Roessler <roessler@does-not-exist.org>1999-01-07 19:01:30 +0000
committerThomas Roessler <roessler@does-not-exist.org>1999-01-07 19:01:30 +0000
commit84a148e11903c9a5888c098e28bb17a343a62a4f (patch)
tree448143ce4f66847ac0f439682d9f5e016d6a4946 /init.c
parentd084dc02709698b298f191947cbb42bb283250a0 (diff)
Vikas' set_boolean patch.
Diffstat (limited to 'init.c')
-rw-r--r--init.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/init.c b/init.c
index 4e55f57c..6f4b03af 100644
--- 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;