X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=init.c;h=5ac2110cb0afa4cf8f4069788840230be6061708;hp=9c81fe14b3a7578cd8993c3a02eced5c07283b42;hb=4ff362c6b720c1ae7c6fde8300567644905bd923;hpb=5435729df11cfc6ca23e65e66ab034befece0b18 diff --git a/init.c b/init.c index 9c81fe1..5ac2110 100644 --- a/init.c +++ b/init.c @@ -567,19 +567,41 @@ static int parse_ifdef (BUFFER *tmp, BUFFER *s, unsigned long data, BUFFER *err) break; } } + /* check for feature_* */ + if (!res) { + char* p = NULL; + i = 0; + j = mutt_strlen (tmp->data); + /* need at least input of 'feature_X' */ + if (j >= 7) { + p = tmp->data + 7; + j -= 7; + while (Features[i].name) { + if (mutt_strlen (Features[i].name) == j && + ascii_strncasecmp (Features[i].name, p, j)) { + res = 1; + break; + } + i++; + } + } + } if (!MoreArgs (s)) { - snprintf (err->data, err->dsize, _("ifdef: too few arguments")); + if (data) + snprintf (err->data, err->dsize, _("ifdef: too few arguments")); + else + snprintf (err->data, err->dsize, _("ifndef: too few arguments")); return (-1); } mutt_extract_token (tmp, s, M_TOKEN_SPACE); - if (res) + if ((data && res) || (!data && !res)) { if (mutt_parse_rc_line (tmp->data, &token, err) == -1) { - mutt_error ("Erreur: %s", err->data); + mutt_error ("Error: %s", err->data); FREE (&token.data); return (-1); }