[Mew-dist 16551] Re: mew-use-highlight-*

KAMEI Ken-ichi mule at example.com
2001年 2月 20日 (火) 19:35:57 JST


いつもお世話になっております。
亀井ともうします。

>>> <20010216.184410.20480916.shirai at example.com> から引用します.
白井> highlight 関係の関数名が変わったから、mew-cite-color は実は全然
白井> 動いていない。

白井> Mew が window-scroll-functions で色塗りするから、もし、
白井> mew-cite-color を改造して色をつけても上書きされる。

cite が異なったら違う色で塗ってくれないと悲しかったので、
mew-highlight-body-region に手を入れて色分けするようにしてみまし
た。

patch にしたものか悩んだので関数の上書きという形にしました。

mew-highlight-body-region の変更点は

--- mew-highlight.el.orig2      Tue Feb 20 13:11:35 2001
+++ mew-highlight.el    Tue Feb 20 19:18:05 2001
@@ -136,13 +136,18 @@
       (mew-elet
        (goto-char BEG)
        (if (mew-in-header-p) (goto-char (mew-header-end)))
+       (remove-text-properties (point) END '(face nil))
        (while (and (<= (point) END) (not (eobp))) ;; Emacs 21's bug?
         (if (looking-at mew-highlight-body-keywords-regex)
             (progn
               (setq beg (match-beginning 0))
               (setq end (match-end 0))
               (setq key (mew-match 0))
-              (setq face (mew-highlight-body-get-face key))
+              (if (not mew-use-highlight-cite)
+                  (setq face (mew-highlight-body-get-face key))
+                (setq face (mew-highlight-body-comment-get-face key))
+                (if (not face)
+                    (setq face (mew-highlight-body-cite-get-face key))))
               (if face (put-text-property beg end 'face face))))
         (forward-line))
        (goto-char BEG)

です。

cite の色分けをお望みの方は .mew などで

(eval-after-load "mew" '(require 'mew-cite-highlight))
(setq mew-use-highlight-cite t)

としてお使い下さい。

問題点として、
上記の lisp を読み込み、RET でスクロールさせ n で次のメッセージ
に行き、RET でスクロールさせると cite の色が変化する。というのが
あります。


mew-message-hook で face の list を初期化しているのですが、どう
も現在の mail を RET でスクロールさせると次のメッセージは hook
が走る前に色つけが行われているようです。
# キャッシュ関係? よく分かっていません。すいません。

でわ。

p.s.

mew-mew-highlight-region を

--- mew-highlight.el.orig      Tue Feb 20 13:11:35 2001
+++ mew-highlight.el    Tue Feb 20 18:47:55 2001
@@ -136,6 +136,7 @@
       (mew-elet
        (goto-char BEG)
        (if (mew-in-header-p) (goto-char (mew-header-end)))
+       (remove-text-properties (point) END '(face nil))
        (while (and (<= (point) END) (not (eobp))) ;; Emacs 21's bug?
         (if (looking-at mew-highlight-body-keywords-regex)
             (progn

として欲しいのは私だけでしょうか?
現状、別 buffer からの past 時、元の face が残ってしまい、C-l な
どでも消せないように思えるのですが。

-- kamei
-------------- next part --------------
H4sIAAAAAAAAA4yRTW7DIBBG17XkO4y8CV6waNpuepsxTGxkyDj8xPLtA7SqoyoLI4HE8L
5BeiPojlauE12lYrcYSyA83ZLxBCdHa9+3TdsITZc7esgFmQLJyYyTzTtKZSLB1Vjouj9S
pRDZVXgHB9ZbpeUFFUlrQmwbgJN4gVXiljjSe2HgVaudOR9gPg4wnweYr75AXVfO79FzWq
qlPVAf4rZke9njQhihpH81otZyYp5/Qo5CwJFqpW3eigyLbtAIoq/3vITDOdtilaeUJ2Bw
sPTvyye1M20rex2Oxx8AAAD//8IeMwj9xaklhThjEmYdKAEQqQUp8jlB6gnHPyfEWEJJgB
hlxsQpMyFOmakm3M+YuQRNV3FJZQ7MSyBfA1UmluaAwpk4TUbkaDImQhMAAAD//8LQZEKO
JlOiNSXn5+QXIQJCyS2/KLW4xL0oNTVPiWidoNBQ8k1NySzNdcopTSVeozFYIzDP5ZUkEq
8LFCRKLolF2f5FiXnpqUbE6wSFi1JBaVFBTiq0eERVD05MwPwCLEaIyZNA/aTkRwKuzM0F
BgMAAAD//4LrgRR+oAypoRSnrK2npYQz9UO1ahJM9TCzdQuKUtMyK2BWKMVFK3DGasXEaM
TElGtFO+pGJepWGehaquvGakXb1cRqx8RoxsTUAF2BqFOKS5OKS/D5Iz0VEpwKGkBbwaW0
Rl5JhoKhAjjIE4uL85N1cxNLkjOMFIAKiAkRBQMkH+K0HxzPxNuO03KU+EO2uTQPp3ostu
aklmgpaMAFQdZpakICXiMzDVg4lxRl5qVD3QI0FyACUaYAMZgTku5ABmok5+clA2s1pTgl
UO0CNEYXYqaCAcQyVOtA2iCuIRx2ULdygjiwtIJsQjKOlIyaTTRRtRIKa2gRDvJWMTD4gC
aAvQmutAlqJtYy5FoPrDqxoCA1LwVeZSanEOMzqPMg7Qm4zbDgJjJ80dIVAAAA//9sVstO
xDAM/BXfSA+RgOuCkBDV3viHtGulkbZJlaTQz99x+ooQN9fxYzy1Lf91iWxd8KQ+2yu131
91UynnB9e5rKfgMCZjyLAsx0ui9WJQc7xLBF5K6CJp6Mpjx5ZQMx1QNtzJ/LDmpZ9jQryD
TwnASLwrSNmQg+4HNAHANade+kysHcCwuXHUU1Nbr8ysLwBQUSen7hiQPvOCsmKYOGbH6I
NSYiMMYCEWxLJSK8ffoZzKBgWpt/faAbl9yKQ4dBNy0eVC7Wj6RK8vT4m62X4UqgT1HdzJ
NJp/N8sxioXH874CTuv3r73zhN1tHCE678tEnhfKbid/YLMT8fkBAAD//8JUAc7k4OYpuI
xANQPkapDvsHcENKENJwLZHiPDcxLSgVHII+mEOQmcLeAtN0IGZmJmDDR/QvQWlJagpI5K
eDpWByuAZ0ZOSFYEOigtv6g8sSgFmGfzUpGTDK70izcpFYHaB4lFwOiCGquAyGOg1FkCsZ
twIsAR/QBB5Aj5EjUEQS6AhTYWveCwgOvPzQelExymICQ1NTVhZRPQnLLMFGg3BRxRcE1A
BQAAAAD//wMAbYCFl7EOAAA=


Mew-dist メーリングリストの案内