1cocot - COde COnverter on Tty
2
3Copyright (c) 2002-2012  IWAMURO Motonori  All rights reserved.
4
5
61 これは何か?
7
8  端末とプロセスの間に割り込んで文字コード変換を行うツールです。Cygwin
9  を含むUNIX互換環境において、sshやtelnetなどとともに利用できます。
10  (Windowsに附属のtelnetでは使えません)
11
12  初期バージョンではCygwin環境限定でしたが、Kazuhiro NISHIYAMAさんの手
13  により、autotools対応になりました。
14
15  なお、実装は詳解UNIXプログラミング・新装版[1]、及びFreeBSDの
16  script.c[2]を参考にしました。
17
18
192 ビルド/インストール
20
212.1 事前準備
22
23  Cygwinの場合、libiconv, libutil(inetutilsに含まれる)を使用しているた
24  め、事前にこれをインストールしておく必要があります。Cygwin Setupの
25  Select Package画面で、Category→Devel→libiconvおよびCategory→Net→
26  inetutilsを選択してインストールしてください。
27  ※Cygwinパッケージの問題で、libiconvに関する環境が壊れている場合があ
28    るようです。その場合はlibiconvを再インストールしてみてください。
29
30  それ以外のOSについては、適宜必要なパッケージをインストールしておいて
31  ください。(手抜き^^;)
32
332.2 ビルド/インストール手順
34
35  ビルド/インストールの手順は、一般的なautotoolsベースのツールと同様です。
36  ターミナルエミュレータやプロセスのエンコーディングを変更したい場合は、
37  --with-default-term-code、--with-default-proc-code を指定してください。
38  デフォルトはターミナルが UTF-8、プロセスが CP932 となっています。
39
40    ./configure [--with-default-term-code=CODE] [--with-default-proc-code=CODE]
41    make
42    make install
43
44
453 環境設定
46
47  コマンドプロンプトから利用する場合、リモート環境にcygwinのterminfo情
48  報をインストールする必要があります。以下にその例を示します。なお、こ
49  こではsshが利用できることを前提としています。
50
51  1) terminfo情報の取得
52     Windows環境上で以下を実行します。
53       $ infocmp cygwin > cygwin.terminfo
54
55  2) terminfo情報の転送
56       $ scp cygwin.terminfo [リモートホスト]:/tmp
57
58  3) リモート環境にログイン
59       $ ssh [リモートホスト]
60
61  4) リモート環境の設定 (スーパーユーザ権限を得られない場合のみ)
62     スーパーユーザ権限を得られない場合は事前設定が必要です。設定方法
63     はお使いのリモート環境に依存すると思われますので、詳細はリモート
64     環境のterminfoマニュアルページ等をご参照ください。以下ではLinux
65     (ログインシェルはbash)を想定しています。
66       $ cd
67       $ mkdir .terminfo
68       $ export TERMINFO=$HOME/.terminfo
69     bashのスタートアップスクリプトにも環境変数TERMINFOの設定を記述し
70     ておきます。
71
72  5) リモート環境にterminfo情報を登録
73     ※スーパーユーザ権限を得ることができる方は、suもしくはsudoを用い
74       て以下を実行してください。
75       # tic /tmp/cygwin.terminfo
76
77
784 どうやって使うのか?
79
80  コマンドプロンプトやminttyを使っているときに、文字コードがEUC-JPであるホ
81  ストにログインするときに有用です。
82
83------------------------------------------------------------------------------
84iwa@RYPRIM /winnt                                            ←Windows上にいる
85(528)> \ls --show-control-chars *.bmp                  ←文字コードはShift_JIS
86winnt.bmp              サンタフェ.bmp    青いレース編み 16.bmp
87winnt256.bmp           シャボン.bmp      大草原の風.bmp
88しゃくなげ.bmp         フィッシング.bmp  珈琲カップ.bmp
89グリーン ストーン.bmp  羽毛.bmp
90サポテック織り.bmp     隅田川.bmp
91
92iwa@RYPRIM /winnt
93(529)> cocot ssh lydia                                  ←Linuxにloginしてみた
94Linux lydia 2.2.20 #1 Sat Apr 20 11:45:28 EST 2002 i586 unknown
95No mail.
96Last login: Sat Aug 24 21:11:13 2002 from ryprim.vmi.jp
97[iwa@lydia]~(1)$ echo $LANG                                       ←EUC-JP環境
98ja_JP.eucJP
99[iwa@lydia]~(2)$ date
1002002年  8月 24日 土曜日 21:11:14 JST                      ←文字化けしてません
101------------------------------------------------------------------------------
102
103  オプションは以下の通りです:
104
105  -o LOGFILE	 コード変換前のコマンドの出力を全てファイルに出力します。
106  -a		 -oオプション指定時に追記モードにします。
107  -t TERM_CODE
108  -t TERM_INPUT_CODE,TERM_OUTPUT_CODE
109		 ターミナルの文字コードを指定します。
110                 デフォルトはCP932。(configureオプションで変更可)
111  -p PROC_CODE
112  -t PROC_INPUT_CODE,PROC_OUTPUT_CODE
113		 コマンドプロセスの文字コードを指定します。
114                 デフォルトはEUC-JP。(configureオプションで変更可)
115  -i		 ISO-2022-JPのエスケープシーケンスを無視します。
116  -n		 無変換モードにします。-oオプションを組み合わせて、script(1)
117		 の代わりに使用します。
118  -h, --help	 ヘルプを表示します。
119  -v, --version	 バージョンを表示します。
120
121
1227 ライセンス
123
124修正BSDライセンスとします。(see. COPYING)
125
126
1278 参考資料
128
129[1] 詳解UNIXプログラミング・新装版
130    http://www.pearsoned.co.jp/washo/unix/wa_uni12-j.html
131
132[2] FreeBSDのscript.c
133    http://www.freebsd.org/cgi/cvsweb.cgi/src/usr.bin/script/
134
135[EOF]
136