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

Re: mule2 freeze



>>>>> In [emacs-w3m : No.03267] 
>>>>>	Katsumi Yamaoka <yamaoka@jpl.org> wrote:

土> (defadvice current-column

土> ;; これで他のバッファでも安全のはず…だけどなあ.要は
土> ;; indent.c:current_column_1() を使わない,ということですから.

山岡> なるほど、救済するのは何も w3m-mode だけでなくて良いのですね。
山岡> 他に move-to-column なども、かな。やってみます。

やってみましたが、パッチを当てていない Mule だと同じように固まっ
てしまいますね。

で、気が付いたのですが `current-column' を使う lisp の関数が 
byte-compile されるときに (funcall 'current-column) に相当する 
byte-code は生成されず、`current-column' の byte-code そのものが
埋め込まれてしまいます。ですから、せっかく `current-column' に 
advice をかぶせてあっても、そういうものには効果が及びません。例
えば bitmap の絵のあたりで `C-x =' (M-x what-cursor-position) を
使ってみると、変な column の数が表示されることでわかります。

;; `what-cursor-position' は simple.elc にあって、
;; `current-column' を使っています。

そこで byte-compile を行なうときに `current-column' が inline さ
れないように対策してみたのですが、良く見れば w3m.el の該当個所は
どうも関係なさそう。もしかしたら emacs-w3m 以外の compile 済みの 
.elc ファイルのどれかに犯人がいるかもしれません。仮にそうだとし
ても emacs-w3m の守備範囲ではないので、ここらでダメ Mule 対応は
終わりにしようと思います。

そういうわけで、Mule 2.3@19.34 をお使いのみなさまにおかれまして
は、きのう幹の先端に CVS commit したパッチを当てて、再インストー
ルしていただくことを強くお勧めします。
-- 
Katsumi Yamaoka <yamaoka@jpl.org>
;; 実に久しぶりに Mule 2.3 で T-gnus を動かしてみています。
;; ちゃんと使えるのにはいささかびっくり。^^;;