[gnus git] branch master updated: m0-5-237-g3bdb2f7 =1= Allow regenerating recursive nnfolder names

Lars Magne Ingebrigtsen <[email protected]>
Newsgroups gmane.emacs.gnus.cvs
Message-ID <[email protected]>
       via  3bdb2f7f3c729e31a6fcd67ff83c13335f0b6a7e (commit)
      from  06ff69482a91a1366cb8489cf8b55be5cbcc821d (commit)


- Log -----------------------------------------------------------------
commit 3bdb2f7f3c729e31a6fcd67ff83c13335f0b6a7e
Author: Lars Magne Ingebrigtsen <[email protected]>
Date:   Sat Dec 29 16:51:11 2012 +0100

    Allow regenerating recursive nnfolder names
    
    * nnfolder.el (nnfolder-recursive-directory-files): New function.
    (nnfolder-generate-active-file): Make this function work with recursive
    folder names.

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 463be0d..b8edb18 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2012-12-29  Lars Magne Ingebrigtsen  <[email protected]>
+
+	* 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  <[email protected]>
 
 	* nntp.el (nntp-open-connection): Use HELP as the capability command
diff --git a/lisp/nnfolder.el b/lisp/nnfolder.el
index e93bd7f..ae9e551 100644
--- a/lisp/nnfolder.el
+++ b/lisp/nnfolder.el
@@ -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)

-----------------------------------------------------------------------
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we listed those
revisions in full, above.

Summary of changes:
 lisp/ChangeLog   |    6 ++++++
 lisp/nnfolder.el |   29 +++++++++++++++++++++++++++--
 2 files changed, 33 insertions(+), 2 deletions(-)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Gnus Project".

The branch, master has been updated


hooks/post-receive
-- 
Gnus Project
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.