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

Re: [mime-w3m] local-map



>> On Wed, 03 Oct 2001 20:53:13 +0900
>> 「山」== yamaoka@jpl.org (Katsumi Yamaoka) said as follows:

山> advice を使わない同じ案を M-x report-emacs-bug してみませんか?

折角なんですが、反例を見つけてしまいました。

  (defadvice next-line
    (before double-move activate)
    (when (integerp (ad-get-arg 0))
      (ad-set-arg 0 (* 2 (ad-get-arg 0)))))

というように、引数に細工をするタイプの advice が無視されてしまいます。

よくよく考えてみると、primitive で、かつ command であるような関数に対
して完全に透過な advice を提供することは、advice.el を工夫するだけでは
不可能だ、という結論に達しました。

;; non-primitive の場合は、disassemble して関数定義を結合してしまう(つ
;; まり、funcall を使わない)ことによって、回避できる可能性があります
;; が、これもかなり面倒でしょう。

というわけで、やっぱり kill-new() に advice を定義しておくしかなさそう
です。

-- 
土屋 雅稔  ( TSUCHIYA Masatoshi )