Hi, Joshua N Pritikin! Sometime (on Wednesday, May 19 at 19:06) I've received something... >Hi! > >First of all, thanks for developing such a great piece of software! > >I am interested in seeing all the mail headers and then pruning them >down. However, this doesn't seem to work: > > unignore * > ignore X-Filter In-Reply-To Autoforwarded X-UID > >After 'unignore *', mutt seems to forget about the ignores. Am I >doing something wrong? You're right. It's bug in "[un]ignore" code. Due to this bug You cannot use any [un]ignore commands on hook's. This was fixed by me and is part of our NNTP patch. Look to attachment! :-) WBR, Andrej.
diff -udpr mutt-0.96.1.orig/init.c mutt-0.96.1.news/init.c --- mutt-0.96.1.orig/init.c Thu Jan 7 21:01:20 1999 +++ mutt-0.96.1.news/init.c Wed Mar 10 17:28:29 1999 @@ -286,6 +286,8 @@ int mutt_extract_token (BUFFER *dest, BU return 0; } +static short _NeedToErase = 0; + void mutt_add_to_list (LIST **list, BUFFER *inp) { LIST *t, *last = NULL; @@ -296,6 +298,8 @@ void mutt_add_to_list (LIST **list, BUFF { mutt_extract_token (&buf, inp, 0); + if (_NeedToErase && mutt_strcmp ("*", buf.data) == 0) + continue; /* check to make sure the item is not already on this list */ for (last = *list; last; last = last->next) { @@ -368,14 +372,26 @@ static void remove_from_list (LIST **l, static int parse_unignore (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) { + char *p = s->dptr; + + /* + * since `*' cannot be placed on UnIgnore (it will be abort all Ignore), + * it just need to delete all Ignore. + */ + _NeedToErase++; mutt_add_to_list (&UnIgnore, s); + s->dptr = p; remove_from_list (&Ignore, s); + _NeedToErase = 0; return 0; } static int parse_ignore (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err) { + char *p = s->dptr; + mutt_add_to_list (&Ignore, s); + s->dptr = p; remove_from_list (&UnIgnore, s); return 0; }