(*-request-set-mark): Extend syntax with 'set.
authorLars Magne Ingebrigtsen <larsi@quimbies.gnus.org>
Fri, 26 Nov 2010 01:50:41 +0000 (02:50 +0100)
committerLars Magne Ingebrigtsen <larsi@quimbies.gnus.org>
Fri, 26 Nov 2010 01:50:41 +0000 (02:50 +0100)
lisp/ChangeLog
lisp/nnfolder.el
lisp/nnimap.el
lisp/nnml.el
lisp/nntp.el

index 83e4c40..6b19451 100644 (file)
@@ -7,6 +7,13 @@
        (nnimap-request-move-article): Use the UID returned, if any.
        (nnimap-get-groups): Reimplement to work with folded lines.
        (nnimap-find-uid-response): The UID is the last element in the list.
+       (nnimap-request-set-mark): Extend syntax with 'set.
+
+       * nnml.el (nnml-request-set-mark): Ditto.
+
+       * nnfolder.el (nnfolder-request-set-mark): Ditto.
+
+       * nntp.el (nntp-request-set-mark): Ditto.
 
 2010-11-25  Katsumi Yamaoka  <yamaoka@jpl.org>
 
index 668b75a..3f7043c 100644 (file)
@@ -1190,15 +1190,19 @@ This command does not work if you use short group names."
       (let ((range (nth 0 action))
            (what  (nth 1 action))
            (marks (nth 2 action)))
-       (assert (or (eq what 'add) (eq what 'del)) nil
-               "Unknown request-set-mark action: %s" what)
        (dolist (mark marks)
-         (setq nnfolder-marks (gnus-update-alist-soft
-                           mark
-                           (funcall (if (eq what 'add) 'gnus-range-add
-                                      'gnus-remove-from-range)
-                                    (cdr (assoc mark nnfolder-marks)) range)
-                           nnfolder-marks)))))
+         (setq nnfolder-marks
+               (gnus-update-alist-soft
+                mark
+                (cond
+                 ((eq what 'add)
+                  (gnus-range-add (cdr (assoc mark nnfolder-marks)) range)
+                 ((eq what 'del)
+                  (gnus-remove-from-range
+                   (cdr (assoc mark nnfolder-marks)) range))
+                 ((eq what 'set)
+                  range)))
+                nnfolder-marks)))))
     (nnfolder-save-marks group server))
   nil)
 
index 97889bb..0a0b413 100644 (file)
@@ -941,9 +941,10 @@ textual parts.")
                (setq sequence (nnimap-send-command
                                "UID STORE %s %sFLAGS.SILENT (%s)"
                                (nnimap-article-ranges range)
-                               (if (eq action 'del)
-                                   "-"
-                                 "+")
+                               (cond
+                                ((eq action 'del) "-")
+                                ((eq action 'add) "-")
+                                ((eq action 'set) ""))
                                (mapconcat #'identity flags " ")))))))
        ;; Wait for the last command to complete to avoid later
        ;; syncronisation problems with the stream.
index b84ce51..6282b25 100644 (file)
@@ -1037,15 +1037,20 @@ Use the nov database for the current group if available."
       (let ((range (nth 0 action))
            (what  (nth 1 action))
            (marks (nth 2 action)))
-       (assert (or (eq what 'add) (eq what 'del)) nil
+       (assert (or (eq what 'add) (eq what 'del) (eq what 'set)) nil
                "Unknown request-set-mark action: %s" what)
        (dolist (mark marks)
-         (setq nnml-marks (gnus-update-alist-soft
-                           mark
-                           (funcall (if (eq what 'add) 'gnus-range-add
-                                      'gnus-remove-from-range)
-                                    (cdr (assoc mark nnml-marks)) range)
-                           nnml-marks)))))
+         (setq nnml-marks
+               (gnus-update-alist-soft
+                mark
+                (cond
+                 ((eq what 'add)
+                  (gnus-range-add (cdr (assoc mark nnml-marks)) range)
+                 ((eq what 'del)
+                  (gnus-remove-from-range (cdr (assoc mark nnml-marks)) range))
+                 ((eq what 'set)
+                  range)))
+                nnml-marks)))))
     (nnml-save-marks group server))
   nil)
 
index 46cc0d2..1e33055 100644 (file)
@@ -1122,15 +1122,18 @@ command whose response triggered the error."
       (let ((range (nth 0 action))
            (what  (nth 1 action))
            (marks (nth 2 action)))
-       (assert (or (eq what 'add) (eq what 'del)) nil
-               "Unknown request-set-mark action: %s" what)
        (dolist (mark marks)
-         (setq nntp-marks (gnus-update-alist-soft
-                           mark
-                           (funcall (if (eq what 'add) 'gnus-range-add
-                                      'gnus-remove-from-range)
-                                    (cdr (assoc mark nntp-marks)) range)
-                           nntp-marks)))))
+         (setq nntp-marks
+               (gnus-update-alist-soft
+                mark
+                (cond
+                 ((eq what 'add)
+                  (gnus-range-add (cdr (assoc mark nntp-marks)) range)
+                 ((eq what 'del)
+                  (gnus-remove-from-range (cdr (assoc mark nntp-marks)) range))
+                 ((eq what 'set)
+                  range)))
+                nntp-marks)))))
     (nntp-save-marks group server))
   nil)