changeset 22932:ffa75273f796

doveadm-mail: Handle field conversion to short opt better Convert non-string types as well
author Aki Tuomi <aki.tuomi@dovecot.fi>
date Sat, 14 Apr 2018 14:31:44 +0300
parents 31856a233751
children d086a11030b7
files src/doveadm/doveadm-mail.c
diffstat 1 files changed, 17 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/doveadm/doveadm-mail.c	Tue Sep 13 15:01:56 2016 -0400
+++ b/src/doveadm/doveadm-mail.c	Sat Apr 14 14:31:44 2018 +0300
@@ -1053,7 +1053,23 @@
 			const char *short_opt_str = p_strdup_printf(
 				mctx->pool, "-%c", arg->short_opt);
 
-			optarg = (char*)arg->value.v_string;
+			switch(arg->type) {
+			case CMD_PARAM_BOOL:
+				optarg = NULL;
+				break;
+			case CMD_PARAM_INT64:
+				optarg = (char*)dec2str(arg->value.v_int64);
+				break;
+			case CMD_PARAM_IP:
+				optarg = (char*)net_ip2addr(&arg->value.v_ip);
+				break;
+			case CMD_PARAM_STR:
+				optarg = (char*)arg->value.v_string;
+				break;
+			default:
+				i_panic("Cannot convert parameter %s to short opt",
+					arg->name);
+			}
 			mctx->v.parse_arg(mctx, arg->short_opt);
 
 			array_append(&full_args, &short_opt_str, 1);