*
* @note This doesn't alter the links if the Address is in a list.
*/
-static void free_address(struct Address *a)
+static void free_address(struct Address **a)
{
- FREE(&a->personal);
- FREE(&a->mailbox);
- FREE(&a);
+ if (!a || !*a)
+ return;
+ FREE(&(*a)->personal);
+ FREE(&(*a)->mailbox);
+ FREE(&(*a));
}
/**
(*a) = p->next;
t = p;
p = p->next;
- free_address(t);
+ free_address(&t);
rc = 0;
}
else
{
t = *p;
*p = (*p)->next;
- FREE(&t->personal);
- FREE(&t->mailbox);
- FREE(&t);
+ free_address(&t);
}
}
* @param prune Skip groups if there are more addresses
* @retval ptr New Address list
*/
-struct Address *mutt_addr_copy_list(struct Address *addr, int prune)
+struct Address *mutt_addr_copy_list(struct Address *addr, bool prune)
{
struct Address *top = NULL, *last = NULL;
*
* Append the Source onto the end of the Destination Address list.
*/
-struct Address *mutt_addr_append(struct Address **a, struct Address *b, int prune)
+struct Address *mutt_addr_append(struct Address **a, struct Address *b, bool prune)
{
struct Address *tmp = *a;
* @param b Second Address
* @retval true Address lists are strictly identical
*/
-int mutt_addr_cmp_strict(const struct Address *a, const struct Address *b)
+bool mutt_addr_cmp_strict(const struct Address *a, const struct Address *b)
{
while (a && b)
{
if ((mutt_str_strcmp(a->mailbox, b->mailbox) != 0) ||
(mutt_str_strcmp(a->personal, b->personal) != 0))
{
- return 0;
+ return false;
}
a = a->next;
b = b->next;
}
if (a || b)
- return 0;
+ return false;
- return 1;
+ return true;
}
/**
* @param lst Address List
* @retval true If the Address is in the list
*/
-int mutt_addr_search(struct Address *a, struct Address *lst)
+bool mutt_addr_search(struct Address *a, struct Address *lst)
{
for (; lst; lst = lst->next)
{
if (mutt_addr_cmp(a, lst))
- return 1;
+ return true;
}
- return 0;
+ return false;
}
#define address_error(x) AddressErrors[x]
-struct Address *mutt_addr_append(struct Address **a, struct Address *b, int prune);
+struct Address *mutt_addr_append(struct Address **a, struct Address *b, bool prune);
void mutt_addr_cat(char *buf, size_t buflen, const char *value, const char *specials);
-int mutt_addr_cmp_strict(const struct Address *a, const struct Address *b);
+bool mutt_addr_cmp_strict(const struct Address *a, const struct Address *b);
bool mutt_addr_cmp(struct Address *a, struct Address *b);
-struct Address *mutt_addr_copy_list(struct Address *addr, int prune);
+struct Address *mutt_addr_copy_list(struct Address *addr, bool prune);
struct Address *mutt_addr_copy(struct Address *addr);
void mutt_addr_free(struct Address **p);
int mutt_addr_has_recips(struct Address *a);
struct Address *mutt_addr_parse_list(struct Address *top, const char *s);
void mutt_addr_qualify(struct Address *addr, const char *host);
int mutt_addr_remove_from_list(struct Address **a, const char *mailbox);
-int mutt_addr_search(struct Address *a, struct Address *lst);
+bool mutt_addr_search(struct Address *a, struct Address *lst);
bool mutt_addr_valid_msgid(const char *msgid);
#endif /* _MUTT_ADDRESS_H */
if (!i)
{
mutt_list_insert_head(expn, mutt_str_strdup(a->mailbox));
- w = mutt_addr_copy_list(t, 0);
+ w = mutt_addr_copy_list(t, false);
w = expand_aliases_r(w, expn);
if (head)
last->next = w;
for (p = &g->as; *p; p = &((*p)->next))
;
- q = mutt_addr_copy_list(a, 0);
+ q = mutt_addr_copy_list(a, false);
q = mutt_remove_xrefs(g->as, q);
*p = q;
}
}
}
- mutt_addr_append(&msg->env->to, opts_env->to, 0);
- mutt_addr_append(&msg->env->cc, opts_env->cc, 0);
- mutt_addr_append(&msg->env->bcc, opts_env->bcc, 0);
+ mutt_addr_append(&msg->env->to, opts_env->to, false);
+ mutt_addr_append(&msg->env->cc, opts_env->cc, false);
+ mutt_addr_append(&msg->env->bcc, opts_env->bcc, false);
if (opts_env->subject)
mutt_str_replace(&msg->env->subject, opts_env->subject);
hdr->env->return_path = mutt_addr_parse_list(hdr->env->return_path, return_path);
if (!hdr->env->from)
- hdr->env->from = mutt_addr_copy_list(hdr->env->return_path, 0);
+ hdr->env->from = mutt_addr_copy_list(hdr->env->return_path, false);
ctx->msgcount++;
}
mutt_addr_parse_list(curhdr->env->return_path, return_path);
if (!curhdr->env->from)
- curhdr->env->from = mutt_addr_copy_list(curhdr->env->return_path, 0);
+ curhdr->env->from = mutt_addr_copy_list(curhdr->env->return_path, false);
lines = 0;
}
if ((WithCrypto & APPLICATION_PGP))
set_option(OPT_PGP_CHECK_TRUST);
- last = mutt_addr_append(&adrlist, msg->env->to, 0);
- last = mutt_addr_append(last ? &last : &adrlist, msg->env->cc, 0);
- mutt_addr_append(last ? &last : &adrlist, msg->env->bcc, 0);
+ last = mutt_addr_append(&adrlist, msg->env->to, false);
+ last = mutt_addr_append(last ? &last : &adrlist, msg->env->cc, false);
+ mutt_addr_append(last ? &last : &adrlist, msg->env->bcc, false);
if (fqdn)
mutt_addr_qualify(adrlist, fqdn);
{
static struct Address *tmp = NULL;
- tmp = mutt_addr_copy_list(r->addr, 0);
+ tmp = mutt_addr_copy_list(r->addr, false);
if (!tmp)
return NULL;
if (QueryTable[i].tagged)
{
struct Address *a = result_to_addr(QueryTable[i].data);
- mutt_addr_append(&naddr, a, 0);
+ mutt_addr_append(&naddr, a, false);
mutt_addr_free(&a);
}
}
if (QueryTable[i].tagged)
{
struct Address *a = result_to_addr(QueryTable[i].data);
- mutt_addr_append(&msg->env->to, a, 0);
+ mutt_addr_append(&msg->env->to, a, false);
mutt_addr_free(&a);
}
}
if (flags && env->mail_followup_to && hmfupto == MUTT_YES)
{
- mutt_addr_append(to, env->mail_followup_to, 1);
+ mutt_addr_append(to, env->mail_followup_to, true);
return 0;
}
if (!option(OPT_REPLY_SELF) && mutt_addr_is_user(env->from))
{
/* mail is from the user, assume replying to recipients */
- mutt_addr_append(to, env->to, 1);
+ mutt_addr_append(to, env->to, true);
}
else if (env->reply_to)
{
* in his From header, and the reply-to has no display-name.
*
*/
- mutt_addr_append(to, env->from, 0);
+ mutt_addr_append(to, env->from, false);
}
else if (!(mutt_addr_cmp(env->from, env->reply_to) && !env->reply_to->next) &&
quadoption(OPT_REPLY_TO) != MUTT_YES)
switch (query_quadoption(OPT_REPLY_TO, prompt))
{
case MUTT_YES:
- mutt_addr_append(to, env->reply_to, 0);
+ mutt_addr_append(to, env->reply_to, false);
break;
case MUTT_NO:
- mutt_addr_append(to, env->from, 0);
+ mutt_addr_append(to, env->from, false);
break;
default:
}
}
else
- mutt_addr_append(to, env->reply_to, 0);
+ mutt_addr_append(to, env->reply_to, false);
}
else
- mutt_addr_append(to, env->from, 0);
+ mutt_addr_append(to, env->from, false);
return 0;
}
if (flags & SENDLISTREPLY)
{
tmp = find_mailing_lists(in->to, in->cc);
- mutt_addr_append(&out->to, tmp, 0);
+ mutt_addr_append(&out->to, tmp, false);
mutt_addr_free(&tmp);
if (in->mail_followup_to && hmfupto == MUTT_YES &&
if ((flags & SENDGROUPREPLY) && (!in->mail_followup_to || hmfupto != MUTT_YES))
{
/* if(!mutt_addr_is_user(in->to)) */
- mutt_addr_append(&out->cc, in->to, 1);
- mutt_addr_append(&out->cc, in->cc, 1);
+ mutt_addr_append(&out->cc, in->to, true);
+ mutt_addr_append(&out->cc, in->cc, true);
}
}
return 0;
* mail-followup-to header
*/
- t = mutt_addr_append(&e->mail_followup_to, e->to, 0);
- mutt_addr_append(&t, e->cc, 1);
+ t = mutt_addr_append(&e->mail_followup_to, e->to, false);
+ mutt_addr_append(&t, e->cc, true);
}
/* remove ourselves from the mail-followup-to header */
if (e->mail_followup_to && !mutt_is_list_recipient(0, e->to, e->cc))
{
if (e->reply_to)
- from = mutt_addr_copy_list(e->reply_to, 0);
+ from = mutt_addr_copy_list(e->reply_to, false);
else if (e->from)
- from = mutt_addr_copy_list(e->from, 0);
+ from = mutt_addr_copy_list(e->from, false);
else
from = mutt_default_from();
for (int i = 0; i < Context->msgcount; i++)
{
if (message_is_tagged(Context, i))
- mutt_addr_append(&msg->env->to, Context->hdrs[i]->env->from, 0);
+ mutt_addr_append(&msg->env->to, Context->hdrs[i]->env->from, false);
}
}
else
- msg->env->to = mutt_addr_copy_list(hdr->env->from, 0);
+ msg->env->to = mutt_addr_copy_list(hdr->env->from, false);
return ci_send_message(0, msg, NULL, NULL, NULL);
}
* function is called, since the user receives confirmation of the address
* list being bounced to.
*/
- resent_to = mutt_addr_copy_list(to, 0);
+ resent_to = mutt_addr_copy_list(to, false);
rfc2047_encode_adrlist(resent_to, "Resent-To");
ret = bounce_message(fp, h, resent_to, resent_from, from);