[Mew-dist 07463] ctext
Kazu Yamamoto ( 山本和彦 )
kazu at example.com
1999年 2月 16日 (火) 09:59:17 JST
出張前の知識ダンプのお時間です。
Summary モードでは、imls を非同期に呼び出すことで、imls の終了を待たず
にメールを読み始められます。これは、mh-async というプログラムから頂い
たアイディアです。最近の XEmacs なども調べてみましたが、Emacsen にはや
はりスレッド(i.e. right wait process) がないため、この非同期の機能を実
現するには、プロセスを呼び出すしかないようです。
そこで Summary モードでは imls とのプロセス通信において、多言語性を実
現しなければなりません。たとえば、Subject: に ISO-2022-JP、KR、CN、
ISO-8859-* などが含まれていても、適切にこれらの文字コードを表示できる
必要があります。
現在ではこの多言語性を、多言語性を持つ compound text(ctext) を利用して
実現しています。簡単に言えば、ctext は ISO 2022 系の文字コードです。よっ
て、ISO 系の文字コード(ISO-2022-*、ISO-8859-*) を格納できます。
現在問題になっているのは、台湾で使われている Big5 とロシアの KOI8 です。
これらは ISO 系ではないので、単純には ctext で表現できません。それで、
いろいろ調べたのですが、Mule/Emacs では以下のようにしてこれらの文字コー
ドをctext に押し込めるのではないかという結論に至りました。
(1) Big5 -- Mule では、94x94 に収まらない Big5 を 2 つの 94x94 の文字
表として取り扱っており、それぞれに独自の終端記号 0 と 1 を与えている。
よって、あるルールにしたがって Big 5 を 94x94 の文字表に変換し、0 と 1
を使ったエスケープシーケンスで指示すれば、Mule の ctext として表現でき
そう。
(2) KOI8 -- 文字集合として super set である ISO-8859-5 を Mule/Emacs
は取り扱えるので、適当な変換テーブル(高々 255 文字)を利用して、KOI8 を
ISO-8859-5 に変換する。
(3) ctext では GR(8bit の空間)に ISO-8859-1 以外も指示できるようなので、
imls では ISO-8859-* 系の文字コードを適切なエスケープシーケンスで 8bit
の空間に(正確には G1 に)指示すると嬉しいかもしれません。
あと、TIS-620 も 8bit に指示した方がいいかもしれない。
--かず
Mew-dist メーリングリストの案内