[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 メーリングリストの案内