aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Magne Ingebrigtsen2012-12-29 23:18:05 +0000
committerKatsumi Yamaoka2012-12-29 23:18:05 +0000
commit4d1d3f07a430aeca457a408c3fd5da65210962be (patch)
treeb197beaa11ac72aff2931c6c0820b2e3cb397fe6
parenteff2eb5812e964024c3aa20197b21f12d37155dd (diff)
downloademacs-4d1d3f07a430aeca457a408c3fd5da65210962be.tar.gz
emacs-4d1d3f07a430aeca457a408c3fd5da65210962be.zip
lisp/gnus/nnfolder.el: Allow regenerating recursive nnfolder names
-rw-r--r--lisp/gnus/ChangeLog6
-rw-r--r--lisp/gnus/nnfolder.el29
2 files changed, 33 insertions, 2 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index e17661095e4..6dca9e6cb7c 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,9 @@
12012-12-29 Lars Magne Ingebrigtsen <larsi@gnus.org>
2
3 * nnfolder.el (nnfolder-recursive-directory-files): New function.
4 (nnfolder-generate-active-file): Make this function work with recursive
5 folder names.
6
12012-12-27 Lars Ingebrigtsen <larsi@gnus.org> 72012-12-27 Lars Ingebrigtsen <larsi@gnus.org>
2 8
3 * nntp.el (nntp-open-connection): Use HELP as the capability command 9 * nntp.el (nntp-open-connection): Use HELP as the capability command
diff --git a/lisp/gnus/nnfolder.el b/lisp/gnus/nnfolder.el
index e93bd7f43e0..ae9e551c93a 100644
--- a/lisp/gnus/nnfolder.el
+++ b/lisp/gnus/nnfolder.el
@@ -1004,6 +1004,28 @@ deleted. Point is left where the deleted region was."
1004 (nnfolder-save-nov)) 1004 (nnfolder-save-nov))
1005 (current-buffer)))))) 1005 (current-buffer))))))
1006 1006
1007(defun nnfolder-recursive-directory-files (dir prefix)
1008 (let ((files nil))
1009 (dolist (file (directory-files dir))
1010 (cond
1011 ((or (file-symlink-p (expand-file-name file dir))
1012 (member file '("." "..")))
1013 ;; Ignore
1014 )
1015 ((file-directory-p (expand-file-name file dir))
1016 (setq files (nconc (nnfolder-recursive-directory-files
1017 (expand-file-name file dir)
1018 (if prefix
1019 (concat prefix "." (directory-file-name file))
1020 (file-name-nondirectory file)))
1021 files)))
1022 ((file-regular-p (expand-file-name file dir))
1023 (push (if prefix
1024 (concat prefix "." file)
1025 file)
1026 files))))
1027 files))
1028
1007;;;###autoload 1029;;;###autoload
1008(defun nnfolder-generate-active-file () 1030(defun nnfolder-generate-active-file ()
1009 "Look for mbox folders in the nnfolder directory and make them into groups. 1031 "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."
1020 (when (not (message-mail-file-mbox-p file)) 1042 (when (not (message-mail-file-mbox-p file))
1021 (ignore-errors 1043 (ignore-errors
1022 (delete-file file))))) 1044 (delete-file file)))))
1023 (dolist (file (directory-files nnfolder-directory)) 1045 (dolist (file (if nnmail-use-long-file-names
1046 (directory-files nnfolder-directory)
1047 (nnfolder-recursive-directory-files
1048 nnfolder-directory nil)))
1024 (when (and (not (backup-file-name-p file)) 1049 (when (and (not (backup-file-name-p file))
1025 (message-mail-file-mbox-p 1050 (message-mail-file-mbox-p
1026 (nnheader-concat nnfolder-directory file))) 1051 (nnfolder-group-pathname file)))
1027 (let ((oldgroup (assoc file nnfolder-group-alist))) 1052 (let ((oldgroup (assoc file nnfolder-group-alist)))
1028 (if oldgroup 1053 (if oldgroup
1029 (nnheader-message 5 "Refreshing group %s..." file) 1054 (nnheader-message 5 "Refreshing group %s..." file)