From 84a148e11903c9a5888c098e28bb17a343a62a4f Mon Sep 17 00:00:00 2001 From: Thomas Roessler Date: Thu, 7 Jan 1999 19:01:30 +0000 Subject: [PATCH] Vikas' set_boolean patch. --- init.c | 22 ++++++++++++++++++++-- 1 file 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; -- 2.40.0