Importing qgnus-0.19
[elisp/gnus.git-] / lisp / gnus-agent.el
index 7a3ad16..a76b502 100644 (file)
 
 (defvar gnus-agent-group-mode-map (make-sparse-keymap))
 (gnus-define-keys gnus-agent-group-mode-map
-  "Ju" gnus-agent-fetch-group
+  "Ju" gnus-agent-fetch-groups
   "Jc" gnus-enter-category-buffer
   "Jj" gnus-agent-toggle-plugged
   "Js" gnus-agent-fetch-session
@@ -297,6 +297,11 @@ agent minor mode in all Gnus buffers."
 ;;; Group mode commands
 ;;;
 
+(defun gnus-agent-fetch-groups (n)
+  "Put all new articles in the current groups into the agent."
+  (interactive "P")
+  (gnus-group-iterate n 'gnus-agent-fetch-group))
+
 (defun gnus-agent-fetch-group (group)
   "Put all new articles in GROUP into the agent."
   (interactive (list (gnus-group-group-name)))
@@ -412,9 +417,13 @@ the actual number of articles toggled is returned."
   (let ((unmark (if (and (not (null unmark)) (not (eq t unmark)))
                    (memq article gnus-newsgroup-downloadable)
                  unmark)))
-    (setq gnus-newsgroup-downloadable
-         (delq article gnus-newsgroup-downloadable))
-    (unless unmark
+    (if unmark
+       (progn
+         (setq gnus-newsgroup-downloadable
+               (delq article gnus-newsgroup-downloadable))
+         (push article gnus-newsgroup-undownloaded))
+      (setq gnus-newsgroup-undownloaded
+           (delq article gnus-newsgroup-undownloaded))
       (push article gnus-newsgroup-downloadable))
     (gnus-summary-update-mark
      (if unmark gnus-undownloaded-mark gnus-downloadable-mark)