doveadm-print-formatted.c revision 44aebbf6ddecda29a52d5a0fd6e766a1653a6a38
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen unsigned int idx;
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainenstatic struct doveadm_print_formatted_context ctx;
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainenvoid doveadm_print_formatted_set_format(const char *format)
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen ctx.pool = pool_alloconly_create("doveadm formatted print", 1024);
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainendoveadm_print_formatted_header(const struct doveadm_print_header *hdr)
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen entry.long_key = p_strdup(ctx.pool, hdr->key);
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainenstatic void doveadm_print_formatted_flush(void)
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen o_stream_nsend(doveadm_print_ostream, str_data(ctx.buf), str_len(ctx.buf));
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainenstatic void doveadm_print_formatted_print(const char *value)
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen i_fatal("formatted formatter cannot be used without a format.");
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen struct var_expand_table *entry = array_idx_modifiable(&ctx.headers, ctx.idx++);
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainen var_expand(ctx.buf, ctx.format, array_idx(&ctx.headers,0));
4654f788834c9d7920a351306b89cf5d1c21772eTimo Sirainenstatic void doveadm_print_formatted_deinit(void)