Function: nndiary-generate-nov-file

nndiary-generate-nov-file is a byte-compiled function defined in nndiary.el.gz.

Signature

(nndiary-generate-nov-file DIR FILES)

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/nndiary.el.gz
(defun nndiary-generate-nov-file (dir files)
  (let* ((dir (file-name-as-directory dir))
	 (nov (concat dir nndiary-nov-file-name))
	 (nov-buffer (gnus-get-buffer-create " *nov*"))
	 chars file headers)
    ;; Init the nov buffer.
    (with-current-buffer nov-buffer
      (buffer-disable-undo)
      (erase-buffer)
      (set-buffer nntp-server-buffer)
      ;; Delete the old NOV file.
      (when (file-exists-p nov)
	(funcall nnmail-delete-file-function nov))
      (while files
	(unless (file-directory-p (setq file (concat dir (cdar files))))
	  (erase-buffer)
	  (nnheader-insert-file-contents file)
	  (narrow-to-region
	   (goto-char (point-min))
	   (progn
	     (search-forward "\n\n" nil t)
	     (setq chars (- (point-max) (point)))
	     (max 1 (1- (point)))))
	  (unless (zerop (buffer-size))
	    (goto-char (point-min))
	    (setq headers (nndiary-parse-head chars (caar files)))
	    (with-current-buffer nov-buffer
	      (goto-char (point-max))
	      (nnheader-insert-nov headers)))
	  (widen))
	(setq files (cdr files)))
      (with-current-buffer nov-buffer
	(nnmail-write-region 1 (point-max) nov nil 'nomesg nil 'excl)
	(kill-buffer (current-buffer))))))