Repository: http://github.com/vmi/cocot
Binary (for Cygwin-1.7): cocot-20100903-bin.tar.bz2
Old Versions:
cocot-20080315.tar.bz2,
cocot-20041220.tar.bz2,
cocot-20040229.tar.gz,
cocot-20030603.tar.bz2,
cocot-20021024.tar.bz2,
cocot-20020825.tar.bz2
端末(tty)とプロセスの間に割り込んで、文字コード変換を行うツールです。 Cygwinを含むUNIX互換環境において、sshやtelnetなどとともに利用できます。 (Windowsに附属のtelnetでは使えません)
初期バージョンではCygwin環境限定でしたが、Kazuhiro NISHIYAMAさんの手により、autotools対応になりました。なお、実装は 詳解UNIXプログラミング・新装版、及び FreeBSDのscript.cを参考にしました。
Cygwinについてはアーカイブにバイナリが含まれています。展開したディレクトリ中で「./install-cygwin.sh」を実行すると/usr/local/binにインストールされます。
それ以外のOSの場合は、一般的な「./configure」「make」「make install」でインストールできます。
コマンドプロンプトから利用する場合、リモート環境にcygwinのterminfo情報をインストールする必要があります。以下にその例を示します。なお、ここではsshが利用できることを前提としています。
$ infocmp cygwin > cygwin.terminfo
$ scp cygwin.terminfo [リモートホスト]:/tmp
$ ssh [リモートホスト]
$ cd $ mkdir .terminfo $ export TERMINFO=$HOME/.terminfobashのスタートアップスクリプトにも環境変数TERMINFOの設定を記述しておきます。
# tic /tmp/cygwin.terminfo
Cygwinの場合、libiconv, libutil(inetutilsに含まれる)を使用しているため、事前にこれをインストールしておく必要があります。Cygwin SetupのSelect Package画面で、Category→Devel→libiconvおよびCategory→Net→inetutilsを選択してインストールしてください。
※Cygwinパッケージの問題で、libiconvに関する環境が壊れている場合があるようです。その場合はlibiconvを再インストールしてみてください。
それ以外のOSについては、適宜必要なパッケージをインストールしておいてください。(手抜き^^;)
あとは、一般的なソースパッケージと同じく、
./configure make make install
でビルドおよびインストールができます。
なお、TERM_CODEとPROC_CODEのデフォルトはconfigureの引数に指定可能です。
現在、以下の環境でビルドできることが確認されています。
コマンドプロンプトやrxvtを使っているときに、文字コードがEUC-JPであるホストにログインするときに使います。
iwa@ryprim /window ←Windows上にいる (528)> \ls --show-control-chars *.bmp ←文字コードはShift_JIS winnt.bmp サンタフェ.bmp 青いレース編み 16.bmp winnt256.bmp シャボン.bmp 大草原の風.bmp しゃくなげ.bmp フィッシング.bmp 珈琲カップ.bmp グリーン ストーン.bmp 羽毛.bmp サポテック織り.bmp 隅田川.bmp iwa@ryprim /windows (529)> cocot ssh lydia ←Linuxにloginしてみた Linux lydia 2.4.27-3-386 #1 Wed Dec 6 00:38:33 UTC 2006 i586 You have new mail. Last login: Sat Apr 5 10:43:09 2008 from ryprim.vmi.jp [iwa@lydia]~(1)$ echo $LANG ←EUC-JP環境 ja_JP.eucJP [iwa@lydia]~(2)$ date 2008年 4月 6日 日曜日 01:41:27 JST ←文字化けしてません
オプションは以下の通りです:
-o LOGFILE コード変換前のコマンドの出力を全てファイルに出力します。 -a -oオプション指定時に追記モードにします。 -t TERM_CODE ターミナルの文字コードを指定します。デフォルトはCP932。 -p PROC_CODE コマンドプロセスの文字コードを指定します。デフォルトはEUC-JP。 -i ISO-2022-JPのエスケープシーケンスを無視します。 -n コード変換を行いません。 (-o と組み合わせて script(1) の代わりに使えます) -h ヘルプメッセージを表示します。 -v バージョンを表示します。
修正BSDライセンスとします。(see. LICENSE.txt)