From 08019c8c26f14b8cb355f66d1a413e0d2196f28d Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Sat, 3 Jun 2023 10:55:59 +1000 Subject: [PATCH] doc-email: be more subtle with default visibility. We don't want large (base64) attachments to be visible by default, nor do we want transformations to appear too early. So mark all spacers, the orig-headers, and the orig first part as visible, and everything else invisible. This will, for example, stop LineCount from counting too much of it if it happens to start before final visibility is configured Signed-off-by: NeilBrown --- doc-email.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/doc-email.c b/doc-email.c index 5b7b7c7c..bafd220e 100644 --- a/doc-email.c +++ b/doc-email.c @@ -1233,7 +1233,7 @@ DEF_CMD(attach_email_view) struct pane *p; struct email_view *evi; struct mark *m; - int n; + int n, i; m = vmark_new(ci->focus, MARK_UNGROUPED, NULL); if (!m) @@ -1247,7 +1247,17 @@ DEF_CMD(attach_email_view) alloc(evi, pane); evi->parts = n; evi->invis = calloc(n+1, sizeof(char)); - memset(evi->invis, 'v', n); + for (i = 0; i < n; i++) { + if (is_spacer(i)) + /* Spacers must be visible */ + evi->invis[i] = 'v'; + else if (is_orig(i) && i < 2*3) + /* Headers and first part can be visible */ + evi->invis[i] = 'v'; + else + /* Everything else default to invisible */ + evi->invis[i] = 'i'; + } p = pane_register(ci->focus, 0, &email_view_handle.c, evi); if (!p) { free(evi); -- 2.39.5