# HG changeset patch # User Aki Tuomi # Date 1456158059 -7200 # Node ID cffa74926d5b551f9e35f5af630f8480e7b29aa6 # Parent 4247beae5c8d9d58a41dc8dafb72a7497ac577bf doveadm: Add kludge to support field array to fieldstr conversion diff -r 4247beae5c8d -r cffa74926d5b src/doveadm/doveadm-mail.c --- a/src/doveadm/doveadm-mail.c Mon Feb 15 15:14:25 2016 +0200 +++ b/src/doveadm/doveadm-mail.c Mon Feb 22 18:20:59 2016 +0200 @@ -885,6 +885,7 @@ { struct doveadm_mail_cmd_context *ctx; const char *wildcard_user; + const char *fieldstr; ARRAY_TYPE(const_string) pargv; int i; struct doveadm_mail_cmd mail_cmd = { @@ -895,7 +896,7 @@ ctx->iterate_all_users = FALSE; wildcard_user = NULL; - t_array_init(&pargv, 8); + p_array_init(&pargv, ctx->pool, 8); for(i=0;iv.parse_arg != NULL && argv[i].short_opt != '\0') { optarg = (char*)argv[i].value.v_string; ctx->v.parse_arg(ctx, argv[i].short_opt); + } else if (strcmp(argv[i].name, "field") == 0) { + /* mailbox status, fetch: convert an array into a + single space-separated parameter (alternative to + fieldstr) */ + fieldstr = p_array_const_string_join(ctx->pool, + &argv[i].value.v_array, " "); + array_append(&pargv, &fieldstr, 1); } else if ((argv[i].flags & CMD_PARAM_FLAG_POSITIONAL) != 0) { /* feed this into pargv */ if (argv[i].type == CMD_PARAM_ARRAY)