X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=send.c;h=4ffad14dbc8676bd34a6563b614027c7a54c0428;hp=f98e32ba93fb6e47f656696d5b3af8736fd5db11;hb=33d07d4040a973a004c4a729fd1f56a63a7203e6;hpb=cfc49a0d8c3ac2c0bd4b217026d0740c55f2e5db diff --git a/send.c b/send.c index f98e32b..4ffad14 100644 --- a/send.c +++ b/send.c @@ -170,11 +170,11 @@ static address_t *find_mailing_lists (address_t * t, address_t * c) for (; t; t = t->next) { if (mutt_is_mail_list (t) && !t->group) { if (top) { - ptr->next = rfc822_cpy_adr_real (t); + ptr->next = address_dup (t); ptr = ptr->next; } else - ptr = top = rfc822_cpy_adr_real (t); + ptr = top = address_dup (t); } } } @@ -473,10 +473,9 @@ static int include_reply (CONTEXT * ctx, HEADER * cur, FILE * out) static int default_to (address_t ** to, ENVELOPE * env, int flags, int hmfupto) { char prompt[STRING]; - address_t *tmp; if (flags && env->mail_followup_to && hmfupto == M_YES) { - rfc822_append (to, env->mail_followup_to); + address_list_append(to, address_list_dup(env->mail_followup_to)); return 0; } @@ -494,9 +493,7 @@ static int default_to (address_t ** to, ENVELOPE * env, int flags, int hmfupto) _("Message came from a mailing list. List-reply to mailing list?"))) { case M_YES: - tmp = find_mailing_lists (env->to, env->cc); - rfc822_append (to, tmp); - address_delete (&tmp); + address_list_append(to, find_mailing_lists (env->to, env->cc)); return 0; case -1: return -1; /* abort */ @@ -505,7 +502,7 @@ static int default_to (address_t ** to, ENVELOPE * env, int flags, int hmfupto) if (!option (OPTREPLYSELF) && mutt_addr_is_user (env->from)) { /* mail is from the user, assume replying to recipients */ - rfc822_append (to, env->to); + address_list_append(to, address_list_dup(env->to)); } else if (env->reply_to) { if ((mutt_addrcmp (env->from, env->reply_to) && !env->reply_to->next) || @@ -521,7 +518,7 @@ static int default_to (address_t ** to, ENVELOPE * env, int flags, int hmfupto) * in his From header. * */ - rfc822_append (to, env->from); + address_list_append(to, address_list_dup(env->from)); } else if (!(mutt_addrcmp (env->from, env->reply_to) && !env->reply_to->next) && quadoption (OPT_REPLYTO) != M_YES) { @@ -534,11 +531,11 @@ static int default_to (address_t ** to, ENVELOPE * env, int flags, int hmfupto) env->reply_to->mailbox, env->reply_to->next ? ",..." : ""); switch (query_quadoption (OPT_REPLYTO, prompt)) { case M_YES: - rfc822_append (to, env->reply_to); + address_list_append(to, address_list_dup(env->reply_to)); break; case M_NO: - rfc822_append (to, env->from); + address_list_append(to, address_list_dup(env->from)); break; default: @@ -546,10 +543,10 @@ static int default_to (address_t ** to, ENVELOPE * env, int flags, int hmfupto) } } else - rfc822_append (to, env->reply_to); + address_list_append(to, address_list_dup(env->reply_to)); } else - rfc822_append (to, env->from); + address_list_append(to, address_list_dup(env->from)); return (0); } @@ -557,7 +554,6 @@ static int default_to (address_t ** to, ENVELOPE * env, int flags, int hmfupto) int mutt_fetch_recips (ENVELOPE * out, ENVELOPE * in, int flags) { char prompt[STRING]; - address_t *tmp; int hmfupto = -1; if ((flags & (SENDLISTREPLY | SENDGROUPREPLY)) && in->mail_followup_to) { @@ -570,9 +566,7 @@ int mutt_fetch_recips (ENVELOPE * out, ENVELOPE * in, int flags) } if (flags & SENDLISTREPLY) { - tmp = find_mailing_lists (in->to, in->cc); - rfc822_append (&out->to, tmp); - address_delete (&tmp); + address_list_append(&out->to, find_mailing_lists(in->to, in->cc)); if (in->mail_followup_to && hmfupto == M_YES && default_to (&out->cc, in, flags & SENDLISTREPLY, hmfupto) == -1) @@ -583,10 +577,10 @@ int mutt_fetch_recips (ENVELOPE * out, ENVELOPE * in, int flags) return (-1); /* abort */ if ((flags & SENDGROUPREPLY) - && (!in->mail_followup_to || hmfupto != M_YES)) { - /* if(!mutt_addr_is_user(in->to)) */ - rfc822_append (&out->cc, in->to); - rfc822_append (&out->cc, in->cc); + && (!in->mail_followup_to || hmfupto != M_YES)) + { + address_t **tmp = address_list_append(&out->cc, address_list_dup(in->to)); + address_list_append(tmp, address_list_dup(in->cc)); } } return 0; @@ -881,7 +875,6 @@ static int generate_body (FILE * tempfp, /* stream for outgoing message * void mutt_set_followup_to (ENVELOPE * e) { - address_t *t = NULL; address_t *from; /* @@ -901,13 +894,14 @@ void mutt_set_followup_to (ENVELOPE * e) if (!e->mail_followup_to) { if (mutt_is_list_cc (0, e->to, e->cc)) { + address_t **tmp; /* * this message goes to known mailing lists, so create a proper * mail-followup-to header */ - t = rfc822_append (&e->mail_followup_to, e->to); - rfc822_append (&t, e->cc); + tmp = address_list_append(&e->mail_followup_to, address_list_dup(e->to)); + address_list_append(tmp, address_list_dup(e->cc)); } /* remove ourselves from the mail-followup-to header */ @@ -922,22 +916,19 @@ void mutt_set_followup_to (ENVELOPE * e) if (e->mail_followup_to && !mutt_is_list_recipient (0, e->to, e->cc)) { if (e->reply_to) - from = rfc822_cpy_adr (e->reply_to); + from = address_list_dup (e->reply_to); else if (e->from) - from = rfc822_cpy_adr (e->from); + from = address_list_dup (e->from); else from = mutt_default_from (); if (from) { - /* Normally, this loop will not even be entered. */ - for (t = from; t && t->next; t = t->next); - - t->next = e->mail_followup_to; /* t cannot be NULL at this point. */ + address_list_append(&from->next, e->mail_followup_to); e->mail_followup_to = from; } } - e->mail_followup_to = mutt_remove_duplicates (e->mail_followup_to); + e->mail_followup_to = mutt_remove_duplicates(e->mail_followup_to); } } @@ -963,7 +954,7 @@ static address_t *set_reverse_name (ENVELOPE * env) if (!tmp && mutt_addr_is_user (env->from)) tmp = env->from; if (tmp) { - tmp = rfc822_cpy_adr_real (tmp); + tmp = address_dup (tmp); if (!option (OPTREVREAL)) p_delete(&tmp->personal); if (!tmp->personal) @@ -983,7 +974,7 @@ address_t *mutt_default_from (void) */ if (From) - adr = rfc822_cpy_adr_real (From); + adr = address_dup (From); else if (option (OPTUSEDOMAIN)) { adr = address_new (); adr->mailbox = p_new(char, m_strlen(Username) + m_strlen(fqdn) + 2);