(let ((bufs nnfolder-buffer-alist))
(save-excursion
(while bufs
- (if (not (buffer-name (nth 1 (car bufs))))
+ (if (not (buffer-live-p (nth 1 (car bufs))))
(setq nnfolder-buffer-alist
(delq (car bufs) nnfolder-buffer-alist))
(set-buffer (nth 1 (car bufs)))
(equal group nnfolder-current-group))
(let ((inf (assoc group nnfolder-buffer-alist)))
(when inf
- (when nnfolder-current-group
+ (when (and nnfolder-current-group
+ nnfolder-current-buffer)
(push (list nnfolder-current-group nnfolder-current-buffer)
nnfolder-buffer-alist))
(setq nnfolder-buffer-alist
(nnfolder-delete-mail))
(when last
(nnfolder-save-buffer)
- (nnfolder-adjust-min-active group))))
+ (nnfolder-adjust-min-active group)
+ (nnmail-save-active nnfolder-group-alist nnfolder-active-file))))
result))
(deffoo nnfolder-request-accept-article (group &optional server last)
(forward-line -1)
(while (re-search-backward (concat "^" nnfolder-article-marker) nil t)
(delete-region (point) (progn (forward-line 1) (point))))
- (nnmail-cache-insert (nnmail-fetch-field "message-id"))
(setq result
(car (nnfolder-save-mail
(if (stringp group)
(when last
(save-excursion
(nnfolder-possibly-change-folder (or (caar art-group) group))
- (nnfolder-save-buffer)
- (nnmail-cache-close))))
+ (nnfolder-save-buffer))))
(nnmail-save-active nnfolder-group-alist nnfolder-active-file)
(unless result
(nnheader-report 'nnfolder "Couldn't store article"))
(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)))
+ (save-excursion
+ (set-buffer nnfolder-current-buffer)
+ (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))))
(defun nnfolder-article-string (article)
(if (numberp article)
(when (and server
(not (nnfolder-server-opened server)))
(nnfolder-open-server server))
+ (unless (gnus-buffer-live-p nnfolder-current-buffer)
+ (setq nnfolder-current-buffer nil
+ nnfolder-current-group nil))
;; Change group.
(when (and group
(not (equal group nnfolder-current-group)))
(push (list group (cons 1 0)) nnfolder-group-alist)
(nnmail-save-active nnfolder-group-alist nnfolder-active-file))
- (unless dont-check
+ (if dont-check
+ (setq nnfolder-current-group group)
(let (inf file)
;; If we have to change groups, see if we don't already have the
;; folder in memory. If we do, verify the modtime and destroy