SSブログ
-| 2007年03月09日 |2007年03月11日 ブログトップ

ng-1.5beta1をUTF-8対応させてみた。 [ソフトウェア]

ここ10年以上OpenBSDを使っていたが、最近都合でFedoraCore 6も使い始めた。
OpenBSDでは漢字コードは仕事の都合もあってSJISメインで、日本語ファイル名はcapで適当なフィルタやらなんやらを作っていろいろ処理していた。
ちょっとした設定ファイルの編集などにkemacsを使っていたのだが、FedoraCore 6ではいろいろとUTF-8になっているようなのでいいまいちうまくない。
viでもいいんだが、emacs使いとしてはやっぱり軽量エディタもemacs系にしたい。
しょうがないので、ng-1.5beta1のファイルI/Oと入力と表示をUTF-8対応させてみた。

欲しい人はこちらからどうぞ

Ng サポートページから、ng-1.5beta1.tar.gz を拾ってきて、適当に展開したディレクトリで gunzip <ng-1.5beta1-utf8.patch.gz | patch -p1 して、./configure して make すれば動くと思う。
とりあえず、FedoraCore 6 x86-64と、OpenBSD3.5 i386ではコンパイルできて動いている。

kinit.h を見ればわかるが、デフォルトはすべてUTF-8になっている。
ファイル読み込み時の漢字コード判別は、EUCよりUTF-8優先になっている。
(>=0xc0 が先に現れた場合はUTF-8とみなしている)
そのため、コマンドラインオプションでglobal_kexpectを指定できるようにした。
-S (SJIS), -J (JIS), -E (EUC), -W (UTF-8)
EUCでファイルを読みたい場合、ng -E <file> とすればよい。
JIS→UCS-2, UCS-2→JISの変換テーブルが大きいのでバイナリのサイズが倍以上になるが、まあ、いまどきのPCなら問題ないだろう。

Ng サポートページにも送っておいたが、久しく更新されていないようなので、だれか必要としている人がいるかもしれないと思いここに公開しておく。

ついでにemacsで使うためにMSゴシックとMS明朝から10~22ピクセルのビットマップをBDFにした。
sbitRW.exeが使えるかと思ったら、なんだか「~」が抜けてしまっていたし、13区のNEC特殊文字やIBM拡張文字もなかったみたいなので、自前のツールを拡張して組み合わせてBDF化した。
このためのツールはちょっと公開できないか……


-| 2007年03月09日 |2007年03月11日 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。