summaryrefslogtreecommitdiffstats
path: root/thread.c
diff options
context:
space:
mode:
authorThomas Roessler <roessler@does-not-exist.org>2001-12-17 10:05:33 +0000
committerThomas Roessler <roessler@does-not-exist.org>2001-12-17 10:05:33 +0000
commit31032c82e5e8110d09edd6c8b88bcfb7737e947d (patch)
treefec175f629374831194483f6158b4bf9db3cbae1 /thread.c
parentfc0708e24a8d552a3e404a4cca4a26ffd285f6c0 (diff)
Another threading update.
Diffstat (limited to 'thread.c')
-rw-r--r--thread.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/thread.c b/thread.c
index 2fb314a6..ebc400d4 100644
--- a/thread.c
+++ b/thread.c
@@ -128,7 +128,7 @@ void mutt_linearize_tree (CONTEXT *ctx, int linearize)
char corner = (Sort & SORT_REVERSE) ? M_TREE_ULCORNER : M_TREE_LLCORNER;
char vtee = (Sort & SORT_REVERSE) ? M_TREE_BTEE : M_TREE_TTEE;
int depth = 0, start_depth = 0, max_depth = 0, max_width = 0;
- int nextdisp = 0, visible, pseudo = 0;
+ int nextdisp = 0, visible, pseudo = 0, hidden = 0;
THREAD *tree = ctx->tree;
HEADER **array = ctx->hdrs + (Sort & SORT_REVERSE ? ctx->msgcount - 1 : 0);
HEADER *hdr;
@@ -161,7 +161,7 @@ void mutt_linearize_tree (CONTEXT *ctx, int linearize)
if (depth && start_depth == depth)
myarrow[0] = nextdisp ? M_TREE_LTEE : corner;
- else if (tree->parent->message)
+ else if (hidden)
myarrow[0] = M_TREE_HIDDEN;
else if (option (OPTHIDEMISSING))
myarrow[0] = nextdisp ? vtee : M_TREE_HLINE;
@@ -170,6 +170,7 @@ void mutt_linearize_tree (CONTEXT *ctx, int linearize)
myarrow[1] = pseudo ? M_TREE_STAR
: (tree->duplicate_thread ? M_TREE_EQUALS : M_TREE_HLINE);
pseudo = 0;
+ hidden = 0;
if (visible)
{
@@ -213,6 +214,8 @@ void mutt_linearize_tree (CONTEXT *ctx, int linearize)
if (visible)
start_depth = depth;
}
+ if (hdr)
+ hidden = 1;
tree = tree->child;
if (tree->fake_thread)
@@ -246,6 +249,8 @@ void mutt_linearize_tree (CONTEXT *ctx, int linearize)
break;
if (!nextdisp)
nextdisp = is_next_displayed (ctx, tree);
+ if (tree->fake_thread)
+ pseudo = 1;
hdr = tree->message;
}
}