]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm: \f\n only between pages in pager
authorMartti Rannanjärvi <martti.rannanjarvi@dovecot.fi>
Thu, 21 Apr 2016 11:22:10 +0000 (14:22 +0300)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Wed, 26 Oct 2016 10:10:37 +0000 (13:10 +0300)
No more \f\n in the end.

src/doveadm/doveadm-print-pager.c

index f792933b0c7ac6bed0c1ea38f5773fbc90c44cd3..3a10997267003d57707a0967aa5161a5cb19aded 100644 (file)
@@ -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);
 }