gnus-draft.el (gnus-draft-clear-marks): Mark deleted articles as read.
authorKatsumi Yamaoka <yamaoka@jpl.org>
Fri, 1 Jul 2011 04:06:35 +0000 (04:06 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Fri, 1 Jul 2011 04:06:35 +0000 (04:06 +0000)
lisp/ChangeLog
lisp/gnus-draft.el

index 2aba7e4..f11e342 100644 (file)
@@ -1,3 +1,7 @@
+2011-07-01  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * gnus-draft.el (gnus-draft-clear-marks): Mark deleted articles as read.
+
 2011-07-01  Daiki Ueno  <ueno@unixuser.org>
 
        * plstore.el (plstore-select-keys, plstore-encrypt-to): New variable.
index 1709b1c..a2a4cd3 100644 (file)
@@ -325,10 +325,18 @@ If DONT-POP is nil, display the buffer after setting it up."
        (error "The draft %s is under edit" file)))))
 
 (defun gnus-draft-clear-marks ()
-  (setq gnus-newsgroup-reads nil
-       gnus-newsgroup-marked nil
-       gnus-newsgroup-unreads
-       (gnus-uncompress-range (gnus-active gnus-newsgroup-name))))
+  (setq gnus-newsgroup-marked nil
+       gnus-newsgroup-unreads (gnus-uncompress-range
+                               (gnus-active gnus-newsgroup-name)))
+  ;; Mark articles except for deleted ones as unread.
+  (let (rest)
+    (dolist (article gnus-newsgroup-reads)
+      (when (and (consp article)
+                (eq (cdr article) gnus-canceled-mark))
+       (push article rest)
+       (setq gnus-newsgroup-unreads
+             (delq (car article) gnus-newsgroup-unreads))))
+    (setq gnus-newsgroup-reads (nreverse rest))))
 
 (provide 'gnus-draft)