diff -pruN mutt-1.3.28.orig/doc/manual.sgml.head mutt-1.3.28/doc/manual.sgml.head --- mutt-1.3.28.orig/doc/manual.sgml.head Sat Jan 12 12:39:49 2002 +++ mutt-1.3.28/doc/manual.sgml.head Wed Mar 20 21:33:35 2002 @@ -1719,6 +1719,7 @@ messages: ~y EXPR messages which contain EXPR in the `X-Label' field ~z [MIN]-[MAX] messages with a size in the range MIN to MAX *) ~= duplicated messages (see $duplicate_threads) +~# broken threads (see $strict_threads) Where EXPR, USER, ID, and SUBJECT are diff -pruN mutt-1.3.28.orig/mutt.h mutt-1.3.28/mutt.h --- mutt-1.3.28.orig/mutt.h Thu Feb 28 09:24:13 2002 +++ mutt-1.3.28/mutt.h Wed Mar 20 21:33:35 2002 @@ -195,6 +195,7 @@ enum M_AND, M_OR, M_TO, + M_BROKEN, M_CC, M_COLLAPSED, M_SUBJECT, diff -pruN mutt-1.3.28.orig/pattern.c mutt-1.3.28/pattern.c --- mutt-1.3.28.orig/pattern.c Tue Jan 15 10:03:33 2002 +++ mutt-1.3.28/pattern.c Wed Mar 20 21:34:43 2002 @@ -91,6 +91,7 @@ Flags[] = { 'y', M_XLABEL, 0, eat_regexp }, { 'z', M_SIZE, 0, eat_range }, { '=', M_DUPLICATED, 0, NULL }, + { '#', M_BROKEN, 0, NULL }, { 0 } }; @@ -968,6 +969,8 @@ mutt_pattern_exec (struct pattern_t *pat { case M_AND: return (pat->not ^ (perform_and (pat->child, flags, ctx, h) > 0)); + case M_BROKEN: + return (pat->not ^ (h->thread && h->thread->fake_thread)); case M_OR: return (pat->not ^ (perform_or (pat->child, flags, ctx, h) > 0)); case M_ALL: diff -pruN mutt-1.3.28.orig/PATCHES mutt-1.3.28/PATCHES --- mutt-1.3.28.orig/PATCHES Mon Nov 26 20:16:52 2001 +++ mutt-1.3.28/PATCHES Wed Mar 20 21:33:35 2002 @@ -1,0 +1 @@ +patch-1.3.28.cd.pattern_broken.1