So-net無料ブログ作成
検索選択

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化した。
このためのツールはちょっと公開できないか……


nice!(1)  コメント(4)  トラックバック(1) 

nice! 1

コメント 4

m

今頃発見しましたが、いいですねぇ。
emacs指なので、でも、emacs入れるのは重すぎるという環境では
いつも ng を入れていたのですが、 utf8が主流のこの時期にはちょっと
つらくなってきてました。が、復活。
ありがとうございます。
ちなみに、freebsd 8.0 で問題なく使えています。
by m (2010-03-03 21:53) 

pula

RaspberryPiを購入して、10年ぶりにLinuxいじっています。
ng探していたので助かりましたヽ(´▽`)ノ

by pula (2012-08-27 22:01) 

kimipooh

ng愛用していたので大変助かってます。

by kimipooh (2016-03-11 16:30) 

kimipooh

RedHat に導入する場合、
yum install ncurses-devel
としてライブラリを入れた上で、

./configure
make LDFLAGS=-lncurses
make install

で導入できました。
MacOS 10.10.5には、
./configure
Makefile内のCFLAGS行を「CFLAGS = -O2 $(CDEFS) -w -Wno-return-type」に変更
make
make install

でした。

by kimipooh (2016-03-11 16:43) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 1

この記事のトラックバックURL:
※言及リンクのないトラックバックは受信されません。
メッセージを送る

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

×

この広告は1年以上新しい記事の更新がないブログに表示されております。