Function: nnfolder-save-mail
nnfolder-save-mail is a byte-compiled function defined in
nnfolder.el.gz.
Signature
(nnfolder-save-mail GROUP-ART-LIST)
Documentation
Called narrowed to an article.
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/nnfolder.el.gz
(defun nnfolder-save-mail (group-art-list)
"Called narrowed to an article."
(let* (save-list group-art)
(goto-char (point-min))
;; The From line may have been quoted by movemail.
(when (looking-at ">From")
(delete-char 1))
;; This might come from somewhere else.
(unless (looking-at "From ")
(insert "From nobody " (current-time-string) "\n")
(goto-char (point-min)))
;; Quote all "From " lines in the article.
(forward-line 1)
(let (case-fold-search)
(while (re-search-forward "^From " nil t)
(beginning-of-line)
(insert "> ")))
(setq save-list group-art-list)
(nnmail-insert-lines)
(nnmail-insert-xref group-art-list)
(run-hooks 'nnmail-prepare-save-mail-hook)
(run-hooks 'nnfolder-prepare-save-mail-hook)
;; Insert the mail into each of the destination groups.
(while (setq group-art (pop group-art-list))
;; Kill any previous newsgroup markers.
(goto-char (point-min))
(if (search-forward "\n\n" nil t)
(forward-line -1)
(goto-char (point-max)))
(while (search-backward (concat "\n" nnfolder-article-marker) nil t)
(delete-region (1+ (point)) (progn (forward-line 2) (point))))
;; Insert the new newsgroup marker.
(nnfolder-insert-newsgroup-line group-art)
(save-excursion
(let ((beg (point-min))
(end (point-max))
(obuf (current-buffer)))
(nnfolder-possibly-change-folder (car group-art))
(let ((buffer-read-only nil))
(nnfolder-normalize-buffer)
(insert-buffer-substring obuf beg end))
(unless (or gnus-nov-is-evil nnfolder-nov-is-evil)
(set-buffer obuf)
(nnfolder-add-nov (car group-art) (cdr group-art)
(nnfolder-parse-head nil beg end))))))
;; Did we save it anywhere?
save-list))