]> git.eshelyaron.com Git - emacs.git/commitdiff
Don't use obsolete In-Reply-To format in messages (Bug#64454)
authorAndrew G Cohen <cohen@andy.bu.edu>
Wed, 5 Jul 2023 07:21:16 +0000 (15:21 +0800)
committerEshel Yaron <me@eshelyaron.com>
Sun, 9 Feb 2025 08:30:44 +0000 (09:30 +0100)
When creating a new message, message-send-mail uses an obsolete format
for the In-Reply-To header that includes additional information about
the originating message.  This patch changes the default to use the
rfc5322 approved format, but allow the obsolete format through a
defcustom.

* lisp/gnus/message.el (message-make-in-reply-to): Return only the
message-id of the originating message (the default) unless the new
custom variable message-header-use-obsolete-in-reply-to is non-nil.
* doc/misc/message.texi: Document the new custom variable
message-header-use-obsolete-in-reply-to.
* etc/NEWS: Update NEWS.

(cherry picked from commit 2eb6171ec96eac0c78cf20b3003fcbcb1206c8c7)

doc/misc/message.texi
lisp/gnus/message.el

index 30f7ec9eda352c540f8b3453500331a24fd49876..6a7821214c53b800a31c6494f7418c715eede940 100644 (file)
@@ -1791,6 +1791,12 @@ member list with elements @code{CC} and @code{To}, then
 @code{message-carefully-insert-headers} will not insert a @code{To}
 header when the message is already @code{CC}ed to the recipient.
 
+@item message-header-use-obsolete-in-reply-to
+@vindex message-header-use-obsolete-in-reply-to
+When non-@code{nil}, use an obsolete form of the @code{In-Reply-To}
+header that includes a parenthetical phrase with details of the
+originating email following the message id.  The default is @code{nil}.
+
 @item message-syntax-checks
 @vindex message-syntax-checks
 Controls what syntax checks should not be performed on outgoing posts.
index 2ca57e3a410dd0196354cd853d68ba84aac5d94e..5902f05e9ea1399d6f28a88fb9e8929460166371 100644 (file)
   :group 'message
   :group 'faces)
 
+(defcustom message-header-use-obsolete-in-reply-to nil
+  "Include extra information in the In-Reply-To header.
+This form has been obsolete since RFC 2822."
+  :group 'message-headers
+  :version "31.1"
+  :type 'boolean)
+
 (defcustom message-directory "~/Mail/"
   "Directory from which all other mail file variables are derived."
   :group 'message-various
@@ -5963,35 +5970,38 @@ In posting styles use `(\"Expires\" (make-expires-date 30))'."
   "Return the In-Reply-To header for this message."
   (when message-reply-headers
     (let ((from (mail-header-from message-reply-headers))
-         (date (mail-header-date message-reply-headers))
-         (msg-id (mail-header-id message-reply-headers)))
+          (date (mail-header-date message-reply-headers))
+          (msg-id (mail-header-id message-reply-headers)))
       (when from
-       (let ((name (mail-extract-address-components from)))
-         (concat
-          msg-id (if msg-id " (")
-          (if (car name)
-              (if (string-match "[^[:ascii:]]" (car name))
-                  ;; Quote a string containing non-ASCII characters.
-                  ;; It will make the RFC2047 encoder cause an error
-                  ;; if there are special characters.
-                   (mm-with-multibyte-buffer
-                     (insert (car name))
-                     (goto-char (point-min))
-                     (while (search-forward "\"" nil t)
-                       (when (prog2
-                                 (backward-char)
-                                 (evenp (skip-chars-backward "\\\\"))
-                               (goto-char (match-beginning 0)))
-                         (insert "\\"))
-                       (forward-char))
-                     ;; Those quotes will be removed by the RFC2047 encoder.
-                     (concat "\"" (buffer-string) "\""))
-                (car name))
-            (nth 1 name))
-          "'s message of \""
-          (if (or (not date) (string= date ""))
-              "(unknown date)" date)
-          "\"" (if msg-id ")")))))))
+        (let ((name (mail-extract-address-components from)))
+          (concat
+           msg-id
+           (when message-header-use-obsolete-in-reply-to
+             (concat
+              (if msg-id " (")
+              (if (car name)
+                  (if (string-match "[^[:ascii:]]" (car name))
+                      ;; Quote a string containing non-ASCII characters.
+                      ;; It will make the RFC2047 encoder cause an error
+                      ;; if there are special characters.
+                      (mm-with-multibyte-buffer
+                        (insert (car name))
+                        (goto-char (point-min))
+                        (while (search-forward "\"" nil t)
+                          (when (prog2
+                                    (backward-char)
+                                    (evenp (skip-chars-backward "\\\\"))
+                                  (goto-char (match-beginning 0)))
+                            (insert "\\"))
+                          (forward-char))
+                        ;; Those quotes will be removed by the RFC2047 encoder.
+                        (concat "\"" (buffer-string) "\""))
+                    (car name))
+                (nth 1 name))
+              "'s message of \""
+              (if (or (not date) (string= date ""))
+                  "(unknown date)" date)
+              "\"" (if msg-id ")")))))))))
 
 (defun message-make-distribution ()
   "Make a Distribution header."