]> git.eshelyaron.com Git - emacs.git/commitdiff
(rmail-show-message): Highlight the specified fields.
authorRichard M. Stallman <rms@gnu.org>
Sat, 23 Apr 1994 07:40:25 +0000 (07:40 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sat, 23 Apr 1994 07:40:25 +0000 (07:40 +0000)
(rmail-highlighted-headers): New user variable.

lisp/mail/rmail.el

index e991b1d20332c8e65a92aacc7f4ad9c7c5543662..16b11d00caa322f3334869d4f6f1210276e5df28 100644 (file)
@@ -67,6 +67,10 @@ It is useful to set this variable in the site customization file.")
 (defvar rmail-ignored-headers "^via:\\|^mail-from:\\|^origin:\\|^status:\\|^received:\\|^x400-originator:\\|^x400-recipients:\\|^x400-received:\\|^x400-mts-identifier:\\|^x400-content-type:\\|^message-id:\\|^summary-line:" "\
 *Regexp to match Header fields that rmail should normally hide.")
 
+;;;###autoload
+(defvar rmail-highlighted-headers "^From:\\|^Subject:" "\
+*Regexp to match Header fields that rmail should normally highlight.")
+
 ;;;###autoload
 (defvar rmail-delete-after-output nil "\
 *Non-nil means automatically delete a message that is copied to a file.")
@@ -1389,6 +1393,28 @@ 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)))
+             (goto-char (point-min))
+             (while (re-search-forward rmail-highlighted-headers nil t)
+               (skip-syntax-forward " ")
+               (let ((beg (point)))
+                 (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))
+                 (put-text-property beg (point) 'face face))))))
        (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