diff --git a/doc/misc/message.texi b/doc/misc/message.texi index bd20aec5bc6..509bbd5b575 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/etc/NEWS b/etc/NEWS index 8cf86d1375d..2e5022b4955 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -484,6 +484,16 @@ If 'save-place-autosave-interval' is nil, auto saving is disabled; this is the default. As before, saved places are scheduled to be saved at Emacs exit. +** Message + +--- +*** In-Reply-To header contains only a message id. +The In-Reply-To header created when replying to a message now contains +only the originating message's id, conforming to RFC5322. The previous +behavior included additional information about the originating message. +The new variable 'message-header-use-obsolete-in-reply-to', nil by +default, can be set to a non-nil value to restore the previous behavior. + ** Gnus --- diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index b552b211eb8..7a84d6366db 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 @@ -5993,35 +6000,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) - (zerop (% (skip-chars-backward "\\\\") 2)) - (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) + (zerop (% (skip-chars-backward "\\\\") 2)) + (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."