summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2011-11-13 17:43:50 -0800
committerGlenn Morris <rgm@gnu.org>2011-11-13 17:43:50 -0800
commit71e027ac2d510f3616fe8d0572376c2d7f91c2f8 (patch)
treeeeab59c5453bdc10b7606dc1c9910f909f69c315
parentd7cecd19b3e4cf7a4c33145397900fb10f2cd698 (diff)
downloademacs-71e027ac2d510f3616fe8d0572376c2d7f91c2f8.tar.gz
Rmail summary fixes for empty summaries.
* lisp/mail/rmailsum.el (rmail-summary, rmail-new-summary) (rmail-new-summary-1): Allow empty summaries. (rmail-new-summary): Remember that rmail-summary-buffer is buffer-local. Fixes: debbugs:9964
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/mail/rmailsum.el21
2 files changed, 15 insertions, 12 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 8f28e033419..676c0c6b180 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2011-11-14 Glenn Morris <rgm@gnu.org>
+
+ * mail/rmailsum.el (rmail-summary, rmail-new-summary)
+ (rmail-new-summary-1): Allow empty summaries. (Bug#9964)
+ (rmail-new-summary): Remember that rmail-summary-buffer is buffer-local.
+
2011-11-12 Martin Rudalics <rudalics@gmx.at>
* window.el (window-resize, delete-window): Use window-splits
diff --git a/lisp/mail/rmailsum.el b/lisp/mail/rmailsum.el
index 8e28201e31f..b95651d3b69 100644
--- a/lisp/mail/rmailsum.el
+++ b/lisp/mail/rmailsum.el
@@ -269,7 +269,8 @@ Setting this option to nil might speed up the generation of summaries."
"Display a summary of all messages, one line per message."
(interactive)
(rmail-new-summary "All" '(rmail-summary) nil)
- (unless (get-buffer-window rmail-buffer)
+ (unless (or (zerop (buffer-size)) ; empty summary
+ (get-buffer-window rmail-buffer))
(rmail-summary-beginning-of-message)))
;;;###autoload
@@ -404,13 +405,13 @@ nil for FUNCTION means all messages."
(message "Computing summary lines...")
(unless rmail-buffer
(error "No RMAIL buffer found"))
- (let (mesg was-in-summary)
+ (let (mesg was-in-summary sumbuf)
(if (eq major-mode 'rmail-summary-mode)
(setq was-in-summary t))
(with-current-buffer rmail-buffer
- (if (zerop (setq mesg rmail-current-message))
- (error "No messages to summarize"))
- (setq rmail-summary-buffer (rmail-new-summary-1 desc redo func args)))
+ (setq rmail-summary-buffer (rmail-new-summary-1 desc redo func args)
+ ;; r-s-b is buffer-local.
+ sumbuf rmail-summary-buffer))
;; Now display the summary buffer and go to the right place in it.
(unless was-in-summary
(if (and (one-window-p)
@@ -420,13 +421,12 @@ nil for FUNCTION means all messages."
(progn
(split-window (selected-window) rmail-summary-window-size)
(select-window (next-window (frame-first-window)))
- (rmail-pop-to-buffer rmail-summary-buffer)
+ (rmail-pop-to-buffer sumbuf)
;; If pop-to-buffer did not use that window, delete that
;; window. (This can happen if it uses another frame.)
- (if (not (eq rmail-summary-buffer
- (window-buffer (frame-first-window))))
+ (if (not (eq sumbuf (window-buffer (frame-first-window))))
(delete-other-windows)))
- (rmail-pop-to-buffer rmail-summary-buffer))
+ (rmail-pop-to-buffer sumbuf))
(set-buffer rmail-buffer)
;; This is how rmail makes the summary buffer reappear.
;; We do this here to make the window the proper size.
@@ -490,9 +490,6 @@ message."
;; Temporarily, while summary buffer is unfinished,
;; we "don't have" a summary.
(setq rmail-summary-buffer nil)
- (unless summary-msgs
- (kill-buffer sumbuf)
- (error "Nothing to summarize"))
;; I have not a clue what this clause is doing. If you read this
;; chunk of code and have a clue, then please email that clue to
;; pmr@pajato.com