Function: nnml-generate-nov-file

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

Signature

(nnml-generate-nov-file DIR FILES)

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/nnml.el.gz
(defun nnml-generate-nov-file (dir files)
  (let* ((dir (file-name-as-directory dir))
	 (nov (concat dir nnml-nov-file-name))
	 (nov-buffer (gnus-get-buffer-create " *nov*"))
	 chars headers) ;; file
    (with-current-buffer nov-buffer
      ;; Init the 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))
      (dolist (file files)
	(let ((path (concat dir (cdr file))))
	  (unless (file-directory-p path)
	    (erase-buffer)
	    (nnheader-insert-file-contents path)
	    (narrow-to-region
	     (goto-char (point-min))
	     (progn
	       (re-search-forward "\n\r?\n" nil t)
	       (setq chars (- (point-max) (point)))
	       (max (point-min) (1- (point)))))
	    (unless (zerop (buffer-size))
	      (goto-char (point-min))
	      (setq headers (nnml-parse-head chars (car file)))
	      (with-current-buffer nov-buffer
		(goto-char (point-max))
		(nnheader-insert-nov headers)))
	    (widen))))
      (with-current-buffer nov-buffer
	(nnmail-write-region (point-min) (point-max) nov nil 'nomesg nil 'excl)
	(kill-buffer (current-buffer))))))