summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
authorKarl Heuer <kwzh@gnu.org>1994-04-24 18:30:53 +0000
committerKarl Heuer <kwzh@gnu.org>1994-04-24 18:30:53 +0000
commit99887e16ef939603515231b4bb06ee5aca2b160a (patch)
tree886f5c6179e5a6da7ec74d82e2c957688bea8a42 /lisp
parentc63e83a4ee11ed29aedd3235bc45c1892b2efbff (diff)
downloademacs-99887e16ef939603515231b4bb06ee5aca2b160a.tar.gz
(rmail-highlight-headers): Extracted as a new function. Fix overlay position.
Do nothing if face support is unavailable.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/mail/rmail.el79
1 files changed, 42 insertions, 37 deletions
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index 9606398706a..b61fd65b698 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -1397,43 +1397,7 @@ If summary buffer is currently displayed, update current message there also."
(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 summary buffer is currently displayed, update current message there also."
(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."