* elmo-dop.el (elmo-dop-queue-merge): Implement.
authorokada <okada>
Wed, 16 Jan 2002 19:42:17 +0000 (19:42 +0000)
committerokada <okada>
Wed, 16 Jan 2002 19:42:17 +0000 (19:42 +0000)
  (elmo-dop-merge-funcs): Remove.

elmo/ChangeLog
elmo/elmo-dop.el

index 9303ba4..d1ebe9d 100644 (file)
@@ -1,3 +1,8 @@
+2002-01-17  Kenichi OKADA  <okada@opaopa.org>
+
+       * elmo-dop.el (elmo-dop-queue-merge): Implement.
+       (elmo-dop-merge-funcs): Remove.
+
 2002-01-11  Hiroya Murata  <lapis-lazuli@pop06.odn.ne.jp>
 
        * elmo-util.el (elmo-file-cache-delete): Fixed last change;
index c53104b..c63ec32 100644 (file)
@@ -144,10 +144,29 @@ even an operation concerns the unplugged folder."
          (message "")))
       count)))
 
-(defvar elmo-dop-merge-funcs nil)
 (defun elmo-dop-queue-merge ()
-  ;; XXXX Not implemented yet.
-  )
+  (let ((queue elmo-dop-queue)
+       new-queue match-queue que)
+    (while (setq que (car queue))
+      (if (and
+          (assq (elmo-dop-queue-method que)
+                elmo-dop-queue-method-name-alist)
+          (setq match-queue
+                (car (delete nil
+                             (mapcar '(lambda (nqueue)
+                                        (if (and
+                                             (string= (elmo-dop-queue-fname que)
+                                                      (elmo-dop-queue-fname nqueue))
+                                             (string= (elmo-dop-queue-method que)
+                                                      (elmo-dop-queue-method nqueue)))
+                                            nqueue))
+                                     new-queue)))))
+           (setcar (elmo-dop-queue-arguments match-queue)
+                   (append (car (elmo-dop-queue-arguments match-queue))
+                           (car (elmo-dop-queue-arguments que))))
+       (setq new-queue (nconc new-queue (list que))))
+      (setq queue (cdr queue)) )
+    (setq elmo-dop-queue new-queue)))
 
 ;;; dop spool folder
 (defmacro elmo-dop-spool-folder (folder)