diff options
Diffstat (limited to 'mail/mutt/files/patch-threadcomplete')
| -rw-r--r-- | mail/mutt/files/patch-threadcomplete | 80 |
1 files changed, 22 insertions, 58 deletions
diff --git a/mail/mutt/files/patch-threadcomplete b/mail/mutt/files/patch-threadcomplete index e4f56f261382..d151009ec1d7 100644 --- a/mail/mutt/files/patch-threadcomplete +++ b/mail/mutt/files/patch-threadcomplete @@ -1,18 +1,6 @@ -written by Nicolas Rachinsky <nr@rachinsky.de> -http://www.rachinsky.de - -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published -by the Free Software Foundation; version 2 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - ---- mutt-1.3.28.ori/mutt.h Thu Mar 14 19:22:25 2002 -+++ mutt.h Fri Mar 15 00:22:41 2002 -@@ -198,6 +198,7 @@ +--- mutt.h.orig2 Mon Sep 6 09:24:17 2004 ++++ mutt.h Mon Sep 6 09:27:04 2004 +@@ -212,6 +212,7 @@ M_LIMIT, M_EXPIRED, M_SUPERSEDED, @@ -20,9 +8,9 @@ General Public License for more details. /* actions for mutt_pattern_comp/mutt_pattern_exec */ M_AND, ---- mutt-1.3.28.ori/pattern.c Thu Mar 14 19:22:26 2002 -+++ pattern.c Fri Mar 15 00:23:52 2002 -@@ -50,6 +50,7 @@ +--- pattern.c.orig2 Sun Sep 18 15:17:46 2005 ++++ pattern.c Sun Sep 18 15:19:48 2005 +@@ -54,6 +54,7 @@ } Flags[] = { @@ -30,44 +18,20 @@ General Public License for more details. { 'A', M_ALL, 0, NULL }, { 'b', M_BODY, M_FULL_MSG, eat_regexp }, { 'B', M_WHOLE_MSG, M_FULL_MSG, eat_regexp }, -@@ -957,6 +958,27 @@ - return alladdr; - } - -+static int match_threadcomplete(int flag,THREAD *t,int left,int up,int right,int down) -+{ -+ int a=0; -+ HEADER *h=NULL; -+ -+ if(! t)return 0; -+ h=t->message; -+ if(! flag && h && h->tagged)return 1; -+ if(flag && h && ! h->tagged) return 1; -+ -+ if(up)a=match_threadcomplete(flag,t->parent,1,1,1,0); -+ if(a)return a; -+ if(right && t->parent)a=match_threadcomplete(flag,t->next,0,0,1,1); -+ if(a)return a; -+ if(left && t->parent)a=match_threadcomplete(flag,t->prev,1,0,0,1); -+ if(a)return a; -+ if(down)a=match_threadcomplete(flag,t->child,1,0,1,1); -+ if(a)return a; -+ return 0; -+} -+ - /* flags - M_MATCH_FULL_ADDRESS match both personal and machine address */ - int -@@ -1053,6 +1075,8 @@ - return (pat->not ^ (h->env->x_label && regexec (pat->rx, h->env->x_label, 0, NULL, 0) == 0)); - case M_DUPLICATED: - return (pat->not ^ (h->thread && h->thread->duplicate_thread)); +@@ -1139,6 +1140,16 @@ + 2, h->env->to, h->env->cc)); + case M_LIST: /* known list, subscribed or not */ + return (pat->not ^ mutt_is_list_cc (pat->alladdr, h->env->to, h->env->cc)); + case M_THREADCOMPLETE: -+ return ((h->thread && match_threadcomplete(pat->not,h->thread,1,1,1,1))); - } - mutt_error (_("error: unknown op %d (report this error)."), pat->op); - return (-1); ---- PATCHES~ Tue Nov 6 19:59:33 2001 -+++ PATCHES Tue Nov 6 19:59:42 2001 -@@ -1,0 +1 @@ -+1.3.28.nr.threadcomplete ++ { static pattern_t tmp; ++ static short pattern_set = 0; ++ if(! pattern_set) { ++ memset (&tmp, 0, sizeof (tmp)); ++ tmp.op = M_TAG; ++ pattern_set = 1; ++ } ++ return (pat->not ^ (h->env && match_threadcomplete(&tmp, flags, ctx, h->thread, 1, 1, 1, 1))); ++ } + case M_SUBSCRIBED_LIST: + return (pat->not ^ mutt_is_list_recipient (pat->alladdr, h->env->to, h->env->cc)); + case M_PERSONAL_RECIP: |
