void mutt_set_followup_to (ENVELOPE * e)
{
- address_t *from;
-
- /*
- * Only generate the Mail-Followup-To if the user has requested it, and
- * it hasn't already been set
- */
+ /*
+ * Only generate the Mail-Followup-To if the user has requested it, and
+ * it hasn't already been set
+ */
+ if (!option(OPTFOLLOWUPTO))
+ return;
- if (!option (OPTFOLLOWUPTO))
- return;
#ifdef USE_NNTP
- if (option (OPTNEWSSEND)) {
- if (!e->followup_to && e->newsgroups && (strrchr (e->newsgroups, ',')))
- e->followup_to = m_strdup(e->newsgroups);
- return;
- }
+ if (option(OPTNEWSSEND)) {
+ if (!e->followup_to && e->newsgroups && strrchr(e->newsgroups, ','))
+ e->followup_to = m_strdup(e->newsgroups);
+ return;
+ }
#endif
- if (!e->mail_followup_to) {
+ if (e->mail_followup_to)
+ return;
+
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
- */
+ address_t **tmp;
- tmp = address_list_append(&e->mail_followup_to, address_list_dup(e->to));
- address_list_append(tmp, address_list_dup(e->cc));
+ /*
+ * this message goes to known mailing lists, so create a proper
+ * mail-followup-to header
+ */
+ 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 */
- e->mail_followup_to = remove_user (e->mail_followup_to, 0);
+ e->mail_followup_to = remove_user(e->mail_followup_to, 0);
/*
* If we are not subscribed to any of the lists in question,
- * re-add ourselves to the mail-followup-to header. The
+ * re-add ourselves to the mail-followup-to header. The
* mail-followup-to header generated is a no-op with group-reply,
* but makes sure list-reply has the desired effect.
*/
+ if (e->mail_followup_to && !mutt_is_list_recipient(0, e->to, e->cc)) {
+ address_t *from;
- if (e->mail_followup_to && !mutt_is_list_recipient (0, e->to, e->cc)) {
- if (e->reply_to)
- from = address_list_dup (e->reply_to);
- else if (e->from)
- from = address_list_dup (e->from);
- else
- from = mutt_default_from ();
+ if (e->reply_to)
+ from = address_list_dup(e->reply_to);
+ else if (e->from)
+ from = address_list_dup(e->from);
+ else
+ from = mutt_default_from();
- if (from) {
- address_list_append(&from->next, e->mail_followup_to);
+ address_list_append(&from, e->mail_followup_to);
e->mail_followup_to = from;
- }
}
address_list_uniq(e->mail_followup_to);
-
- }
}
from field */
static address_t *set_reverse_name (ENVELOPE * env)
{
- address_t *tmp;
+ address_t *tmp;
- for (tmp = env->to; tmp; tmp = tmp->next) {
- if (mutt_addr_is_user (tmp))
- break;
- }
- if (!tmp) {
+ for (tmp = env->to; tmp; tmp = tmp->next) {
+ if (mutt_addr_is_user(tmp))
+ goto found;
+ }
for (tmp = env->cc; tmp; tmp = tmp->next) {
- if (mutt_addr_is_user (tmp))
- break;
+ if (mutt_addr_is_user(tmp))
+ goto found;
}
- }
- if (!tmp && mutt_addr_is_user (env->from))
- tmp = env->from;
- if (tmp) {
- tmp = address_dup (tmp);
- if (!option (OPTREVREAL))
- p_delete(&tmp->personal);
- if (!tmp->personal)
- tmp->personal = m_strdup(Realname);
- }
- return (tmp);
+
+ if (!mutt_addr_is_user(env->from))
+ return NULL;
+
+ found:
+ tmp = address_dup(tmp);
+ if (!option(OPTREVREAL) || !tmp->personal) {
+ p_delete(&tmp->personal);
+ tmp->personal = m_strdup(Realname);
+ }
+ return tmp;
}
address_t *mutt_default_from (void)
{
address_t *adr;
- const char *fqdn = mutt_fqdn (1);
- /*
- * Note: We let $from override $realname here. Is this the right
- * thing to do?
+ /*
+ * Note: We let $from override $realname here.
+ * Is this the right thing to do?
*/
if (From)
- adr = address_dup (From);
+ adr = address_dup(From);
else if (option (OPTUSEDOMAIN)) {
- adr = address_new ();
+ const char *fqdn = mutt_fqdn (1);
+ adr = address_new();
adr->mailbox = p_new(char, m_strlen(Username) + m_strlen(fqdn) + 2);
- sprintf (adr->mailbox, "%s@%s", NONULL (Username), NONULL (fqdn));
- }
- else {
+ sprintf(adr->mailbox, "%s@%s", NONULL(Username), NONULL(fqdn));
+ } else {
adr = address_new ();
- adr->mailbox = m_strdup(NONULL (Username));
+ adr->mailbox = m_strdup(NONULL(Username));
}
return (adr);