Function: nnml-generate-nov-databases-directory
nnml-generate-nov-databases-directory is an autoloaded, interactive
and byte-compiled function defined in nnml.el.gz.
Signature
(nnml-generate-nov-databases-directory DIR &optional SEEN NO-ACTIVE)
Documentation
Regenerate the NOV database in DIR.
Unless no-active is non-nil, update the active file too.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/gnus/nnml.el.gz
(defun nnml-generate-nov-databases-directory (dir &optional seen no-active)
"Regenerate the NOV database in DIR.
Unless no-active is non-nil, update the active file too."
(interactive (list (let ((file-name-coding-system
nnmail-pathname-coding-system))
(read-directory-name "Regenerate NOV in: "
nnml-directory nil t))))
(setq dir (file-name-as-directory dir))
(let ((file-name-coding-system nnmail-pathname-coding-system))
;; Only scan this sub-tree if we haven't been here yet.
(unless (member (file-truename dir) seen)
(push (file-truename dir) seen)
;; We descend recursively
(dolist (dir (directory-files dir t nil t))
(when (and (not (string-match "^\\." (file-name-nondirectory dir)))
(file-directory-p dir))
(nnml-generate-nov-databases-directory dir seen)))
;; Do this directory.
(let ((nnml-files (sort (nnheader-article-to-file-alist dir)
#'car-less-than-car)))
(if (not nnml-files)
(let* ((group (nnheader-file-to-group
(directory-file-name dir) nnml-directory))
(info (cadr (assoc group nnml-group-alist))))
(when info
(setcar info (1+ (cdr info)))))
(funcall nnml-generate-active-function dir)
;; Generate the nov file.
(nnml-generate-nov-file dir nnml-files)
(unless no-active
(nnmail-save-active nnml-group-alist nnml-active-file)))))))