string_t *hdr;
const char *prefix;
+
+ bool print_field_prefix;
};
static int fetch_mailbox(struct fetch_context *ctx)
if (mail_get_stream(ctx->mail, &hdr_size, NULL, &input) < 0)
return -1;
- str_append_c(ctx->hdr, '\n');
+ if (ctx->print_field_prefix)
+ str_append_c(ctx->hdr, '\n');
flush_hdr(ctx);
input = i_stream_create_limit(input, hdr_size.physical_size);
while (!i_stream_is_eof(input)) {
if (mail_get_stream(ctx->mail, &hdr_size, NULL, &input) < 0)
return -1;
- str_append_c(ctx->hdr, '\n');
+ if (ctx->print_field_prefix)
+ str_append_c(ctx->hdr, '\n');
flush_hdr(ctx);
i_stream_skip(input, hdr_size.physical_size);
while (!i_stream_is_eof(input)) {
if (mail_get_stream(ctx->mail, NULL, NULL, &input) < 0)
return -1;
- str_append_c(ctx->hdr, '\n');
+ if (ctx->print_field_prefix)
+ str_append_c(ctx->hdr, '\n');
flush_hdr(ctx);
while (!i_stream_is_eof(input)) {
if (o_stream_send_istream(ctx->output, input) <= 0)
array_append(&ctx->fields, field, 1);
}
+ ctx->print_field_prefix = array_count(&ctx->fields) > 1;
}
static void cmd_fetch_mail(struct fetch_context *ctx)
struct mail *mail = ctx->mail;
array_foreach(&ctx->fields, field) {
- str_printfa(ctx->hdr, "%s: ", field->name);
+ if (ctx->print_field_prefix)
+ str_printfa(ctx->hdr, "%s: ", field->name);
if (field->print(ctx) < 0) {
struct mail_storage *storage =
mailbox_get_storage(mail->box);