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;
}