ci_send_message (op, NULL, NULL, ctx, hn);
if (op == SENDFORWARD && option (OPTFORWATTACH)) { HEADER *newhdr = mutt_new_header(); mutt_prepare_edit_message (ctx, newhdr, hn); mutt_free_envelope (&newhdr->env); newhdr->env = mutt_new_envelope(); ci_send_message (0, newhdr, NULL, ctx, NULL); } else ci_send_message (op, NULL, NULL, ctx, hn);
static void reply_attachment_list (int op, int tag, HEADER *hdr, BODY *body){  HEADER *hn;  char tempfile[_POSIX_PATH_MAX];  CONTEXT *ctx;  if (!tag && body->hdr)  {    hn = body->hdr;    hn->msgno = hdr->msgno; /* required for MH/maildir */    ctx = Context;  }  else  {    /* build a fake message which consists of only the tagged attachments */    mutt_mktemp (tempfile);    create_tagged_message (tempfile, tag, Context, hdr, body);    ctx = mx_open_mailbox (tempfile, M_QUIET, NULL);    hn = ctx->hdrs[0];  }  ci_send_message (op, NULL, NULL, ctx, hn);  if (hn->replied && !hdr->replied)    mutt_set_flag (Context, hdr, M_REPLIED, 1);  if (ctx != Context)  {    mx_fastclose_mailbox (ctx);    safe_free ((void **) &ctx);    unlink (tempfile);  }}