diff options
| author | Eric Abrahamsen | 2021-01-16 18:37:57 -0800 |
|---|---|---|
| committer | Eric Abrahamsen | 2021-01-16 18:37:57 -0800 |
| commit | 943011de8e1fe0337a7b4b9a643fd647f00e0a84 (patch) | |
| tree | aa8df42d02a91641fefb84e15aa656203849aad4 | |
| parent | 84e80376424b7da9731ac3a2d0223833544fb63b (diff) | |
| download | emacs-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.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) |