doveadm-print.c revision 4f79049854ca6a69453deb5487f2b722fdae3e35
02c335c23bf5fa225a467c19f2c063fb0dc7b8c3Timo Sirainen/* Copyright (c) 2010 Dovecot authors, see the included COPYING file */
71df09024cea5f2faa93da3bb9513ee96ba6bf22Timo Sirainen const char *key;
1e11a94ec50fc9b57eb2c859771c6a326ccaf86fAki Tuomi ARRAY_DEFINE(headers, struct doveadm_print_header_context);
71df09024cea5f2faa93da3bb9513ee96ba6bf22Timo Sirainenstatic const struct doveadm_print_vfuncs *doveadm_print_vfuncs_all[] = {
71df09024cea5f2faa93da3bb9513ee96ba6bf22Timo Sirainenvoid doveadm_print_header(const char *key, const char *title,
45ead232666a47819e89dc71dec57767340d0b62Timo Sirainen hdr_ctx->sticky = (flags & DOVEADM_PRINT_HEADER_FLAG_STICKY) != 0;
1e11a94ec50fc9b57eb2c859771c6a326ccaf86fAki Tuomivoid doveadm_print_header_simple(const char *key_title)
71df09024cea5f2faa93da3bb9513ee96ba6bf22Timo Sirainen const struct doveadm_print_header_context *headers;
71df09024cea5f2faa93da3bb9513ee96ba6bf22Timo Sirainen unsigned int count;
71df09024cea5f2faa93da3bb9513ee96ba6bf22Timo Sirainen ctx->v->print(headers[ctx->header_idx].sticky_value);
71df09024cea5f2faa93da3bb9513ee96ba6bf22Timo Sirainenvoid doveadm_print_sticky(const char *key, const char *value)
71df09024cea5f2faa93da3bb9513ee96ba6bf22Timo Sirainen array_foreach_modifiable(&ctx->headers, hdr) {
2d1892aaeb63b9774237b6e60d6bb04bf6f8259cTimo Sirainen unsigned int i;
107659c01b2359b0ee426bde020c8d4e29ede30dTimo Sirainen /* already forced the type */
107659c01b2359b0ee426bde020c8d4e29ede30dTimo Sirainen pool = pool_alloconly_create("doveadm print", 1024);
107659c01b2359b0ee426bde020c8d4e29ede30dTimo Sirainen ctx = p_new(pool, struct doveadm_print_context, 1);
71df09024cea5f2faa93da3bb9513ee96ba6bf22Timo Sirainen for (i = 0; i < N_ELEMENTS(doveadm_print_vfuncs_all); i++) {