changeset 20994:9ac2b5223b9f

doveadm: \f\n only between pages in pager No more \f\n in the end.
author Martti Rannanjärvi <martti.rannanjarvi@dovecot.fi>
date Thu, 21 Apr 2016 14:22:10 +0300
parents ff822a101e3e
children 0e63d2333418
files src/doveadm/doveadm-print-pager.c
diffstat 1 files changed, 6 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/doveadm/doveadm-print-pager.c	Tue Oct 25 22:39:38 2016 +0300
+++ b/src/doveadm/doveadm-print-pager.c	Thu Apr 21 14:22:10 2016 +0300
@@ -15,6 +15,7 @@
 	unsigned int header_idx;
 
 	unsigned int streaming:1;
+	unsigned int first_page:1;
 };
 
 static struct doveadm_print_pager_context *ctx;
@@ -32,7 +33,6 @@
 {
 	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 @@
 	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 @@
 	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);
 }