[Macemacsjp-users 451] Re: 10.4.x での日本語入力文字化けについて

Back to archive index

irodo****@irodo***** irodo****@irodo*****
2005年 6月 3日 (金) 01:30:44 JST


本庄です。
# 自己レスで失礼

At Thu, 02 Jun 2005 10:57:35 +0900,
irodo****@irodo***** wrote:
> keyboard-coding-system の動作は、IM の on/off に従って変化するようです。
> IM が on になった時に keyboard-coding-system が直ちに sjis-mac になら
> ないことの方が問題なのかもしれないですね。

と書いた手前、keyboard-coding-system が切り替わるタイミングについて調
べてみました。

share/emacs/22.0.50/lisp/term/mac-win.el にある、
mac-handle-language-change 関数が keyboard-coding-system を切り替えてい
るようです。
切り替えられるタイミングは、「Emacs に modifier キー以外のキー入力が渡っ
たとき」です。
インライン入力時は、Emacs にキー入力を渡していないようなので、この関数
が呼ばれず、文字化けが起こるのではないでしょうか?


解決方法を 2 通り考えてみました。

1. 適切なタイミング(IM が日本語になり、かつ入力が行われていない状態)
   で mac-handle-language-change を呼ぶ方法。

こちらの方がスマートだと思いますが、私の理解できる範囲内では修正不可能
でした。

2. mac-handle-language-change を呼ばないようにする方法。

これは、同じ mac-win.el にある

  (define-key special-event-map [language-change] 'mac-handle-language-change)

行をコメントアウトすることで実現できます。ただし、日本語以外の環境を利
用する際に影響が出るかもしれません。予期せぬ場所で
mac-handle-language-change が呼ばれた場合にも影響が出ると思います。

-- 
Eiji Honjoh



Macemacsjp-users メーリングリストの案内
Back to archive index