PuTTYjp: PuTTY で ISO 2022 による日本語入力・表示を可能にするパッチ
概要
PuTTY
は、Simon Tatham 氏によって作成された、フリーの Telnet/SSH クライアントです。PuTTY は ISO
2022 に対応していないので、対応させるためにこのパッチを作りました。
現在、本パッチは、IA-32 版の Windows と Unix に対応しています。
ファイルの説明
- puttyjp.exe
- パッチを適用した putty.exe です。
- puttyjp.lng
- ダイアログボックスやメニューの一部を日本語化するためのファイルです。
- puttyjp.patch
- ソースコードの差分ファイルです。
日本語関連の設定項目
- ウィンドウ > 外観 > フォントの設定
- 日本語を表示できるフォントを選んでください。
- ウィンドウ > 変換 > 文字コード変換
- 文字コードの設定で、エンコーディングを選択してください。本パッチは以下のエンコーディングをリストに追加します。
- EUC-JP
- ISO-2022-JP
- MS_Kanji : Windows のコードページ 932 です。
- Shift_JIS : MS_Kanji と同じです。
- EUC-KR
- Big5 : Windows のコードページ 950 です。
- EUC-CN
- UTF-8 (CJK) : CJK (中国語、日本語、韓国語) 用の文字幅に対応している UTF-8 です。PuTTY
0.58
以降では CJK 用の文字幅を使用する (Treat CJK ambiguous characters as wide)
オプションもありますが、フォント関係の問題のため残してあります。
- UTF-8 (Non-CJK) : CJK ではない文字幅を使用する UTF-8 です。標準の UTF-8
とは異なり、本パッチが一部の制御コードを解釈します。
- UTF-8/Auto-Detect Japanese : 受信時の文字コードを自動判別します。送信には UTF-8
を使用します。
- EUC-JP/Auto-Detect Japanese : 受信時の文字コードを自動判別します。送信には EUC-JP
を使用します。
- MS_Kanji/Auto-Detect Japanese : 受信時の文字コードを自動判別します。送信には
MS_Kanji を使用します。
- Shift_JIS/Auto-Detect Japanese : 受信時の文字コードを自動判別します。送信には
Shift_JIS を使用します。
より高度な設定が必要な場合は、従来のパッチの初期化コード (Initialisation code)
が使用できます。詳しくは PuTTYjp: 初期化コードについて を参照してください。
ビルド方法
ソースファイルからビルドする方法については、PuTTYjp: ビルド方法
を参照してください。
バグ
- エスケープシーケンスを使って window title に US ASCII 以外の文字を表示しようとしてもうまくいきません。
- ISO 2022 の解釈はあまりまじめにやってないので問題がある可能性があります。対応していない文字集合がたくさんあります。
- 変換できなかった文字は ? になります。
- 送信時 GL に
US ASCII または JIS X 0201 ローマ字以外を呼び出すことがある初期化コードでは、C0
制御文字の前に入れるシーケンスで GL に US ASCII または JIS X 0201
ローマ字を呼び出すようにしておかないと、カーソル移動キー等を押したときに正しくないコードが送られます。
- JIS X 0201 ローマ字の overline 文字をクリップボードにコピーし、非 Unicode
アプリケーションに貼り付けると、? など別の文字に置き換わってしまうことがあります。
- 日本語以外の言語について動作確認が不十分です。
- ローカライズが中途半端です。
- Windows 版については MinGW 以外の環境でのビルドはテストされていません。
- Unix 版はローカライズに対応していません。
- Unix 版は Input Method に対応していません。日本語入力はクリップボード (X selection) を使用してください。
- Unix 版は、クリップボード (X selection) のエンコーディングが UTF-8 でないアプリケーションとの間でのコピーアンドペーストに制約があります。
ライセンス
このパッチには PuTTY
licence が適用されます。
更新履歴
- 2019 年 4 月 10 日 (putty-0.71-jp20190410)
- PuTTY Version 0.71 ベースになりました。
- 2017 年 7 月 13 日 (putty-0.70-jp20170713)
- PuTTY Version 0.70 ベースになりました。
- 2017 年 7 月 4 日 (putty-0.69-jp20170704)
- PuTTY Version 0.66 ベースになってから、メニューの日本語化がされなくなっていた問題を修正しました。
- 2017 年 5 月 6 日 (putty-0.69-jp20170506)
- PuTTY Version 0.69 ベースになりました。
- 2017 年 2 月 25 日 (putty-0.68-jp20170225)
- PuTTY Version 0.68 ベースになりました。
- 2016 年 3 月 6 日 (putty-0.67-jp20160306)
- PuTTY Version 0.67 ベースになりました。
- 2015 年 11 月 10 日 (putty-0.66-jp20151110)
- PuTTY Version 0.66 ベースになりました。
- 2015 年 8 月 31 日 (putty-0.65-jp20150831)
- PuTTY Version 0.65 ベースになりました。
- 2015 年 3 月 1 日 (putty-0.64-jp20150301)
- PuTTY Version 0.64 ベースになりました。
- 2013 年 9 月 16 日 (putty-0.63-jp20130916)
- 同梱の puttygen.exe において、鍵の長さを入力する部分がウインドウからはみ出していた問題を修正しました。この問題はローカライズ対応パッチにより発生していたものです。
- 同梱の pageant.exe について、puttyjp.exe が存在すれば、メニューの New Session および Saved Sessions が選択できるように修正しました。
- 2013 年 8 月 8 日 (putty-0.63-jp20130808)
- PuTTY Version 0.63 ベースになりました。
- 2002 年 9 月 3 日バージョンとの設定互換性をなくしました。
- 2011 年 12 月 14 日 (putty-0.62-jp20111214)
- PuTTY Version 0.62 ベースになりました。
- 2011 年 12 月 1 日 (putty-0.61-jp20111201)
- PuTTY Version 0.61 ベースになりました。
- Unix 環境でコンパイルできるようにしました。ただし、ローカライズと Input Method には対応していません。
- 2007 年 6 月 3 日 (putty-0.60-jp20070603)
- F10 キーが正しく IME に伝わっていなかった問題を修正しました。
- 2007 年 4 月 30 日 (putty-0.60-jp20070430)
- PuTTY Version 0.60 ベースになりました。
- 2007 年 4 月 29 日 (putty-0.59-jp20070429)
- PuTTY Version 0.59 ベースになりました。
- ローカライズ処理を改良しました。
- 文字コード自動判別を追加しました。
- UTF-8 (CJK) が一部エスケープシーケンスを解釈するようにしました。これにより、ESC ( 0
による罫線表示ができるようになりました。
- UTF-8 (CJK) と同様に一部エスケープシーケンスを解釈する UTF-8 (Non-CJK) を追加しました。
- UTF-8 に切り替えるエスケープシーケンスに対応してみました。
- 2 バイトの全角文字の 2 バイト目がエラーのときに、1 文字の半角の ? を表示するようにしました。2
バイト文字を考慮していない一部アプリケーションで、表示の崩れを少しだけ抑えることができます。
- JIS X 0213:2004 1 面に暫定対応しました。
- 1 バイトの文字集合の変換テーブルを一部見直しました。使われていなさそうなものは削除しました。
- 受信データの解釈プログラムを全面的に書き直し、バグを修正しました。
- 2005 年 5 月 3 日
- PuTTY Version 0.58 ベースになりました。
- 2005 年 2 月 22 日
- PuTTY Version 0.57 ベースになりました。
- 2004 年 10 月 27 日
- PuTTY Version 0.56 ベースになりました。
- 2004 年 8 月 5 日
- PuTTY Version 0.55 ベースになりました。
- 2004 年 5 月 28 日
- Character set のリストの順序を変えることにより、CJK 用でない UTF-8
が選択できなくなっていたバグを修正しました。
- 2004 年 4 月 23 日
- Windows XP と Windows Server 2003
でダイアログのローカライズがうまくいっていなかったバグを修正しました。
- Character set のリストの順序を変えました。
- 2004 年 4 月 19 日
- 16 日の更新で、ウィンドウのサイズ変更時にアプリケーションエラーが発生するようになっていた問題を修正しました。
- 2004 年 4 月 16 日
- PuTTY Version 0.54 ベースになりました。
- CJK 用の UTF-8 を選択できるようにしました。「UTF-8 (CJK)」を選択すると、CJK 用の文字幅になります。
- 2003 年 10 月 31 日
- 日本語化した About ダイアログで文字化けがあったのを修正しました。
- インサートモードで fullwidth 文字を出力しても、もともとあった文字が halfwidth
文字の幅しか移動されないバグを修正しました。
- Visual C++ でコンパイルできるようになりました。(未確認)
- 2003 年 2 月 10 日
- マウスを使用するアプリケーションを操作しようとすると、アプリケーションエラーが発生していた問題を修正しました。
- 送信時の文字コード変換部分のバグを修正しました。
- 2003 年 2 月 9 日
- きのうの更新で、ウィンドウのサイズ変更時にアプリケーションエラーが発生するようになっていた問題を修正しました。
- 2003 年 2 月 8 日
- Localize 処理に thread hook を使わないようにしました。
- 2003 年 1 月 6 日
- シングルシフトに続く符号の最上位ビットを 1 にするオプション ssgr を追加し、EUC-JP
ではデフォルトで有効となるようにしました。(Emacs などで JIS X 0201 カタカナおよび JIS X 0212
補助漢字の入力ができなかった問題を修正しました。)
- 2003 年 1 月 5 日
- gcc version 2.95.3-6 (mingw special)
を使ってコンパイルしなおしました。これにより、Windows 2000 で spooler
サービス停止中に使用すると、アプリケーションエラーが発生するという問題はなくなりました。実行ファイルのみの変更で、パッチの変更はありません。
- 2002 年 12 月 11 日
- 7 日に更新したバイナリで、SSH protocol version 1
による接続ができなくなっていた問題を修正しました。va_arg に指定する型が char または unsigned char である時、gcc
version 3.2 20020927 (prerelease) は warning: `char' is promoted
to `int' when passed through `...' と警告しますが、このとき実際には
int $5
という命令 (配列境界違反例外を発生させる命令?) が生成されているのが原因です。
- 2002 年 12 月 7 日
- Windows 95/98/Me において、デフォルト設定で fullwidth
文字が正しく表示されるようにしました。このため、w95
を指定しなくてもうまく表示されるはずです。この対策を無効にしたいときは、初期化コードの先頭に w95off という文字列を追加してください。
- 2002 年 11 月 13 日
- PuTTY Version 0.53b ベースにしました。
- 2002 年 10 月 10 日
- コンボボックスのエディットコントロールにその幅をこえる文字列を入力できるようにした。
- 2002 年 10 月 8 日
- Proxy が使えない問題を解決するため、misc.c を変更。XFLAGS=-DMINEFIELD をはずした。
- 2002 年 10 月 7 日
- Proxy が使えない問題を解決するため、実行ファイルのほうを、XFLAGS=-DMINEFIELD
を指定してコンパイルしました。メモリ使用量が少し多くなっています。パッチの変更はありません。
- 2002 年 10 月 5 日
- PuTTY Version 0.53 ベースにした
- 初期化コードの指定方法を変更
- 2002 年 9 月 3 日
- 文字表示処理を若干変更
- euc-jp の G1 を JIS X 0208-1990 に変更
- 実行ファイルのほうに、WM_IME_NOTIFY
メッセージの処理のバグを修正するパッチを適用
- 実行ファイルを puttyjp.exe のみに変更
- 2002 年 6 月 2 日
- 2002 年 5 月 25 日
- 前回の変更で、Localize
対象ダイアログボックスのエディットコントロールやリストボックスのフォントが変更されなくなっていたので修正
- Localize された文字列でも「改行」などを表現できるように修正
- 2002 年 5 月 24 日
- Localize 対象のダイアログボックスで、コンボボックスのリストが表示されなくなっている問題の修正
- MessageBox の localize 処理の変更
- puttyjp.lng の改行コードを DOS スタイルに変更
- 2002 年 5 月 14 日
- 設定ダイアログなどの localization
- ISO 646-1973 IRV などの文字集合に対応
- big5 に対応
- 2002 年 4 月 10 日
- MS 漢字コードに対応。
- 初期化コードに euc-cn、euc-kr を指定できるようにした。
- 2002 年 4 月 9 日
- Unicode で表せる範囲で JIS X 0213 に対応。
- GR に指示・呼び出しされた文字集合を固定してしまうオプションの追加。このオプションを使うと、上に書いた terminfo
の修正をしなくても一応使えるようになります。
- 2002 年 2 月 21 日
- ISO 2022 の変換をしているときは wcwidth 関数を使わないように変更。
- 2002 年 2 月 21 日
- Windows 95 で fullwidth 文字がうまく表示されない場合のためのオプションを追加。
- 2002 年 2 月 19 日
- UTF-8 の変換に Win32 API を使わないように変更。これで Windows 95
でも使えるようになったかもしれません。
- 実行ファイルのほうを、About ダイアログに Release 0.52-kj のように表示されるように変更。
- 2002 年 2 月 11 日
連絡先
本パッチをあてた PuTTY についての連絡は hdk-soft@e-hdk.com
までお願いします。本パッチをあてた 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