Require "backquote" before dealing with the custom issue.
[elisp/wanderlust.git] / elmo / elmo-pipe.el
index 04a0688..fd0fb7e 100644 (file)
@@ -1,6 +1,6 @@
 ;;; elmo-pipe.el -- PIPE Interface for 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
   (let ((msgdb (elmo-msgdb-load src))
        elmo-nntp-use-cache
        elmo-imap4-use-cache
-       elmo-pop3-use-cache) ; Inhibit caching while moving messages.
+       elmo-pop3-use-cache ; Inhibit caching while moving messages.
+       elmo-pop3-use-uidl) ; No need to use UIDL
     (message "Checking %s..." src)
     (elmo-move-msgs src (elmo-list-folder src) dst msgdb)
-    (elmo-msgdb-save src msgdb)
+    ;; Don't save msgdb here.
+    ;; Because summary view of original folder is not updated yet.
+    ;; (elmo-msgdb-save src msgdb)
+    (elmo-commit src)
     (run-hooks 'elmo-pipe-drained-hook)))
 
 (defun elmo-pipe-list-folder (spec)
   (elmo-pipe-drain (elmo-pipe-spec-src spec)
                   (elmo-pipe-spec-dst spec))
-  (elmo-list-folder (elmo-pipe-spec-dst spec)))
-
-(defun elmo-pipe-list-folder-unread (spec mark-alist unread-marks)
-  (elmo-list-folder-unread (elmo-pipe-spec-dst spec) mark-alist unread-marks))
+  (let ((killed (and elmo-use-killed-list
+                    (elmo-msgdb-killed-list-load
+                     (elmo-msgdb-expand-path spec))))
+       numbers)
+    (setq numbers (elmo-list-folder (elmo-pipe-spec-dst spec)))
+    (elmo-living-messages numbers killed)))
+
+(defun elmo-pipe-list-folder-unread (spec number-alist mark-alist unread-marks)
+  (elmo-list-folder-unread (elmo-pipe-spec-dst spec)
+                          number-alist mark-alist unread-marks))
   
-(defun elmo-pipe-list-folder-important (spec overview)
-  (elmo-list-folder-important (elmo-pipe-spec-dst spec) overview))
+(defun elmo-pipe-list-folder-important (spec number-alist)
+  (elmo-list-folder-important (elmo-pipe-spec-dst spec) number-alist))
 
 (defun elmo-pipe-max-of-folder (spec)
-  (let ((src-length (length (elmo-list-folder (elmo-pipe-spec-src spec))))
-       (dst-list (elmo-list-folder (elmo-pipe-spec-dst spec))))
+  (let* (elmo-pop3-use-uidl
+        (src-length (length (elmo-list-folder (elmo-pipe-spec-src spec))))
+        (dst-list (elmo-list-folder (elmo-pipe-spec-dst spec))))
     (cons (+ src-length (elmo-max-of-list dst-list))
          (+ src-length (length dst-list)))))
 
 (defun elmo-pipe-server-diff (spec)
   nil)
 
-(provide 'elmo-pipe)
+(defalias 'elmo-pipe-folder-diff 'elmo-generic-folder-diff)
+
+(require 'product)
+(product-provide (provide 'elmo-pipe) (require 'elmo-version))
 
 ;;; elmo-pipe.el ends here