}
/**
- * mutt_addrlist_to_intl - Convert an Address list to Punycode
+ * mutt_addresslist_to_intl - Convert an Address list to Punycode
* @param[in] a Address list to modify
* @param[out] err Pointer for failed addresses
* @retval 0 Success, all addresses converted
*/
int mutt_addresslist_to_intl(struct AddressList *al, char **err)
{
- char *user = NULL, *domain = NULL;
- char *intl_mailbox = NULL;
+ if (!al)
+ return 0;
+
int rc = 0;
if (err)
if (!an->addr->mailbox || mutt_addr_is_intl(an->addr))
continue;
+ char *user = NULL;
+ char *domain = NULL;
if (mutt_addr_mbox_to_udomain(an->addr->mailbox, &user, &domain) == -1)
continue;
- intl_mailbox = mutt_idna_local_to_intl(user, domain);
+ char *intl_mailbox = mutt_idna_local_to_intl(user, domain);
FREE(&user);
FREE(&domain);
return rc;
}
-int mutt_addrlist_to_intl(struct Address *a, char **err)
-{
- struct AddressList *al = mutt_addr_to_addresslist(a);
- int rc = mutt_addresslist_to_intl(al, err);
- a = mutt_addresslist_to_addr(al);
- FREE(&al);
- return rc;
-}
-
/**
- * mutt_addrlist_to_local - Convert an Address list from Punycode
+ * mutt_addresslist_to_local - Convert an Address list from Punycode
* @param a Address list to modify
* @retval 0 Always
*/
int mutt_addresslist_to_local(struct AddressList *al)
{
- char *user = NULL, *domain = NULL;
- char *local_mailbox = NULL;
+ if (!al)
+ return 0;
struct AddressNode *an = NULL;
TAILQ_FOREACH(an, al, entries)
if (!an->addr->mailbox || mutt_addr_is_local(an->addr))
continue;
+ char *user = NULL;
+ char *domain = NULL;
if (mutt_addr_mbox_to_udomain(an->addr->mailbox, &user, &domain) == -1)
continue;
- local_mailbox = mutt_idna_intl_to_local(user, domain, 0);
+ char *local_mailbox = mutt_idna_intl_to_local(user, domain, 0);
FREE(&user);
FREE(&domain);
return 0;
}
-int mutt_addrlist_to_local(struct Address *a)
-{
- struct AddressList *al = mutt_addr_to_addresslist(a);
- mutt_addresslist_to_local(al);
- mutt_addresslist_to_addr(al);
- FREE(&al);
- return 0;
-}
-
/**
* mutt_addresslist_dedupe - Remove duplicate addresses
* @param addr Address list to de-dupe
size_t mutt_addr_write(char *buf, size_t buflen, struct Address *addr, bool display);
struct Address *mutt_addr_new(void);
-int mutt_addrlist_to_intl(struct Address *a, char **err);
-int mutt_addrlist_to_local(struct Address *a);
-
/* Functions that work on struct AddressList */
struct AddressList *mutt_addr_to_addresslist(struct Address *a);
struct AddressList *mutt_addresslist_new(void);
* mutt_env_to_local - Convert an Envelope's Address fields to local format
* @param env Envelope to modify
*
- * Run mutt_addrlist_to_local() on each of the Address fields in the Envelope.
+ * Run mutt_addresslist_to_local() on each of the Address fields in the Envelope.
*/
void mutt_env_to_local(struct Envelope *env)
{
* @retval 0 Success, all addresses converted
* @retval 1 Error, tag and err will be set
*
- * Run mutt_addrlist_to_intl() on each of the Address fields in the Envelope.
+ * Run mutt_addresslist_to_intl() on each of the Address fields in the Envelope.
*/
int mutt_env_to_intl(struct Envelope *env, const char **tag, char **err)
{
test/address/mutt_addresslist_qualify.o \
test/address/mutt_addresslist_remove.o \
test/address/mutt_addresslist_remove_xrefs.o \
- test/address/mutt_addrlist_to_intl.o \
- test/address/mutt_addrlist_to_local.o \
+ test/address/mutt_addresslist_to_intl.o \
+ test/address/mutt_addresslist_to_local.o \
test/address/mutt_addr_new.o \
test/address/mutt_addr_search.o \
test/address/mutt_addr_valid_msgid.o \
/**
* @file
- * Test code for mutt_addrlist_to_intl()
+ * Test code for mutt_addresslist_to_intl()
*
* @authors
* Copyright (C) 2019 Richard Russon <rich@flatcap.org>
#include "mutt/mutt.h"
#include "address/lib.h"
-void test_mutt_addrlist_to_intl(void)
+void test_mutt_addresslist_to_intl(void)
{
- // int mutt_addrlist_to_intl(struct Address *a, char **err);
+ // int mutt_addresslist_to_intl(struct AddressList *a, char **err);
{
char *err = NULL;
- TEST_CHECK(mutt_addrlist_to_intl(NULL, &err) == 0);
+ TEST_CHECK(mutt_addresslist_to_intl(NULL, &err) == 0);
}
{
- struct Address addr = { 0 };
- TEST_CHECK(mutt_addrlist_to_intl(&addr, NULL) == 0);
+ struct AddressList al = TAILQ_HEAD_INITIALIZER(al);
+ TEST_CHECK(mutt_addresslist_to_intl(&al, NULL) == 0);
}
}
/**
* @file
- * Test code for mutt_addrlist_to_local()
+ * Test code for mutt_addresslist_to_local()
*
* @authors
* Copyright (C) 2019 Richard Russon <rich@flatcap.org>
#include "mutt/mutt.h"
#include "address/lib.h"
-void test_mutt_addrlist_to_local(void)
+void test_mutt_addresslist_to_local(void)
{
- // int mutt_addrlist_to_local(struct Address *a);
+ // int mutt_addresslist_to_local(struct AddressList *a);
{
- TEST_CHECK(mutt_addrlist_to_local(NULL) == 0);
+ TEST_CHECK(mutt_addresslist_to_local(NULL) == 0);
}
}
NEOMUTT_TEST_ITEM(test_mutt_addresslist_qualify) \
NEOMUTT_TEST_ITEM(test_mutt_addresslist_remove) \
NEOMUTT_TEST_ITEM(test_mutt_addresslist_remove_xrefs) \
- NEOMUTT_TEST_ITEM(test_mutt_addrlist_to_intl) \
- NEOMUTT_TEST_ITEM(test_mutt_addrlist_to_local) \
+ NEOMUTT_TEST_ITEM(test_mutt_addresslist_to_intl) \
+ NEOMUTT_TEST_ITEM(test_mutt_addresslist_to_local) \
NEOMUTT_TEST_ITEM(test_mutt_actx_add_attach) \
NEOMUTT_TEST_ITEM(test_mutt_actx_add_body) \
NEOMUTT_TEST_ITEM(test_mutt_actx_add_fp) \