update wl-draft-reply-*-argument-list
[elisp/wanderlust.git] / wl / wl-summary.el
index a69659e..ba42408 100644 (file)
@@ -2747,6 +2747,7 @@ If ARG, without confirm."
         parent-entity
         parent-number
         (case-fold-search t)
+        (depth 0) relatives anumber
         cur number overview2 cur-entity linked retval delayed-entity
         update-list entity-stack)
     (while entity
@@ -2756,14 +2757,18 @@ If ARG, without confirm."
            parent-number (elmo-msgdb-overview-entity-get-number
                           parent-entity))
       (setq number (elmo-msgdb-overview-entity-get-number entity))
-      ;; If thread loop detected, set parent as nil.
       (setq cur entity)
+      ;; If thread loop detected, set parent as nil.
       (while cur
-       (if (eq number (elmo-msgdb-overview-entity-get-number
-                       (setq cur
-                             (elmo-msgdb-get-parent-entity cur msgdb))))
+       (setq anumber
+             (elmo-msgdb-overview-entity-get-number
+              (setq cur (elmo-msgdb-get-parent-entity cur msgdb))))
+       (if (memq anumber relatives)
            (setq parent-number nil
-                 cur nil)))
+                 cur nil))
+       (setq relatives (cons
+                        (elmo-msgdb-overview-entity-get-number cur)
+                        relatives)))
       (if (and parent-number
               (not (wl-thread-get-entity parent-number))
               (not force-insert))
@@ -2995,7 +3000,8 @@ If optional argument NUMBER is specified, mark message specified by NUMBER."
          (while (not (eobp))
            (when (string= (wl-summary-temp-mark) mark)
              (setq msglist (cons (wl-summary-message-number) msglist)))
-           (forward-line 1)))))))
+           (forward-line 1))
+         (nreverse msglist))))))
 
 (defun wl-summary-exec ()
   (interactive)
@@ -3154,6 +3160,7 @@ If optional argument NUMBER is specified, mark message specified by NUMBER."
              (wl-summary-unmark msg-num)
              (elmo-folder-delete-messages wl-summary-buffer-elmo-folder
                                           (list msg-num))
+             (wl-summary-delete-messages-on-buffer (list msg-num))
              (save-excursion (wl-summary-sync nil "update"))))))
     (message "Read-only folder.")))
 
@@ -3164,11 +3171,11 @@ If optional argument NUMBER is specified, mark message specified by NUMBER."
          (message "No marked message.")
        (when (yes-or-no-p
               "Erase all marked messages without moving them to trash? ")
-         (while (car wl-summary-buffer-target-mark-list)
-           (let ((num (car wl-summary-buffer-target-mark-list)))
-             (wl-summary-unmark num)
-             (elmo-folder-delete-messages wl-summary-buffer-elmo-folder
-                                          (list num))))
+         (elmo-folder-delete-messages wl-summary-buffer-elmo-folder
+                                      wl-summary-buffer-target-mark-list)
+         (wl-summary-delete-messages-on-buffer
+          wl-summary-buffer-target-mark-list)
+         (setq wl-summary-buffer-target-mark-list nil)
          (save-excursion (wl-summary-sync nil "update"))))
     (message "Read-only folder.")))
 
@@ -3804,7 +3811,7 @@ If ARG, exit virtual folder."
          (setq skipped (cons (car mlist) skipped)))
        (setq mlist (cdr mlist)))
       (setq wl-summary-buffer-target-mark-list skipped)
-      (message "Prefetching... %d/%d message(s)." count length)
+      (message "Prefetching... %d/%d message(s)" count length)
       (set-buffer-modified-p nil))))
 
 (defun wl-summary-target-mark-refile-subr (copy-or-refile)
@@ -4225,7 +4232,7 @@ If ARG, exit virtual folder."
 (defun wl-summary-line-list-info ()
   (let ((list-info (wl-summary-get-list-info wl-message-entity)))
     (if (car list-info)
-       (format (if (cdr list-info) "(%s %05d)" "(%s)")
+       (format (if (cdr list-info) "(%s %05.0f)" "(%s)")
                (car list-info) (cdr list-info))
       "")))
 
@@ -4706,6 +4713,7 @@ Return t if message exists."
       (save-excursion
        (set-buffer summary-buf)
        (wl-summary-delete-all-temp-marks)))
+    (wl-draft-reply-position wl-draft-reply-default-position)
     (run-hooks 'wl-mail-setup-hook)))
 
 (defun wl-summary-reply-with-citation (&optional arg)
@@ -4713,6 +4721,7 @@ Return t if message exists."
   (when (wl-summary-reply arg t)
     (goto-char (point-max))
     (wl-draft-yank-original)
+    (wl-draft-reply-position wl-draft-reply-default-position)
     (run-hooks 'wl-mail-setup-hook)))
 
 (defun wl-summary-jump-to-msg-by-message-id (&optional id)
@@ -4917,6 +4926,7 @@ Reply to author if invoked with ARG."
       (goto-char (point-min))
       (when (setq mes-buf (wl-message-get-original-buffer))
        (wl-draft-reply mes-buf arg summary-buf)
+       (wl-draft-reply-position wl-draft-reply-default-position)
        (unless without-setup-hook
          (run-hooks 'wl-mail-setup-hook)))
       t)))