Index: message.el =================================================================== RCS file: /usr/local/cvsroot/gnus/lisp/message.el,v retrieving revision 7.277 diff -u -u -r7.277 message.el --- message.el 6 Dec 2008 17:30:03 -0000 7.277 +++ message.el 8 Dec 2008 19:12:15 -0000 @@ -3665,6 +3667,23 @@ (push (buffer-name buffer) buffers)))) (nreverse buffers))) +(defcustom message-gmane-mangled-mid-regexp + ;; FIXME: Don't use gnus-... + (concat "\\(<" gnus-button-valid-localpart-regexp "\\)" + "__[0-9a-z.$]+\\$gmane\\$org" ;; bogus part + ;; message-valid-fqdn-regexp probably would be too strict here + "\\(@[a-z0-9][-.a-z0-9]+>\\)") + "FIXME" + :version "23.1" ;; No Gnus + :group 'message-headers + :type '(choice (const :tag "Don't unmangle MIDs" nil) + regexp)) + +(defun message-fix-gmane-mids (mids) + ;; FIXME: Don't use gnus-... + (gnus-replace-in-string mids message-gmane-mangled-mid-regexp + "\\1\\2")) + (defun message-cite-original-1 (strip-signature) "Cite an original message. If STRIP-SIGNATURE is non-nil, strips off the signature from the @@ -3694,7 +3713,11 @@ (or (message-fetch-field "subject") "none") (or (message-fetch-field "from") "nobody") (message-fetch-field "date") - (message-fetch-field "message-id" t) + (funcall + (if (stringp message-gmane-mangled-mid-regexp) + 'message-fix-gmane-mids + 'identity) + (message-fetch-field "message-id" t)) (message-fetch-field "references") 0 0 "")))) (mml-quote-region start end) @@ -6622,7 +6658,11 @@ (save-excursion (setq follow-to (funcall message-wide-reply-to-function))))) - (setq message-id (message-fetch-field "message-id" t) + (setq message-id (funcall + (if (stringp message-gmane-mangled-mid-regexp) + 'message-fix-gmane-mids + 'identity) + (message-fetch-field "message-id" t)) references (message-fetch-field "references") date (message-fetch-field "date") from (or (message-fetch-field "from") "nobody") @@ -6683,7 +6723,11 @@ date (message-fetch-field "date") subject (or (message-fetch-field "subject") "none") references (message-fetch-field "references") - message-id (message-fetch-field "message-id" t) + message-id (funcall + (if (stringp message-gmane-mangled-mid-regexp) + 'message-fix-gmane-mids + 'identity) + (message-fetch-field "message-id" t)) followup-to (message-fetch-field "followup-to") newsgroups (message-fetch-field "newsgroups") posted-to (message-fetch-field "posted-to")