* modb-standard.el (elmo-msgdb-set-flag): Simplify;
authorhmurata <hmurata>
Thu, 6 Nov 2003 10:13:49 +0000 (10:13 +0000)
committerhmurata <hmurata>
Thu, 6 Nov 2003 10:13:49 +0000 (10:13 +0000)
Undo last change (move to elmo-msgdb-unset-flag).
(elmo-msgdb-unset-flag): Simplify; Unset 'new flag when unread
flag is unset.

elmo/ChangeLog
elmo/modb-standard.el

index a352af9..42aeb1c 100644 (file)
@@ -1,3 +1,10 @@
+2003-11-06  Hiroya Murata  <lapis-lazuli@pop06.odn.ne.jp>
+
+       * modb-standard.el (elmo-msgdb-set-flag): Simplify;
+       Undo last change (move to elmo-msgdb-unset-flag).
+       (elmo-msgdb-unset-flag): Simplify; Unset 'new flag when unread
+       flag is unset.
+
 2003-11-05  Yuuichi Teranishi  <teranisi@gohome.org>
 
        * modb-standard.el (elmo-msgdb-set-flag): Unset 'new flag when
index a8e4d6a..23d2580 100644 (file)
                                         number flag)
   (case flag
     (read
-     (elmo-msgdb-unset-flag msgdb number 'new)
      (elmo-msgdb-unset-flag msgdb number 'unread))
     (uncached
      (elmo-msgdb-unset-flag msgdb number 'cached))
     (t
-     (let* ((cur-flags (modb-standard-message-flags msgdb number))
-           (new-flags (copy-sequence cur-flags))
-           diff)
-       (or (memq flag new-flags)
-          (setq new-flags (cons flag new-flags)))
-       (when (and (eq flag 'unread)
-                 (memq 'answered new-flags))
-        (setq new-flags (delq 'answered new-flags)))
-       (unless (equal new-flags cur-flags)
+     (let ((cur-flags (modb-standard-message-flags msgdb number))
+          new-flags diff)
+       (unless (memq flag cur-flags)
+        (setq new-flags (cons flag cur-flags))
         (setq diff (elmo-list-diff new-flags cur-flags))
         (modb-standard-countup-flags msgdb (car diff))
         (modb-standard-countup-flags msgdb (cadr diff) -1)
      (elmo-clear-hash-val (modb-standard-key number)
                          (modb-standard-flag-map msgdb)))
     (t
-     (let* ((cur-flags (modb-standard-message-flags msgdb number))
-           (new-flags (copy-sequence cur-flags))
-           diff)
-       (and (memq flag new-flags)
-           (setq new-flags (delq flag new-flags)))
-       (when (and (eq flag 'unread)
-                 (memq 'answered new-flags))
-        (setq new-flags (delq 'answered new-flags)))
-       (unless (equal new-flags cur-flags)
+     (let ((cur-flags (modb-standard-message-flags msgdb number))
+          new-flags diff)
+       (when (memq flag cur-flags)
+        (setq new-flags (delq flag (copy-sequence cur-flags)))
         (setq diff (elmo-list-diff new-flags cur-flags))
         (modb-standard-countup-flags msgdb (car diff))
         (modb-standard-countup-flags msgdb (cadr diff) -1)
         (elmo-set-hash-val (modb-standard-key number)
                            (cons number new-flags)
                            (modb-standard-flag-map msgdb))
-        (modb-standard-set-flag-modified msgdb number))))))
+        (modb-standard-set-flag-modified msgdb number))
+       (when (eq flag 'unread)
+        (elmo-msgdb-unset-flag msgdb number 'new))))))
 
 (luna-define-method elmo-msgdb-flag-count ((msgdb modb-standard))
   (modb-standard-flag-count-internal msgdb))