]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm-flags: Support giving flags as an array.
authorAki Tuomi <aki.tuomi@dovecot.fi>
Fri, 26 Feb 2016 12:38:46 +0000 (14:38 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Fri, 26 Feb 2016 12:38:46 +0000 (14:38 +0200)
src/doveadm/doveadm-mail-flags.c
src/doveadm/doveadm-mail.c

index 60e631394cf1e6b483ede4322675a0850740bdbe..ca109c8a50626f1771a9ba91e3265c0e6adf71ec 100644 (file)
@@ -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
 };
@@ -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
 };
@@ -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
 };
index bfc667f19ed2f379904b0516e19fa1eb964bcf65..d94bfd0d440425b50f9c5e9fab285a124ace2abe 100644 (file)
@@ -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 = {
@@ -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,