[Mew-dist 04588] Re: emacs-20.2.92 & mew-1.93b30
守岡 知彦 (MORIOKA Tomohiko)
morioka at example.com
1998年 5月 8日 (金) 22:23:34 JST
;; 通りすがりの者です (^_^;;;
>>>>> In [Mew-dist : No.04585]
>>>>> "Kazu" = Kazu Yamamoto (山本和彦) <kazu at example.com> wrote:
Kazu> > emacs-20.2.92 で遊んでいるのですが、
Kazu> > mew が文字化けで使いものにならないようです。
Kazu> > 症状は、添付したようなダンプイメージになります。
Kazu> > emacs-20.2.92 自身が、日本語を表示できるということは、
Kazu> > イメージの下半分を見ればおわかりいただけると思います。
Kazu> Emacs 20 でこうなるということを言われたのは、実は 2 回目なのですが、
Kazu> そのオーストラリア人は他のメーラに移ったので、原因は追えていません。
Kazu> X(
Kazu> 私は Emacs 20.2.2 も使っていますが、少なくともこのような現象にあっ
Kazu> たことはありません。
Kazu> とりあえず、
Kazu> - .emacs などあらかじめ読まれるファイルに coding-system に
Kazu> 関する変な設定がないことを確認する。
Kazu> - mew.dot.emacs を参考に、coding-system まわりをいじる
Kazu> などの作業をしてみて下さい。
Emacs 20.3 では文字の扱いに関して大きな変更が加わりました。
伝統的 MULE や Emacs 20.2 以前では文字列や buffer の要素は byte でした。
即ち、'(aref "あいう" 0) の値は '146 でした。
これに対し、XEmacs では、文字型が存在し、文字列や buffer の要素は文字
型です。よって、'(aref "あいう" 0) の値は '?あ となります。
Emacs 20.3 では文字は相変わらず整数ですが、文字列や buffer の要素は
byte ではなく XEmacs のように文字となります。よって、'(aref "あいう"
0) の値は '?あ を表す整数値になります。
[用語] 伝統的 MULE や Emacs 20.2 の方式を "byte indexing", XEmacs や
Emacs 20.3 の方式を "character indexing" と呼びます。
Emacs 20.3 では XEmacs のように "character indexing" になった一方、相
変わらず enable-multibyte-character が存在します。XEmacs では binary は
control-1 と latin-iso8859-1 charset の『文字』に変換され、常に『文字』
として抽象化されていますが、Emacs 20.3 では binary の記憶効率を上げるた
めに enable-multibyte-character が nil か non-nil かで解釈を変える方式に
なっています。そういう訳で、enable-multibyte-character を動的にいじると
Emacs が発狂して落ちてしまうかも知れません (cf. XEmacs を debug option
付きで作って internal coding-system を試してみましょう :-))。これを避け
るために、enable-multibyte-character は "read only variable" というもの
になり、setq も defconst も let で束縛することさえできない特別な存在にな
りました。で、つじつまを合わせながら enable-multibyte-character をいじる
ための関数が追加されました。
一方、coding-system-for-read を binary や raw-text にして file を読み
込むと、相変わらず、その buffer における enable-multibyte-character の値
が決定されていない状態では enable-multibyte-character が nil になります。
Mew の症状は見た所、この症状のようです。
長々と書きましたが、結論としては Mew を Emacs 20.3 の API に合わせて修
正する必要があると思われます。
;; Emacs 20.4 や 20.5 でも大変革が予定されており、楽しみですね :-P
;;; やっぱり、emu は手放せない…
--
=== ……つまり =======================================================
====== 隠されているかもしれない可能性にかけてみようということです ====
守岡 知彦 (MORIOKA Tomohiko)
Email: <morioka at example.com>
Mew-dist メーリングリストの案内