X-Git-Url: https://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fmessage.el;h=6ed9f0d4837789c376f87639a6fb16f494f3236c;hb=a77dd35f2d1dc13eb88e5b153d4c03b83f7eb2c7;hp=8a36f513d7b4fc7a0bbf773a5adeb3beef0fdb68;hpb=368248701a9f61fef9145a01267eca6ab60cca13;p=gnus diff --git a/lisp/message.el b/lisp/message.el index 8a36f513d..6ed9f0d48 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -1,5 +1,5 @@ ;;; message.el --- composing mail and news messages -;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 +;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 ;; Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen @@ -1535,8 +1535,6 @@ no, only reply back to the author." (autoload 'message-setup-toolbar "messagexmas") (autoload 'mh-new-draft-name "mh-comp") (autoload 'mh-send-letter "mh-comp") - (autoload 'gnus-point-at-eol "gnus-util") - (autoload 'gnus-point-at-bol "gnus-util") (autoload 'gnus-output-to-rmail "gnus-util") (autoload 'gnus-output-to-mail "gnus-util") (autoload 'nndraft-request-associate-buffer "nndraft") @@ -2673,17 +2671,23 @@ prefix FORCE is given." (message-get-reply-headers t)))) (message-carefully-insert-headers headers))) -(defvar message-header-synonyms +(defcustom message-header-synonyms '((To Cc Bcc)) "List of lists of header synonyms. E.g., if this list contains a member list with elements `Cc' and `To', then `message-carefully-insert-headers' will not insert a `To' header -when the message is already `Cc'ed to the recipient.") +when the message is already `Cc'ed to the recipient." + :group 'message-headers + :link '(custom-manual "(message)Message Headers") + :type '(repeat sexp)) (defun message-carefully-insert-headers (headers) "Insert the HEADERS, an alist, into the message buffer. Does not insert the headers when they are already present there or in the synonym headers, defined by `message-header-synonyms'." + ;; FIXME: Should compare only the address and not the full name. Comparison + ;; should be done case-folded (and with `string=' rather than + ;; `string-match'). (dolist (header headers) (let* ((header-name (symbol-name (car header))) (new-header (cdr header)) @@ -5049,7 +5053,7 @@ Headers already prepared in the buffer are not modified." (forward-line -1))) ;; The value of this header was empty, so we clear ;; totally and insert the new value. - (delete-region (point) (gnus-point-at-eol)) + (delete-region (point) (point-at-eol)) ;; If the header is optional, and the header was ;; empty, we con't insert it anyway. (unless optionalp @@ -5149,7 +5153,6 @@ If the current line has `message-yank-prefix', insert it on the new line." (error (split-line)))) - (defun message-fill-header (header value) (let ((begin (point)) (fill-column 78) @@ -5276,7 +5279,7 @@ beginning of line." (message-point-in-header-p)) (let* ((here (point)) (bol (progn (beginning-of-line n) (point))) - (eol (gnus-point-at-eol)) + (eol (point-at-eol)) (eoh (re-search-forward ": *" eol t))) (if (or (not eoh) (equal here eoh)) (goto-char bol) @@ -5585,7 +5588,13 @@ OTHER-HEADERS is an alist of header/value pairs." ;; Find all relevant headers we need. (save-restriction (message-narrow-to-headers-or-head) - (setq to (message-fetch-field "to") + ;; Gmane renames "To". Look at "Original-To", too, if it is present in + ;; message-header-synonyms. + (setq to (or (message-fetch-field "to") + (and (loop for synonym in message-header-synonyms + when (memq 'Original-To synonym) + return t) + (message-fetch-field "original-to"))) cc (message-fetch-field "cc") mct (message-fetch-field "mail-copies-to") author (or (message-fetch-field "mail-reply-to")