Mercurial > dovecot > core-2.2
diff src/lib-mail/message-address.c @ 22153:528bd5a67923
lib-mail: message_address_write: Fix generating empty group list
Empty group list ends with ": " not with ", ".
Test case:
{ { name = NULL, mailbox = "group", domain = NULL }, { name = NULL, mailbox = NULL, domain = NULL } }
converts to:
group:;
author | Pali Rohár <pali.rohar@gmail.com> |
---|---|
date | Sun, 05 Jun 2016 15:48:14 +0200 |
parents | 2e2563132d5f |
children | 91278ef69de7 |
line wrap: on
line diff
--- a/src/lib-mail/message-address.c Fri Jun 09 23:32:28 2017 +0300 +++ b/src/lib-mail/message-address.c Sun Jun 05 15:48:14 2016 +0200 @@ -341,6 +341,7 @@ void message_address_write(string_t *str, const struct message_address *addr) { + const char *tmp; bool first = TRUE, in_group = FALSE; /* a) mailbox@domain @@ -366,7 +367,12 @@ i_assert(addr->mailbox == NULL); /* cut out the ", " */ - str_truncate(str, str_len(str)-2); + tmp = str_c(str)+str_len(str)-2; + i_assert((tmp[0] == ',' || tmp[0] == ':') && tmp[1] == ' '); + if (tmp[0] == ',' && tmp[1] == ' ') + str_truncate(str, str_len(str)-2); + else if (tmp[0] == ':' && tmp[1] == ' ') + str_truncate(str, str_len(str)-1); str_append_c(str, ';'); }