-;;; wl-highlight.el -- Hilight modules for Wanderlust.
+;;; wl-highlight.el --- Hilight modules for Wanderlust.
;; Copyright (C) 1998,1999,2000 Yuuichi Teranishi <teranisi@gohome.org>
(defun wl-highlight-summary-line-string (line mark temp-mark indent)
(let (fsymbol)
(cond ((and (string= temp-mark "+")
- (member mark (list wl-summary-unread-cached-mark
- wl-summary-unread-uncached-mark
- wl-summary-new-mark)))
+ (member mark (list elmo-msgdb-unread-cached-mark
+ elmo-msgdb-unread-uncached-mark
+ elmo-msgdb-new-mark)))
(setq fsymbol 'wl-highlight-summary-high-unread-face))
((and (string= temp-mark "-")
- (member mark (list wl-summary-unread-cached-mark
- wl-summary-unread-uncached-mark
- wl-summary-new-mark)))
+ (member mark (list elmo-msgdb-unread-cached-mark
+ elmo-msgdb-unread-uncached-mark
+ elmo-msgdb-new-mark)))
(setq fsymbol 'wl-highlight-summary-low-unread-face))
((string= temp-mark "o")
(setq fsymbol 'wl-highlight-summary-refiled-face))
(setq fsymbol 'wl-highlight-summary-deleted-face))
((string= temp-mark "*")
(setq fsymbol 'wl-highlight-summary-temp-face))
- ((string= mark wl-summary-new-mark)
+ ((string= mark elmo-msgdb-new-mark)
(setq fsymbol 'wl-highlight-summary-new-face))
- ((member mark (list wl-summary-unread-cached-mark
- wl-summary-unread-uncached-mark))
+ ((member mark (list elmo-msgdb-unread-cached-mark
+ elmo-msgdb-unread-uncached-mark))
(setq fsymbol 'wl-highlight-summary-unread-face))
- ((or (string= mark wl-summary-important-mark))
+ ((or (string= mark elmo-msgdb-important-mark))
(setq fsymbol 'wl-highlight-summary-important-face))
((string= temp-mark "-")
(setq fsymbol 'wl-highlight-summary-low-read-face))
(let ((inhibit-read-only t)
(case-fold-search nil) temp-mark status-mark
(deactivate-mark nil)
- (sregexp (concat
- "^"
- wl-summary-buffer-number-regexp
- "\\(.\\)\\(.\\)../..\(.*\)..:.. \\("
- wl-highlight-thread-indent-string-regexp
- "\\)[[<]"))
fregexp fsymbol bol eol matched thread-top looked-at dest ds)
(end-of-line)
(setq eol (point))
(setq bol (point))
(if smark
(setq status-mark smark)
- (setq looked-at (looking-at sregexp))
- (when looked-at
- (setq status-mark (buffer-substring (match-beginning 2)
- (match-end 2)))))
+ (setq status-mark (wl-summary-persistent-mark)))
(when temp-too
- (unless looked-at
- (setq looked-at (looking-at sregexp)))
- (when looked-at
- (setq temp-mark (buffer-substring (match-beginning 1)
- (match-end 1)))
- (cond
- ((string= temp-mark "*")
- (setq fsymbol 'wl-highlight-summary-temp-face))
- ((string= temp-mark "D")
- (setq fsymbol 'wl-highlight-summary-deleted-face))
- ((string= temp-mark "O")
- (setq fsymbol 'wl-highlight-summary-copied-face
- dest t))
- ((string= temp-mark "o")
- (setq fsymbol 'wl-highlight-summary-refiled-face
- dest t)))))
+ (setq temp-mark (wl-summary-temp-mark))
+ (cond
+ ((string= temp-mark "*")
+ (setq fsymbol 'wl-highlight-summary-temp-face))
+ ((string= temp-mark "D")
+ (setq fsymbol 'wl-highlight-summary-deleted-face))
+ ((string= temp-mark "O")
+ (setq fsymbol 'wl-highlight-summary-copied-face
+ dest t))
+ ((string= temp-mark "o")
+ (setq fsymbol 'wl-highlight-summary-refiled-face
+ dest t))))
(if (not fsymbol)
(cond
((and (string= temp-mark "+")
- (member status-mark (list wl-summary-unread-cached-mark
- wl-summary-unread-uncached-mark
- wl-summary-new-mark)))
+ (member status-mark (list elmo-msgdb-unread-cached-mark
+ elmo-msgdb-unread-uncached-mark
+ elmo-msgdb-new-mark)))
(setq fsymbol 'wl-highlight-summary-high-unread-face))
((and (string= temp-mark "-")
- (member status-mark (list wl-summary-unread-cached-mark
- wl-summary-unread-uncached-mark
- wl-summary-new-mark)))
+ (member status-mark (list elmo-msgdb-unread-cached-mark
+ elmo-msgdb-unread-uncached-mark
+ elmo-msgdb-new-mark)))
(setq fsymbol 'wl-highlight-summary-low-unread-face))
- ((string= status-mark wl-summary-new-mark)
+ ((string= status-mark elmo-msgdb-new-mark)
(setq fsymbol 'wl-highlight-summary-new-face))
- ((member status-mark (list wl-summary-unread-cached-mark
- wl-summary-unread-uncached-mark))
+ ((member status-mark (list elmo-msgdb-unread-cached-mark
+ elmo-msgdb-unread-uncached-mark))
(setq fsymbol 'wl-highlight-summary-unread-face))
- ((string= status-mark wl-summary-important-mark)
+ ((string= status-mark elmo-msgdb-important-mark)
(setq fsymbol 'wl-highlight-summary-important-face))
;; score mark
((string= temp-mark "-")
((string= temp-mark "+")
(setq fsymbol 'wl-highlight-summary-high-read-face))
;;
- (t (if (and looked-at
- (string= (buffer-substring
- (match-beginning 3)
- (match-end 3)) ""))
+ (t (if (null
+ (wl-thread-entity-get-parent-entity
+ (wl-thread-get-entity (wl-summary-message-number))))
(setq fsymbol 'wl-highlight-summary-thread-top-face)
(setq fsymbol 'wl-highlight-summary-normal-face)))))
(put-text-property bol eol 'face fsymbol)
(when dest
(put-text-property (next-single-property-change
- (next-single-property-change
+ (next-single-property-change
bol 'wl-summary-destination
nil eol)
'wl-summary-destination nil eol)
(interactive)
(wl-highlight-summary (point-min)(point-max)))
-(defun wl-highlight-summary (start end)
+(defun wl-highlight-summary (start end &optional lazy)
"Highlight summary between start and end.
Faces used:
wl-highlight-summary-unread-face unread messages
(setq i 0)
(while (and (not (eobp))
(< (point) end))
- (wl-highlight-summary-current-line nil nil
- (or wl-summary-lazy-highlight
- wl-summary-scored))
- (when (and (not wl-summary-lazy-highlight)
- (> lines elmo-display-progress-threshold))
- (setq i (+ i 1))
- (setq percent (/ (* i 100) lines))
- (if (or (zerop (% percent 5)) (= i lines))
- (elmo-display-progress
- 'wl-highlight-summary "Highlighting..."
- percent)))
+ (when (or (not lazy)
+ (null (get-text-property (point) 'face)))
+ (wl-highlight-summary-current-line nil nil
+ (or wl-summary-lazy-highlight
+ wl-summary-scored)))
(forward-line 1))
(unless wl-summary-lazy-highlight
(message "Highlighting...done")))))
This function is defined for `window-scroll-functions'"
(if wl-summary-highlight
(with-current-buffer (window-buffer win)
- (wl-highlight-summary (window-start win)
- (save-excursion
- (goto-char (window-start win))
- (forward-line (frame-height))
- (point)))
- (set-buffer-modified-p nil))))
+ (when (eq major-mode 'wl-summary-mode)
+ (wl-highlight-summary (window-start win)
+ (window-end win)
+ 'lazy)
+ (set-buffer-modified-p nil)))))
(defun wl-highlight-headers (&optional for-draft)
(let ((beg (point-min))
(point-max))))
(wl-highlight-message beg end nil)
(unless for-draft
- (wl-highlight-message-add-buttons-to-header beg end)
(when wl-highlight-x-face-function
(funcall wl-highlight-x-face-function)))
(run-hooks 'wl-highlight-headers-hook)))
-(defun wl-highlight-message-add-buttons-to-header (start end)
- (save-excursion
- (save-restriction
- (narrow-to-region start end)
- (let ((case-fold-search t)
- (alist wl-highlight-message-header-button-alist)
- entry)
- (while alist
- (setq entry (car alist)
- alist (cdr alist))
- (goto-char (point-min))
- (while (re-search-forward (car entry) nil t)
- (setq start (match-beginning 0)
- end (if (re-search-forward "^[^ \t]" nil t)
- (match-beginning 0)
- (point-max)))
- (goto-char start)
- (while (re-search-forward (nth 1 entry) end t)
- (goto-char (match-end 0))
- (wl-message-add-button
- (match-beginning (nth 2 entry))
- (match-end (nth 2 entry))
- (nth 3 entry) (match-string (nth 4 entry))))
- (goto-char end)))))))
-
(defun wl-highlight-body-all ()
(wl-highlight-message (point-min) (point-max) t t))