[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 メーリングリストの案内