[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