changeset 22787:9e83365e368b

imap: Include mail user variables in logout format
author Aki Tuomi <aki.tuomi@dovecot.fi>
date Mon, 04 Dec 2017 11:01:05 +0200
parents 7b6f77272538
children 9cd980e23e5d
files src/imap/imap-client.c
diffstat 1 files changed, 5 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/src/imap/imap-client.c	Tue Dec 05 23:49:27 2017 +0200
+++ b/src/imap/imap-client.c	Mon Dec 04 11:01:05 2017 +0200
@@ -247,21 +247,16 @@
 		{ '\0', dec2str(client->autoexpunged_count), "autoexpunged" },
 		{ '\0', dec2str(client->append_count), "appended" },
 	};
-	ARRAY(struct var_expand_table) tab;
 	const struct var_expand_table *user_tab =
 		mail_user_var_expand_table(client->user);
+	const struct var_expand_table *tab =
+		t_var_expand_merge_tables(logout_tab, user_tab);
 	string_t *str;
-	size_t n;
 
-	t_array_init(&tab, 32);
-	array_append(&tab, logout_tab, N_ELEMENTS(logout_tab));
-	/* count elements */
-	for(n = 0; user_tab[n].long_key != NULL; n++)
-		;
-	array_append(&tab, user_tab, n);
-	array_append_zero(&tab);
 	str = t_str_new(128);
-	var_expand(str, client->set->imap_logout_format, array_idx(&tab, 0));
+	var_expand_with_funcs(str, client->set->imap_logout_format,
+			      tab, mail_user_var_expand_func_table,
+			      client->user);
 	return str_c(str);
 }