diff lisp/gnus/nnfolder.el @ 114:8619ce7e4c50 r20-1b9

Import from CVS: tag r20-1b9
author cvs
date Mon, 13 Aug 2007 09:21:54 +0200
parents 48d667d6f17f
children 9f59509498e1
line wrap: on
line diff
--- a/lisp/gnus/nnfolder.el	Mon Aug 13 09:20:50 2007 +0200
+++ b/lisp/gnus/nnfolder.el	Mon Aug 13 09:21:54 2007 +0200
@@ -225,7 +225,7 @@
        (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)))
@@ -246,7 +246,8 @@
 	    (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
@@ -374,7 +375,8 @@
        (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"))
+       (when nnmail-cache-accepted-message-ids
+	 (nnmail-cache-insert (nnmail-fetch-field "message-id")))
        (setq result
 	     (car (nnfolder-save-mail
 		   (if (stringp group)
@@ -385,7 +387,8 @@
        (save-excursion
 	 (nnfolder-possibly-change-folder (or (caar art-group) group))
 	 (nnfolder-save-buffer)
-	 (nnmail-cache-close))))
+	 (when nnmail-cache-accepted-message-ids
+	   (nnmail-cache-close)))))
     (nnmail-save-active nnfolder-group-alist nnfolder-active-file)
     (unless result
       (nnheader-report 'nnfolder "Couldn't store article"))
@@ -644,7 +647,8 @@
 	(let ((delim (concat "^" message-unix-mail-delimiter))
 	      (marker (concat "\n" nnfolder-article-marker))
 	      (number "[0-9]+")
-	      (active (cadr (assoc group nnfolder-group-alist)))
+	      (active (or (cadr (assoc group nnfolder-group-alist))
+			  (cons 1 0)))
 	      (scantime (assoc group nnfolder-scantime-alist))
 	      (minid (lsh -1 -1))
 	      maxid start end newscantime
@@ -677,10 +681,8 @@
 	  (when (not (or nnfolder-distrust-mbox
 			 (< maxid 2)))
 	    (goto-char (point-max))
-	    (if (not (re-search-backward marker nil t))
-		(goto-char (point-min))
-	      (when (not (nnmail-search-unix-mail-delim))
-		(goto-char (point-min)))))
+	    (unless (re-search-backward marker nil t)
+	      (goto-char (point-min))))
 
 	  ;; Keep track of the active number on our own, and insert it back
 	  ;; into the active list when we're done.  Also, prime the pump to