* wl-dnd.el (wl-dnd-drop-func): Fix.
[elisp/wanderlust.git] / wl / wl-expire.el
index f598b17..bf32cf1 100644 (file)
 (defsubst wl-expire-message-p (folder number)
   "Return non-nil when a message in the FOLDER with NUMBER can be expired."
   (cond ((consp wl-summary-expire-reserve-marks)
-        (let ((mark (elmo-message-mark folder number)))
+        (let ((mark (wl-summary-message-mark folder number)))
           (not (or (member mark wl-summary-expire-reserve-marks)
                    (and wl-summary-buffer-disp-msg
                         (eq number wl-summary-buffer-current-msg))))))
        ((eq wl-summary-expire-reserve-marks 'all)
-        (not (or (elmo-message-mark folder number)
+        (not (or (wl-summary-message-mark folder number)
                  (and wl-summary-buffer-disp-msg
                       (eq number wl-summary-buffer-current-msg)))))
        ((eq wl-summary-expire-reserve-marks 'none)
           (format "Expiring (delete) %s msgs..."
                   (length delete-list))))
       (message "%s" mess)
-      (if (elmo-folder-delete-messages folder delete-list)
+      (if (elmo-folder-move-messages folder delete-list 'null)
          (progn
-           (elmo-folder-detach-messages folder delete-list)
            (wl-expire-append-log
             (elmo-folder-name-internal folder)
             delete-list nil 'delete)
          (if (elmo-folder-move-messages folder
                                         refile-list
                                         dst-folder
-                                        nil ; XXX
-                                        t
                                         copy
-                                        preserve-number
-                                        wl-expire-add-seen-list)
+                                        preserve-number)
              (progn
                (wl-expire-append-log
                 (elmo-folder-name-internal folder)
@@ -196,7 +192,7 @@ If REFILE-LIST includes reserve mark message, so copy."
        (error "%s: create folder failed" (elmo-folder-name-internal
                                           dst-folder)))
        (while (setq msg (wl-pop msglist))
-         (unless (wl-expire-message-p msg folder)
+         (unless (wl-expire-message-p folder msg)
            (setq msg-id (elmo-message-field folder msg 'message-id))
            (if (assoc msg-id wl-expired-alist)
                ;; reserve mark message already refiled or expired
@@ -213,11 +209,8 @@ If REFILE-LIST includes reserve mark message, so copy."
                    (elmo-folder-move-messages folder
                                               refile-list
                                               dst-folder
-                                              nil ;
-                                              t
                                               copy-reserve-message
-                                              preserve-number
-                                              wl-expire-add-seen-list))
+                                              preserve-number))
            (error "Expire: move msgs to %s failed"
                   (elmo-folder-name-internal dst-folder)))
          (wl-expire-append-log (elmo-folder-name-internal folder)
@@ -230,9 +223,8 @@ If REFILE-LIST includes reserve mark message, so copy."
                  (wl-expire-delete-reserved-messages refile-list folder))
            (when refile-list
              (if (setq ret-val
-                       (elmo-folder-delete-messages folder refile-list))
+                       (elmo-folder-move-messages folder refile-list 'null))
                  (progn
-                   (elmo-folder-detach-messages folder refile-list)
                    (wl-expire-append-log
                     (elmo-folder-name-internal folder)
                     refile-list nil 'delete))))))
@@ -699,7 +691,6 @@ ex. +ml/wl/1999_11/, +ml/wl/1999_12/."
              (wl-summary-delete-messages-on-buffer delete-list deleting-info)
              (wl-summary-folder-info-update)
              (wl-summary-set-message-modified)
-             (wl-summary-set-mark-modified)
              (sit-for 0)
              (set-buffer-modified-p nil))
            (wl-expired-alist-save))
@@ -749,16 +740,17 @@ ex. +ml/wl/1999_11/, +ml/wl/1999_12/."
 
 (defun wl-folder-expire-current-entity ()
   (interactive)
-  (let ((entity-name
-        (or (wl-folder-get-folder-name-by-id
-             (get-text-property (point) 'wl-folder-entity-id))
-            (wl-folder-get-entity-from-buffer))))
+  (let ((entity-name (wl-folder-get-entity-from-buffer))
+       (type (if (wl-folder-buffer-group-p)
+                 'group
+               'folder)))
     (when (and entity-name
               (or (not (interactive-p))
                   (y-or-n-p (format "Expire %s? " entity-name))))
       (wl-folder-expire-entity
        (wl-folder-search-entity-by-name entity-name
-                                       wl-folder-entity))
+                                       wl-folder-entity
+                                       type))
       (if (get-buffer wl-summary-buffer-name)
          (kill-buffer wl-summary-buffer-name))
       (message "Expiring %s is done" entity-name))))
@@ -767,16 +759,17 @@ ex. +ml/wl/1999_11/, +ml/wl/1999_12/."
 
 (defun wl-folder-archive-current-entity ()
   (interactive)
-  (let ((entity-name
-        (or (wl-folder-get-folder-name-by-id
-             (get-text-property (point) 'wl-folder-entity-id))
-            (wl-folder-get-entity-from-buffer))))
+  (let ((entity-name (wl-folder-get-entity-from-buffer))
+       (type (if (wl-folder-buffer-group-p)
+                 'group
+               'folder)))
     (when (and entity-name
               (or (not (interactive-p))
                   (y-or-n-p (format "Archive %s? " entity-name))))
       (wl-folder-archive-entity
        (wl-folder-search-entity-by-name entity-name
-                                       wl-folder-entity))
+                                       wl-folder-entity
+                                       type))
       (message "Archiving %s is done" entity-name))))
 
 (defun wl-archive-number1 (folder archive-list &optional dst-folder-arg)