]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
doveadm: Fixed parsing field/flag/file parameters.
authorAki Tuomi <aki.tuomi@dovecot.fi>
Fri, 26 Feb 2016 13:33:23 +0000 (15:33 +0200)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Fri, 26 Feb 2016 13:51:54 +0000 (15:51 +0200)
src/doveadm/doveadm-mail.c

index f1066994a7c1896f6470fc6f3b309b047b755e1b..36193a0e8ce5e550be1b7e06c9e801041c6227f6 100644 (file)
@@ -957,9 +957,6 @@ doveadm_cmd_ver2_to_mail_cmd_wrapper(const struct doveadm_cmd_ver2* cmd,
                        wildcard_user = "*";
                        ctx->users_list_input = argv[i].value.v_istream;
                        i_stream_ref(ctx->users_list_input);
-               } 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 ||
                           strcmp(argv[i].name, "flag") == 0) {
                        /* mailbox status, fetch, flags: convert an array into a
@@ -979,6 +976,12 @@ doveadm_cmd_ver2_to_mail_cmd_wrapper(const struct doveadm_cmd_ver2* cmd,
                        }
                        ctx->cmd_input = argv[i].value.v_istream;
                        i_stream_ref(ctx->cmd_input);
+
+               /* Keep all named special parameters above this line */
+
+               } 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 ((argv[i].flags & CMD_PARAM_FLAG_POSITIONAL) != 0) {
                        /* feed this into pargv */
                        if (argv[i].type == CMD_PARAM_ARRAY)