diff options
| author | Lars Magne Ingebrigtsen | 2012-12-29 23:18:05 +0000 |
|---|---|---|
| committer | Katsumi Yamaoka | 2012-12-29 23:18:05 +0000 |
| commit | 4d1d3f07a430aeca457a408c3fd5da65210962be (patch) | |
| tree | b197beaa11ac72aff2931c6c0820b2e3cb397fe6 | |
| parent | eff2eb5812e964024c3aa20197b21f12d37155dd (diff) | |
| download | emacs-4d1d3f07a430aeca457a408c3fd5da65210962be.tar.gz emacs-4d1d3f07a430aeca457a408c3fd5da65210962be.zip | |
lisp/gnus/nnfolder.el: Allow regenerating recursive nnfolder names
| -rw-r--r-- | lisp/gnus/ChangeLog | 6 | ||||
| -rw-r--r-- | lisp/gnus/nnfolder.el | 29 |
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 @@ | |||
| 1 | 2012-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 | |||
| 1 | 2012-12-27 Lars Ingebrigtsen <larsi@gnus.org> | 7 | 2012-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) |