struct Email *tmphdr = mutt_email_new();
tmphdr->env = mutt_env_new();
- mutt_make_forward_subject(tmphdr->env, Context, parent_hdr);
+ mutt_make_forward_subject(tmphdr->env, Context->mailbox, parent_hdr);
mutt_mktemp(tmpbody, sizeof(tmpbody));
FILE *tmpfp = mutt_file_fopen(tmpbody, "w");
return;
}
- mutt_forward_intro(Context, parent_hdr, tmpfp);
+ mutt_forward_intro(Context->mailbox, parent_hdr, tmpfp);
/* prepare the prefix here since we'll need it later. */
goto bail;
}
- mutt_forward_trailer(Context, parent_hdr, tmpfp);
+ mutt_forward_trailer(Context->mailbox, parent_hdr, tmpfp);
mutt_file_fclose(&tmpfp);
tmpfp = NULL;
tmphdr = mutt_email_new();
tmphdr->env = mutt_env_new();
- mutt_make_forward_subject(tmphdr->env, Context, curhdr);
+ mutt_make_forward_subject(tmphdr->env, Context->mailbox, curhdr);
tmpbody[0] = '\0';
if (cur)
{
- mutt_forward_intro(Context, cur->email, tmpfp);
+ mutt_forward_intro(Context->mailbox, cur->email, tmpfp);
mutt_copy_message_fp(tmpfp, fp, cur->email, cmflags, chflags);
- mutt_forward_trailer(Context, cur->email, tmpfp);
+ mutt_forward_trailer(Context->mailbox, cur->email, tmpfp);
}
else
{
{
if (actx->idx[i]->content->tagged)
{
- mutt_forward_intro(Context, actx->idx[i]->content->email, tmpfp);
+ mutt_forward_intro(Context->mailbox, actx->idx[i]->content->email, tmpfp);
mutt_copy_message_fp(tmpfp, actx->idx[i]->fp,
actx->idx[i]->content->email, cmflags, chflags);
- mutt_forward_trailer(Context, actx->idx[i]->content->email, tmpfp);
+ mutt_forward_trailer(Context->mailbox, actx->idx[i]->content->email, tmpfp);
}
}
}
int cmflags = MUTT_CM_PREFIX | MUTT_CM_DECODE | MUTT_CM_CHARCONV;
int chflags = CH_DECODE;
- mutt_make_attribution(Context, cur, tmpfp);
+ mutt_make_attribution(Context->mailbox, cur, tmpfp);
if (!Header)
cmflags |= MUTT_CM_NOHEADER;
}
mutt_copy_message_fp(tmpfp, fp, cur, cmflags, chflags);
- mutt_make_post_indent(Context, cur, tmpfp);
+ mutt_make_post_indent(Context->mailbox, cur, tmpfp);
}
/**
}
else
{
- mutt_make_attribution(Context, parent_hdr, tmpfp);
+ mutt_make_attribution(Context->mailbox, parent_hdr, tmpfp);
memset(&st, 0, sizeof(struct State));
st.fpout = tmpfp;
}
}
- mutt_make_post_indent(Context, parent_hdr, tmpfp);
+ mutt_make_post_indent(Context->mailbox, parent_hdr, tmpfp);
if (mime_reply_any && !cur && !copy_problematic_attachments(&tmphdr->content, actx, false))
{
/**
* mutt_forward_intro - Add the "start of forwarded message" text
- * @param ctx Mailbox
- * @param cur Email
+ * @param m Mailbox
+ * @param e Email
* @param fp File to write to
*/
-void mutt_forward_intro(struct Context *ctx, struct Email *cur, FILE *fp)
+void mutt_forward_intro(struct Mailbox *m, struct Email *e, FILE *fp)
{
if (!ForwardAttributionIntro || !fp)
return;
char buf[LONG_STRING];
setlocale(LC_TIME, NONULL(AttributionLocale));
- mutt_make_string(buf, sizeof(buf), ForwardAttributionIntro, ctx, ctx->mailbox, cur);
+ mutt_make_string(buf, sizeof(buf), ForwardAttributionIntro, NULL, m, e);
setlocale(LC_TIME, "");
fputs(buf, fp);
fputs("\n\n", fp);
/**
* mutt_forward_trailer - Add a "end of forwarded message" text
- * @param ctx Mailbox
- * @param cur Email
+ * @param m Mailbox
+ * @param e Email
* @param fp File to write to
*/
-void mutt_forward_trailer(struct Context *ctx, struct Email *cur, FILE *fp)
+void mutt_forward_trailer(struct Mailbox *m, struct Email *e, FILE *fp)
{
if (!ForwardAttributionTrailer || !fp)
return;
char buf[LONG_STRING];
setlocale(LC_TIME, NONULL(AttributionLocale));
- mutt_make_string(buf, sizeof(buf), ForwardAttributionTrailer, ctx, ctx->mailbox, cur);
+ mutt_make_string(buf, sizeof(buf), ForwardAttributionTrailer, NULL, m, e);
setlocale(LC_TIME, "");
fputc('\n', fp);
fputs(buf, fp);
/**
* include_forward - Write out a forwarded message
- * @param ctx Mailbox
- * @param cur Email
+ * @param m Mailbox
+ * @param e Email
* @param out File to write to
* @retval 0 Success
* @retval -1 Failure
*/
-static int include_forward(struct Context *ctx, struct Email *cur, FILE *out)
+static int include_forward(struct Mailbox *m, struct Email *e, FILE *out)
{
int chflags = CH_DECODE, cmflags = 0;
- mutt_parse_mime_message(ctx->mailbox, cur);
- mutt_message_hook(ctx->mailbox, cur, MUTT_MESSAGE_HOOK);
+ mutt_parse_mime_message(m, e);
+ mutt_message_hook(m, e, MUTT_MESSAGE_HOOK);
- if ((WithCrypto != 0) && (cur->security & ENCRYPT) && ForwardDecode)
+ if ((WithCrypto != 0) && (e->security & ENCRYPT) && ForwardDecode)
{
/* make sure we have the user's passphrase before proceeding... */
- if (!crypt_valid_passphrase(cur->security))
+ if (!crypt_valid_passphrase(e->security))
return -1;
}
- mutt_forward_intro(ctx, cur, out);
+ mutt_forward_intro(m, e, out);
if (ForwardDecode)
{
* rather than send action */
chflags |= CH_DISPLAY;
- mutt_copy_message_ctx(out, ctx->mailbox, cur, cmflags, chflags);
- mutt_forward_trailer(ctx, cur, out);
+ mutt_copy_message_ctx(out, m, e, cmflags, chflags);
+ mutt_forward_trailer(m, e, out);
return 0;
}
/**
* mutt_make_attribution - Add "on DATE, PERSON wrote" header
- * @param ctx Mailbox
- * @param cur Email
+ * @param m Mailbox
+ * @param e Email
* @param out File to write to
*/
-void mutt_make_attribution(struct Context *ctx, struct Email *cur, FILE *out)
+void mutt_make_attribution(struct Mailbox *m, struct Email *e, FILE *out)
{
if (!Attribution || !out)
return;
char buf[LONG_STRING];
setlocale(LC_TIME, NONULL(AttributionLocale));
- mutt_make_string(buf, sizeof(buf), Attribution, ctx, ctx->mailbox, cur);
+ mutt_make_string(buf, sizeof(buf), Attribution, NULL, m, e);
setlocale(LC_TIME, "");
fputs(buf, out);
fputc('\n', out);
/**
* mutt_make_post_indent - Add suffix to replied email text
- * @param ctx Mailbox
- * @param cur Email
+ * @param m Mailbox
+ * @param e Email
* @param out File to write to
*/
-void mutt_make_post_indent(struct Context *ctx, struct Email *cur, FILE *out)
+void mutt_make_post_indent(struct Mailbox *m, struct Email *e, FILE *out)
{
if (!PostIndentString || !out)
return;
char buf[STRING];
- mutt_make_string(buf, sizeof(buf), PostIndentString, ctx, ctx->mailbox, cur);
+ mutt_make_string(buf, sizeof(buf), PostIndentString, NULL, m, e);
fputs(buf, out);
fputc('\n', out);
}
/**
* include_reply - Generate the reply text for an email
- * @param ctx Mailbox
- * @param cur Email
+ * @param m Mailbox
+ * @param e Email
* @param out File to write to
* @retval 0 Success
* @retval -1 Failure
*/
-static int include_reply(struct Context *ctx, struct Email *cur, FILE *out)
+static int include_reply(struct Mailbox *m, struct Email *e, FILE *out)
{
int cmflags = MUTT_CM_PREFIX | MUTT_CM_DECODE | MUTT_CM_CHARCONV | MUTT_CM_REPLYING;
int chflags = CH_DECODE;
- if ((WithCrypto != 0) && (cur->security & ENCRYPT))
+ if ((WithCrypto != 0) && (e->security & ENCRYPT))
{
/* make sure we have the user's passphrase before proceeding... */
- if (!crypt_valid_passphrase(cur->security))
+ if (!crypt_valid_passphrase(e->security))
return -1;
}
- mutt_parse_mime_message(ctx->mailbox, cur);
- mutt_message_hook(ctx->mailbox, cur, MUTT_MESSAGE_HOOK);
+ mutt_parse_mime_message(m, e);
+ mutt_message_hook(m, e, MUTT_MESSAGE_HOOK);
- mutt_make_attribution(ctx, cur, out);
+ mutt_make_attribution(m, e, out);
if (!Header)
cmflags |= MUTT_CM_NOHEADER;
cmflags |= MUTT_CM_WEED;
}
- mutt_copy_message_ctx(out, ctx->mailbox, cur, cmflags, chflags);
+ mutt_copy_message_ctx(out, m, e, cmflags, chflags);
- mutt_make_post_indent(ctx, cur, out);
+ mutt_make_post_indent(m, e, out);
return 0;
}
/**
* mutt_make_forward_subject - Create a subject for a forwarded email
* @param env Envelope for result
- * @param ctx Mailbox
+ * @param m Mailbox
* @param cur Email
*/
-void mutt_make_forward_subject(struct Envelope *env, struct Context *ctx, struct Email *cur)
+void mutt_make_forward_subject(struct Envelope *env, struct Mailbox *m, struct Email *cur)
{
if (!env)
return;
char buf[STRING];
/* set the default subject for the message. */
- mutt_make_string(buf, sizeof(buf), NONULL(ForwardFormat), ctx, ctx->mailbox, cur);
+ mutt_make_string(buf, sizeof(buf), NONULL(ForwardFormat), NULL, m, cur);
mutt_str_replace(&env->subject, buf);
}
}
else if (flags & SEND_FORWARD)
{
- mutt_make_forward_subject(env, ctx, cur);
+ mutt_make_forward_subject(env, ctx->mailbox, cur);
if (ForwardReferences)
make_reference_headers(tag ? NULL : curenv, env, ctx);
}
if (!message_is_tagged(ctx, i))
continue;
- if (include_reply(ctx, ctx->mailbox->emails[i], tempfp) == -1)
+ if (include_reply(ctx->mailbox, ctx->mailbox->emails[i], tempfp) == -1)
{
mutt_error(_("Could not include all requested messages"));
return -1;
}
}
else
- include_reply(ctx, cur, tempfp);
+ include_reply(ctx->mailbox, cur, tempfp);
}
}
else if (flags & SEND_FORWARD)
else if (i != -1)
{
if (cur)
- include_forward(ctx, cur, tempfp);
+ include_forward(ctx->mailbox, cur, tempfp);
else
{
for (i = 0; i < ctx->mailbox->msg_count; i++)
{
if (message_is_tagged(ctx, i))
- include_forward(ctx, ctx->mailbox->emails[i], tempfp);
+ include_forward(ctx->mailbox, ctx->mailbox->emails[i], tempfp);
}
}
}
struct Address;
struct Body;
struct Context;
-struct Envelope;
struct Email;
+struct Envelope;
+struct Mailbox;
/* These Config Variables are only used in send.c */
extern unsigned char AbortNoattach; /* forgotten attachment detector */
void mutt_encode_descriptions(struct Body *b, bool recurse);
int mutt_fetch_recips(struct Envelope *out, struct Envelope *in, int flags);
void mutt_fix_reply_recipients(struct Envelope *env);
-void mutt_forward_intro(struct Context *ctx, struct Email *cur, FILE *fp);
-void mutt_forward_trailer(struct Context *ctx, struct Email *cur, FILE *fp);
-void mutt_make_attribution(struct Context *ctx, struct Email *cur, FILE *out);
-void mutt_make_forward_subject(struct Envelope *env, struct Context *ctx, struct Email *cur);
+void mutt_forward_intro(struct Mailbox *m, struct Email *e, FILE *fp);
+void mutt_forward_trailer(struct Mailbox *m, struct Email *e, FILE *fp);
+void mutt_make_attribution(struct Mailbox *m, struct Email *e, FILE *out);
+void mutt_make_forward_subject(struct Envelope *env, struct Mailbox *m, struct Email *e);
void mutt_make_misc_reply_headers(struct Envelope *env, struct Envelope *curenv);
-void mutt_make_post_indent(struct Context *ctx, struct Email *cur, FILE *out);
+void mutt_make_post_indent(struct Mailbox *m, struct Email *e, FILE *out);
struct Address *mutt_remove_xrefs(struct Address *a, struct Address *b);
int mutt_resend_message(FILE *fp, struct Context *ctx, struct Email *cur);
void mutt_set_followup_to(struct Envelope *e);