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

Re: xml.el



>>>>> In [emacs-w3m : No.05337] 山岡 wrote:

> Mule 2.3 では char-after() は一つの引数を要求しますが、後期の
> Emacsen は引数無しでも (point) に対して動作します。その違いを吸
> 収するコードが poe.el に入っているんですが、何でそれは有効なのか?
> bytecomp.el を眺めてみると、char-after() を使う関数を compile し
> た場合に、(funcall 'char-after) の形式ではなくて char-after() に
> 相当する byte-code が生成されて関数に埋め込まれるように見えるん
> ですよ。でも実際にはそんなことは起きなくて、T-gnus などは問題無
> く動作します。

(char-after POS) というソースは byte-code になるが、(char-after)
だと warning を発して (funcall 'char-after) に相当するコードを生
成することがわかりました。なので、後者の場合は poe.el で定義され
た char-after が funcall されるんです。

> なお、さっきのメールに書いた compile の手法ですが、たぶん以下の
> 方が良いです。

すみません、これは完璧にまずいです。

> mule -batch -l poe -eval '(put (quote char-after) (quote byte-compile) (quote byte-compile-zero-or-one-arg))' -f batch-byte-compile xml.el

こんなことをしてしまうと、poe.el で定義された char-after が使わ
れなくなってしまいます。
-- 
Katsumi Yamaoka <yamaoka@jpl.org>
;; だれか RHL 9 で使える Mule 2.3@19.34 と Nemacs の binary を作っ
;; てくれないかなあ。古いマシンはファンがうるさくなってきたの。:p