Mercurial > dovecot > core-2.2
changeset 18654:04e169b3bfe6
doveadm dict iter: Added -1 parameter to enable DICT_ITERATE_FLAG_EXACT_KEY
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 12 May 2015 19:43:48 +0300 |
parents | fce3e3eef9f0 |
children | c4bef3533ecd |
files | src/doveadm/doveadm-dict.c |
diffstat | 1 files changed, 9 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/doveadm/doveadm-dict.c Tue May 12 19:43:25 2015 +0300 +++ b/src/doveadm/doveadm-dict.c Tue May 12 19:43:48 2015 +0300 @@ -12,21 +12,20 @@ static struct dict * cmd_dict_init_full(int *argc, char **argv[], int own_arg_count, int key_arg_idx, - doveadm_command_t *cmd, bool *recurse) + doveadm_command_t *cmd, enum dict_iterate_flags *iter_flags) { - const char *getopt_args = recurse == NULL ? "u:" : "Ru:"; + const char *getopt_args = iter_flags == NULL ? "u:" : "1Ru:"; struct dict *dict; const char *error, *username = ""; int c; - if (recurse != NULL) - *recurse = FALSE; - while ((c = getopt(*argc, *argv, getopt_args)) > 0) { switch (c) { + case '1': + *iter_flags |= DICT_ITERATE_FLAG_EXACT_KEY; + break; case 'R': - i_assert(recurse != NULL); - *recurse = TRUE; + *iter_flags |= DICT_ITERATE_FLAG_RECURSE; break; case 'u': username = optarg; @@ -155,17 +154,16 @@ { struct dict *dict; struct dict_iterate_context *iter; + enum dict_iterate_flags iter_flags = 0; const char *key, *value; - bool recurse; - dict = cmd_dict_init_full(&argc, &argv, 1, 0, cmd_dict_iter, &recurse); + dict = cmd_dict_init_full(&argc, &argv, 1, 0, cmd_dict_iter, &iter_flags); doveadm_print_init(DOVEADM_PRINT_TYPE_TAB); doveadm_print_header_simple("key"); doveadm_print_header_simple("value"); - iter = dict_iterate_init(dict, argv[0], - recurse ? DICT_ITERATE_FLAG_RECURSE : 0); + iter = dict_iterate_init(dict, argv[0], iter_flags); while (dict_iterate(iter, &key, &value)) { doveadm_print(key); doveadm_print(value);