(defvar elmo-dop-queue-method-name-alist
'((elmo-folder-append-buffer-dop-delayed . "Append")
(elmo-folder-delete-messages-dop-delayed . "Delete")
- (elmo-message-encache-dop . "Encache")
- (elmo-create-folder-dop . "Create")
+ (elmo-message-encache . "Encache")
+ (elmo-create-folder . "Create")
(elmo-folder-mark-as-read . "Read")
(elmo-folder-unmark-read . "Unread")
(elmo-folder-mark-as-important . "Important")
numbers)))
t)
-(defsubst elmo-message-encache-dop (folder number)
- (elmo-dop-queue-append folder 'elmo-message-encache (list number)))
+(defsubst elmo-message-encache-dop (folder number &optional read)
+ (elmo-dop-queue-append folder 'elmo-message-encache (list number read)))
(defsubst elmo-create-folder-dop (folder)
(elmo-dop-queue-append folder 'elmo-folder-create nil))
;;; Delayed operation (executed at online status).
(defun elmo-folder-append-buffer-dop-delayed (folder unread number set-number)
(let ((spool-folder (elmo-dop-spool-folder folder))
- failure)
+ failure saved)
(with-temp-buffer
(elmo-message-fetch spool-folder number
(elmo-make-fetch-strategy 'entire)
(error (setq failure t)))
(when failure
;; Append failed...
- (elmo-folder-append-buffer (elmo-make-folder elmo-lost+found-folder)
- unread set-number))
- (elmo-folder-delete-messages spool-folder (list number))
+ (setq saved (elmo-folder-append-buffer
+ (elmo-make-folder elmo-lost+found-folder)
+ unread set-number)))
+ (if (or (not failure)
+ saved)
+ (elmo-folder-delete-messages spool-folder (list number)))
t)))
(defun elmo-folder-delete-messages-dop-delayed (folder number-alist)