*** empty log message ***
[elisp/gnus.git-] / lisp / gnus-agent.el
index f6ce18c..9648b97 100644 (file)
 (eval-when-compile (require 'cl))
 
 (defcustom gnus-agent-directory (nnheader-concat gnus-directory "agent/")
-  "*Where the Gnus agent will store its files."
+  "Where the Gnus agent will store its files."
   :group 'gnus-agent
   :type 'directory)
 
 (defcustom gnus-agent-plugged-hook nil
-  "*Hook run when plugging into the network."
+  "Hook run when plugging into the network."
   :group 'gnus-agent
   :type 'hook)
 
 (defcustom gnus-agent-unplugged-hook nil
-  "*Hook run when unplugging from the network."
+  "Hook run when unplugging from the network."
   :group 'gnus-agent
   :type 'hook)
 
 (defcustom gnus-agent-handle-level gnus-level-subscribed
-  "*Groups on levels higher than this variable will be ignored by the Agent."
+  "Groups on levels higher than this variable will be ignored by the Agent."
   :group 'gnus-agent
   :type 'integer)
 
 (defun gnus-agent-toggle-plugged (plugged)
   "Toggle whether Gnus is unplugged or not."
   (interactive (list (not gnus-plugged)))
-  (setq gnus-plugged plugged)
   (if plugged
       (progn
+       (setq gnus-plugged plugged)
        (gnus-run-hooks 'gnus-agent-plugged-hook)
        (setcar (cdr gnus-agent-mode-status) " Plugged"))
     (gnus-agent-close-connections)
+    (setq gnus-plugged plugged)
     (gnus-run-hooks 'gnus-agent-unplugged-hook)
     (setcar (cdr gnus-agent-mode-status) " Unplugged"))
   (set-buffer-modified-p t))
@@ -481,8 +482,9 @@ the actual number of articles toggled is returned."
   "Translate GROUP into a path."
   (if nnmail-use-long-file-names
       group
-    (nnheader-translate-file-chars
-     (nnheader-replace-chars-in-string group ?. ?/))))
+    (nnheader-replace-chars-in-string
+     (nnheader-translate-file-chars group)
+     ?. ?/)))
 
 \f
 
@@ -620,7 +622,8 @@ the actual number of articles toggled is returned."
            (if (not (re-search-forward "^Message-ID: *<\\([^>\n]+\\)>" nil t))
                (setq id "No-Message-ID-in-article")
              (setq id (buffer-substring (match-beginning 1) (match-end 1))))
-           (let ((coding-system-for-write gnus-agent-article-file-coding-system))
+           (let ((coding-system-for-write
+                  gnus-agent-article-file-coding-system))
              (write-region (point-min) (point-max)
                            (concat dir (number-to-string (caar pos)))
                            nil 'silent))
@@ -693,6 +696,17 @@ the actual number of articles toggled is returned."
        (set-buffer nntp-server-buffer)
        (unless (eq 'nov (gnus-retrieve-headers articles group))
          (nnvirtual-convert-headers))
+       ;;
+       ;; To gnus-agent-expire work fine with no Xref field in .overview 
+       ;; Tatsuya Ichikawa <ichikawa@hv.epson.co.jp>
+       (goto-char (point-min))
+       (while (not (eobp))
+         (goto-char (point-at-eol))
+         (insert "\t")
+         (forward-line 1))
+       ;; Tatsuya Ichikawa <ichikawa@hv.epson.co.jp>
+       ;; To gnus-agent-expire work fine with no Xref field in .overview 
+       ;;
        ;; Save these headers for later processing.
        (copy-to-buffer gnus-agent-overview-buffer (point-min) (point-max))
        (let (file)
@@ -1249,7 +1263,8 @@ The following commands are available:
           (gnus-delete-line)
           (setq headers nil)))
        (when headers
-         (unless (memq (setq article (mail-header-number headers)) unreads)
+         (if (memq (setq article (mail-header-number headers)) unreads)
+             (forward-line 1)
            (if (not (< (inline
                          (gnus-time-to-day
                           (inline (nnmail-date-to-time