[Mew-dist 2731] Re: mew-highlight-body

Masahiro MURATA ( 村田全寛 ) muse at example.com
1997年 10月 25日 (土) 00:48:32 JST


  村田@神戸です。

/// On Wed, 22 Oct 1997 16:03:42 +0900 (JST)
/// Masahiro MURATA wrote:

村田>   Mew 1.92b6 以降で body にも highlight させる設定ファイルです。一応バッ
村田> ファの大きさを見て my-mew-highlight-max-size で指定したサイズ以下なら 
村田> highlight するようになっています。よって,大きなメールが来ても大丈夫。

  これですが,byte-compile できない,という問題がありました。小さなものな
のでわざわざ byte-compile するほどのものではあるまい,と思って自分はしてい
なかったのですが,メールで指摘されて気付きました。

# 今,自前の関数を作るほどの気力はないので,font-lock が必須です。

  それから 1.92b10 の人は [Mew-dist 2728] のパッチを当てる必要があります。

--
村田 全寛 / MURATA Masahiro
-------------- next part --------------
;; highlight body for Mew
;; Masahiro MURATA <muse at example.com>

(require 'font-lock)

(add-hook 'mew-message-mode-hook 'my-mew-message-highlight-body-setup)
(add-hook 'mew-message-hook 'my-mew-highlight-body)

(defvar mew-highlight-body-face-list
  '(mew-highlight-body-face-quote
    mew-highlight-body-face-comment))

(defvar mew-highlight-body-style-quote   'default)
(defvar mew-highlight-body-style-comment 'default)

(defvar mew-highlight-body-color-quote   "ForestGreen")
(defvar mew-highlight-body-color-comment "gray50")

(defvar my-mew-highlight-body-keywords
  '(("^[ \t]*\\(\\w*[A-Za-z0-9'-]*[>|>〉》≫|]+.*\\)"
     1 mew-highlight-body-face-quote)
    ("\\(^[##]+.*\\)"
     1 mew-highlight-body-face-comment)
    ))

(defvar my-mew-highlight-max-size 10000)

(defun my-mew-highlight-body ()
  (if (> (point-max) my-mew-highlight-max-size)
      nil
    (save-excursion
      (goto-char (point-min))
      (if (eq mew-message-citation 'header)
	  (re-search-forward mew-eoh nil t))
      (my-mew-highlight-region (point) (point-max))
      )))

(defun my-mew-highlight-region (beg end)
  (if (and window-system mew-opt-highlight-header)
      (save-excursion
	(cond
	 ((fboundp (function font-lock-hack-keywords))
	  (font-lock-hack-keywords beg end))
	 ((fboundp (function font-lock-fontify-region))
	  (font-lock-fontify-region beg end))
	 ))))

(defun my-mew-message-highlight-body-setup ()
  (if (and window-system mew-opt-highlight-header)
      (cond
       ((boundp 'font-lock-defaults)
	(make-local-variable 'font-lock-defaults)
	(setq font-lock-defaults '(my-mew-highlight-body-keywords t t))
	(cond
	 ((fboundp (function font-lock-set-defaults-1))
	  (font-lock-set-defaults-1))
	 ((fboundp (function font-lock-set-defaults))
	  (font-lock-set-defaults))
	 ))
       (t
	(make-local-variable 'font-lock-keywords)
	(setq font-lock-keywords my-mew-highlight-body-keywords))
       )
    ))


(mew-highlight-face-setup mew-highlight-body-face-list)

(provide 'mew-highlight-body)


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