diff lisp/modes/sendmail.el @ 32:e04119814345 r19-15b99

Import from CVS: tag r19-15b99
author cvs
date Mon, 13 Aug 2007 08:52:56 +0200
parents d95e72db5c07
children 1a767b41a199
line wrap: on
line diff
--- a/lisp/modes/sendmail.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/modes/sendmail.el	Mon Aug 13 08:52:56 2007 +0200
@@ -286,6 +286,30 @@
 ;	(setq mail-alias-modtime modtime
 ;	      mail-aliases t))))
 
+;; Courtesy of Per Abrahamsen <abraham@dina.kvl.dk> in an attempt to make
+;; Emacs and XEmacs less stupid about default mail addresses.
+
+;; We trust the administrator if he has set `mail-host-address'.
+(defcustom query-user-mail-address (not mail-host-address)
+  "If non-nil, prompt the user for his mail address."
+  :group 'message
+  :type 'boolean)
+
+(defun user-mail-address ()
+  "Query the user for his mail address, unless it is already known."
+  (interactive)
+  (when query-user-mail-address
+    (setq user-mail-address
+	  (read-string "Your mail address? " (cons user-mail-address 0)))
+    (setq query-user-mail-address nil)
+    ;; TODO: Run sanity check from Gnus here.
+    (when (y-or-n-p "Save address for future sessions? ")
+      (put 'user-mail-address 'saved-value
+	   (list user-mail-address))
+      (put 'query-user-mail-address 'saved-value '(nil))
+      (custom-save-all)))
+  user-mail-address)
+
 (defun mail-setup (to subject in-reply-to cc replybuffer actions)
   (or mail-default-reply-to
       (setq mail-default-reply-to (getenv "REPLYTO")))
@@ -842,13 +866,8 @@
       (narrow-to-region b e)
       (rmail-maybe-set-message-counters))))
 
-;;; Load VM into the compilation environment but not the load environment.
 (eval-when-compile
- (or (and (boundp 'loading-vm-kludge) loading-vm-kludge)
-     ;; nastiness to avoid circular provide/require dependency nonsense
-     (fboundp 'vm-spool-files)
-     (let ((loading-vm-kludge t))
-       (require 'vm))))
+  (require 'vm-misc))
 
 (defun mail-do-fcc-vm-internal (buffer)
   (or (eq major-mode 'vm-mode) (error "this only works in vm-mode"))