summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin McCarthy <kevin@8t8.us>2017-08-10 18:18:19 -0700
committerKevin McCarthy <kevin@8t8.us>2017-08-10 18:18:19 -0700
commit3433587a5a77ef94806236cbeb6181df71440928 (patch)
tree2dbfdc6bbe6cd6701eb24270a246b9a038fa906e
parenta19e52661bb5f4e6d34c803f469f6835c309e06a (diff)
Change helpers functions to pass actx. (see #3728)
Change the pager, compose, recvattach and recvcmd to pass the actx instead of the individual idx and idxlen parameters. Separate out the compose menu exit logic to first free the BODY data and then call the shared actx free function at the bottom.
-rw-r--r--attach.c12
-rw-r--r--attach.h10
-rw-r--r--browser.c2
-rw-r--r--compose.c24
-rw-r--r--pager.c23
-rw-r--r--pager.h3
-rw-r--r--recvattach.c14
-rw-r--r--recvcmd.c206
8 files changed, 138 insertions, 156 deletions
diff --git a/attach.c b/attach.c
index 2546e117..7a512419 100644
--- a/attach.c
+++ b/attach.c
@@ -330,7 +330,7 @@ void mutt_check_lookup_list (BODY *b, char *type, int len)
/* returns -1 on error, 0 or the return code from mutt_do_pager() on success */
int mutt_view_attachment (FILE *fp, BODY *a, int flag, HEADER *hdr,
- ATTACHPTR **idx, short idxlen)
+ ATTACH_CONTEXT *actx)
{
char tempfile[_POSIX_PATH_MAX] = "";
char pagerfile[_POSIX_PATH_MAX] = "";
@@ -571,8 +571,7 @@ int mutt_view_attachment (FILE *fp, BODY *a, int flag, HEADER *hdr,
info.fp = fp;
info.bdy = a;
info.ctx = Context;
- info.idx = idx;
- info.idxlen = idxlen;
+ info.actx = actx;
info.hdr = hdr;
rc = mutt_do_pager (descrip, pagerfile,
@@ -1046,7 +1045,12 @@ int mutt_print_attachment (FILE *fp, BODY *a)
void mutt_free_attach_context (ATTACH_CONTEXT **pactx)
{
int i;
- ATTACH_CONTEXT *actx = *pactx;
+ ATTACH_CONTEXT *actx;
+
+ if (!pactx || !*pactx)
+ return;
+
+ actx = *pactx;
for (i = 0; i < actx->idxlen; i++)
{
diff --git a/attach.h b/attach.h
index ac579b0a..e5b3a82d 100644
--- a/attach.h
+++ b/attach.h
@@ -42,7 +42,7 @@ typedef struct attach_ctx
void mutt_gen_attach_list (ATTACH_CONTEXT *, BODY *, int, int, int);
void mutt_update_tree (ATTACH_CONTEXT *);
-int mutt_view_attachment (FILE*, BODY *, int, HEADER *, ATTACHPTR **, short);
+int mutt_view_attachment (FILE*, BODY *, int, HEADER *, ATTACH_CONTEXT *);
int mutt_tag_attach (MUTTMENU *menu, int n, int m);
int mutt_attach_display_loop (MUTTMENU *menu, int op, FILE *fp, HEADER *hdr,
@@ -54,10 +54,10 @@ void mutt_save_attachment_list (FILE *fp, int tag, BODY *top, HEADER *hdr, MUTTM
void mutt_pipe_attachment_list (FILE *fp, int tag, BODY *top, int filter);
void mutt_print_attachment_list (FILE *fp, int tag, BODY *top);
-void mutt_attach_bounce (FILE *, HEADER *, ATTACHPTR **, short, BODY *);
-void mutt_attach_resend (FILE *, HEADER *, ATTACHPTR **, short, BODY *);
-void mutt_attach_forward (FILE *, HEADER *, ATTACHPTR **, short, BODY *);
-void mutt_attach_reply (FILE *, HEADER *, ATTACHPTR **, short, BODY *, int);
+void mutt_attach_bounce (FILE *, HEADER *, ATTACH_CONTEXT *, BODY *);
+void mutt_attach_resend (FILE *, HEADER *, ATTACH_CONTEXT *, BODY *);
+void mutt_attach_forward (FILE *, HEADER *, ATTACH_CONTEXT *, BODY *);
+void mutt_attach_reply (FILE *, HEADER *, ATTACH_CONTEXT *, BODY *, int);
void mutt_free_attach_context (ATTACH_CONTEXT **pactx);
diff --git a/browser.c b/browser.c
index 03b1fc34..43546cf3 100644
--- a/browser.c
+++ b/browser.c
@@ -1275,7 +1275,7 @@ void _mutt_select_file (char *f, size_t flen, int flags, char ***files, int *num
b = mutt_make_file_attach (buf);
if (b != NULL)
{
- mutt_view_attachment (NULL, b, MUTT_REGULAR, NULL, NULL, 0);
+ mutt_view_attachment (NULL, b, MUTT_REGULAR, NULL, NULL);
mutt_free_body (&b);
menu->redraw = REDRAW_FULL;
}
diff --git a/compose.c b/compose.c
index 2d84f0e3..183976e0 100644
--- a/compose.c
+++ b/compose.c
@@ -1340,18 +1340,13 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
if (!(flags & MUTT_COMPOSE_NOFREEHEADER))
{
- while (actx->idxlen-- > 0)
+ for (i = 0; i < actx->idxlen; i++)
{
/* avoid freeing other attachments */
- actx->idx[actx->idxlen]->content->next = NULL;
- actx->idx[actx->idxlen]->content->parts = NULL;
- mutt_free_body (&actx->idx[actx->idxlen]->content);
- FREE (&actx->idx[actx->idxlen]->tree);
- FREE (&actx->idx[actx->idxlen]);
+ actx->idx[i]->content->next = NULL;
+ actx->idx[i]->content->parts = NULL;
+ mutt_free_body (&actx->idx[i]->content);
}
- FREE (&actx->idx);
- actx->idxlen = 0;
- actx->idxmax = 0;
}
r = -1;
loop = 0;
@@ -1489,20 +1484,11 @@ int mutt_compose_menu (HEADER *msg, /* structure for new message */
mutt_menuDestroy (&menu);
if (actx->idxlen)
- {
msg->content = actx->idx[0]->content;
- for (i = 0; i < actx->idxlen; i++)
- {
- actx->idx[i]->content->aptr = NULL;
- FREE (&actx->idx[i]->tree);
- FREE (&actx->idx[i]);
- }
- }
else
msg->content = NULL;
- FREE (&actx->idx);
- FREE (&actx);
+ mutt_free_attach_context (&actx);
return (r);
}
diff --git a/pager.c b/pager.c
index 34b9c1fe..d435cf8f 100644
--- a/pager.c
+++ b/pager.c
@@ -2462,8 +2462,7 @@ search_next:
CHECK_ATTACH;
if (IsMsgAttach (extra))
mutt_attach_bounce (extra->fp, extra->hdr,
- extra->idx, extra->idxlen,
- extra->bdy);
+ extra->actx, extra->bdy);
else
ci_bounce_message (extra->hdr);
break;
@@ -2473,8 +2472,7 @@ search_next:
CHECK_ATTACH;
if (IsMsgAttach (extra))
mutt_attach_resend (extra->fp, extra->hdr,
- extra->idx, extra->idxlen,
- extra->bdy);
+ extra->actx, extra->bdy);
else
mutt_resend_message (NULL, extra->ctx, extra->hdr);
pager_menu->redraw = REDRAW_FULL;
@@ -2640,9 +2638,8 @@ search_next:
CHECK_MODE(IsHeader (extra) || IsMsgAttach (extra));
CHECK_ATTACH;
if (IsMsgAttach (extra))
- mutt_attach_reply (extra->fp, extra->hdr, extra->idx,
- extra->idxlen, extra->bdy,
- SENDREPLY);
+ mutt_attach_reply (extra->fp, extra->hdr, extra->actx,
+ extra->bdy, SENDREPLY);
else
ci_send_message (SENDREPLY, NULL, NULL, extra->ctx, extra->hdr);
pager_menu->redraw = REDRAW_FULL;
@@ -2659,8 +2656,8 @@ search_next:
CHECK_MODE(IsHeader (extra) || IsMsgAttach (extra));
CHECK_ATTACH;
if (IsMsgAttach (extra))
- mutt_attach_reply (extra->fp, extra->hdr, extra->idx,
- extra->idxlen, extra->bdy, SENDREPLY|SENDGROUPREPLY);
+ mutt_attach_reply (extra->fp, extra->hdr, extra->actx,
+ extra->bdy, SENDREPLY|SENDGROUPREPLY);
else
ci_send_message (SENDREPLY | SENDGROUPREPLY, NULL, NULL, extra->ctx, extra->hdr);
pager_menu->redraw = REDRAW_FULL;
@@ -2670,8 +2667,8 @@ search_next:
CHECK_MODE(IsHeader (extra) || IsMsgAttach (extra));
CHECK_ATTACH;
if (IsMsgAttach (extra))
- mutt_attach_reply (extra->fp, extra->hdr, extra->idx,
- extra->idxlen, extra->bdy, SENDREPLY|SENDLISTREPLY);
+ mutt_attach_reply (extra->fp, extra->hdr, extra->actx,
+ extra->bdy, SENDREPLY|SENDLISTREPLY);
else
ci_send_message (SENDREPLY | SENDLISTREPLY, NULL, NULL, extra->ctx, extra->hdr);
pager_menu->redraw = REDRAW_FULL;
@@ -2681,8 +2678,8 @@ search_next:
CHECK_MODE(IsHeader (extra) || IsMsgAttach (extra));
CHECK_ATTACH;
if (IsMsgAttach (extra))
- mutt_attach_forward (extra->fp, extra->hdr, extra->idx,
- extra->idxlen, extra->bdy);
+ mutt_attach_forward (extra->fp, extra->hdr, extra->actx,
+ extra->bdy);
else
ci_send_message (SENDFORWARD, NULL, NULL, extra->ctx, extra->hdr);
pager_menu->redraw = REDRAW_FULL;
diff --git a/pager.h b/pager.h
index 36c8725e..f3fd1f1a 100644
--- a/pager.h
+++ b/pager.h
@@ -42,8 +42,7 @@ typedef struct
HEADER *hdr; /* current message */
BODY *bdy; /* current attachment */
FILE *fp; /* source stream */
- ATTACHPTR **idx; /* attachment information */
- short idxlen;
+ ATTACH_CONTEXT *actx; /* attachment information */
} pager_t;
int mutt_do_pager (const char *, const char *, int, pager_t *);
diff --git a/recvattach.c b/recvattach.c
index 2e09d844..120f6bf4 100644
--- a/recvattach.c
+++ b/recvattach.c
@@ -839,7 +839,7 @@ mutt_attach_display_loop (MUTTMENU *menu, int op, FILE *fp, HEADER *hdr,
case OP_VIEW_ATTACH:
op = mutt_view_attachment (fp, actx->idx[menu->current]->content, MUTT_REGULAR,
- hdr, actx->idx, actx->idxlen);
+ hdr, actx);
break;
case OP_NEXT_ENTRY:
@@ -1037,13 +1037,13 @@ void mutt_view_attachments (HEADER *hdr)
{
case OP_ATTACH_VIEW_MAILCAP:
mutt_view_attachment (fp, actx->idx[menu->current]->content, MUTT_MAILCAP,
- hdr, actx->idx, actx->idxlen);
+ hdr, actx);
menu->redraw = REDRAW_FULL;
break;
case OP_ATTACH_VIEW_TEXT:
mutt_view_attachment (fp, actx->idx[menu->current]->content, MUTT_AS_TEXT,
- hdr, actx->idx, actx->idxlen);
+ hdr, actx);
menu->redraw = REDRAW_FULL;
break;
@@ -1201,21 +1201,21 @@ void mutt_view_attachments (HEADER *hdr)
case OP_RESEND:
CHECK_ATTACH;
- mutt_attach_resend (fp, hdr, actx->idx, actx->idxlen,
+ mutt_attach_resend (fp, hdr, actx,
menu->tagprefix ? NULL : actx->idx[menu->current]->content);
menu->redraw = REDRAW_FULL;
break;
case OP_BOUNCE_MESSAGE:
CHECK_ATTACH;
- mutt_attach_bounce (fp, hdr, actx->idx, actx->idxlen,
+ mutt_attach_bounce (fp, hdr, actx,
menu->tagprefix ? NULL : actx->idx[menu->current]->content);
menu->redraw = REDRAW_FULL;
break;
case OP_FORWARD_MESSAGE:
CHECK_ATTACH;
- mutt_attach_forward (fp, hdr, actx->idx, actx->idxlen,
+ mutt_attach_forward (fp, hdr, actx,
menu->tagprefix ? NULL : actx->idx[menu->current]->content);
menu->redraw = REDRAW_FULL;
break;
@@ -1229,7 +1229,7 @@ void mutt_view_attachments (HEADER *hdr)
flags = SENDREPLY |
(op == OP_GROUP_REPLY ? SENDGROUPREPLY : 0) |
(op == OP_LIST_REPLY ? SENDLISTREPLY : 0);
- mutt_attach_reply (fp, hdr, actx->idx, actx->idxlen,
+ mutt_attach_reply (fp, hdr, actx,
menu->tagprefix ? NULL : actx->idx[menu->current]->content, flags);
menu->redraw = REDRAW_FULL;
break;
diff --git a/recvcmd.c b/recvcmd.c
index 0a5fb589..26a0c9cc 100644
--- a/recvcmd.c
+++ b/recvcmd.c
@@ -46,7 +46,7 @@ static short check_msg (BODY * b, short err)
return 0;
}
-static short check_all_msg (ATTACHPTR ** idx, short idxlen,
+static short check_all_msg (ATTACH_CONTEXT *actx,
BODY * cur, short err)
{
short i;
@@ -55,11 +55,11 @@ static short check_all_msg (ATTACHPTR ** idx, short idxlen,
return -1;
else if (!cur)
{
- for (i = 0; i < idxlen; i++)
+ for (i = 0; i < actx->idxlen; i++)
{
- if (idx[i]->content->tagged)
+ if (actx->idx[i]->content->tagged)
{
- if (check_msg (idx[i]->content, err) == -1)
+ if (check_msg (actx->idx[i]->content, err) == -1)
return -1;
}
}
@@ -70,28 +70,27 @@ static short check_all_msg (ATTACHPTR ** idx, short idxlen,
/* can we decode all tagged attachments? */
-static short check_can_decode (ATTACHPTR ** idx, short idxlen,
- BODY * cur)
+static short check_can_decode (ATTACH_CONTEXT *actx, BODY * cur)
{
short i;
if (cur)
return mutt_can_decode (cur);
- for (i = 0; i < idxlen; i++)
- if (idx[i]->content->tagged && !mutt_can_decode (idx[i]->content))
+ for (i = 0; i < actx->idxlen; i++)
+ if (actx->idx[i]->content->tagged && !mutt_can_decode (actx->idx[i]->content))
return 0;
return 1;
}
-static short count_tagged (ATTACHPTR **idx, short idxlen)
+static short count_tagged (ATTACH_CONTEXT *actx)
{
short count = 0;
short i;
- for (i = 0; i < idxlen; i++)
- if (idx[i]->content->tagged)
+ for (i = 0; i < actx->idxlen; i++)
+ if (actx->idx[i]->content->tagged)
count++;
return count;
@@ -101,14 +100,13 @@ static short count_tagged (ATTACHPTR **idx, short idxlen)
* attachment.
*/
-static short count_tagged_children (ATTACHPTR ** idx,
- short idxlen, short i)
+static short count_tagged_children (ATTACH_CONTEXT *actx, short i)
{
- short level = idx[i]->level;
+ short level = actx->idx[i]->level;
short count = 0;
- while ((++i < idxlen) && (level < idx[i]->level))
- if (idx[i]->content->tagged)
+ while ((++i < actx->idxlen) && (level < actx->idx[i]->level))
+ if (actx->idx[i]->content->tagged)
count++;
return count;
@@ -122,8 +120,8 @@ static short count_tagged_children (ATTACHPTR ** idx,
**
**/
-void mutt_attach_bounce (FILE * fp, HEADER * hdr,
- ATTACHPTR ** idx, short idxlen, BODY * cur)
+void mutt_attach_bounce (FILE * fp, HEADER * hdr,
+ ATTACH_CONTEXT *actx, BODY * cur)
{
short i;
char prompt[STRING];
@@ -133,11 +131,11 @@ void mutt_attach_bounce (FILE * fp, HEADER * hdr,
int ret = 0;
int p = 0;
- if (check_all_msg (idx, idxlen, cur, 1) == -1)
+ if (check_all_msg (actx, cur, 1) == -1)
return;
/* one or more messages? */
- p = (cur || count_tagged (idx, idxlen) == 1);
+ p = (cur || count_tagged (actx) == 1);
/* RfC 5322 mandates a From: header, so warn before bouncing
* messages without one */
@@ -152,11 +150,11 @@ void mutt_attach_bounce (FILE * fp, HEADER * hdr,
}
else
{
- for (i = 0; i < idxlen; i++)
+ for (i = 0; i < actx->idxlen; i++)
{
- if (idx[i]->content->tagged)
+ if (actx->idx[i]->content->tagged)
{
- if (!idx[i]->content->hdr->env->from)
+ if (!actx->idx[i]->content->hdr->env->from)
{
mutt_error _("Warning: message contains no From: header");
mutt_sleep (2);
@@ -227,10 +225,10 @@ void mutt_attach_bounce (FILE * fp, HEADER * hdr,
ret = mutt_bounce_message (fp, cur->hdr, adr);
else
{
- for (i = 0; i < idxlen; i++)
+ for (i = 0; i < actx->idxlen; i++)
{
- if (idx[i]->content->tagged)
- if (mutt_bounce_message (fp, idx[i]->content->hdr, adr))
+ if (actx->idx[i]->content->tagged)
+ if (mutt_bounce_message (fp, actx->idx[i]->content->hdr, adr))
ret = 1;
}
}
@@ -250,21 +248,21 @@ void mutt_attach_bounce (FILE * fp, HEADER * hdr,
**
**/
-void mutt_attach_resend (FILE * fp, HEADER * hdr, ATTACHPTR ** idx,
- short idxlen, BODY * cur)
+void mutt_attach_resend (FILE * fp, HEADER * hdr, ATTACH_CONTEXT *actx,
+ BODY * cur)
{
short i;
- if (check_all_msg (idx, idxlen, cur, 1) == -1)
+ if (check_all_msg (actx, cur, 1) == -1)
return;
if (cur)
mutt_resend_message (fp, Context, cur->hdr);
else
{
- for (i = 0; i < idxlen; i++)
- if (idx[i]->content->tagged)
- mutt_resend_message (fp, Context, idx[i]->content->hdr);
+ for (i = 0; i < actx->idxlen; i++)
+ if (actx->idx[i]->content->tagged)
+ mutt_resend_message (fp, Context, actx->idx[i]->content->hdr);
}
}
@@ -277,23 +275,22 @@ void mutt_attach_resend (FILE * fp, HEADER * hdr, ATTACHPTR ** idx,
/* try to find a common parent message for the tagged attachments. */
-static HEADER *find_common_parent (ATTACHPTR ** idx, short idxlen,
- short nattach)
+static HEADER *find_common_parent (ATTACH_CONTEXT *actx, short nattach)
{
short i;
short nchildren;
- for (i = 0; i < idxlen; i++)
- if (idx[i]->content->tagged)
+ for (i = 0; i < actx->idxlen; i++)
+ if (actx->idx[i]->content->tagged)
break;
while (--i >= 0)
{
- if (mutt_is_message_type (idx[i]->content->type, idx[i]->content->subtype))
+ if (mutt_is_message_type (actx->idx[i]->content->type, actx->idx[i]->content->subtype))
{
- nchildren = count_tagged_children (idx, idxlen, i);
+ nchildren = count_tagged_children (actx, i);
if (nchildren == nattach)
- return idx[i]->content->hdr;
+ return actx->idx[i]->content->hdr;
}
}
@@ -308,37 +305,37 @@ static HEADER *find_common_parent (ATTACHPTR ** idx, short idxlen,
* bit. For now, it's not worth the effort.
*/
-static int is_parent (short i, ATTACHPTR **idx, short idxlen, BODY *cur)
+static int is_parent (short i, ATTACH_CONTEXT *actx, BODY *cur)
{
- short level = idx[i]->level;
+ short level = actx->idx[i]->level;
- while ((++i < idxlen) && idx[i]->level > level)
+ while ((++i < actx->idxlen) && actx->idx[i]->level > level)
{
- if (idx[i]->content == cur)
+ if (actx->idx[i]->content == cur)
return 1;
}
return 0;
}
-static HEADER *find_parent (ATTACHPTR **idx, short idxlen, BODY *cur, short nattach)
+static HEADER *find_parent (ATTACH_CONTEXT *actx, BODY *cur, short nattach)
{
short i;
HEADER *parent = NULL;
if (cur)
{
- for (i = 0; i < idxlen; i++)
+ for (i = 0; i < actx->idxlen; i++)
{
- if (mutt_is_message_type (idx[i]->content->type, idx[i]->content->subtype)
- && is_parent (i, idx, idxlen, cur))
- parent = idx[i]->content->hdr;
- if (idx[i]->content == cur)
+ if (mutt_is_message_type (actx->idx[i]->content->type, actx->idx[i]->content->subtype)
+ && is_parent (i, actx, cur))
+ parent = actx->idx[i]->content->hdr;
+ if (actx->idx[i]->content == cur)
break;
}
}
else if (nattach)
- parent = find_common_parent (idx, idxlen, nattach);
+ parent = find_common_parent (actx, nattach);
return parent;
}
@@ -374,18 +371,17 @@ static void include_header (int quote, FILE * ifp,
static BODY ** copy_problematic_attachments (FILE *fp,
BODY **last,
- ATTACHPTR **idx,
- short idxlen,
+ ATTACH_CONTEXT *actx,
short force)
{
short i;
- for (i = 0; i < idxlen; i++)
+ for (i = 0; i < actx->idxlen; i++)
{
- if (idx[i]->content->tagged &&
- (force || !mutt_can_decode (idx[i]->content)))
+ if (actx->idx[i]->content->tagged &&
+ (force || !mutt_can_decode (actx->idx[i]->content)))
{
- if (mutt_copy_body (fp, last, idx[i]->content) == -1)
+ if (mutt_copy_body (fp, last, actx->idx[i]->content) == -1)
return NULL; /* XXXXX - may lead to crashes */
last = &((*last)->next);
}
@@ -399,7 +395,7 @@ static BODY ** copy_problematic_attachments (FILE *fp,
*/
static void attach_forward_bodies (FILE * fp, HEADER * hdr,
- ATTACHPTR ** idx, short idxlen,
+ ATTACH_CONTEXT *actx,
BODY * cur,
short nattach)
{
@@ -425,7 +421,7 @@ static void attach_forward_bodies (FILE * fp, HEADER * hdr,
*/
- parent = find_parent (idx, idxlen, cur, nattach);
+ parent = find_parent (actx, cur, nattach);
if (parent == NULL)
parent = hdr;
@@ -480,7 +476,7 @@ static void attach_forward_bodies (FILE * fp, HEADER * hdr,
*/
if (!mime_fwd_all && !cur && (nattach > 1)
- && !check_can_decode (idx, idxlen, cur))
+ && !check_can_decode (actx, cur))
{
if ((rc = query_quadoption (OPT_MIMEFWDREST,
_("Can't decode all tagged attachments. MIME-forward the others?"))) == -1)
@@ -526,18 +522,18 @@ _("Can't decode all tagged attachments. MIME-forward the others?"))) == -1)
if (!mime_fwd_all)
{
- for (i = 0; i < idxlen; i++)
+ for (i = 0; i < actx->idxlen; i++)
{
- if (idx[i]->content->tagged && mutt_can_decode (idx[i]->content))
+ if (actx->idx[i]->content->tagged && mutt_can_decode (actx->idx[i]->content))
{
- mutt_body_handler (idx[i]->content, &st);
+ mutt_body_handler (actx->idx[i]->content, &st);
state_putc ('\n', &st);
}
}
}
if (mime_fwd_any &&
- copy_problematic_attachments (fp, last, idx, idxlen, mime_fwd_all) == NULL)
+ copy_problematic_attachments (fp, last, actx, mime_fwd_all) == NULL)
goto bail;
}
@@ -574,7 +570,7 @@ _("Can't decode all tagged attachments. MIME-forward the others?"))) == -1)
*/
static void attach_forward_msgs (FILE * fp, HEADER * hdr,
- ATTACHPTR ** idx, short idxlen, BODY * cur)
+ ATTACH_CONTEXT *actx, BODY * cur)
{
HEADER *curhdr = NULL;
HEADER *tmphdr;
@@ -592,10 +588,10 @@ static void attach_forward_msgs (FILE * fp, HEADER * hdr,
curhdr = cur->hdr;
else
{
- for (i = 0; i < idxlen; i++)
- if (idx[i]->content->tagged)
+ for (i = 0; i < actx->idxlen; i++)
+ if (actx->idx[i]->content->tagged)
{
- curhdr = idx[i]->content->hdr;
+ curhdr = actx->idx[i]->content->hdr;
break;
}
}
@@ -647,15 +643,15 @@ static void attach_forward_msgs (FILE * fp, HEADER * hdr,
}
else
{
- for (i = 0; i < idxlen; i++)
+ for (i = 0; i < actx->idxlen; i++)
{
- if (idx[i]->content->tagged)
+ if (actx->idx[i]->content->tagged)
{
/* mutt_message_hook (idx[i]->content->hdr, MUTT_MESSAGEHOOK); */
- mutt_forward_intro (Context, idx[i]->content->hdr, tmpfp);
- _mutt_copy_message (tmpfp, fp, idx[i]->content->hdr,
- idx[i]->content->hdr->content, cmflags, chflags);
- mutt_forward_trailer (Context, idx[i]->content->hdr, tmpfp);
+ mutt_forward_intro (Context, actx->idx[i]->content->hdr, tmpfp);
+ _mutt_copy_message (tmpfp, fp, actx->idx[i]->content->hdr,
+ actx->idx[i]->content->hdr->content, cmflags, chflags);
+ mutt_forward_trailer (Context, actx->idx[i]->content->hdr, tmpfp);
}
}
}
@@ -668,10 +664,10 @@ static void attach_forward_msgs (FILE * fp, HEADER * hdr,
mutt_copy_body (fp, last, cur);
else
{
- for (i = 0; i < idxlen; i++)
- if (idx[i]->content->tagged)
+ for (i = 0; i < actx->idxlen; i++)
+ if (actx->idx[i]->content->tagged)
{
- mutt_copy_body (fp, last, idx[i]->content);
+ mutt_copy_body (fp, last, actx->idx[i]->content);
last = &((*last)->next);
}
}
@@ -685,17 +681,17 @@ static void attach_forward_msgs (FILE * fp, HEADER * hdr,
}
void mutt_attach_forward (FILE * fp, HEADER * hdr,
- ATTACHPTR ** idx, short idxlen, BODY * cur)
+ ATTACH_CONTEXT *actx, BODY * cur)
{
short nattach;
- if (check_all_msg (idx, idxlen, cur, 0) == 0)
- attach_forward_msgs (fp, hdr, idx, idxlen, cur);
+ if (check_all_msg (actx, cur, 0) == 0)
+ attach_forward_msgs (fp, hdr, actx, cur);
else
{
- nattach = count_tagged (idx, idxlen);
- attach_forward_bodies (fp, hdr, idx, idxlen, cur, nattach);
+ nattach = count_tagged (actx);
+ attach_forward_bodies (fp, hdr, actx, cur, nattach);
}
}
@@ -722,7 +718,7 @@ void mutt_attach_forward (FILE * fp, HEADER * hdr,
*/
static int
-attach_reply_envelope_defaults (ENVELOPE *env, ATTACHPTR **idx, short idxlen,
+attach_reply_envelope_defaults (ENVELOPE *env, ATTACH_CONTEXT *actx,
HEADER *parent, int flags)
{
ENVELOPE *curenv = NULL;
@@ -731,11 +727,11 @@ attach_reply_envelope_defaults (ENVELOPE *env, ATTACHPTR **idx, short idxlen,
if (!parent)
{
- for (i = 0; i < idxlen; i++)
+ for (i = 0; i < actx->idxlen; i++)
{
- if (idx[i]->content->tagged)
+ if (actx->idx[i]->content->tagged)
{
- curhdr = idx[i]->content->hdr;
+ curhdr = actx->idx[i]->content->hdr;
curenv = curhdr->env;
break;
}
@@ -760,10 +756,10 @@ attach_reply_envelope_defaults (ENVELOPE *env, ATTACHPTR **idx, short idxlen,
}
else
{
- for (i = 0; i < idxlen; i++)
+ for (i = 0; i < actx->idxlen; i++)
{
- if (idx[i]->content->tagged
- && mutt_fetch_recips (env, idx[i]->content->hdr->env, flags) == -1)
+ if (actx->idx[i]->content->tagged
+ && mutt_fetch_recips (env, actx->idx[i]->content->hdr->env, flags) == -1)
return -1;
}
}
@@ -783,10 +779,10 @@ attach_reply_envelope_defaults (ENVELOPE *env, ATTACHPTR **idx, short idxlen,
{
LIST **p = NULL, **q = NULL;
- for (i = 0; i < idxlen; i++)
+ for (i = 0; i < actx->idxlen; i++)
{
- if (idx[i]->content->tagged)
- mutt_add_to_reference_headers (env, idx[i]->content->hdr->env, &p, &q);
+ if (actx->idx[i]->content->tagged)
+ mutt_add_to_reference_headers (env, actx->idx[i]->content->hdr->env, &p, &q);
}
}
@@ -817,8 +813,8 @@ static void attach_include_reply (FILE *fp, FILE *tmpfp, HEADER *cur, int flags)
mutt_make_post_indent (Context, cur, tmpfp);
}
-void mutt_attach_reply (FILE * fp, HEADER * hdr,
- ATTACHPTR ** idx, short idxlen, BODY * cur,
+void mutt_attach_reply (FILE * fp, HEADER * hdr,
+ ATTACH_CONTEXT *actx, BODY * cur,
int flags)
{
short mime_reply_any = 0;
@@ -835,14 +831,14 @@ void mutt_attach_reply (FILE * fp, HEADER * hdr,
char prefix[SHORT_STRING];
int rc;
- if (check_all_msg (idx, idxlen, cur, 0) == -1)
+ if (check_all_msg (actx, cur, 0) == -1)
{
- nattach = count_tagged (idx, idxlen);
- if ((parent = find_parent (idx, idxlen, cur, nattach)) == NULL)
+ nattach = count_tagged (actx);
+ if ((parent = find_parent (actx, cur, nattach)) == NULL)
parent = hdr;
}
- if (nattach > 1 && !check_can_decode (idx, idxlen, cur))
+ if (nattach > 1 && !check_can_decode (actx, cur))
{
if ((rc = query_quadoption (OPT_MIMEFWDREST,
_("Can't decode all tagged attachments. MIME-encapsulate the others?"))) == -1)
@@ -856,7 +852,7 @@ void mutt_attach_reply (FILE * fp, HEADER * hdr,
tmphdr = mutt_new_header ();
tmphdr->env = mutt_new_envelope ();
- if (attach_reply_envelope_defaults (tmphdr->env, idx, idxlen,
+ if (attach_reply_envelope_defaults (tmphdr->env, actx,
parent ? parent : (cur ? cur->hdr : NULL), flags) == -1)
{
mutt_free_header (&tmphdr);
@@ -877,10 +873,10 @@ void mutt_attach_reply (FILE * fp, HEADER * hdr,
attach_include_reply (fp, tmpfp, cur->hdr, flags);
else
{
- for (i = 0; i < idxlen; i++)
+ for (i = 0; i < actx->idxlen; i++)
{
- if (idx[i]->content->tagged)
- attach_include_reply (fp, tmpfp, idx[i]->content->hdr, flags);
+ if (actx->idx[i]->content->tagged)
+ attach_include_reply (fp, tmpfp, actx->idx[i]->content->hdr, flags);
}
}
}
@@ -919,11 +915,11 @@ void mutt_attach_reply (FILE * fp, HEADER * hdr,
}
else
{
- for (i = 0; i < idxlen; i++)
+ for (i = 0; i < actx->idxlen; i++)
{
- if (idx[i]->content->tagged && mutt_can_decode (idx[i]->content))
+ if (actx->idx[i]->content->tagged && mutt_can_decode (actx->idx[i]->content))
{
- mutt_body_handler (idx[i]->content, &st);
+ mutt_body_handler (actx->idx[i]->content, &st);
state_putc ('\n', &st);
}
}
@@ -932,7 +928,7 @@ void mutt_attach_reply (FILE * fp, HEADER * hdr,
mutt_make_post_indent (Context, parent, tmpfp);
if (mime_reply_any && !cur &&
- copy_problematic_attachments (fp, &tmphdr->content, idx, idxlen, 0) == NULL)
+ copy_problematic_attachments (fp, &tmphdr->content, actx, 0) == NULL)
{
mutt_free_header (&tmphdr);
safe_fclose (&tmpfp);