(gnus-summary-limit-to-singletons): Fix typo.
[gnus] / lisp / gnus-agent.el
index bfd0697..309596e 100644 (file)
@@ -13,7 +13,7 @@
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
@@ -259,6 +259,16 @@ NOTES:
 (defvar gnus-headers)
 (defvar gnus-score)
 
+;; Added to support XEmacs
+(eval-and-compile
+  (unless (fboundp 'directory-files-and-attributes)
+    (defun directory-files-and-attributes (directory
+                                          &optional full match nosort)
+      (let (result)
+       (dolist (file (directory-files directory full match nosort))
+         (push (cons file (file-attributes file)) result))
+       (nreverse result)))))
+
 ;;;
 ;;; Setup
 ;;;
@@ -591,7 +601,17 @@ manipulated as follows:
           (fboundp 'make-mode-line-mouse-map))
       (propertize string 'local-map
                  (make-mode-line-mouse-map mouse-button mouse-func)
-                 'mouse-face 'mode-line-highlight)
+                 'mouse-face
+                 (cond ((and (featurep 'xemacs)
+                             ;; XEmacs' `facep' only checks for a face
+                             ;; object, not for a face name, so it's useless
+                             ;; to check with `facep'.
+                             (find-face 'modeline))
+                        'modeline)
+                       ((facep 'mode-line-highlight) ;; Emacs 22
+                        'mode-line-highlight)
+                       ((facep 'mode-line) ;; Emacs 21
+                        'mode-line)) )
     string))
 
 (defun gnus-agent-toggle-plugged (set-to)
@@ -1171,7 +1191,7 @@ downloadable."
             ;; For each article that I processed that is no longer
             ;; undownloaded, remove its processable mark.
 
-           (mapc #'gnus-summary-remove-process-mark 
+           (mapc #'gnus-summary-remove-process-mark
                  (gnus-sorted-ndifference gnus-newsgroup-processable gnus-newsgroup-undownloaded))
 
             ;; The preceeding call to (gnus-agent-summary-fetch-group)
@@ -2039,11 +2059,11 @@ doesn't exist, to valid the overview buffer."
                   ;; First, we'll fix the sort.
                   (sort-numeric-fields 1 (point-min) (point-max))
 
-                  ;; but now we have to consider that we may have duplicate rows...      
+                  ;; but now we have to consider that we may have duplicate rows...
                   ;; so reset to beginning of file
                   (goto-char (point-min))
                   (setq last -134217728)
-         
+
                   ;; and throw a code that restarts this scan
                   (throw 'problems t))
                 nil))))))
@@ -2113,18 +2133,20 @@ doesn't exist, to valid the overview buffer."
                (gnus-agent-save-alist gnus-agent-read-agentview)))
            alist))
       ((end-of-file file-error)
-       ;; The agentview file is missing. Perform a brute-force
-       ;; reconstruction of its contents.
-       (let* (alist
-             (file-attributes (directory-files-and-attributes 
-                               (gnus-agent-article-name ""
-                                                        gnus-agent-read-agentview) nil "^[0-9]+$" t)))
-        (while file-attributes
-          (let* ((fa (pop file-attributes))
-                 (artnum (string-to-number (nth 0 fa)))
-                 (days (time-to-days (nth 5 fa))))
-            (push (cons artnum days) alist)))
-        alist)))))
+       ;; The agentview file is missing. 
+       (condition-case nil
+          ;; If the agent directory exists, attempt to perform a brute-force
+          ;; reconstruction of its contents.
+          (let* (alist
+                 (file-attributes (directory-files-and-attributes 
+                                   (gnus-agent-article-name ""
+                                                            gnus-agent-read-agentview) nil "^[0-9]+$" t)))
+            (while file-attributes
+              (let ((fa (pop file-attributes)))
+                (unless (nth 1 fa)
+                  (push (cons (string-to-number (nth 0 fa)) (time-to-days (nth 5 fa))) alist))))
+            alist)
+        (file-error nil))))))
 
 (defun gnus-agent-save-alist (group &optional articles state)
   "Save the article-state alist for GROUP."
@@ -3586,7 +3608,7 @@ articles in every agentized group? "))
                    (or gnus-expert-user
                        (gnus-y-or-n-p
                         "gnus-agent-expire has identified local directories that are\
- not currently required by any agentized group.         Do you wish to consider\
+ not currently required by any agentized group.  Do you wish to consider\
  deleting them?")))
           (while to-remove
             (let ((dir (pop to-remove)))
@@ -3874,7 +3896,7 @@ If REREAD is not nil, downloaded articles are marked as unread."
           (dir (file-name-directory file))
           point
           (downloaded (if (file-exists-p dir)
-                          (sort (delq nil (mapcar (lambda (name) 
+                          (sort (delq nil (mapcar (lambda (name)
                                                     (and (not (file-directory-p (nnheader-concat dir name)))
                                                          (string-to-number name)))
                                                   (directory-files dir nil "^[0-9]+$" t)))
@@ -4041,8 +4063,8 @@ If REREAD is not nil, downloaded articles are marked as unread."
              (gnus-agent-possibly-alter-active group group-active)))))
 
       (when (and reread gnus-agent-article-alist)
-       (gnus-agent-synchronize-group-flags 
-        group 
+       (gnus-agent-synchronize-group-flags
+        group
         (list (list
                (if (listp reread)
                    reread
@@ -4104,16 +4126,6 @@ If CLEAN, obsolete (ignore)."
 (defun gnus-agent-group-covered-p (group)
   (gnus-agent-method-p (gnus-group-method group)))
 
-;; Added to support XEmacs
-(eval-and-compile
-  (unless (fboundp 'directory-files-and-attributes)
-    (defun directory-files-and-attributes (directory
-                                          &optional full match nosort)
-      (let (result)
-       (dolist (file (directory-files directory full match nosort))
-         (push (cons file (file-attributes file)) result))
-       (nreverse result)))))
-
 (defun gnus-agent-update-files-total-fetched-for
   (group delta &optional method path)
   "Update, or set, the total disk space used by the articles that the