Mercurial > emacs
changeset 7084:5ceea5b326b6
(rmail-highlight-headers): Extracted as a new function. Fix overlay position.
Do nothing if face support is unavailable.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Sun, 24 Apr 1994 18:30:53 +0000 |
parents | 9630c48595d8 |
children | 5e56975be72a |
files | lisp/mail/rmail.el |
diffstat | 1 files changed, 42 insertions(+), 37 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/mail/rmail.el Sun Apr 24 10:50:41 1994 +0000 +++ b/lisp/mail/rmail.el Sun Apr 24 18:30:53 1994 +0000 @@ -1397,43 +1397,7 @@ (narrow-to-region (point) end)) (goto-char (point-min)) (rmail-display-labels) - ;; Find all occurrences of certain fields, and highlight them. - (save-excursion - (search-forward "\n\n" nil 'move) - (save-restriction - (narrow-to-region (point-min) (point)) - (let ((case-fold-search t) - (inhibit-read-only t) - ;; Highlight with boldface if that is available. - ;; Otherwise use the `highlight' face. - (face (if (face-differs-from-default-p 'bold) - 'bold 'highlight)) - ;; List of overlays to reuse. - (overlays rmail-overlay-list)) - (goto-char (point-min)) - (while (re-search-forward rmail-highlighted-headers nil t) - (skip-syntax-forward " ") - (let ((beg (point)) - overlay) - (while (progn (forward-line 1) - (looking-at "[ \t]"))) - ;; Back up over newline, then trailing spaces or tabs - (forward-char -1) - (while (member (preceding-char) '(? ?\t)) - (forward-char -1)) - (if overlays - ;; Reuse an overlay we already have. - (progn - (setq overlay (car overlays) - overlays (cdr overlays)) - (overlay-put overlay 'face face) - (move-overlay overlay beg (point))) - ;; Make a new overlay and add it to - ;; rmail-overlay-list. - (setq overlay (make-overlay beg beg)) - (overlay-put overlay 'face face) - (setq rmail-overlay-list - (cons overlay rmail-overlay-list)))))))) + (rmail-highlight-headers) (run-hooks 'rmail-show-message-hook) ;; If there is a summary buffer, try to move to this message ;; in that buffer. But don't complain if this message @@ -1445,6 +1409,47 @@ (if blurb (message blurb)))))) +;; Find all occurrences of certain fields, and highlight them. +(defun rmail-highlight-headers () + ;; Do this only if the system supports faces. + (if (fboundp 'internal-find-face) + (save-excursion + (search-forward "\n\n" nil 'move) + (save-restriction + (narrow-to-region (point-min) (point)) + (let ((case-fold-search t) + (inhibit-read-only t) + ;; Highlight with boldface if that is available. + ;; Otherwise use the `highlight' face. + (face (if (face-differs-from-default-p 'bold) + 'bold 'highlight)) + ;; List of overlays to reuse. + (overlays rmail-overlay-list)) + (goto-char (point-min)) + (while (re-search-forward rmail-highlighted-headers nil t) + (skip-syntax-forward " ") + (let ((beg (point)) + overlay) + (while (progn (forward-line 1) + (looking-at "[ \t]"))) + ;; Back up over newline, then trailing spaces or tabs + (forward-char -1) + (while (member (preceding-char) '(? ?\t)) + (forward-char -1)) + (if overlays + ;; Reuse an overlay we already have. + (progn + (setq overlay (car overlays) + overlays (cdr overlays)) + (overlay-put overlay 'face face) + (move-overlay overlay beg (point))) + ;; Make a new overlay and add it to + ;; rmail-overlay-list. + (setq overlay (make-overlay beg (point))) + (overlay-put overlay 'face face) + (setq rmail-overlay-list + (cons overlay rmail-overlay-list)))))))))) + (defun rmail-next-message (n) "Show following message whether deleted or not. With prefix arg N, moves forward N messages, or backward if N is negative."