(require 'wl-summary)
(eval-when-compile
+ (defalias-maybe 'wl-summary-target-mark 'ignore)
(defalias-maybe 'wl-summary-target-mark-region 'ignore))
(defsubst wl-summary-action-mark (action)
(current (wl-summary-message-number))
(action (assoc set-mark wl-summary-mark-action-list))
visible mark cur-mark)
+ (when (zerop (elmo-folder-length wl-summary-buffer-elmo-folder))
+ (error "Set mark failed"))
(prog1
(save-excursion
;; Put mark
(and (null number) current))
number (or number current)
cur-mark (nth 1 (wl-summary-registered-temp-mark number)))
+ (unless number
+ (error "No message"))
(if (wl-summary-reserve-temp-mark-p cur-mark)
(when interactive
(error "Already marked as `%s'" cur-mark))
(cons number wl-summary-buffer-target-mark-list))))
(defun wl-summary-unregister-target-mark (number)
- (delq number wl-summary-buffer-target-mark-list))
+ (setq wl-summary-buffer-target-mark-list
+ (delq number wl-summary-buffer-target-mark-list)))
(defun wl-summary-have-target-mark-p (number)
(memq number wl-summary-buffer-target-mark-list))
(let ((buffer-read-only nil)
visible mark action)
(if number
- (setq visible (wl-summary-jump-to-msg number))
+ (setq visible (wl-summary-jump-to-msg number)) ; can be nil
(setq visible t))
(setq number (or number (wl-summary-message-number)))
;; Delete mark on buffer.
`(lambda (beg end)
,(wl-summary-action-docstring action)
(interactive "r")
- (goto-char beg)
- (wl-summary-mark-region-subr
- (quote ,(intern (format "wl-summary-%s"
- (wl-summary-action-symbol action))))
- beg end
- (if (quote ,(wl-summary-action-argument-function action))
- (funcall (function
- ,(wl-summary-action-argument-function action))
- (quote ,(wl-summary-action-symbol action))
- (wl-summary-message-number))))))
+ (save-excursion
+ (goto-char beg)
+ (wl-summary-mark-region-subr
+ (quote ,(intern (format "wl-summary-%s"
+ (wl-summary-action-symbol action))))
+ beg end
+ (if (quote ,(wl-summary-action-argument-function action))
+ (funcall (function
+ ,(wl-summary-action-argument-function action))
+ (quote ,(wl-summary-action-symbol action))
+ (wl-summary-message-number)))))))
(fset (intern (format "wl-summary-target-mark-%s"
(wl-summary-action-symbol action)))
`(lambda ()
(interactive)
(wl-summary-unset-mark number (interactive-p)))
-(defun wl-summary-target-mark (&optional number)
- "Put target mark '*' on current message.
-If optional argument NUMBER is specified, mark message specified by NUMBER."
- (interactive)
- (wl-summary-set-mark "*" number (interactive-p)))
-
(defun wl-summary-unmark-region (beg end)
(interactive "r")
(save-excursion