X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=init.c;h=2bc7e2a37a9617cfc35db1397cdd012ba7d113b3;hb=a548b928816889f8f2aa5bfe8f755d8234ce19db;hp=9c81fe14b3a7578cd8993c3a02eced5c07283b42;hpb=5435729df11cfc6ca23e65e66ab034befece0b18;p=apps%2Fmadmutt.git diff --git a/init.c b/init.c index 9c81fe1..2bc7e2a 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); } @@ -630,6 +652,7 @@ static int parse_list (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) return 0; } +#if 0 static int _parse_rx_list (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err, int flags) { do @@ -665,6 +688,7 @@ static int parse_rx_unlist (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER * return 0; } +#endif static void _alternates_clean (void) { @@ -1214,7 +1238,8 @@ static void mutt_restore_default (struct option_t *p) FREE (&pp->pattern); regfree (pp->rx); FREE (&pp->rx); - } + } else + mutt_str_replace (&pp->pattern, (char*) p->init); } } break;