From 71e027ac2d510f3616fe8d0572376c2d7f91c2f8 Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Sun, 13 Nov 2011 17:43:50 -0800 Subject: [PATCH] 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 --- lisp/ChangeLog | 6 ++++++ lisp/mail/rmailsum.el | 21 +++++++++------------ 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 + + * 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 * 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 -- 2.39.2