diff --git a/mail/mutt-devel/Makefile b/mail/mutt-devel/Makefile index 703c246e6f8c..1e9f979669e4 100644 --- a/mail/mutt-devel/Makefile +++ b/mail/mutt-devel/Makefile @@ -75,7 +75,7 @@ PORTNAME= mutt-devel PORTVERSION= 1.5.4 -PORTREVISION?= 3 +PORTREVISION?= 4 CATEGORIES+= mail ipv6 .if defined(WITH_MUTT_NNTP) CATEGORIES+= news diff --git a/mail/mutt-devel/files/patch-threadcomplete b/mail/mutt-devel/files/patch-threadcomplete new file mode 100644 index 000000000000..2a226146b108 --- /dev/null +++ b/mail/mutt-devel/files/patch-threadcomplete @@ -0,0 +1,73 @@ +written by Nicolas Rachinsky +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 @@ + M_LIMIT, + M_EXPIRED, + M_SUPERSEDED, ++ M_THREADCOMPLETE, + + /* actions for mutt_pattern_comp/mutt_pattern_exec */ + M_AND, +--- pattern.c.orig Fri Jul 11 09:19:06 2003 ++++ pattern.c Fri Jul 11 09:23:17 2003 +@@ -44,6 +44,7 @@ + } + Flags[] = + { ++ { 'a', M_THREADCOMPLETE, 0, NULL }, + { 'A', M_ALL, 0, NULL }, + { 'b', M_BODY, M_FULL_MSG, eat_regexp }, + { 'B', M_WHOLE_MSG, M_FULL_MSG, eat_regexp }, +@@ -946,6 +947,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 +@@ -1024,6 +1046,8 @@ + pat->alladdr, 2, h->env->to, h->env->cc)); + case M_LIST: + return (pat->not ^ mutt_is_list_recipient (pat->alladdr, h->env->to, h->env->cc)); ++ case M_THREADCOMPLETE: ++ return ((h->thread && match_threadcomplete(pat->not,h->thread,1,1,1,1))); + case M_PERSONAL_RECIP: + return (pat->not ^ match_user (pat->alladdr, h->env->to, h->env->cc)); + case M_PERSONAL_FROM: +--- PATCHES~ Tue Nov 6 19:59:33 2001 ++++ PATCHES Tue Nov 6 19:59:42 2001 +@@ -1,0 +1 @@ ++1.3.28.nr.threadcomplete