(let ((start (point))
(failures 0)
(refile-len (length mark-list))
- dst-msgs ; loop counter
- result)
+ dst-msgs)
;; begin refile...
- (setq dst-msgs
- (wl-summary-make-destination-numbers-list mark-list))
+ (setq dst-msgs (wl-summary-make-destination-numbers-list mark-list))
(goto-char start) ; avoid moving cursor to the bottom line.
(when (> refile-len elmo-display-progress-threshold)
(elmo-progress-set 'elmo-folder-move-messages
refile-len "Refiling messages..."))
- (while dst-msgs
- (setq result nil)
- (condition-case nil
- (setq result (elmo-folder-move-messages
- wl-summary-buffer-elmo-folder
- (cdr (car dst-msgs))
- (wl-folder-get-elmo-folder (car (car dst-msgs)))))
- (error nil))
- (if result ; succeeded.
+ (dolist (pair dst-msgs)
+ (if (condition-case nil
+ (elmo-folder-move-messages
+ wl-summary-buffer-elmo-folder
+ (cdr pair)
+ (wl-folder-get-elmo-folder (car pair)))
+ (error nil))
(progn
;; update buffer.
- (wl-summary-delete-messages-on-buffer (cdr (car dst-msgs)))
+ (wl-summary-delete-messages-on-buffer (cdr pair))
(setq wl-summary-buffer-temp-mark-list
(wl-delete-associations
- (cdr (car dst-msgs))
+ (cdr pair)
wl-summary-buffer-temp-mark-list)))
- (setq failures
- (+ failures (length (cdr (car dst-msgs))))))
- (setq dst-msgs (cdr dst-msgs)))
+ (setq failures (+ failures (length (cdr pair))))))
(elmo-progress-clear 'elmo-folder-move-messages)
+ (if (<= failures 0)
+ (message "Refiling messages...done"))
failures)))
;; Copy action
(let ((start (point))
(failures 0)
(refile-len (length mark-list))
- dst-msgs ; loop counter
- result)
+ dst-msgs)
;; begin refile...
(setq dst-msgs
(wl-summary-make-destination-numbers-list mark-list))
(when (> refile-len elmo-display-progress-threshold)
(elmo-progress-set 'elmo-folder-move-messages
refile-len "Copying messages..."))
- (while dst-msgs
- (setq result nil)
- (condition-case nil
- (setq result (elmo-folder-move-messages
- wl-summary-buffer-elmo-folder
- (cdr (car dst-msgs))
- (wl-folder-get-elmo-folder (car (car dst-msgs)))
- 'no-delete))
- (error nil))
- (if result ; succeeded.
+ (dolist (pair dst-msgs)
+ (if (condition-case nil
+ (elmo-folder-move-messages
+ wl-summary-buffer-elmo-folder
+ (cdr pair)
+ (wl-folder-get-elmo-folder (car pair))
+ 'no-delete)
+ (error nil))
(progn
;; update buffer.
- (wl-summary-delete-copy-marks-on-buffer (cdr (car dst-msgs)))
+ (wl-summary-delete-copy-marks-on-buffer (cdr pair))
(setq wl-summary-buffer-temp-mark-list
(wl-delete-associations
- (cdr (car dst-msgs))
+ (cdr pair)
wl-summary-buffer-temp-mark-list)))
- (setq failures
- (+ failures (length (cdr (car dst-msgs))))))
- (setq dst-msgs (cdr dst-msgs)))
+ (setq failures (+ failures (length (cdr pair))))))
(elmo-progress-clear 'elmo-folder-move-messages)
+ (if (<= failures 0)
+ (message "Copying messages...done"))
failures)))
;; Prefetch.
(save-excursion
;; We first set up a normal mail buffer.
(set-buffer (get-buffer-create " *wl-draft-resend*"))
- (buffer-disable-undo (current-buffer))
+ (set-buffer-multibyte nil)
(erase-buffer)
(setq wl-sent-message-via nil)
;; Insert our usual headers.
(let ((beg (point)))
;; Insert the message to be resent.
(insert
- (with-temp-buffer
- (elmo-message-fetch folder number
- (elmo-make-fetch-strategy 'entire)
- nil (current-buffer) 'unread)
- (buffer-string)))
+ ;; elmo-message-fetch is erase current buffer before fetch message
+ (elmo-message-fetch-string folder number
+ (if wl-summary-resend-use-cache
+ (elmo-make-fetch-strategy
+ 'entire 'maybe nil
+ (elmo-file-cache-get-path
+ (elmo-message-field
+ folder number 'message-id)))
+ (elmo-make-fetch-strategy 'entire))
+ 'unread))
(goto-char (point-min))
(search-forward "\n\n")
(forward-char -1)
;; collected is a pair of
;; mark-string and a list of mark-info
(dolist (pair collected)
- (setq action (assoc (car pair) wl-summary-mark-action-list))
- (when (and (cdr pair) (wl-summary-action-exec-function action))
- (setq modified t)
- (setq failures (+ failures (funcall
- (wl-summary-action-exec-function action)
- (cdr pair))))))
+ (when (cdr pair)
+ (setq action (assoc (car pair) wl-summary-mark-action-list))
+ (when (wl-summary-action-exec-function action)
+ (setq modified t)
+ (setq failures (+ failures (funcall
+ (wl-summary-action-exec-function action)
+ (cdr pair)))))))
(when modified
(wl-summary-set-message-modified))
(run-hooks 'wl-summary-exec-hook)
fld))))
fld))
-(defun wl-summary-print-argument (msg-num folder)
+(defun wl-summary-print-argument (msg-num data)
"Print action argument on line."
- (when folder
+ (when data
(wl-summary-remove-argument)
(save-excursion
(let ((inhibit-read-only t)
- (folder (copy-sequence folder))
+ (data (copy-sequence data))
(buffer-read-only nil)
len rs re c)
- (setq len (string-width folder))
+ (setq len (string-width data))
(if (< len 1) ()
;;(end-of-line)
(beginning-of-line)
(1- (window-width)))))
(c (current-column))
(padding 0))
- (if (and width (> (+ c len) width))
+ (if (and width
+ (> (+ c len) width))
(progn
(move-to-column width)
(setq c (current-column))
(forward-char -1)
(setq c (current-column)))
(when (< (+ c len) width)
- (setq folder (concat " " folder)))
+ (setq data (concat " " data)))
(setq rs (point))
(put-text-property rs re 'invisible t))
(when (and width
(> (setq padding (- width len c)) 0))
- (setq folder (concat (make-string padding ?\ )
- folder)))
+ (setq data (concat (make-string padding ?\ ) data)))
(setq rs (1- re))))
(put-text-property rs re 'wl-summary-action-argument t)
(goto-char re)
- (wl-highlight-action-argument-string folder)
- (insert folder)
+ (wl-highlight-action-argument-string data)
+ (insert data)
(set-buffer-modified-p nil))))))
(defsubst wl-summary-reserve-temp-mark-p (mark)
(wl-thread-get-entity number))))
(wl-thread-entity-get-descendant
thr-entity))))
- (when (and (not (wl-summary-no-auto-refile-message-p
- number))
+ (when (and (not (wl-summary-no-auto-refile-message-p number))
+ (not (wl-summary-reserve-temp-mark-p
+ (nth 1 (wl-summary-registered-temp-mark number))))
(setq dst
(wl-folder-get-realname
(wl-refile-guess