summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/mail/rmailsum.el11
1 files changed, 8 insertions, 3 deletions
diff --git a/lisp/mail/rmailsum.el b/lisp/mail/rmailsum.el
index 1e1d23f5351..57b611f7667 100644
--- a/lisp/mail/rmailsum.el
+++ b/lisp/mail/rmailsum.el
@@ -1468,10 +1468,15 @@ starting with the current one. Deleted messages are skipped and don't count."
(progn (require 'rmailout)
(list (rmail-output-read-rmail-file-name)
(prefix-numeric-value current-prefix-arg))))
- (let ((i 0))
- (while (< i n)
+ (let ((i 0) prev-msg)
+ (while
+ (and (< i n)
+ (progn (rmail-summary-goto-msg)
+ (not (eq prev-msg
+ (setq prev-msg
+ (with-current-buffer rmail-buffer
+ rmail-current-message))))))
(setq i (1+ i))
- (rmail-summary-goto-msg)
(with-current-buffer rmail-buffer
(let ((rmail-delete-after-output nil))
(rmail-output-to-rmail-file file-name 1)))