]> granicus.if.org Git - mutt/commitdiff
[unstable] Add the ~v pattern. From Vikas.
authorThomas Roessler <roessler@does-not-exist.org>
Tue, 26 Jan 1999 20:28:13 +0000 (20:28 +0000)
committerThomas Roessler <roessler@does-not-exist.org>
Tue, 26 Jan 1999 20:28:13 +0000 (20:28 +0000)
mutt.h
pattern.c
thread.c

diff --git a/mutt.h b/mutt.h
index eadae1a3145885d371e412aa35ab840b06796026..5b13a84ea69a5a09115982d4c1bea280a2d5c08b 100644 (file)
--- a/mutt.h
+++ b/mutt.h
@@ -193,6 +193,7 @@ enum
   M_OR,
   M_TO,
   M_CC,
+  M_COLLAPSED,
   M_SUBJECT,
   M_FROM,
   M_DATE,
index 1a8ce504a68a392b0db0fef11c2311d3363974c3..fecb60668dd1f146234624443c16aab6ef3d40d2 100644 (file)
--- a/pattern.c
+++ b/pattern.c
@@ -86,6 +86,7 @@ Flags[] =
   { 'T', M_TAG,                        0,              NULL },
   { 't', M_TO,                 0,              eat_regexp },
   { 'U', M_UNREAD,             0,              NULL },
+  { 'v', M_COLLAPSED,          0,              NULL },
   { 'x', M_REFERENCE,          0,              eat_regexp },
   { 'z', M_SIZE,               0,              eat_range },
   { 0 }
@@ -863,6 +864,8 @@ mutt_pattern_exec (struct pattern_t *pat, pattern_exec_flag flags, CONTEXT *ctx,
       return (pat->not ^ match_user (pat->alladdr, h->env->to, h->env->cc));
     case M_PERSONAL_FROM:
       return (pat->not ^ match_user (pat->alladdr, h->env->from, NULL));
+    case M_COLLAPSED:
+      return (pat->not ^ h->collapsed);
 #ifdef _PGPPATH
    case M_PGP_SIGN:
      return (pat->not ^ (h->pgp & PGPSIGN));
index 20e5a2dcc0fe6452bc2197214ee4f2fbc075da43..992e39bcbe06bf058939af2f7d3b49a4f24971de 100644 (file)
--- a/thread.c
+++ b/thread.c
@@ -749,6 +749,7 @@ int _mutt_traverse_thread (CONTEXT *ctx, HEADER *cur, int flag)
 
   if (flag & (M_THREAD_COLLAPSE | M_THREAD_UNCOLLAPSE))
   {
+    cur->pair = 0; /* force index entry's color to be re-evaluated */
     cur->collapsed = flag & M_THREAD_COLLAPSE;
     if (cur->virtual != -1)
     {
@@ -775,6 +776,7 @@ int _mutt_traverse_thread (CONTEXT *ctx, HEADER *cur, int flag)
   {
     if (flag & (M_THREAD_COLLAPSE | M_THREAD_UNCOLLAPSE))
     {
+      cur->pair = 0; /* force index entry's color to be re-evaluated */
       cur->collapsed = flag & M_THREAD_COLLAPSE;
       if (!roothdr && CHECK_LIMIT)
       {