PuTTY で ISO 2022 による日本語入力・表示を可能にするパッチ

概要

PuTTY は、Simon Tatham 氏によって作成された、フリーの Telnet/SSH クライアントです。PuTTY は ISO 2022 に対応していないので、対応させるためにこのパッチを作りました。

現在、本パッチは、IA-32 版の Windows のみ対応しています。

生成方法

Cygwin を使う場合

  1. Cygwin を起動します。
  2. 適当な作業ディレクトリを作ります。
    $ mkdir /tmp/putty ; cd /tmp/putty
  3. オリジナルの PuTTY のソースファイルを展開します。
    $ unzip -La ~/putty-src.zip

    ~/ には putty-src.zip のあるディレクトリの POSIX パス名を指定します。

  4. puttykj.patch をあてます。
    $ patch -Np1 < ~/puttykj.patch

    ~/ には puttykj.patch のあるディレクトリの POSIX パス名を指定します。

  5. 必要に応じて、puttyjp.patch をあてます。このパッチをあてると、デフォルト設定が、EUC-JP を使う日本語環境向けになります。また、ダイアログボックスとメニューの一部を日本語にするためのファイルが作成されます。
    $ patch -Np1 < ~/puttyjp.patch

    ~/ には puttyjp.patch のあるディレクトリの POSIX パス名を指定します。

  6. makefile.cyg を使って make を実行します。
    $ cd windows
    $ make -f makefile.cyg

    いくつかのファイルのコンパイル時に警告が出ますが無視して構いません。

Cygwin を使わない場合

  1. ファイルを展開し、Cygwin の場合と同様にパッチをあてます。Unix の patch コマンドに相当するプログラムを持っていない場合は、web で検索すると見つかりますので、そちらをダウンロードして使ってください。
  2. もとのドキュメントに従って生成します。このとき、iso2022.c および l10n.c もコンパイルし一緒にリンクするようにしてください。

設定項目

Font
日本語を表示できるフォントを選んでください。
Translation
コンボボックス Received data assumed to be in which character set で、エンコーディング法を選択してください。従来のパッチの Initialisation code を指定する場合は、"iso2022 " という文字列に続けて指定してください。入力に間違いがある場合は、Tab を押すなどしてフォーカスが変わったときに、表示が変化します。
選択できるエンコーディング法
本パッチは以下のエンコーディングをリストに追加します。

UTF-8 (CJK)、MS_Kanji (Shift_JIS)、Big5 は ISO 2022 準拠ではありませんが、対応しています。

Initialisation code の例
エンコーディングをより詳細に設定したい場合は、Initialisation code を使用することができます。以下に例を示します。これらの設定を使用する場合は、Received data assumed to be in which character set に、"iso2022 " に続けて入力してください。

ASCII のかわりに JIS X 0201 ローマ字を使う場合、上のコードの 1b2842 を 1b284a に置換してください。

この他、lockgr を指定すると、GR に対する呼び出し (ロッキングシフト) を無効にすることができます。詳しくはソースコードを参照してください。

文字化けについて

文字化けが発生し戻らないようであれば、メニューの Reset Terminal を選択してください。

日本語 EUC で使っているとき、Unix の一部のコマンドを使うと、G1 に他の図形文字集合が指示されてしまいその後の日本語 EUC がすべて化けてしまうことがありました。現在は、Received data assumed to be in which character set で EUC-JP または MS_Kanji を選択した場合、文字化け回避機能が有効になっています。無効にしたい場合は、"iso2022 EUC-JP" のように指定してください。

問題点

連絡先

本パッチをあてた PuTTY についての連絡は hdk@SoftHome.net までお願いします。本パッチをあてた PuTTY に関する質問・バグ報告等は、オリジナルの作者である Simon Tatham 氏へはしないようにしてください。

このパッチの最新版は、http://hp.vector.co.jp/authors/VA024651/ で公開しています。

謝辞

JIS 漢字コード (JIS X 0208 および JIS X 0212) と UCS の対応表として Tomokazu Matsuo さんの UNIJ_DB を使用させていただきました。

JIS X 0213 と UCS の対応表として earthian さんの JIS X 0213:2000 関連データ jisx0213code-csv.txt を使用させていただきました。

Hideki EIRAKU