2010-09-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
+ * nnmh.el (nnmh-request-list-1): Fix up the recursion behavior so that
+ we actually do recurse down into the tree, but don't stat all leaf
+ nodes.
+
* gnus-html.el (gnus-html-show-images): If there are no images to show,
then say so instead of bugging out.
;; Recurse down all directories.
(let ((files (nnheader-directory-files dir t nil t))
(max 0)
- min rdir attributes num)
+ min rdir num subdirectoriesp)
;; Recurse down directories.
+ (setq subdirectoriesp (> (nth 1 (file-attributes dir)) 2))
(dolist (rdir files)
- (setq attributes (file-attributes rdir))
- (when (null (nth 0 attributes))
- (setq file (file-name-nondirectory rdir))
- (when (string-match "^[0-9]+$" file)
- (setq num (string-to-number file))
- (setq max (max max num))
- (when (or (null min)
- (< num min))
- (setq min num))))
- (when (and (eq (nth 0 attributes) t) ; Is a directory
- (> (nth 1 attributes) 2) ; Has sub-directories
- (file-readable-p rdir)
- (not (equal (file-truename rdir)
- (file-truename dir))))
- (nnmh-request-list-1 rdir)))
+ (if (or (not subdirectoriesp)
+ (file-regular-p rdir))
+ (progn
+ (setq file (file-name-nondirectory rdir))
+ (when (string-match "^[0-9]+$" file)
+ (setq num (string-to-number file))
+ (setq max (max max num))
+ (when (or (null min)
+ (< num min))
+ (setq min num))))
+ ;; This is a directory.
+ (when (and (file-readable-p rdir)
+ (not (equal (file-truename rdir)
+ (file-truename dir))))
+ (nnmh-request-list-1 rdir))))
;; For each directory, generate an active file line.
(unless (string= (expand-file-name nnmh-toplev) dir)
(when min