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

Re: とりあえず決めておきたいこと



netbsd re.soumやfjで宣伝しないと人増えないか...

makoto@NOSPAM.hauN.org wrote:

 > Kay> 6.2 NWSCONS を多国語化
 > Kay> 	こっちが本命ですかね?
 > Kay> 	内部的に Unicode みたいだし UTF-8 を locale に用意してあとはフォ
 > Kay> 	ントの切替だけである程度は誤魔化せるんじゃないかな?
 > Kay> 	必要ならあとでコードの変換機構を追加すればいいし。
 > 
 > wsconsレイヤ<=>ハードウェアドライバレイヤ間の内部コードが
 > Unicodeだと、iso2022ベースでl10nのハードウェアサポートがあり、
 > 既にコンソールでそれを利用しているx68kやpc98で面倒になるので
 > やめろーと言いたいと思ってるのですが、どう理論武装するかとか、
 > じゃてめーで書けっていわれたらやだ (笑) とかで止まってます。
 >
 > vt100emulでは、iso2022のエスケープシーケンスをちょっぴり解釈
 > しているように見えます。sunの方は、知らないエスケープシーケ
 > ンスを素通ししているように見えます。

wsemul layerは、vt100をベースにISO-2022をまじめに扱えるように
したものを作れば良さそうですね。必要に応じて他のencodingも使えるようにする。


wsemulからハードウェアドライバのputcharを呼ぶときは、

wsdisplayvar.h:
        void    (*putchar) __P((void *c, int row, int col,
                                u_int uc, long attr));

(u_int ucが文字)だから、一文字あたり32bitも :-) 使用できます。


マルチバイト文字を表示できるハードウェアは、
フレームバッファなものと、JISコード書くと文字がでるようなもの、でしょうか。
VGA使ってる(i386,alpha,armなど)のは前者。x68kも前者ですよね? PC-98x1って後者?

フレームバッファなものは、rconsをベースに
マルチバイト文字を表示できるようにしたものを作って、
各ハードウェアドライバから使えば良いですね。
当然フォントは文字集合ごとに設定できる。
固定幅フォントじゃないとつらそう。


で、wsdisplay_emulopsにマルチバイト文字用putcharを用意、
ISO-2022emulは、それを呼ぶときにフォントを指定して、文字コードを渡す。
もしくはputcharで渡すu_intを上位16bitをフォント、下位16bitを文字ってするとか。


素人考えをまとめると、
・ISO-2022(+α)を通すようにwsemul_vt100を改造もしくは別に作る。
・マルチバイト文字を表示できるようにrconsを改造もしくは別に作る。
てなとこでしょうか。

# packageの話じゃないなぁ...

sakamoto@cec.co.jp