Subject: Remove the Mail-Followup-To header when empty

From: Tomas Volf <[email-masked]>
Date: Tue, 03 Dec 2024 00:17:10 +0100

Tags: patch

According to the info manual (message)Mailing Lists, the
Mail-Followup-To header should be removed when it is empty:

> If there is one, it is left alone.  (Except if it’s empty; in that
> case, the field is removed and is not replaced with an automatically
> generated one.  This lets you disable MFT generation on a per-message
> basis.)

While the code attempted to do that, the call to `message-remove-header'
passed wrong arguments.  Since the IS-REGEXP argument was not passed,
the HEADER was considered a full header name (if I read the code right)
and therefore failed to match (since the code passed in a regexp instead
of a fixed string).

The fix is simple, remove the leading ^ and trailing :.

Change log entry as requested:

Actually remove the Mail-Followup-To header iff empty in
message-send-mail.

* lisp/gnus/message.el (message-send-mail)
[(equal "" (mail-fetch-field "mail-followup-to")]: Pass a fixed string
instead of regexp to `message-remove-header'.

In GNU Emacs 29.4 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.41,
cairo version 1.18.0)
Windowing system distributor 'The X.Org Foundation', version 11.0.12101012
System Description: Guix System

Configured using:
 'configure
 CONFIG_SHELL=/gnu/store/3jhfhxdf6v5ms10x5zmnl166dh3yhbr1-bash-minimal-5.1.16/bin/bash
 SHELL=/gnu/store/3jhfhxdf6v5ms10x5zmnl166dh3yhbr1-bash-minimal-5.1.16/bin/bash
 --prefix=/gnu/store/s8757iarmns4dpklil8pgdikmb68v7bf-emacs-29.4
 --enable-fast-install --with-cairo --with-modules
 --with-native-compilation=aot --disable-build-details'

diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index b49e3f9d9ca..b4c5a1e2436 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -4900,7 +4900,7 @@ If you always want Gnus to send messages in one piece, set
 		 message-required-mail-headers))
 	;; otherwise, delete the MFT header if the field is empty
 	(when (equal "" (mail-fetch-field "mail-followup-to"))
-	  (message-remove-header "^Mail-Followup-To:")))
+	  (message-remove-header "Mail-Followup-To")))
       ;; Insert some headers.
       (let ((message-deletable-headers
 	     (if news nil message-deletable-headers)))