From: Andrew G Cohen Date: Wed, 5 Jul 2023 07:21:16 +0000 (+0800) Subject: Don't use obsolete In-Reply-To format in messages (Bug#64454) X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f885b864352b950c177050ae2363b99216dfc9f1;p=emacs.git Don't use obsolete In-Reply-To format in messages (Bug#64454) 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) --- diff --git a/doc/misc/message.texi b/doc/misc/message.texi index 30f7ec9eda3..6a7821214c5 100644 --- a/doc/misc/message.texi +++ b/doc/misc/message.texi @@ -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. diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index 2ca57e3a410..5902f05e9ea 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el @@ -113,6 +113,13 @@ :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."