Mercurial > hg > xemacs-beta
comparison 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 |
comparison
equal
deleted
inserted
replaced
113:2ec2fe4a4c89 | 114:8619ce7e4c50 |
---|---|
223 'nnfolder | 223 'nnfolder |
224 (lambda () | 224 (lambda () |
225 (let ((bufs nnfolder-buffer-alist)) | 225 (let ((bufs nnfolder-buffer-alist)) |
226 (save-excursion | 226 (save-excursion |
227 (while bufs | 227 (while bufs |
228 (if (not (buffer-name (nth 1 (car bufs)))) | 228 (if (not (buffer-live-p (nth 1 (car bufs)))) |
229 (setq nnfolder-buffer-alist | 229 (setq nnfolder-buffer-alist |
230 (delq (car bufs) nnfolder-buffer-alist)) | 230 (delq (car bufs) nnfolder-buffer-alist)) |
231 (set-buffer (nth 1 (car bufs))) | 231 (set-buffer (nth 1 (car bufs))) |
232 (nnfolder-save-buffer) | 232 (nnfolder-save-buffer) |
233 (kill-buffer (current-buffer))) | 233 (kill-buffer (current-buffer))) |
244 ;; Make sure we _had_ the group open. | 244 ;; Make sure we _had_ the group open. |
245 (when (or (assoc group nnfolder-buffer-alist) | 245 (when (or (assoc group nnfolder-buffer-alist) |
246 (equal group nnfolder-current-group)) | 246 (equal group nnfolder-current-group)) |
247 (let ((inf (assoc group nnfolder-buffer-alist))) | 247 (let ((inf (assoc group nnfolder-buffer-alist))) |
248 (when inf | 248 (when inf |
249 (when nnfolder-current-group | 249 (when (and nnfolder-current-group |
250 nnfolder-current-buffer) | |
250 (push (list nnfolder-current-group nnfolder-current-buffer) | 251 (push (list nnfolder-current-group nnfolder-current-buffer) |
251 nnfolder-buffer-alist)) | 252 nnfolder-buffer-alist)) |
252 (setq nnfolder-buffer-alist | 253 (setq nnfolder-buffer-alist |
253 (delq inf nnfolder-buffer-alist)) | 254 (delq inf nnfolder-buffer-alist)) |
254 (setq nnfolder-current-buffer (cadr inf) | 255 (setq nnfolder-current-buffer (cadr inf) |
372 (goto-char (point-min)) | 373 (goto-char (point-min)) |
373 (search-forward "\n\n" nil t) | 374 (search-forward "\n\n" nil t) |
374 (forward-line -1) | 375 (forward-line -1) |
375 (while (re-search-backward (concat "^" nnfolder-article-marker) nil t) | 376 (while (re-search-backward (concat "^" nnfolder-article-marker) nil t) |
376 (delete-region (point) (progn (forward-line 1) (point)))) | 377 (delete-region (point) (progn (forward-line 1) (point)))) |
377 (nnmail-cache-insert (nnmail-fetch-field "message-id")) | 378 (when nnmail-cache-accepted-message-ids |
379 (nnmail-cache-insert (nnmail-fetch-field "message-id"))) | |
378 (setq result | 380 (setq result |
379 (car (nnfolder-save-mail | 381 (car (nnfolder-save-mail |
380 (if (stringp group) | 382 (if (stringp group) |
381 (list (cons group (nnfolder-active-number group))) | 383 (list (cons group (nnfolder-active-number group))) |
382 (setq art-group | 384 (setq art-group |
383 (nnmail-article-group 'nnfolder-active-number))))))) | 385 (nnmail-article-group 'nnfolder-active-number))))))) |
384 (when last | 386 (when last |
385 (save-excursion | 387 (save-excursion |
386 (nnfolder-possibly-change-folder (or (caar art-group) group)) | 388 (nnfolder-possibly-change-folder (or (caar art-group) group)) |
387 (nnfolder-save-buffer) | 389 (nnfolder-save-buffer) |
388 (nnmail-cache-close)))) | 390 (when nnmail-cache-accepted-message-ids |
391 (nnmail-cache-close))))) | |
389 (nnmail-save-active nnfolder-group-alist nnfolder-active-file) | 392 (nnmail-save-active nnfolder-group-alist nnfolder-active-file) |
390 (unless result | 393 (unless result |
391 (nnheader-report 'nnfolder "Couldn't store article")) | 394 (nnheader-report 'nnfolder "Couldn't store article")) |
392 result)) | 395 result)) |
393 | 396 |
642 (nnmail-activate 'nnfolder) | 645 (nnmail-activate 'nnfolder) |
643 ;; Read in the file. | 646 ;; Read in the file. |
644 (let ((delim (concat "^" message-unix-mail-delimiter)) | 647 (let ((delim (concat "^" message-unix-mail-delimiter)) |
645 (marker (concat "\n" nnfolder-article-marker)) | 648 (marker (concat "\n" nnfolder-article-marker)) |
646 (number "[0-9]+") | 649 (number "[0-9]+") |
647 (active (cadr (assoc group nnfolder-group-alist))) | 650 (active (or (cadr (assoc group nnfolder-group-alist)) |
651 (cons 1 0))) | |
648 (scantime (assoc group nnfolder-scantime-alist)) | 652 (scantime (assoc group nnfolder-scantime-alist)) |
649 (minid (lsh -1 -1)) | 653 (minid (lsh -1 -1)) |
650 maxid start end newscantime | 654 maxid start end newscantime |
651 buffer-read-only) | 655 buffer-read-only) |
652 (buffer-disable-undo (current-buffer)) | 656 (buffer-disable-undo (current-buffer)) |
675 ;; marker. Find the start of that message, and begin to search for | 679 ;; marker. Find the start of that message, and begin to search for |
676 ;; unmarked messages from there. | 680 ;; unmarked messages from there. |
677 (when (not (or nnfolder-distrust-mbox | 681 (when (not (or nnfolder-distrust-mbox |
678 (< maxid 2))) | 682 (< maxid 2))) |
679 (goto-char (point-max)) | 683 (goto-char (point-max)) |
680 (if (not (re-search-backward marker nil t)) | 684 (unless (re-search-backward marker nil t) |
681 (goto-char (point-min)) | 685 (goto-char (point-min)))) |
682 (when (not (nnmail-search-unix-mail-delim)) | |
683 (goto-char (point-min))))) | |
684 | 686 |
685 ;; Keep track of the active number on our own, and insert it back | 687 ;; Keep track of the active number on our own, and insert it back |
686 ;; into the active list when we're done. Also, prime the pump to | 688 ;; into the active list when we're done. Also, prime the pump to |
687 ;; cut down on the number of searches we do. | 689 ;; cut down on the number of searches we do. |
688 (unless (nnmail-search-unix-mail-delim) | 690 (unless (nnmail-search-unix-mail-delim) |