X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=emh-face.el;h=f37af614edaf14826505a1bb96432cfbbabee233;hb=9b10412a20904ef61903518db6a1b55eb4544236;hp=ec9db7f91aab6f69331d04e4c9c1eaf8a69328e9;hpb=938db59a0b77745b40842f0134886e2ab8e16783;p=elisp%2Femh.git diff --git a/emh-face.el b/emh-face.el index ec9db7f..f37af61 100644 --- a/emh-face.el +++ b/emh-face.el @@ -1,10 +1,9 @@ ;;; emh-face.el --- header highlighting in emh. -;; Copyright (C) 1997 MORIOKA Tomohiko +;; Copyright (C) 1997,2000 Free Software Foundation, Inc. -;; Author: MORIOKA Tomohiko +;; Author: MORIOKA Tomohiko ;; Created: 1997/3/4 -;; Version: $Id: emh-face.el,v 0.3 1997-03-14 05:41:55 morioka Exp $ ;; Keywords: header, highlighting ;; This file is part of emh. @@ -26,25 +25,19 @@ ;;; Code: -(require 'emu) +(require 'emh-def) +(require 'std11) (defsubst emh-set-face-foreground (face color) - (condition-case err + (condition-case nil (set-face-foreground face color) - (error (message "Color `%s' is not found." color)) - )) + (error (message "Color `%s' is not found." color)))) (defsubst emh-make-face-bold (face) - (condition-case err - (make-face-bold face) - (error (message "Can not make bold face `%s'." face)) - )) + (set-face-font face (face-font 'bold))) (defsubst emh-make-face-italic (face) - (condition-case err - (make-face-bold face) - (error (message "Can not make italic face `%s'." face)) - )) + (set-face-font face (face-font 'italic))) (or (find-face 'from-field-body) (progn @@ -134,17 +127,22 @@ (med (match-end 0)) (end (std11-field-end)) (field-name (buffer-substring beg med)) - (rule (cdr (or (assoc-if (function - (lambda (key) - (and (stringp key) - (string-match key field-name) - ))) - emh-header-face) - (assq t emh-header-face) - ))) + (rule (catch 'found + (let ((rest emh-header-face)) + (while rest + (let* ((rule (car rest)) + (key (car rule))) + (if (and (stringp key) + (string-match key field-name)) + (throw 'found (cdr rule)) + )) + (setq rest (cdr rest)) + ) + (cdr (assq t emh-header-face)) + ))) ) (overlay-put (make-overlay beg med) 'face (car rule)) - (overlay-put (make-overlay med end) 'face (second rule)) + (overlay-put (make-overlay med end) 'face (cadr rule)) ) (forward-char) ))