summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog3
-rw-r--r--lisp/mail/sendmail.el14
2 files changed, 14 insertions, 3 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 049c3d2e0e0..89b33dc7a62 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,8 @@
2011-06-22 Richard Stallman <rms@gnu.org>
+ * mail/sendmail.el (mail-bury): If Rmail is in use, return nicely
+ to Rmail even if not started by a special Rmail command.
+
* mail/rmailmm.el (rmail-insert-mime-forwarded-message):
Copy the buffer currently showing just one message.
diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el
index f4ef9b91903..c1405ec5ff3 100644
--- a/lisp/mail/sendmail.el
+++ b/lisp/mail/sendmail.el
@@ -806,10 +806,18 @@ Prefix arg means don't delete this window."
(defun mail-bury (&optional arg)
"Bury this mail buffer."
- (let ((newbuf (other-buffer (current-buffer))))
+ (let ((newbuf (other-buffer (current-buffer)))
+ (return-action mail-return-action)
+ some-rmail)
(bury-buffer (current-buffer))
- (if (and (null arg) mail-return-action)
- (apply (car mail-return-action) (cdr mail-return-action))
+ ;; If there is an Rmail buffer, return to it nicely
+ ;; even if this message was not started by an Rmail command.
+ (unless return-action
+ (dolist (buffer (buffer-list))
+ (if (eq (buffer-local-value 'major-mode buffer) 'rmail-mode)
+ (setq return-action `(rmail-mail-return ,newbuf)))))
+ (if (and (null arg) return-action)
+ (apply (car return-action) (cdr return-action))
(switch-to-buffer newbuf))))
(defcustom mail-send-hook nil