This commit was generated by cvs2svn to compensate for changes in r3328,
[elisp/gnus.git-] / lisp / nnmh.el
index 6db83bd..8aafd7d 100644 (file)
@@ -1,7 +1,7 @@
 ;;; nnmh.el --- mhspool access for Gnus
-;; Copyright (C) 1995,96,97 Free Software Foundation, Inc.
+;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc.
 
-;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;;     Masanobu UMEDA <umerin@flab.flab.fujitsu.junet>
 ;; Keywords: news, mail
 
 
          (and large
               (zerop (% count 20))
-              (message "nnmh: Receiving headers... %d%%"
+              (nnheader-message 5 "nnmh: Receiving headers... %d%%"
                        (/ (* count 100) number))))
 
        (when large
-         (message "nnmh: Receiving headers...done"))
+         (nnheader-message 5 "nnmh: Receiving headers...done"))
 
        (nnheader-fold-continuation-lines)
        'headers))))
         (string-to-int (file-name-nondirectory file)))))
 
 (deffoo nnmh-request-group (group &optional server dont-check)
+  (nnheader-init-server-buffer)
+  (nnmh-possibly-change-directory group server)
   (let ((pathname (nnmail-group-pathname group nnmh-directory))
        (pathname-coding-system 'binary)
        dir)
 
 (deffoo nnmh-request-list (&optional server dir)
   (nnheader-insert "")
+  (nnmh-possibly-change-directory nil server)
   (let ((pathname-coding-system 'binary)
        (nnmh-toplev
         (file-truename (or dir (file-name-as-directory nnmh-directory)))))
   ;; Recurse down all directories.
   (let ((dirs (and (file-readable-p dir)
                   (> (nth 1 (file-attributes (file-chase-links dir))) 2)
-                  (directory-files dir t nil t)))
+                  (nnheader-directory-files dir t nil t)))
        rdir)
     ;; Recurse down directories.
     (while (setq rdir (pop dirs))
-      (when (and (not (member (file-name-nondirectory rdir) '("." "..")))
-                (file-directory-p rdir)
+      (when (and (file-directory-p rdir)
                 (file-readable-p rdir)
-                (equal (file-truename rdir)
-                       (file-truename dir)))
+                (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)
 (deffoo nnmh-request-expire-articles (articles newsgroup
                                               &optional server force)
   (nnmh-possibly-change-directory newsgroup server)
-  (let* ((active-articles
-         (mapcar
-          (function
-           (lambda (name)
-             (string-to-int name)))
-          (directory-files nnmh-current-directory nil "^[0-9]+$" t)))
-        (is-old t)
+  (let* ((is-old t)
         article rest mod-time)
-    (nnmail-activate 'nnmh)
+    (nnheader-init-server-buffer)
 
     (while (and articles is-old)
       (setq article (concat nnmh-current-directory
                 (push (car articles) rest))))
          (push (car articles) rest)))
       (setq articles (cdr articles)))
-    (message "")
+    (nnheader-message 5 "")
     (nconc rest articles)))
 
 (deffoo nnmh-close-group (group &optional server)
   (nnmail-check-syntax)
   (when nnmail-cache-accepted-message-ids
     (nnmail-cache-insert (nnmail-fetch-field "message-id")))
+  (nnheader-init-server-buffer)
   (prog1
       (if (stringp group)
-         (and
-          (nnmail-activate 'nnmh)
-          (if noinsert
-              (nnmh-active-number group)
-            (car (nnmh-save-mail
-                  (list (cons group (nnmh-active-number group)))
-                  noinsert))))
-       (and
-        (nnmail-activate 'nnmh)
-        (let ((res (nnmail-article-group 'nnmh-active-number)))
-          (if (and (null res)
-                   (yes-or-no-p "Moved to `junk' group; delete article? "))
-              'junk
-            (car (nnmh-save-mail res noinsert))))))
+         (if noinsert
+             (nnmh-active-number group)
+           (car (nnmh-save-mail
+                 (list (cons group (nnmh-active-number group)))
+                 noinsert)))
+       (let ((res (nnmail-article-group 'nnmh-active-number)))
+         (if (and (null res)
+                  (yes-or-no-p "Moved to `junk' group; delete article? "))
+             'junk
+           (car (nnmh-save-mail res noinsert)))))
     (when (and last nnmail-cache-accepted-message-ids)
       (nnmail-cache-close))))
 
       t)))
 
 (deffoo nnmh-request-create-group (group &optional server args)
-  (nnmail-activate 'nnmh)
+  (nnheader-init-server-buffer)
   (unless (assoc group nnmh-group-alist)
     (let (active)
       (push (list group (setq active (cons 1 0)))
       (setq active (cons 1 0))
       (push (list group active) nnmh-group-alist)
       (unless (file-exists-p dir)
-       (make-directory dir))
+       (gnus-make-directory dir))
       ;; Find the highest number in the group.
       (let ((files (sort
                    (mapcar