From: Pietro Cerutti Date: Mon, 13 May 2019 12:14:20 +0000 (+0000) Subject: Use AddressList in mutt_addrlist_to_intl and mutt_addrlist_to_local X-Git-Tag: 2019-10-25~200^2~61 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c267f8969c38657c1d3a4fbeda56be91139f88ef;p=neomutt Use AddressList in mutt_addrlist_to_intl and mutt_addrlist_to_local --- diff --git a/address/address.c b/address/address.c index 064ad6de7..93de11146 100644 --- a/address/address.c +++ b/address/address.c @@ -1298,12 +1298,14 @@ int mutt_addrlist_to_intl(struct Address *a, char **err) if (err) *err = NULL; - for (; a; a = a->next) + struct AddressList *al = mutt_addr_to_addresslist(a); + struct AddressNode *an = NULL; + TAILQ_FOREACH(an, al, entries) { - if (!a->mailbox || mutt_addr_is_intl(a)) + if (!an->addr->mailbox || mutt_addr_is_intl(an->addr)) continue; - if (mutt_addr_mbox_to_udomain(a->mailbox, &user, &domain) == -1) + if (mutt_addr_mbox_to_udomain(an->addr->mailbox, &user, &domain) == -1) continue; intl_mailbox = mutt_idna_local_to_intl(user, domain); @@ -1315,13 +1317,16 @@ int mutt_addrlist_to_intl(struct Address *a, char **err) { rc = -1; if (err && !*err) - *err = mutt_str_strdup(a->mailbox); + *err = mutt_str_strdup(an->addr->mailbox); continue; } - mutt_addr_set_intl(a, intl_mailbox); + mutt_addr_set_intl(an->addr, intl_mailbox); } + mutt_addresslist_to_addr(al); + FREE(&al); + return rc; } @@ -1335,12 +1340,14 @@ int mutt_addrlist_to_local(struct Address *a) char *user = NULL, *domain = NULL; char *local_mailbox = NULL; - for (; a; a = a->next) + struct AddressList *al = mutt_addr_to_addresslist(a); + struct AddressNode *an = NULL; + TAILQ_FOREACH(an, al, entries) { - if (!a->mailbox || mutt_addr_is_local(a)) + if (!an->addr->mailbox || mutt_addr_is_local(an->addr)) continue; - if (mutt_addr_mbox_to_udomain(a->mailbox, &user, &domain) == -1) + if (mutt_addr_mbox_to_udomain(an->addr->mailbox, &user, &domain) == -1) continue; local_mailbox = mutt_idna_intl_to_local(user, domain, 0); @@ -1349,9 +1356,12 @@ int mutt_addrlist_to_local(struct Address *a) FREE(&domain); if (local_mailbox) - mutt_addr_set_local(a, local_mailbox); + mutt_addr_set_local(an->addr, local_mailbox); } + mutt_addresslist_to_addr(al); + FREE(&al); + return 0; }