-(defsubst elmo-folder-flag-as-read-dop (folder numbers)
- (elmo-dop-queue-append folder 'elmo-folder-flag-as-read (list numbers)))
-
-(defsubst elmo-folder-unflag-read-dop (folder numbers)
- (elmo-dop-queue-append folder 'elmo-folder-unflag-read (list numbers)))
-
-(defsubst elmo-folder-flag-as-important-dop (folder numbers)
- (elmo-dop-queue-append folder 'elmo-folder-flag-as-important (list numbers)))
-
-(defsubst elmo-folder-unflag-important-dop (folder numbers)
- (elmo-dop-queue-append folder 'elmo-folder-unflag-important (list numbers)))
-
-(defsubst elmo-folder-flag-as-answered-dop (folder numbers)
- (elmo-dop-queue-append folder 'elmo-folder-flag-as-answered (list numbers)))
-
-(defsubst elmo-folder-unflag-answered-dop (folder numbers)
- (elmo-dop-queue-append folder 'elmo-folder-unflag-answered (list numbers)))
+(defsubst elmo-folder-set-flag-dop (folder numbers flag)
+ (when (setq numbers (elmo-dop-filter-pending-messages numbers))
+ (let ((method (case flag
+ (unread
+ 'elmo-folder-unset-read-delayed)
+ (read
+ 'elmo-folder-set-read-delayed)
+ (important
+ 'elmo-folder-set-important-delayed)
+ (answered
+ 'elmo-folder-set-answered-delayed))))
+ (if method
+ (elmo-dop-queue-append folder method (list numbers))
+ (elmo-dop-queue-append folder 'elmo-folder-set-flag
+ (list numbers flag))))))
+
+(defsubst elmo-folder-unset-flag-dop (folder numbers flag)
+ (when (setq numbers (elmo-dop-filter-pending-messages numbers))
+ (let ((method (case flag
+ (unread
+ 'elmo-folder-set-read-delayed)
+ (read
+ 'elmo-folder-unset-read-delayed)
+ (important
+ 'elmo-folder-unset-important-delayed)
+ (answered
+ 'elmo-folder-unset-answered-delayed))))
+ (if method
+ (elmo-dop-queue-append folder method (list numbers))
+ (elmo-dop-queue-append folder 'elmo-folder-unset-flag
+ (list numbers flag))))))