summaryrefslogtreecommitdiffstats
path: root/flags.c
diff options
context:
space:
mode:
authorThomas Roessler <roessler@does-not-exist.org>2001-10-31 09:20:38 +0000
committerThomas Roessler <roessler@does-not-exist.org>2001-10-31 09:20:38 +0000
commit8c5fc80bfb03e714eee48016177e01491b9cea8d (patch)
tree7e5e28635c3c6c7a5cbe75ef3ed44a779dbdfd24 /flags.c
parentea35088ae14fd4ceb1afc0928900a47ac4e9b507 (diff)
Advanced threading, v 5.1. From Daniel Eisenbud
<eisenbud@cs.swarthmore.edu>.
Diffstat (limited to 'flags.c')
-rw-r--r--flags.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/flags.c b/flags.c
index 60ae4c7e..a231eca0 100644
--- a/flags.c
+++ b/flags.c
@@ -240,10 +240,9 @@ void mutt_tag_set_flag (int flag, int bf)
if (Context->hdrs[Context->v2r[j]]->tagged)
mutt_set_flag (Context, Context->hdrs[Context->v2r[j]], flag, bf);
}
-
-int mutt_thread_set_flag (HEADER *cur, int flag, int bf, int subthread)
+int mutt_thread_set_flag (HEADER *hdr, int flag, int bf, int subthread)
{
- HEADER *start;
+ THREAD *start, *cur = hdr->thread;
if ((Sort & SORT_MASK) != SORT_THREADS)
{
@@ -256,12 +255,17 @@ int mutt_thread_set_flag (HEADER *cur, int flag, int bf, int subthread)
cur = cur->parent;
start = cur;
- mutt_set_flag (Context, cur, flag, bf);
+ if (cur->message)
+ mutt_set_flag (Context, cur->message, flag, bf);
+
if ((cur = cur->child) == NULL)
return (0);
+
FOREVER
{
- mutt_set_flag (Context, cur, flag, bf);
+ if (cur->message)
+ mutt_set_flag (Context, cur->message, flag, bf);
+
if (cur->child)
cur = cur->child;
else if (cur->next)