;;; elmo-dop.el -- Modules for Disconnected Operations on ELMO.
-;; Copyright 1998,1999,2000 Yuuichi Teranishi <teranisi@gohome.org>
+;; Copyright (C) 1998,1999,2000 Yuuichi Teranishi <teranisi@gohome.org>
;; Author: Yuuichi Teranishi <teranisi@gohome.org>
;; Keywords: mail, net news
Automatically loaded/saved.")
(defun elmo-dop-queue-append (folder function argument)
- (let ((operation (list (format "%s" folder) function argument)))
+ (let ((operation (list (elmo-string folder) function argument)))
(elmo-dop-queue-load)
(unless (member operation elmo-dop-queue) ;; don't append same operation
(setq elmo-dop-queue
(setq numbers (cdr numbers)))
(cons appended deleting-msgids)))
+(defun elmo-dop-list-deleted (folder number-alist)
+ "List message numbers to be deleted on FOLDER from NUMBER-ALIST."
+ (elmo-dop-queue-load)
+ (let ((queue elmo-dop-queue)
+ numbers matches nalist)
+ (while queue
+ (if (and (string= (nth 0 (car queue)) folder)
+ (string= (nth 1 (car queue)) "delete-msgids"))
+ (setq numbers
+ (nconc numbers
+ (delq nil (mapcar
+ (lambda (x)
+ (mapcar 'car
+ (elmo-string-rassoc-all
+ x number-alist)))
+ (nth 2 (car queue)))))))
+ (setq queue (cdr queue)))
+ (elmo-uniq-list (elmo-flatten numbers))))
+
(defun elmo-dop-delete-msgs (folder msgs msgdb)
(save-match-data
(let ((folder-numbers (elmo-make-folder-numbers-list folder msgs))
(save-match-data
(elmo-dop-queue-append folder "prefetch-msgs" msgs)))
-(defun elmo-dop-list-folder (folder)
+(defun elmo-dop-list-folder (folder &optional nohide)
(if (or (memq (elmo-folder-get-type folder)
'(imap4 nntp pop3 filter pipe))
(and (elmo-multi-p folder) (not (elmo-folder-local-p folder))))
alreadies
max-num
(i 0))
+ (setq killed (nconc (elmo-dop-list-deleted folder number-alist)
+ killed))
(while append-list
(if (rassoc (car append-list) number-alist)
(setq alreadies (append alreadies
(if (eq (elmo-folder-get-type folder) 'imap4)
(if elmo-enable-disconnected-operation
(let* ((number-alist (elmo-msgdb-number-load
- (elmo-msgdb-expand-path folder)))
+ (elmo-msgdb-expand-path folder)))
(number-list (mapcar 'car number-alist))
(append-list (elmo-dop-append-list-load folder))
(append-num (length append-list))
(car appendings))))
(when file-string
(condition-case ()
- (elmo-append-msg folder file-string (car appendings) nil
- (not (member (car appendings) seen-list)))
+ (setq failure (not
+ (elmo-append-msg
+ folder file-string (car appendings) nil
+ (not (member (car appendings) seen-list)))))
(quit (setq failure t))
(error (setq failure t)))
(setq i (+ 1 i))