At Wed, 30 Jan 2002 11:44:03 +0900,
Katsumi Yamaoka wrote:
> ;;; mm-w3m.el --- functions for viewing HTML text using emacs-w3m
mime-w3m.el を眺めていて気が付いたことが二点あります。
1. kill-new の advice は (eq this-command 'kill-ring-save) が枷
になって、機能しない場合が多いのではないかと思います。以下の
ようにして良いですか?
(let (current-load-list)
(defadvice kill-new (before mime-w3m-remove-text-properties activate)
"Advised by Emacs-W3M.
Strip `keymap' of `local-map' property from a killed string."
(if (eq major-mode 'mime-view-mode)
(progn
(remove-text-properties 0 (length (ad-get-arg 0))
'(keymap nil local-map nil)
(ad-get-arg 0))
(ad-set-arg 0 (ad-get-arg 0))))))
2. Emacs 21 では local-map だけでなく、XEmacs と同じ keymap とい
う property がローカルキー用に使えるようで、Gnus は Emacs 21
で keymap を使っています。そこで mime-w3m.el でも試してみたの
ですが、html メールを mime-view-mode で表示しているバッファの
link の上で、なぜかマウスだけが効きません。local-map を使えば
問題無いのですが、しかし以下のテストは動作してしまうのです。
(let ((map (make-sparse-keymap))
(fn (lambda ()
(interactive)
(message "Hello World!")))
(buffer (get-buffer-create "*testing*"))
start)
(define-key map [return] fn)
(define-key map [mouse-2] fn)
(pop-to-buffer buffer)
(erase-buffer)
(insert "Press [return] or [mouse-2] -> ")
(setq start (point))
(insert "***")
(add-text-properties start (point)
(list 'keymap map 'mouse-face 'highlight)))
これって何だかわかりますか?
1 と 2 の変更を反映するパッチを添付します。
Attachment:
mime-w3m.el.diff
Description: Binary data
-- Katsumi Yamaoka <yamaoka@jpl.org>