[Mew-Win32 02021] Re: summary の色づけ

Shun-ichi GOTO gotoh at example.com
1999年 9月 22日 (水) 23:30:16 JST


後藤@太陽計測です

>>>>> at Wed, 22 Sep 1999 19:27:49 +0900
>>>>> 白井 <shirai at example.com> said,

白井> というわけで、とりあえず beta 版です。変数の説明とかはまだ書いて
白井> いません。

白井> ## 力ずくなのは相変わらずなので、後藤さんの参考には全然なりませ
白井> ## んですよ、こりゃ。:-)

いえいえ、すごく参考になってますよ。(^^)
ちなみに 8820 のメッセージがあるフォルダで mew-summary-hl-buffer すると
13秒かかりました。
環境は Meadow-1.06b3-990920 + WinNT 4.0SP5 + WinChip2 240MHz)


白井> 私は Emacs-20.4(Meadow 1.06b3 も)で実験しているのですが、きっと
白井> まだまだ何かあると思います。というわけで。。。

「なにか」というほどではないですが、
font-lock-fontify-{buffer,region}-function を上書きしているのはちょっと
やだなぁ、な気がしますです。(^^;

mew-xxx-mode-hook で make-local-variable して setq してみては?

## その場合は font-lock-fontify-{buffer,region}-function-original の
## funcall は不要になりますよね?
## ... というパッチを添付してみたりする。
## ちゃんと試したわけでないので、問題があったらゴメンなさい。
## あと、mue-use-highlight-mark をnil にするのはもったいないので
## マークがついていない行だけ対象にするようにした方が自分に都合が
## 良かったのでそうしてみました。
## へへへ (^^;

--- Regards,
 Shun-ichi Goto  <gotoh at example.com>
   R&D Group, TAIYO Corp., Tokyo, JAPAN
-------------- next part --------------
--- mew-summary-hl.el.orig	Wed Sep 22 13:42:37 1999
+++ mew-summary-hl.el	Wed Sep 22 14:12:22 1999
@@ -69,11 +69,6 @@
 ;; (setq mew-summary-hl-from-width 14)
 ;; あとは自分の環境に合わせて下さい。(_ _)
 
-;; font-lock の設定変更
-(defvar font-lock-fontify-buffer-function-orignal font-lock-fontify-buffer-function)
-(defvar font-lock-fontify-region-function-orignal font-lock-fontify-region-function)
-(setq font-lock-fontify-buffer-function 'mew-summary-hl-buffer)
-(setq font-lock-fontify-region-function 'mew-summary-hl-region)
 
 ;; いいかげんだけど XEmacs 用(未完成)
 (if (not (fboundp 'font-lock-fontify-block))
@@ -82,34 +77,37 @@
        (save-excursion (forward-line -16) (point))
        (save-excursion (forward-line 32) (point)))))
 
-(add-hook 'mew-summary-mode-hook (lambda () (font-lock-mode 1)))
-(add-hook 'mew-virtual-mode-hook (lambda () (font-lock-mode 1)))
+(add-hook 'mew-summary-mode-hook 'mew-summary-hl-enable)
 (add-hook 'mew-summary-inc-sentinel-hook 'font-lock-fontify-block)
 (add-hook 'mew-summary-scan-sentinel-hook 'font-lock-fontify-block)
-(add-hook 'mew-refile-view-mode-hook (lambda () (font-lock-mode 0)))
+;(add-hook 'mew-refile-view-mode-hook (lambda () (font-lock-mode 0)))
 
 ;; 自前でやるから nil にする
+;; (Sg.) マークしたときどうすんの?
 (setq mew-use-highlight-mark nil)
 
+(defun mew-summary-hl-enable ()
+  (make-local-variable 'font-lock-fontify-buffer-function)
+  (make-local-variable 'font-lock-fontify-region-function)
+  (setq font-lock-fontify-buffer-function 'mew-summary-hl-buffer)
+  (setq font-lock-fontify-region-function 'mew-summary-hl-region)
+  (font-lock-mode 1))
+
 (defun mew-summary-hl-buffer ()
   "Mew summary buffer highlight with font-lock-mode."
   (interactive)
-  (if (or (eq major-mode 'mew-summary-mode)
-	  (eq major-mode 'mew-virtual-mode))
-      (mew-summary-hl-region (point-min) (point-max))
-    (funcall font-lock-fontify-buffer-function-orignal)))
+  (mew-summary-hl-region (point-min) (point-max)))
 
 (defun mew-summary-hl-region (beg end &optional loudly)
   "Mew summary region highlight with font-lock-mode."
   (interactive "r")
   (if (or (eq major-mode 'mew-summary-mode)
 	  (eq major-mode 'mew-virtual-mode))
-      (save-excursion
 	(mew-elet
 	 (goto-char beg)
 	 (beginning-of-line)
 	 (setq beg (point))
-	 (remove-text-properties beg end '(face nil))
+	;(remove-text-properties beg end '(face nil))
 	 (while (< (point) end)
 	   (if (not (looking-at mew-summary-hl-start-regex))
 	       (let (face)
@@ -149,10 +147,9 @@
 				  'face 'mew-summary-hl-face-subject)
 	       (put-text-property (match-beginning 2) (match-end 2)
 				  'face 'mew-summary-hl-face-body)))
-	   (forward-line))))
-    (funcall font-lock-fontify-region-function-orignal beg end loudly)))
+	  (forward-line)))))
 
-(defun mew-summary-hl-setup ()
+(defun mew-summary-highlight-setup ()
   (let ((flist (list "num" "from" "to" "ml" "subject" "body"))
 	fname type color)
     (mapcar


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