[Mew-dist 2570] Re: select-xface.el v0.05
Masahiro MURATA ( 村田全寛 )
muse at example.com
1997年 10月 20日 (月) 13:10:42 JST
村田@神戸です。
/// On Mon, 20 Oct 1997 11:38:56 +0900 (JST)
/// Shigeyuki FUKUSHIMA wrote:
> (hilit-set-mode-patterns
> '(mew-message-mode)
> '(("^Subject:.*$" nil msg-subject)
> ("^From:.*$" nil msg-from)
> ("^X-Face:" nil msg-quote)
> ("^X-.*:.*$" nil msg-quote)
> ("^>.*$" nil msg-quote)
> ("^[A-Za-z][A-Za-z0-9-]+:" nil msg-header)))
> としても、以前として解決はせず、
> >>> X-Face: ■■■
> >>> □□□
> >>> □□□
> の■の bitmap の部分だけが、msg-quote (= (私の環境では)濃緑色(?!)に
> hilit される)になりました。(□の部分の bitmap は hilit されません)
> それは、msg-quote の hilit の性質によるもので、この msg-quote は
> ルールにマッチする行は、行全体を hilit するという性質をもっているから、
> このような挙動になってしまうようです。
パターン指定で,
("^X-Face:\\(.*\\(\n[ \t]+.*\\)*\\)$" 1 msg-quote)
と指定すれば一応 bitmap の部分全体が msg-quote 色になります。"X-Face:"の
部分にも色をつけるなら 1 を nil にします。この辺は Emacs Lisp の
re-search-forward 等と match-{beginning|end} を知っていればわかるでしょ
う。
ちなみに色をつけない場合は,msg-quote の部分を単純に nil にしてもだめで,
(hilit-translate msg-default 'black)
と標準色(?)を作ってから,
("^X-Face:\\(.*\\(\n[ \t]+.*\\)*\\)" 1 msg-default)
("^X-.*:.*$" nil msg-quote)
...
のように標準色のfaceをつける必要があります。これはマッチした文字列に既に
face がついていればその face が書き換えられることはなく,face がない文字
列に対してのみ face が後からつけれらていくようになっているからです。
# 詳しくソースを見たわけではないので推測ですが。
# hili19.el の指定方法はユーザがかなり自由に指定できて好きなので,XEmacs
# にも欲しいなぁと思うのであった。font-lock では header と body の区別が
# できなさそうだし...
--
村田 全寛 / MURATA Masahiro
Mew-dist メーリングリストの案内