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

[debian-users:32013] Re: xemacs startup problem



山下 純司です。

>>>>> SY == Shimpei Yamashita wrote:

SY> 最近、sid の xemacs (xemacs21-mule-canna-wnn 21.4.6-7) を立ち上げると、
SY> init.el読み込み中に

SY> Symbol's function definition is void: tcode-mode-line-redisplay

SY> というエラーが起きてしまうようになりました。
[...]  
SY> という風になっており、set-input-method内でなにか関数定義が足りないよう
SY> ですが、どこを直せばよいのでしょうか。

t-code を入れてませんか?

私は t-code を入れてましたが使っていないで削除(purge)することで対処
しました。


* 詳細:

; あれ tcode-ml って archive 非公開なんだっけ…

[tcode-ml:1832] にある activate-input-method への advice コードが本体
に取り込まれたようで、tc.el を常用していない人(とりあえず t-code を入
れてみてる人)に不具合が起こってます。


debian の t-code パッケージのスタートアップファイル中で
(require 'tc-setup) しています。
tc-setup.el の中でさらに (require 'tc-sysdep) しており、
tc-sysdep.el の中で前述の advice が書かれています。

この advice では関数 tcode-mode-line-redisplay を使っているのですが、
この関数は tc.el の中で定義されており、autoload 対象になってません。
また tc.el は t-code が使われるまでロードされてません。

つまり tc.el がロードされない(tcode-mode-line-redisplay が定義されてい
ない)状態で tcode-mode-line-redisplay を使った advice が
activate-input-method に対してされているわけです。

で、

SY> 最近、sid の xemacs (xemacs21-mule-canna-wnn 21.4.6-7) を立ち上げると、
SY> init.el読み込み中に

SY> Symbol's function definition is void: tcode-mode-line-redisplay

SY> というエラーが起きてしまうようになりました。

ということになります。

対処方法としては (1) t-code (tc.el) を常用する というのがありますが、
おそらく却下ですよね? :-)


t-code 的には tc.el をロードされていて欲しいのも分かる気がしますし、
私は t-code を常用してないので、t-code ml には状況を報告せず、
t-code deb を purge することで対処しました。


t-code を入れておきたいけれど t-code は常用したくない場合は
~/.xemacs/init.el あたりに以下の内容を書いておけば、とりあえず
しのげるかもしれません(未テスト)。

(or (fboundp 'tcode-mode-line-redisplay)
    (fset 'tcode-mode-line-redisplay 'ignore))


いざ t-code を使いたくなった時にも問題はないはずですが未確認です。


; あ… これを t-code deb の /etc/emacs/site-start.d/*t-code.el に
; 入れてもらうようにバグ報告すればよかったのか…
;
; でも t-code を使ってない状態であの advice が有効になってること自体が
; なんか気持ち悪かったんですよね…
-- 
山下 純司	mailto:ysjj@xxxxxxxxxxxx