X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fnnmh.el;h=73a2c4d8c604034eaec7141c4413050e6e896492;hb=8bb74da7932287e4f5fd806aa6c7dae35256bdce;hp=86f751c76699460fff0d32822ae41652bb1772e2;hpb=822226cae207ee94825cbac2434039f3857c5b65;p=gnus diff --git a/lisp/nnmh.el b/lisp/nnmh.el index 86f751c76..73a2c4d8c 100644 --- a/lisp/nnmh.el +++ b/lisp/nnmh.el @@ -1,7 +1,6 @@ ;;; nnmh.el --- mhspool access for Gnus -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, -;; 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +;; Copyright (C) 1995-2014 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Masanobu UMEDA @@ -149,7 +148,7 @@ as unread by Gnus.") (save-excursion (nnmail-find-file file)) (string-to-number (file-name-nondirectory file))))) -(deffoo nnmh-request-group (group &optional server dont-check) +(deffoo nnmh-request-group (group &optional server dont-check info) (nnheader-init-server-buffer) (nnmh-possibly-change-directory group server) (let ((pathname (nnmail-group-pathname group nnmh-directory)) @@ -209,45 +208,48 @@ as unread by Gnus.") ;; Recurse down all directories. (let ((files (nnheader-directory-files dir t nil t)) (max 0) - min rdir attributes num) + min rdir num subdirectoriesp file) ;; Recurse down directories. + (setq subdirectoriesp + ;; nth 1 of file-attributes always 1 on MS Windows :( + (/= (nth 1 (file-attributes (file-truename 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 - (with-current-buffer nntp-server-buffer - (goto-char (point-max)) - (insert - (format - "%s %.0f %.0f y\n" - (progn - (string-match - (regexp-quote - (file-truename (file-name-as-directory - (expand-file-name nnmh-toplev)))) - dir) - (mm-string-to-multibyte ;Why? Isn't it multibyte already? - (mm-encode-coding-string - (nnheader-replace-chars-in-string - (substring dir (match-end 0)) - ?/ ?.) - nnmail-pathname-coding-system))) - max min)))))) + (with-current-buffer nntp-server-buffer + (goto-char (point-max)) + (insert + (format + "%s %.0f %.0f y\n" + (progn + (string-match + (regexp-quote + (file-truename (file-name-as-directory + (expand-file-name nnmh-toplev)))) + dir) + (mm-string-to-multibyte ;Why? Isn't it multibyte already? + (mm-encode-coding-string + (nnheader-replace-chars-in-string + (substring dir (match-end 0)) + ?/ ?.) + nnmail-pathname-coding-system))) + (or max 0) + (or min 1)))))) t) (deffoo nnmh-request-newgroups (date &optional server) @@ -257,9 +259,6 @@ as unread by Gnus.") &optional server force) (nnmh-possibly-change-directory newsgroup server) (let ((is-old t) - (nnmail-expiry-target - (or (gnus-group-find-parameter newsgroup 'expiry-target t) - nnmail-expiry-target)) article rest mod-time) (nnheader-init-server-buffer)