[xyzzy:02737] またまた den8viewer の小ネタ
- Subject: [xyzzy:02737] またまた den8viewer の小ネタ
- From: YAMAMOTO Shinji <sinj@xxxxxxxxxxxx>
- X-mailer: Denshin 8 Go V321.2b5
den8viewer 愛好者の皆様こんにちは。山本です。
ヘッダを Mew のように表示する物を作って見ました。
(表示だけで、ファイルは変更しません)
使い方は、den8view をロードした後で評価されるように .xyzzy などに
書いておくだけです。
;----------------------------------------------------------------
;;;
;;; 表示するヘッダのリスト(お好みで編集してください)
;;;
;; ( 識別する文字列 文字色 背景色 識別する文字の色 同じく背景色 )
;; 色は後ろから好きなだけ省略可能
(defvar *den8-display-headers*
'(("Subject" 1 nil 4)
("From" 13 nil 4)
("To" 9 nil 4)
("Cc" 9 nil 4)
("Date" 15 nil 10)
("Reply-To" 15 nil 10)
("X-Mailer" 15 nil 10)
("X-Yzzy-Version" 15 nil 10)
))
;; Overwrite Original Function
(defun den8-parse-header ()
(goto-char (point-min))
(if (scan-buffer "\n--------\n")
(let ((buffer-read-only nil))
(declare (special buffer-read-only))
(save-restriction
(narrow-to-region (point-min) (point))
(mapc #'(lambda (header)
(let ((headstr (concat "\n\\("
(car header)
":\\) \\(.*\\(\n[ \t]+.*\\)*\\)"))
old-beg old-end)
(goto-char (point-min))
(when (or (scan-buffer (concat headstr "\n[^ \t]+")
:regexp t :case-fold t)
(scan-buffer (concat headstr "$")
:regexp t :case-fold t))
(setq old-beg (match-beginning 0)
old-end (match-end 2))
(insert (prog1 (buffer-substring old-beg old-end)
(goto-char (point-max))))
(delete-region old-beg old-end)
(when (scan-buffer headstr
:regexp t :case-fold t)
(set-text-color (match-beginning 1) (match-end 1)
(nth 3 header) (nth 4 header))
(set-text-color (match-beginning 2) (point-max)
(nth 1 header) (nth 2 header))))))
*den8-display-headers*))
(set-buffer-modified-p nil)
(goto-char (point-min))
(scan-buffer (concat "^" (caar *den8-display-headers*)) :regexp t)
(recenter 0)
(setq den8-point-min (point)))
(setq den8-point-min (point-min))))
--
山本真二 sinj@xxxxxxxxxxxx