diff options
| -rw-r--r-- | lisp/gnus/gnus-agent.el | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el index 97df48b4608..32d0a85d004 100644 --- a/lisp/gnus/gnus-agent.el +++ b/lisp/gnus/gnus-agent.el | |||
| @@ -3627,7 +3627,7 @@ has been fetched." | |||
| 3627 | (when fetched-headers | 3627 | (when fetched-headers |
| 3628 | (setq headers | 3628 | (setq headers |
| 3629 | (delete-dups | 3629 | (delete-dups |
| 3630 | (sort (append headers fetched-headers) | 3630 | (sort (append headers (copy-sequence fetched-headers)) |
| 3631 | (lambda (l r) | 3631 | (lambda (l r) |
| 3632 | (< (mail-header-number l) | 3632 | (< (mail-header-number l) |
| 3633 | (mail-header-number r)))))) | 3633 | (mail-header-number r)))))) |
| @@ -3636,8 +3636,14 @@ has been fetched." | |||
| 3636 | (let ((coding-system-for-write | 3636 | (let ((coding-system-for-write |
| 3637 | gnus-agent-file-coding-system)) | 3637 | gnus-agent-file-coding-system)) |
| 3638 | (with-current-buffer gnus-agent-overview-buffer | 3638 | (with-current-buffer gnus-agent-overview-buffer |
| 3639 | ;; We stick the new headers in at the end, then | ||
| 3640 | ;; re-sort the whole buffer with | ||
| 3641 | ;; `sort-numeric-fields'. If this turns out to be | ||
| 3642 | ;; slow, we could consider a loop to add the headers | ||
| 3643 | ;; in sorted order to begin with. | ||
| 3639 | (goto-char (point-max)) | 3644 | (goto-char (point-max)) |
| 3640 | (mapc #'nnheader-insert-nov fetched-headers) | 3645 | (mapc #'nnheader-insert-nov fetched-headers) |
| 3646 | (sort-numeric-fields 1 (point-min) (point-max)) | ||
| 3641 | (gnus-agent-check-overview-buffer) | 3647 | (gnus-agent-check-overview-buffer) |
| 3642 | (write-region (point-min) (point-max) file nil 'silent) | 3648 | (write-region (point-min) (point-max) file nil 'silent) |
| 3643 | (gnus-agent-update-view-total-fetched-for group t) | 3649 | (gnus-agent-update-view-total-fetched-for group t) |