- (let ((delim-string (concat "^" rmail-unix-mail-delimiter))
- article art-string start stop)
- (nnfolder-possibly-change-group newsgroup)
- (set-buffer nnfolder-current-buffer)
- (goto-char (point-min))
- (if (stringp (car sequence))
- 'headers
- (while sequence
- (setq article (car sequence))
- (setq art-string (nnfolder-article-string article))
- (set-buffer nnfolder-current-buffer)
- (if (or (search-forward art-string nil t)
- ;; Don't search the whole file twice! Also, articles
- ;; probably have some locality by number, so searching
- ;; backwards will be faster. Especially if we're at the
- ;; beginning of the buffer :-). -SLB
- (search-backward art-string nil t))
- (progn
- (setq start (or (re-search-backward delim-string nil t)
- (point)))
- (search-forward "\n\n" nil t)
- (setq stop (1- (point)))
- (set-buffer nntp-server-buffer)
- (insert (format "221 %d Article retrieved.\n" article))
- (insert-buffer-substring nnfolder-current-buffer start stop)
- (goto-char (point-max))
- (insert ".\n")))
- (setq sequence (cdr sequence)))
-
- (set-buffer nntp-server-buffer)
- (nnheader-fold-continuation-lines)
- 'headers))))
-
-(defun nnfolder-open-server (server &optional defs)
- (nnheader-init-server-buffer)
- (if (equal server nnfolder-current-server)
- t
- (if nnfolder-current-server
- (setq nnfolder-server-alist
- (cons (list nnfolder-current-server
- (nnheader-save-variables nnfolder-server-variables))
- nnfolder-server-alist)))
- (let ((state (assoc server nnfolder-server-alist)))
- (if state
- (progn
- (nnheader-restore-variables (nth 1 state))
- (setq nnfolder-server-alist (delq state nnfolder-server-alist)))
- (nnheader-set-init-variables nnfolder-server-variables defs)))
- (setq nnfolder-current-server server)))
-
-(defun nnfolder-close-server (&optional server)
- (setq nnfolder-current-server nil)
- t)
+ (let (article art-string start stop)
+ (nnfolder-possibly-change-group group server)
+ (when nnfolder-current-buffer
+ (set-buffer nnfolder-current-buffer)
+ (goto-char (point-min))
+ (if (stringp (car articles))
+ 'headers
+ (while articles
+ (setq article (car articles))
+ (setq art-string (nnfolder-article-string article))
+ (set-buffer nnfolder-current-buffer)
+ (when (or (search-forward art-string nil t)
+ ;; Don't search the whole file twice! Also, articles
+ ;; probably have some locality by number, so searching
+ ;; backwards will be faster. Especially if we're at the
+ ;; beginning of the buffer :-). -SLB
+ (search-backward art-string nil t))
+ (nnmail-search-unix-mail-delim-backward)
+ (setq start (point))
+ (search-forward "\n\n" nil t)
+ (setq stop (1- (point)))
+ (set-buffer nntp-server-buffer)
+ (insert (format "221 %d Article retrieved.\n" article))
+ (insert-buffer-substring nnfolder-current-buffer start stop)
+ (goto-char (point-max))
+ (insert ".\n"))
+ (setq articles (cdr articles)))