* gnus-agent.el (gnus-agent-synchronize-group-flags): Added
authorKevin Greiner <kevin.greiner@compsol.cc>
Fri, 1 Oct 2004 20:24:41 +0000 (20:24 +0000)
committerKevin Greiner <kevin.greiner@compsol.cc>
Fri, 1 Oct 2004 20:24:41 +0000 (20:24 +0000)
support for sync'ing tick marks.

lisp/ChangeLog
lisp/gnus-agent.el

index 9b10a95..1ea0bfc 100644 (file)
@@ -1,3 +1,8 @@
+2004-10-01  Kevin Greiner  <kgreiner@compsol.cc>
+
+       * gnus-agent.el (gnus-agent-synchronize-group-flags): Added
+       support for sync'ing tick marks.
+
 2004-10-01  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * gnus-sum.el (gnus-summary-toggle-header): Make it work even if
index 104a418..9d48b59 100644 (file)
@@ -1226,17 +1226,27 @@ This can be added to `gnus-select-article-hook' or
        (let ((range (nth 0 action))
              (what  (nth 1 action))
              (marks (nth 2 action)))
-         (when (memq 'read marks)
-           (gnus-info-set-read 
-            info
-            (funcall (if (eq what 'add)
-                         'gnus-range-add
-                       'gnus-remove-from-range)
-                     (gnus-info-read info)
-                     range))
-           (gnus-get-unread-articles-in-group 
-            info
-            (gnus-active (gnus-info-group info)))))))
+         (dolist (mark marks)
+           (cond ((eq mark 'read)
+                  (gnus-info-set-read 
+                   info
+                   (funcall (if (eq what 'add)
+                                'gnus-range-add
+                              'gnus-remove-from-range)
+                            (gnus-info-read info)
+                            range))
+                  (gnus-get-unread-articles-in-group 
+                   info
+                   (gnus-active (gnus-info-group info))))
+                 ((memq mark '(tick))
+                  (let ((info-marks (assoc mark (gnus-info-marks info))))
+                    (unless info-marks
+                      (gnus-info-marks info (cons (setq info-marks (list mark)) (gnus-info-marks info))))
+                    (setcdr info-marks (funcall (if (eq what 'add)
+                                 'gnus-range-add
+                               'gnus-remove-from-range)
+                             (cdr info-marks)
+                             range)))))))))
     nil))
 
 (defun gnus-agent-save-active (method)