changeset 2768:feeb145e30f4

[xemacs-hg @ 2005-05-10 17:35:57 by aidan] Warn that sendmail-user-agent sucks, on first use, but stick to using it.
author aidan
date Tue, 10 May 2005 17:36:05 +0000
parents 61af3ea9da02
children 640e02d61e7f
files lisp/ChangeLog lisp/menubar-items.el lisp/simple.el man/ChangeLog man/xemacs/sending.texi
diffstat 5 files changed, 104 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Tue May 10 17:21:54 2005 +0000
+++ b/lisp/ChangeLog	Tue May 10 17:36:05 2005 +0000
@@ -1,3 +1,18 @@
+2005-05-10  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* menubar-items.el (default-menubar):
+	* simple.el:
+	* simple.el (mail-user-agent):
+	* simple.el (vm-user-agent):
+	* simple.el ('vm-user-agent): New.
+	* simple.el (xemacs-default-composefunc): New.
+	* simple.el (xemacs-default-sendfunc): New.
+	* simple.el ('xemacs-default-mail-user-agent): New.
+        Update the docstring for mail-user-agent to mention VM; default to 
+        sendmail-user-agent, but on first use, give a huge warning that it 
+        is underfeatured and not likely to get better in the medium term, 
+        and the user should choose another mail client. 
+	
 2005-05-10  Aidan Kehoe  <kehoea@parhasard.net>
 
 	* x-init.el (x-initialize-keyboard): Give info about any unbound
--- a/lisp/menubar-items.el	Tue May 10 17:21:54 2005 +0000
+++ b/lisp/menubar-items.el	Tue May 10 17:36:05 2005 +0000
@@ -886,7 +886,12 @@
 	:active (boundp 'ps-print-color-p)])
       ("%_Internet"
        ("%_Compose Mail With"
-	["Default Emacs Mailer"
+	["VM mail package"
+	 (customize-set-variable 'mail-user-agent 'vm-user-agent)
+	 :style radio
+	 :selected (eq mail-user-agent 'vm-user-agent)
+	 :active (get 'vm-user-agent 'composefunc)]
+	["Bare-bones Emacs Mailer"
 	 (customize-set-variable 'mail-user-agent 'sendmail-user-agent)
 	 :style radio
 	 :selected (eq mail-user-agent 'sendmail-user-agent)]
--- a/lisp/simple.el	Tue May 10 17:21:54 2005 +0000
+++ b/lisp/simple.el	Tue May 10 17:36:05 2005 +0000
@@ -3306,16 +3306,20 @@
 
 ;; BEGIN SYNCHED WITH FSF 21.2.
 
-(defcustom mail-user-agent 'sendmail-user-agent
+(defcustom mail-user-agent 'xemacs-default-mail-user-agent
   "*Your preference for a mail composition package.
 Various Emacs Lisp packages (e.g. Reporter) require you to compose an
 outgoing email message.  This variable lets you specify which
 mail-sending package you prefer.
 
-Valid values include:
-
-  `sendmail-user-agent' -- use the default Emacs Mail package.
-                           See Info node `(emacs)Sending Mail'.
+Valid values may include:
+ 
+  `vm-user-agent'	-- use Kyle Jones' VM, as documented in the `(vm)' 
+                           Info node. Compatible with `sendmail-user-agent' 
+                           and can handle attachments and non-ASCII content,
+                           which the former can't.
+  `sendmail-user-agent' -- use the default, bare-bones, Emacs Mail
+                           package.  See Info node `(xemacs)Sending Mail'.
   `mh-e-user-agent'     -- use the Emacs interface to the MH mail system.
                            See Info node `(mh-e)'.
   `message-user-agent'  -- use the Gnus Message package.
@@ -3324,12 +3328,22 @@
                            paraphernalia, particularly the Gcc: header for
                            archiving.
 
+If you examine the value of this variable before setting it or composing a
+mail, it will have another value, `xemacs-default-mail-user-agent'--this is to
+allow XEmacs to suggest that you use another email client instead of
+`sendmail-user-agent'. The latter, while part of the base XEmacs Lisp code,
+and very lightweight, doesn't support MIME, a considerable disadvantage
+today.
+
 Additional valid symbols may be available; check with the author of
 your package for details.  The function should return non-nil if it
 succeeds.
 
 See also `read-mail-command' concerning reading mail."
-  :type '(radio (function-item :tag "Default Emacs mail"
+  :type '(radio (function-item :tag "VM mail package"
+			       :format "%t\n"
+			       vm-user-agent)
+	        (function-item :tag "Bare-bones Emacs mail"
 			       :format "%t\n"
 			       sendmail-user-agent)
 		(function-item :tag "Emacs interface to MH"
@@ -3379,9 +3393,58 @@
   (put symbol 'abortfunc (or abortfunc 'kill-buffer))
   (put symbol 'hookvar (or hookvar 'mail-send-hook)))
 
+(define-mail-user-agent 'vm-user-agent
+  'vm-compose-mail
+  'vm-mail-send-and-exit)
+
 (define-mail-user-agent 'sendmail-user-agent
   'sendmail-user-agent-compose 'mail-send-and-exit)
 
+;; Recent GNU sendmail.el does have MIME support, but it's buggy (as of
+;; 2005-05-01.) For example, if you FCC to a file more than once with
+;; different coding systems, your non-ASCII data will get
+;; trashed. quoted-printable encoding isn't done by default, attachments
+;; just add a line:
+;;
+;;    ===File /path/to/file/here=================
+;;
+;; the file's contents, 
+;;
+;;    ===========================================
+;;
+;; and hope for the best. Not code we want to use, IMO.
+
+(defun xemacs-default-composefunc (&rest args) 
+  "Warn that the default mail-reading package is heinously underfeatured;
+compose a mail using it, all the same.  "
+  (warn "
+
+Defaulting to the GNU Emacs-derived `sendmail.el' mail client. This facility,
+while part of base XEmacs, is heinously underfeatured, and not going to get
+better in the medium term. We include it so that bug reports work without
+packages; we suggest that you choose and/or install one of the other mail
+clients from packages if you're doing something other than M-x
+report-xemacs-bug , or even if you are reporting bugs regularly.
+
+To choose a package from those installed, click on \"Options\" ->
+\"Internet\" -> \"Compose Mail With ...\" and decide on one from the
+list. Gnus and VM are full-featured and have active user communities.
+
+To disable this warning and stick with the old behavior, you can explicitly
+initialize `mail-user-agent' to 'sendmail-user-agent . ") 
+  (setq mail-user-agent 'sendmail-user-agent)
+  (apply (get 'sendmail-user-agent 'composefunc) args))
+
+ 
+(defun xemacs-default-sendfunc (&rest args) 
+  "Set `mail-user-agent' to `sendmail-user-agent'; call the send function
+associated with that package, passing it the supplied arguments. "
+  (setq mail-user-agent 'sendmail-user-agent)
+  (apply (get 'sendmail-user-agent 'sendfunc) args))
+
+(define-mail-user-agent 'xemacs-default-mail-user-agent 
+  'xemacs-default-composefunc 'xemacs-default-sendfunc) 
+
 (define-mail-user-agent 'message-user-agent
   'message-mail 'message-send-and-exit
   'message-kill-buffer 'message-send-hook)
--- a/man/ChangeLog	Tue May 10 17:21:54 2005 +0000
+++ b/man/ChangeLog	Tue May 10 17:36:05 2005 +0000
@@ -1,3 +1,9 @@
+2005-05-10  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* xemacs/sending.texi (Sending Mail):Document that sendmail.el is 
+        underfeatured and not getting better anytime soon; suggest using 
+        another mailer.  
+
 2005-05-05  Aidan Kehoe  <kehoea@parhasard.net>
 
 	* xemacs/building.texi (Lisp Modes):
--- a/man/xemacs/sending.texi	Tue May 10 17:21:54 2005 +0000
+++ b/man/xemacs/sending.texi	Tue May 10 17:36:05 2005 +0000
@@ -40,6 +40,14 @@
 @kbd{C-u C-x m} is another way to switch back to a message in progress:
 it will search for an existing, unsent mail message buffer and select it.
 
+Beware that this email client was inherited from GNU Emacs and is very
+underfeatured; its support for MIME attachments and writing non-ASCII
+content to files without trashing data is weak to nonexistent. There
+exist excellent, full-featured email clients in @xref{Packages}, notably
+VM @pxref{(vm)} and Gnus @pxref{(gnus)}---the XEmacs developers
+recommend that you choose one of them, and at most use this mail client
+for reporting simple bugs, the reason we include it.
+
 @menu
 * Format: Mail Format.    Format of the mail being composed.
 * Headers: Mail Headers.  Details of allowed mail header fields.