Skip to content

Commit

Permalink
doveadm-flags: Support giving flags as an array.
Browse files Browse the repository at this point in the history
  • Loading branch information
cmouse authored and sirainen committed Feb 26, 2016
1 parent 4ae632e commit 2d83aa5
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 5 deletions.
9 changes: 6 additions & 3 deletions src/doveadm/doveadm-mail-flags.c
Expand Up @@ -147,7 +147,8 @@ struct doveadm_cmd_ver2 doveadm_cmd_flags_add_ver2 = {
.usage = DOVEADM_CMD_MAIL_USAGE_PREFIX "<flags> <search query>",
DOVEADM_CMD_PARAMS_START
DOVEADM_CMD_MAIL_COMMON
DOVEADM_CMD_PARAM('\0', "flags", CMD_PARAM_STR, CMD_PARAM_FLAG_POSITIONAL)
DOVEADM_CMD_PARAM('\0', "flag", CMD_PARAM_ARRAY, 0)
DOVEADM_CMD_PARAM('\0', "flagstr", CMD_PARAM_STR, CMD_PARAM_FLAG_POSITIONAL|CMD_PARAM_FLAG_DO_NOT_EXPOSE)
DOVEADM_CMD_PARAM('\0', "query", CMD_PARAM_ARRAY, CMD_PARAM_FLAG_POSITIONAL)
DOVEADM_CMD_PARAMS_END
};
Expand All @@ -158,7 +159,8 @@ struct doveadm_cmd_ver2 doveadm_cmd_flags_remove_ver2 = {
.usage = DOVEADM_CMD_MAIL_USAGE_PREFIX "<flags> <search query>",
DOVEADM_CMD_PARAMS_START
DOVEADM_CMD_MAIL_COMMON
DOVEADM_CMD_PARAM('\0', "flags", CMD_PARAM_STR, CMD_PARAM_FLAG_POSITIONAL)
DOVEADM_CMD_PARAM('\0', "flag", CMD_PARAM_ARRAY, 0)
DOVEADM_CMD_PARAM('\0', "flagstr", CMD_PARAM_STR, CMD_PARAM_FLAG_POSITIONAL|CMD_PARAM_FLAG_DO_NOT_EXPOSE)
DOVEADM_CMD_PARAM('\0', "query", CMD_PARAM_ARRAY, CMD_PARAM_FLAG_POSITIONAL)
DOVEADM_CMD_PARAMS_END
};
Expand All @@ -169,7 +171,8 @@ struct doveadm_cmd_ver2 doveadm_cmd_flags_replace_ver2 = {
.usage = DOVEADM_CMD_MAIL_USAGE_PREFIX "<flags> <search query>",
DOVEADM_CMD_PARAMS_START
DOVEADM_CMD_MAIL_COMMON
DOVEADM_CMD_PARAM('\0', "flags", CMD_PARAM_STR, CMD_PARAM_FLAG_POSITIONAL)
DOVEADM_CMD_PARAM('\0', "flag", CMD_PARAM_ARRAY, 0)
DOVEADM_CMD_PARAM('\0', "flagstr", CMD_PARAM_STR, CMD_PARAM_FLAG_POSITIONAL|CMD_PARAM_FLAG_DO_NOT_EXPOSE)
DOVEADM_CMD_PARAM('\0', "query", CMD_PARAM_ARRAY, CMD_PARAM_FLAG_POSITIONAL)
DOVEADM_CMD_PARAMS_END
};
6 changes: 4 additions & 2 deletions src/doveadm/doveadm-mail.c
Expand Up @@ -908,6 +908,7 @@ doveadm_cmd_ver2_to_mail_cmd_wrapper(const struct doveadm_cmd_ver2* cmd,
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 = {
Expand Down Expand Up @@ -946,8 +947,9 @@ doveadm_cmd_ver2_to_mail_cmd_wrapper(const struct doveadm_cmd_ver2* cmd,
} else if (ctx->v.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
} else if (strcmp(argv[i].name, "field") == 0 ||
strcmp(argv[i].name, "flag") == 0) {
/* mailbox status, fetch, flags: convert an array into a
single space-separated parameter (alternative to
fieldstr) */
fieldstr = p_array_const_string_join(ctx->pool,
Expand Down

0 comments on commit 2d83aa5

Please sign in to comment.