[mew-dist 20595] Re: after-change-functions

Hideyuki SHIRAI ( 白井秀行 ) shirai at example.com
2002年 3月 13日 (水) 20:55:31 JST


From: Kazu Yamamoto (山本和彦) <kazu at example.com> さん曰く
Subject: [mew-dist 20594] after-change-functions
Message-ID: <20020313.162916.125123162.kazu at example.com>
Date: Wed, 13 Mar 2002 16:29:16 +0900 (JST)

kazu> after-change-functions を nil に束縛させたのは僕ではないので、この変更
kazu> が何を引き起こすかよく分りませんが、論理的に mew-elet へ入るべきだと考
kazu> えました。

kazu> 何か挙動が変になったら教えて下さい。

mew-fancy-summary が after-chage-functions に登録される
font-lock の設定で動いている場面があったため、

・FSF Emacs => mark したとき、unmark したときの highlight がダメ
・XEmacs => ほぼ全滅

となってしまいました。しかし、寄生虫は寄生虫らしく宿主に合わせる
ことにしました。

# mark, unmark がきりっと動くからこの方が良いかも。

また、XEmacs で、もしかしたら不具合があるかもしれません。いかん
せん、XEmacs で Mew を立ち上げたのが久しぶりなので。

-- 
白井秀行 (mailto:shirai at example.com)
-------------- next part --------------
--- mew-fancy-summary.el.orig	Wed Mar 13 20:49:30 2002
+++ mew-fancy-summary.el	Wed Mar 13 20:49:36 2002
@@ -3,7 +3,7 @@
 ;; Author: Shun-ichi TAHARA <jado at example.com>
 ;;	   Hideyuki SHIRAI <shirai at example.com>
 ;;
-;; Time-stamp: <09/05/2001 11:35 shirai>
+;; Time-stamp: <03/13/2002 20:45 shirai>
 
 ;;; Commentary:
 ;;
@@ -33,7 +33,8 @@
 ;;    ;;; lazy-lock-mode (for All Emacsen)
 ;;    (require 'font-lock)
 ;;    (setq font-lock-support-mode 'lazy-lock-mode)
-;;    (when (featurep 'xemacs) (setq lazy-lock-minimum-size 0))
+;;    (when (featurep 'xemacs)
+;;      (setq lazy-lock-minimum-size 0))
 ;;
 ;; 4. If you use 'jit-lock-mode' and feel 'scan is too slow'
 ;;    , please put bellow code to your init file.
@@ -200,6 +201,7 @@
 
 (defalias 'mew-summary-cook-region 'mew-fancy-summary-make-invisible-region)
 (defalias 'mew-highlight-mark-line 'mew-fancy-summary-mark-line)
+(defalias 'mew-highlight-unmark-line 'mew-fancy-summary-mark-line)
 
 ;;; Setup
 
@@ -249,14 +251,10 @@
 	(set-buffer-modified-p nil)
 	ret)))
 
-(defun mew-fancy-summary-mark-line (mark)
-  "Remove property so that font-lock works properly, because highlighting
-mark line is done by mew-fancy-summary."
+(defun mew-fancy-summary-mark-line (&rest args)
+  "Highlighting mark and unmark line is done by mew-fancy-summary."
   (save-excursion
-    (remove-text-properties
-     (progn (beginning-of-line) (point))
-     (progn (end-of-line) (point))
-     '(lazy-lock nil lazy-lock-fontified nil fontified nil))))
+    (mew-fancy-summary-region (point) (point) nil 'strip)))
 
 ;;; Activating fancy summary
 
@@ -273,6 +271,10 @@
     (setq mew-fancy-summary-thread-column -1)
     (font-lock-mode 1)))
 
+(when mew-xemacs-p
+  (defadvice mew-summary-folder-cache-load (after fancy-summary activate)
+    (font-lock-mode 1)))
+
 (defun mew-fancy-summary-thread-enable ()
   "Activate mew-fancy-summary in thread buffer."
   (when (mew-thread-p)
@@ -331,7 +333,7 @@
   (interactive)
   (mew-fancy-summary-region (point-min) (point-max)))
 
-(defun mew-fancy-summary-region (beg end &optional loudly)
+(defun mew-fancy-summary-region (beg end &optional loudly strip)
   "Highlight the region of summary buffer with font-lock-mode."
   (interactive "r")
   (let ((pos (point)) linebeg lineend col numend)
@@ -344,6 +346,8 @@
        (setq beg (progn (goto-char beg)
 			(beginning-of-line)
 			(point)))
+       (when strip
+	 (put-text-property beg end 'face nil))
        (mew-fancy-summary-make-invisible-region beg end)
        ;; Highlight each line
        (while (< (point) end)


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