From 977ce672812ecdff7f8d79073461c35a0656187e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Martti=20Rannanj=C3=A4rvi?= Date: Thu, 21 Apr 2016 14:22:10 +0300 Subject: [PATCH] doveadm: \f\n only between pages in pager No more \f\n in the end. --- src/doveadm/doveadm-print-pager.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/doveadm/doveadm-print-pager.c b/src/doveadm/doveadm-print-pager.c index f792933b0c..3a10997267 100644 --- a/src/doveadm/doveadm-print-pager.c +++ b/src/doveadm/doveadm-print-pager.c @@ -15,6 +15,7 @@ struct doveadm_print_pager_context { unsigned int header_idx; unsigned int streaming:1; + unsigned int first_page:1; }; static struct doveadm_print_pager_context *ctx; @@ -32,7 +33,6 @@ static void pager_next_hdr(void) { if (++ctx->header_idx == array_count(&ctx->headers)) { ctx->header_idx = 0; - o_stream_nsend(doveadm_print_ostream, "\f\n", 2); } } @@ -41,6 +41,10 @@ static void doveadm_print_pager_print(const char *value) 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); @@ -73,6 +77,7 @@ static void doveadm_print_pager_init(void) 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); } -- 2.47.3