]> git.eshelyaron.com Git - emacs.git/commitdiff
Make mail exit more nicely when Rmail is in use.
authorRichard M. Stallman <rms@gnu.org>
Wed, 22 Jun 2011 23:39:29 +0000 (19:39 -0400)
committerRichard M. Stallman <rms@gnu.org>
Wed, 22 Jun 2011 23:39:29 +0000 (19:39 -0400)
lisp/ChangeLog
lisp/mail/sendmail.el

index 049c3d2e0e042717958c2736e73fe7944fd8b643..89b33dc7a62d03a41787613656e9296357867caf 100644 (file)
@@ -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.
 
index f4ef9b91903de18484701544960d80df6c188fc0..c1405ec5ff3adfee99c6d8e90869e031d28d66ce 100644 (file)
@@ -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