lisp/gnus/nnfolder.el: Allow regenerating recursive nnfolder names

This commit is contained in:
Lars Magne Ingebrigtsen 2012-12-29 23:18:05 +00:00 committed by Katsumi Yamaoka
parent eff2eb5812
commit 4d1d3f07a4
2 changed files with 33 additions and 2 deletions

View file

@ -1,3 +1,9 @@
2012-12-29 Lars Magne Ingebrigtsen <larsi@gnus.org>
* nnfolder.el (nnfolder-recursive-directory-files): New function.
(nnfolder-generate-active-file): Make this function work with recursive
folder names.
2012-12-27 Lars Ingebrigtsen <larsi@gnus.org>
* nntp.el (nntp-open-connection): Use HELP as the capability command

View file

@ -1004,6 +1004,28 @@ deleted. Point is left where the deleted region was."
(nnfolder-save-nov))
(current-buffer))))))
(defun nnfolder-recursive-directory-files (dir prefix)
(let ((files nil))
(dolist (file (directory-files dir))
(cond
((or (file-symlink-p (expand-file-name file dir))
(member file '("." "..")))
;; Ignore
)
((file-directory-p (expand-file-name file dir))
(setq files (nconc (nnfolder-recursive-directory-files
(expand-file-name file dir)
(if prefix
(concat prefix "." (directory-file-name file))
(file-name-nondirectory file)))
files)))
((file-regular-p (expand-file-name file dir))
(push (if prefix
(concat prefix "." file)
file)
files))))
files))
;;;###autoload
(defun nnfolder-generate-active-file ()
"Look for mbox folders in the nnfolder directory and make them into groups.
@ -1020,10 +1042,13 @@ This command does not work if you use short group names."
(when (not (message-mail-file-mbox-p file))
(ignore-errors
(delete-file file)))))
(dolist (file (directory-files nnfolder-directory))
(dolist (file (if nnmail-use-long-file-names
(directory-files nnfolder-directory)
(nnfolder-recursive-directory-files
nnfolder-directory nil)))
(when (and (not (backup-file-name-p file))
(message-mail-file-mbox-p
(nnheader-concat nnfolder-directory file)))
(nnfolder-group-pathname file)))
(let ((oldgroup (assoc file nnfolder-group-alist)))
(if oldgroup
(nnheader-message 5 "Refreshing group %s..." file)