int mutt_display_message(struct Email *cur);
int mutt_edit_content_type(struct Email *e, struct Body *b, FILE *fp);
void mutt_enter_command(void);
-void mutt_pipe_message(struct Mailbox *m, struct Email *e);
-void mutt_print_message(struct Mailbox *m, struct Email *e);
+void mutt_pipe_message(struct Mailbox *m, struct EmailList *el);
+void mutt_print_message(struct Mailbox *m, struct EmailList *el);
int mutt_save_message_ctx(struct Email *e, bool delete, bool decode, bool decrypt, struct Mailbox *m);
int mutt_save_message(struct Mailbox *m, struct EmailList *el, bool delete, bool decode, bool decrypt);
int mutt_select_sort(int reverse);
}
case OP_PIPE:
+ {
if (!prereq(Context, menu, CHECK_IN_MAILBOX | CHECK_MSGCOUNT | CHECK_VISIBLE))
break;
- mutt_pipe_message(Context->mailbox, tag ? NULL : CUR_EMAIL);
+ struct EmailList el = STAILQ_HEAD_INITIALIZER(el);
+ el_add_tagged(&el, Context, CUR_EMAIL, tag);
+ mutt_pipe_message(Context->mailbox, &el);
+ el_free(&el);
#ifdef USE_IMAP
/* in an IMAP folder index with imap_peek=no, piping could change
menu->redraw |= (tag ? REDRAW_INDEX : REDRAW_CURRENT) | REDRAW_STATUS;
}
#endif
-
break;
+ }
case OP_PRINT:
+ {
if (!prereq(Context, menu, CHECK_IN_MAILBOX | CHECK_MSGCOUNT | CHECK_VISIBLE))
break;
- mutt_print_message(Context->mailbox, tag ? NULL : CUR_EMAIL);
+ struct EmailList el = STAILQ_HEAD_INITIALIZER(el);
+ el_add_tagged(&el, Context, CUR_EMAIL, tag);
+ mutt_print_message(Context->mailbox, &el);
+ el_free(&el);
#ifdef USE_IMAP
/* in an IMAP folder index with imap_peek=no, printing could change
menu->redraw |= (tag ? REDRAW_INDEX : REDRAW_CURRENT) | REDRAW_STATUS;
}
#endif
-
break;
+ }
case OP_MAIN_READ_THREAD:
case OP_MAIN_READ_SUBTHREAD:
if (IsAttach(extra))
mutt_pipe_attachment_list(extra->actx, extra->fp, false, extra->body, false);
else
- mutt_pipe_message(Context->mailbox, extra->email);
+ {
+ struct EmailList el = STAILQ_HEAD_INITIALIZER(el);
+ el_add_tagged(&el, extra->ctx, extra->email, false);
+ mutt_pipe_message(extra->ctx->mailbox, &el);
+ el_free(&el);
+ }
break;
case OP_PRINT:
if (IsAttach(extra))
mutt_print_attachment_list(extra->actx, extra->fp, false, extra->body);
else
- mutt_print_message(Context->mailbox, extra->email);
+ {
+ struct EmailList el = STAILQ_HEAD_INITIALIZER(el);
+ el_add_tagged(&el, extra->ctx, extra->email, false);
+ mutt_print_message(extra->ctx->mailbox, &el);
+ el_free(&el);
+ }
break;
case OP_MAIL: