dovecot-2.2: doveadm dict iter: Added -1 parameter to enable DIC...

dovecot at dovecot.org dovecot at dovecot.org
Tue May 12 16:45:46 UTC 2015


details:   http://hg.dovecot.org/dovecot-2.2/rev/04e169b3bfe6
changeset: 18654:04e169b3bfe6
user:      Timo Sirainen <tss at iki.fi>
date:      Tue May 12 19:43:48 2015 +0300
description:
doveadm dict iter: Added -1 parameter to enable DICT_ITERATE_FLAG_EXACT_KEY

diffstat:

 src/doveadm/doveadm-dict.c |  20 +++++++++-----------
 1 files changed, 9 insertions(+), 11 deletions(-)

diffs (52 lines):

diff -r fce3e3eef9f0 -r 04e169b3bfe6 src/doveadm/doveadm-dict.c
--- 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);


More information about the dovecot-cvs mailing list