aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Abrahamsen2021-01-16 18:37:57 -0800
committerEric Abrahamsen2021-01-16 18:37:57 -0800
commit943011de8e1fe0337a7b4b9a643fd647f00e0a84 (patch)
treeaa8df42d02a91641fefb84e15aa656203849aad4
parent84e80376424b7da9731ac3a2d0223833544fb63b (diff)
downloademacs-girzel/gnus-headers.tar.gz
emacs-girzel/gnus-headers.zip
Fixes to gnus-agent-retrieve-headersgirzel/gnus-headers
* lisp/gnus/gnus-agent.el (gnus-agent-retrieve-headers): The sort->append call was altering fetched-headers in-place. Also, we should explicitly sort-numeric-fields in this function. gnus-agent-check-overview-buffer will do this, but treats it as a failure mode and will make a backup of the overview file.
-rw-r--r--lisp/gnus/gnus-agent.el8
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)