From 3e6b1986f20ef535bb7d2baabbbfad010af0dd5c Mon Sep 17 00:00:00 2001 From: Bertram Felgenhauer Date: Tue, 28 Apr 2009 14:18:33 +0200 Subject: Drop References header if In-Reply-To is modified by user. Closes #3221. --- headers.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'headers.c') diff --git a/headers.c b/headers.c index 62a7c672..ac8bfac4 100644 --- a/headers.c +++ b/headers.c @@ -110,6 +110,15 @@ void mutt_edit_headers (const char *editor, safe_fclose (&ifp); mutt_unlink (path); + /* in case the user modifies/removes the In-Reply-To header with + $edit_headers set, we remove References: as they're likely invalid; + we can simply compare strings as we don't generate Refereces for + multiple Message-Ids in IRT anyways */ + if (!n->in_reply_to || (msg->env->in_reply_to && + mutt_strcmp (n->in_reply_to->data, + msg->env->in_reply_to->data) != 0)) + mutt_free_list (&msg->env->references); + /* restore old info. */ mutt_free_list (&n->references); n->references = msg->env->references; @@ -118,9 +127,6 @@ void mutt_edit_headers (const char *editor, mutt_free_envelope (&msg->env); msg->env = n; n = NULL; - if (!msg->env->in_reply_to) - mutt_free_list (&msg->env->references); - mutt_expand_aliases_env (msg->env); /* search through the user defined headers added to see if -- cgit v1.2.3