[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: [mime-w3m] local-map



>>>>> In [emacs-w3m : No.01629]
>>>>>	TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> wrote:

土屋さん> そうすると、

土> (1) local-map を利用している mime-w3m.el の実装が悪いのだか
土>     ら、mime-w3m.el 内部で閉じた解決を行うべきである。具体的
土>     には kill-ring-save() 相当のコマンドを再定義する。

土屋さん> という解決策で行くべきなのでしょう。でもって、
土屋さん> kill-ring-save() が結構色々とやっているので、非常に邪悪な方
土屋さん> 法で上書きする手段を思いつきました。

なるほど、こういう手がありましたか。doc-string もそっくり。

土屋さん> でも、こうしてしまうと、mime-w3m-kill-ring-save() が
土屋さん> byte-compile されなくて少し悲しいのですが、何とかする方法は
土屋さん> ないでしょうか?

compile しても一切の warning が出ない関数定義だったら、

(require 'bytecomp)
(byte-compile 'mime-w3m-kill-ring-save)

土屋さん>  (provide 'mime-w3m)
土屋さん>  ;;; mime-w3m.el ends here

で可能だと思います。
これも邪悪の内に入るかもしれませんが、advice を使っている人の環
境では (すでに bytecomp があるので) それほど気にならないでしょう。

も一つおまけ。:-p

(require 'bytecomp)

(defmacro defun-and-compile (name &rest args)
  "Define a function just like `defun' and byte-compile it. [~/.emacs]"
  `(prog1
       (defun ,name ,@args)
     (byte-compile (function ,name))))

.emacs のように compile しないファイルに書く関数を、defun ではな
くてこの defun-and-compile で定義すると、定義と同時に compile も
してしまいます。ただし warning が出ないように関数を書かないと、
非常にうるさいです。^^;;
-- 
Katsumi Yamaoka <yamaoka@namazu.org>