Changeset View
Changeset View
Standalone View
Standalone View
mail/mutt/files/patch-threadcomplete
--- mutt.h.orig 2017-06-03 22:52:35 UTC | --- mutt.h.orig 2017-09-04 23:39:03 UTC | ||||
+++ mutt.h | +++ mutt.h | ||||
@@ -211,6 +211,7 @@ enum | @@ -211,6 +211,7 @@ enum | ||||
MUTT_EXPIRED, | MUTT_EXPIRED, | ||||
MUTT_SUPERSEDED, | MUTT_SUPERSEDED, | ||||
MUTT_TRASH, | MUTT_TRASH, | ||||
+ MUTT_THREADCOMPLETE, | + MUTT_THREADCOMPLETE, | ||||
/* actions for mutt_pattern_comp/mutt_pattern_exec */ | /* actions for mutt_pattern_comp/mutt_pattern_exec */ | ||||
MUTT_AND, | MUTT_AND, | ||||
--- pattern.c.orig 2017-06-03 22:52:35 UTC | --- pattern.c.orig 2017-09-04 23:39:03 UTC | ||||
+++ pattern.c | +++ pattern.c | ||||
@@ -57,6 +57,7 @@ static const struct pattern_flags | @@ -56,6 +56,7 @@ static const struct pattern_flags | ||||
} | } | ||||
Flags[] = | Flags[] = | ||||
{ | { | ||||
+ { 'a', MUTT_THREADCOMPLETE, 0, NULL }, | + { 'a', MUTT_THREADCOMPLETE, 0, NULL }, | ||||
{ 'A', MUTT_ALL, 0, NULL }, | { 'A', MUTT_ALL, 0, NULL }, | ||||
{ 'b', MUTT_BODY, MUTT_FULL_MSG, eat_regexp }, | { 'b', MUTT_BODY, MUTT_FULL_MSG, eat_regexp }, | ||||
{ 'B', MUTT_WHOLE_MSG, MUTT_FULL_MSG, eat_regexp }, | { 'B', MUTT_WHOLE_MSG, MUTT_FULL_MSG, eat_regexp }, | ||||
@@ -1302,6 +1303,16 @@ pattern_exec (struct pattern_t *pat, pat | @@ -1270,6 +1271,16 @@ mutt_pattern_exec (struct pattern_t *pat | ||||
else | else | ||||
result = mutt_is_list_cc (pat->alladdr, h->env->to, h->env->cc); | result = mutt_is_list_cc (pat->alladdr, h->env->to, h->env->cc); | ||||
return (pat->not ^ result); | return (pat->not ^ result); | ||||
+ case MUTT_THREADCOMPLETE: | + case MUTT_THREADCOMPLETE: | ||||
+ { static pattern_t tmp; | + { static pattern_t tmp; | ||||
+ static short pattern_set = 0; | + static short pattern_set = 0; | ||||
+ if(! pattern_set) { | + if(! pattern_set) { | ||||
+ memset (&tmp, 0, sizeof (tmp)); | + memset (&tmp, 0, sizeof (tmp)); | ||||
+ tmp.op = MUTT_TAG; | + tmp.op = MUTT_TAG; | ||||
+ pattern_set = 1; | + pattern_set = 1; | ||||
+ } | + } | ||||
+ return (pat->not ^ (h->env && match_threadcomplete(&tmp, flags, ctx, h->thread, 1, 1, 1, 1))); | + return (pat->not ^ (h->env && match_threadcomplete(&tmp, flags, ctx, h->thread, 1, 1, 1, 1))); | ||||
+ } | + } | ||||
case MUTT_SUBSCRIBED_LIST: | case MUTT_SUBSCRIBED_LIST: | ||||
if (cache) | if (cache) | ||||
{ | { |