mark-list)))
;; Unset mark
-(defun wl-summary-unset-mark (&optional number interactive)
+(defun wl-summary-unset-mark (&optional number interactive force)
"Unset temporary mark of the message with NUMBER.
NUMBER is the message number to unset the mark.
If not specified, the message on the cursor position is treated.
Optional INTERACTIVE is non-nil when it should be called interactively.
+If optional FORCE is non-nil, remove scored mark too.
Return number if put mark succeed"
(interactive)
(save-excursion
(when visible
(unless (string= mark " ")
(wl-summary-put-temp-mark
- (or (wl-summary-get-score-mark number)
+ (or (unless force (wl-summary-get-score-mark number))
" "))
(setq action (assoc mark wl-summary-mark-action-list))
(when wl-summary-highlight
refiles
(if (eq folder-name 'null)
'null
- (wl-folder-get-elmo-folder folder-name))
- (wl-summary-buffer-msgdb)
- (not (null (cdr dst-msgs)))
- nil ; no-delete
- nil ; same-number
- t))
+ (wl-folder-get-elmo-folder folder-name))))
(error nil))
(when result ; succeeded.
;; update buffer.
(setq result (elmo-folder-move-messages
wl-summary-buffer-elmo-folder
(cdr (car dst-msgs))
- (wl-folder-get-elmo-folder
- (car (car dst-msgs)))
- (wl-summary-buffer-msgdb)
- (not (null (cdr dst-msgs)))
- nil ; no-delete
- nil ; same-number
- t))
+ (wl-folder-get-elmo-folder (car (car dst-msgs)))))
(error nil))
(if result ; succeeded.
(progn
(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)))
- (wl-summary-buffer-msgdb)
- (not (null (cdr dst-msgs)))
- t ; t is no-delete (copy)
- nil ; same-number
- t))
+ 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.
(progn
(save-excursion
(save-restriction
(let (numbers)
- (narrow-to-region (or begin (point-min))(or end (point-max)))
+ (wl-summary-narrow-to-region (or begin (point-min))(or end (point-max)))
(goto-char (point-min))
;; for thread...
(if (eq wl-summary-buffer-view 'thread)
(search-forward "\r")
(forward-char -1)
(setq re (point))
- (setq c 0)
- (while (< c len)
- (forward-char -1)
- (setq c (+ c (char-width (following-char)))))
- (and (> c len) (setq folder (concat " " folder)))
- (setq rs (point))
- (when wl-summary-width
- (put-text-property rs re 'invisible t))
+ (let ((width (cond (wl-summary-width
+ (1- wl-summary-width))
+ (wl-summary-print-argument-within-window
+ (1- (window-width)))))
+ (c (current-column))
+ (padding 0))
+ (if (and width (> (+ c len) width))
+ (progn
+ (move-to-column width)
+ (setq c (current-column))
+ (while (> (+ c len) width)
+ (forward-char -1)
+ (setq c (current-column)))
+ (when (< (+ c len) width)
+ (setq folder (concat " " folder)))
+ (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 rs (1- re))))
(put-text-property rs re 'wl-summary-action-argument t)
(goto-char re)
(wl-highlight-action-argument-string folder)
(wl-summary-prev)
(wl-summary-next)))
-(defsubst wl-summary-no-auto-refile-message-p (msg)
- (member (elmo-msgdb-get-mark (wl-summary-buffer-msgdb) msg)
+(defsubst wl-summary-no-auto-refile-message-p (number)
+ (member (wl-summary-message-mark wl-summary-buffer-elmo-folder number)
wl-summary-auto-refile-skip-marks))
(defun wl-summary-auto-refile (&optional open-all)
(setq dst
(wl-folder-get-realname
(wl-refile-guess-by-rule
- (elmo-msgdb-overview-get-entity
- number (wl-summary-buffer-msgdb)))))
+ (elmo-message-entity wl-summary-buffer-elmo-folder
+ number))))
(not (equal dst spec))
(let ((pair (assoc dst checked-dsts))
ret)
(interactive "r")
(save-excursion
(save-restriction
- (narrow-to-region beg end)
+ (wl-summary-narrow-to-region beg end)
(goto-char (point-min))
(if (eq wl-summary-buffer-view 'thread)
(progn
(defun wl-summary-mark-region-subr (function beg end data)
(save-excursion
(save-restriction
- (narrow-to-region beg end)
+ (wl-summary-narrow-to-region beg end)
(goto-char (point-min))
(if (eq wl-summary-buffer-view 'thread)
(progn