- ;; Find the lowest active article in this group.
- (let* ((active (cadr (assoc newsgroup nnfolder-group-alist)))
- (marker (concat "\n" nnfolder-article-marker))
- (number "[0-9]+")
- (activemin (cdr active)))
- (goto-char (point-min))
- (while (and (search-forward marker nil t)
- (re-search-forward number nil t))
- (setq activemin (min activemin
- (string-to-number (buffer-substring
- (match-beginning 0)
- (match-end 0))))))
- (setcar active activemin))
- (nnmail-save-active nnfolder-group-alist nnfolder-active-file)
- (nconc rest articles))))
-
-(deffoo nnfolder-request-move-article
- (article group server accept-form &optional last)
- (let ((buf (get-buffer-create " *nnfolder move*"))
- result)
- (and
- (nnfolder-request-article article group server)
- (save-excursion
- (set-buffer buf)
- (buffer-disable-undo (current-buffer))
- (erase-buffer)
- (insert-buffer-substring nntp-server-buffer)
- (goto-char (point-min))
- (while (re-search-forward
- (concat "^" nnfolder-article-marker)
- (save-excursion (search-forward "\n\n" nil t) (point)) t)
- (delete-region (progn (beginning-of-line) (point))
- (progn (forward-line 1) (point))))
- (setq result (eval accept-form))
- (kill-buffer buf)
- result)
- (save-excursion
- (nnfolder-possibly-change-group group server)
- (set-buffer nnfolder-current-buffer)
- (goto-char (point-min))
- (when (search-forward (nnfolder-article-string article) nil t)
- (nnfolder-delete-mail))
- (and last (nnfolder-save-buffer))))
- result))
+ (nnfolder-adjust-min-active newsgroup)
+ (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)
+ (gnus-sorted-complement articles (nreverse deleted-articles)))))
+
+(deffoo nnfolder-request-move-article (article group server
+ accept-form &optional last)
+ (save-excursion
+ (let ((buf (get-buffer-create " *nnfolder move*"))
+ result)
+ (and
+ (nnfolder-request-article article group server)
+ (save-excursion
+ (set-buffer buf)
+ (erase-buffer)
+ (insert-buffer-substring nntp-server-buffer)
+ (goto-char (point-min))
+ (while (re-search-forward
+ (concat "^" nnfolder-article-marker)
+ (save-excursion (and (search-forward "\n\n" nil t) (point)))
+ t)
+ (delete-region (progn (beginning-of-line) (point))
+ (progn (forward-line 1) (point))))
+ (setq result (eval accept-form))
+ (kill-buffer buf)
+ result)
+ (save-excursion
+ (nnfolder-possibly-change-group group server)
+ (set-buffer nnfolder-current-buffer)
+ (goto-char (point-min))
+ (when (nnfolder-goto-article article)
+ (nnfolder-delete-mail))
+ (when last
+ (nnfolder-save-buffer)
+ (nnfolder-adjust-min-active group)
+ (nnfolder-save-active nnfolder-group-alist nnfolder-active-file))))
+ result)))