From 3d68fa99af7a4b84b2fdc44b429b9cddcbaaf88c Mon Sep 17 00:00:00 2001 From: Chong Yidong Date: Mon, 7 Dec 2009 16:09:05 +0000 Subject: [PATCH] * simple.el (compose-mail): Check for incompatibilities and warn. (compose-mail-user-agent-warnings): New option. --- lisp/ChangeLog | 5 +++++ lisp/simple.el | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 0d0be747b87..72be092c851 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2009-12-07 Chong Yidong + + * simple.el (compose-mail): Check for incompatibilities and warn. + (compose-mail-user-agent-warnings): New option. + 2009-12-07 Dan Nicolaescu Support showing a single log entry from vc-annotate. diff --git a/lisp/simple.el b/lisp/simple.el index d1656b64919..774b69a4842 100644 --- a/lisp/simple.el +++ b/lisp/simple.el @@ -5558,6 +5558,15 @@ See also `read-mail-command' concerning reading mail." :version "23.2" ; sendmail->message :group 'mail) +(defcustom compose-mail-user-agent-warnings t + "If non-nil, `compose-mail' warns about changes in `mail-user-agent'. +If the value of `mail-user-agent' is the default, and the user +appears to have customizations applying to the old default, +`compose-mail' issues a warning." + :type 'boolean + :version "23.2" + :group 'mail) + (define-mail-user-agent 'sendmail-user-agent 'sendmail-user-agent-compose 'mail-send-and-exit) @@ -5627,6 +5636,32 @@ SEND-ACTIONS is a list of actions to call when the message is sent. Each action has the form (FUNCTION . ARGS)." (interactive (list nil nil nil current-prefix-arg)) + + ;; In Emacs 23.2, the default value of `mail-user-agent' changed + ;; from sendmail-user-agent to message-user-agent. Some users may + ;; encounter incompatibilities. This hack tries to detect problems + ;; and warn about them. + (and compose-mail-user-agent-warnings + (eq mail-user-agent 'message-user-agent) + (let (warn-vars) + (dolist (var '(mail-mode-hook mail-send-hook mail-setup-hook + mail-yank-hooks mail-archive-file-name + mail-default-reply-to mail-mailing-lists + mail-self-blind mail-setup-with-from)) + (and (boundp var) + (symbol-value var) + (push var warn-vars))) + (when warn-vars + (display-warning 'mail + (format "\ +The default mail mode is now Message mode. +You have the following Mail mode variable%s customized: +\n %s\n\nTo use Mail mode, set `mail-user-agent' to sendmail-user-agent. +To disable this warning, set `compose-mail-check-user-agent' to nil." + (if (> (length warn-vars) 1) "s" "") + (mapconcat 'symbol-name + warn-vars " ")))))) + (let ((function (get mail-user-agent 'composefunc))) (funcall function to subject other-headers continue switch-function yank-action send-actions))) -- 2.39.5