[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [mime-w3m] local-map
>>>>> In [emacs-w3m : No.01633]
>>>>> TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> wrote:
土屋さん> <余談>
土屋さん> kill-ring-save() 自体に advice すると、内部で呼び出されて
土屋さん> いるinteractive-p() が nil を返すようになり、マーカーの位
土屋さん> 置にしばらくカーソルを移動するという機能が使えなくなってし
土屋さん> まうので、kill-new() に対して advice を定義することにしま
土屋さん> した。
"<余談>" をお借りします。:-)
だいぶ前に Emacs 21 のその辺りは直してもらった記憶があったんです
が、確かめてみたら違う内容ですね。
(let ((ad-default-compilation-action 'never))
(defadvice kill-ring-save (after testing activate)
"testing"
(ignore)))
=> kill-ring-save
(symbol-function 'kill-ring-save)
=> (lambda (beg end)
"$ad-doc: kill-ring-save$"
(interactive "r")
(let (ad-return-value)
(setq ad-return-value (ad-Orig-kill-ring-save beg end))
(ignore)
ad-return-value))
ではなくて、
(lambda (beg end)
"$ad-doc: kill-ring-save$"
(interactive "r")
(let (ad-return-value)
(setq ad-return-value
(if (interactive-p)
(call-interactively 'ad-Orig-kill-ring-save)
(ad-Orig-kill-ring-save beg end)))
(ignore)
ad-return-value))
になるのが正しい、と。
でも XEmacs でも同じだし、最近の XEmacs の開発は妙に腰が重いので
Emacs 21 だけが改善されてしまうと悲しいから、ぼくは黙っているこ
とにします。やる気のある方はどうぞ。:-)
土屋さん> </余談>
--
Katsumi Yamaoka <yamaoka@namazu.org>