unsigned int header_idx;
unsigned int streaming:1;
+ unsigned int first_page:1;
};
static struct doveadm_print_pager_context *ctx;
{
if (++ctx->header_idx == array_count(&ctx->headers)) {
ctx->header_idx = 0;
- o_stream_nsend(doveadm_print_ostream, "\f\n", 2);
}
}
const struct doveadm_print_pager_header *hdr =
array_idx(&ctx->headers, ctx->header_idx);
+ if (ctx->header_idx == 0 && !ctx->first_page) {
+ o_stream_nsend(doveadm_print_ostream, "\f\n", 2);
+ }
+ ctx->first_page = FALSE;
o_stream_nsend_str(doveadm_print_ostream, hdr->title);
o_stream_nsend(doveadm_print_ostream, ": ", 2);
o_stream_nsend_str(doveadm_print_ostream, value);
pool = pool_alloconly_create("doveadm print pager", 1024);
ctx = p_new(pool, struct doveadm_print_pager_context, 1);
ctx->pool = pool;
+ ctx->first_page = TRUE;
p_array_init(&ctx->headers, pool, 16);
}