Poderosa 非公式パッチ

注: Poderosaの開発が、SourceForge.Netにてkzmiさんにより再開されています。
以下に挙げられている問題はPoderosa 4.3.1b 以降ではすべて修正済みです。
他にも様々な修正が行われていますので、このページで公開されているバイナリではなく、4.3系を使う事をお勧めします


個人的に作成したPoderosaのパッチです。
すべてPodrosa 4.1.0のソースに対するパッチになっています。

現在、以下のパッチがあります。

すべてのパッチが適用されたバイナリです。そのまま適当なフォルダに展開して実行できます。

開発環境

パッチ適用済みソースは以下の開発ツールでビルド出来る事を確認しています。

バイナリはVisual Studio 2005 Professional Editionでビルドしています。


AES-CTR対応パッチ

以下のssh2共通鍵暗号形式のサポートを追加するパッチです。

パッチ

poderosa-4.1.0-aesctr-pl3.diff

公開されているオリジナルのソースにはポートフォワーディングツールのアイコンが含まれていません。
ビルドする為には、別途ポートフォワーディングツールのアイコンを用意する必要があります。

バイナリ

Poderosa-4.1.0-aesctr-pl3.zip

プラグインも含めて一通り揃っていますので、このバイナリだけで実行できます。
インストーラはありませんので、適当なフォルダに手動で展開して使ってください。

履歴

2008/12/08 (pl3)
ポートフォワーディングツールのGranadosへの参照を修正。(dllを直接参照していたのをプロジェクトを参照するようにした)
2008/12/07 (pl2)
ポートフォワーディングツールにも対応。
2008/12/02 (pl1)
初版。ポートフォワーディングツールは未対応。

参考資料


シリアルポートリストゴミ対策パッチ

Poderosaのシリアルポートプラグインは、System.IO.Ports.SerialPort.GetPortNames()を使用してシリアルポートのリストを取得し、最大のシリアルポート番号を確認しています。
しかしSystem.IO.Ports.SerialPort.GetPortNames()のバグ?で、得たシリアルポートのリストにゴミが含まれている事があり、その場合Poderosaは最大のシリアルポート番号を正しく認識できなくなります。
このパッチはそのような時でもゴミのデータを無視して、最大のシリアルポート番号を正しく認識できるようにする為の物です。

パッチ

poderosa-serialport-pl1.diff

バイナリ

poderosa-serialport-pl1.zip

シリアルポートプラグインのみです。
別途Poderosa 4.1.0本体、またはAES-CTR対応版が必要です。

履歴

2008/12/09 (pl1)
初版。

拡張Alternate Screen Buffer対応パッチ

vi等の一部のアプリケーションでは、起動時に画面表示内容を保存し、終了時に画面表示内容を起動時の状態に復元します[1]
この画面表示内容の保存/復元を行う為のターミナルエミュレータの機能をAlternate Screen Bufferと呼びます。

Poderosaでは基本的なAlternate Screen Buffer切り替えシーケンス(DECSET/DECRSTの47)には対応しています。
しかし、拡張Alternate Screen Buffer切り替えシーケンス(DECSET/DECRSTの1047-1049)は単純に無視しています。
このパッチはこの拡張Alternate Screen Buffer切り替えシーケンスに対応する為の物です。

  1. ^ 厳密には、Normal Screen BufferとAlternate Screen Bufferの二つの画面バッファを持ち、制御シーケンスによって切り換えるというのが本来の仕様です。
    しかし、Poderosaでは画面表示内容の保存/復元として実装されています。

パッチ

poderosa-altscr-pl1.diff

バイナリ

poderosa-altscr-pl1.zip

ターミナルエミュレータモジュールのみ含まれています。TerminalEmulator/下のファイルを置き換えて使用してください。
別途Poderosa 4.1.0本体、またはAES-CTR対応版が必要です。

履歴

2008/12/09 (pl1)
初版。

UTF-8 Cygwin対応パッチ

PoderosaでCygwin接続した場合、エンコーディングの初期設定が常にshift-jis(日本語環境の場合)になります。
しかしUTF-8 CygwinやCygwin 1.7を使っている場合、エンコーディングの初期設定はUTF-8の方が使いやすいでしょう。
このパッチを適用すると、Cygwin接続時のエンコーディングの初期設定をUTF-8にする事ができるようになります。

このパッチを適用しても、デフォルトの設定ではエンコーディングはshift-jisのままです。
UTF-8 Cygwinを使っている場合は、詳細プリファレンスエディタでorg.poderosa.terminalsessions.useUTF8CygwinをTrueに設定する必要があります。

パッチ

poderosa-utf8cygwin-pl1.diff

バイナリ

poderosa-utf8cygwin-pl1.zip

ターミナルセッションモジュールのみ含まれています。TerminalSession/下のファイルを置き換えて使用してください。
別途Poderosa 4.1.0本体、またはAES-CTR対応版が必要です。

履歴

2008/12/09 (pl1)
初版。

描画ミス対策暫定パッチ

ホスト側から大量の出力があった時、たまに表示内容の一部が更新されないというバグがPoderosaにはあります。
このパッチを適用すると、問題があると思われる表示の一部分のみの更新を行わなず、常に全画面を更新するように設定できるようになります。
しかしこの機能を有効にすると表示内容の更新があった時に常に画面全体を更新する為、描画が多少重くなるという副作用があります。

このパッチを適用しただけでは描画ミス対策は有効になりません。
描画ミス対策を有効にするには、詳細プリファレンスエディタでorg.poderosa.core.window.alwaysFullInvalidateをTrueに設定する必要があります。

パッチ

poderosa-dispfix-pl1.diff

バイナリ

poderosa-dispfix-pl1.zip

コアモジュールのみ含まれています。Core/下のファイルを置き換えて使用してください。
別途Poderosa 4.1.0本体、またはAES-CTR対応版が必要です。

参考

Poderosa の部分再描画バグ

履歴

2008/12/12 (pl1)
初版。

Cygwin接続関連パッチ

Poderosa の Cygwin 接続にある以下の問題の対策パッチです。

PATH環境変数問題対策

PoderosaではCygwin接続にCygTermを利用しています[1]
CygTermはCygwinアプリケーションなので、PATHにcygwin1.dllがあるディレクトリが含まれていないと起動できません。
そこでPoderosaでは、cygwin1.dllがあると思われるディレクトリをPATHに追加してから CygTerm を起動します。
しかし、この処理に使っているバッファを1024バイト固定で取っている為、PATHの長さが1024バイト以上あると、以下のようなエラーメッセージを表示してCygTermが起動できなくなります。

インデックスが範囲を超えています。負でない値で、コレクションのサイズよりも小さくなければなりません。パラメータ名: startIndex

このパッチは、PATHの長さが1024バイト以上の時でもCygwin接続を行えるようにする為の物です。

Cygwin 1.7 検出失敗対策

前述のように、Poderosa は CygTerm を起動する時に cygwin1.dll があると思われるディレクトリを PATH に追加しようとします。
この時 cygwin1.dll のあるディレクトリをレジストリのマウント情報から得ようとしますが、Cygwin 1.7 よりこのレジストリの情報は使われなくなりました。
この為 Cygwin 1.7 のみを入れた環境では Poderosa は cygwin1.dll のある場所を正しく検出出来ず、以下のようなエラーメッセージを表示して Cygwin 接続を開始出来なくなってしまいます。

レジストリキーSOFTWARE\Cygnus Solutions\Cygwin\mounts v2\/がみつかりません。Cygwinが正しくインストールされていないと思われます。

このパッチは、Cygwin 1.5 の時に使われたマウント情報の他に、Cygwin 1.7 のインストーラが使うレジストリ情報から cygwin1.dll のあるディレクトリを検出し、Cygwin 接続が行えるようにする為の物です。

  1. ^ このページで配布しているAES-CTR対応版バイナリに含まれているのは、TeraTerm Projectで機能追加を行っているCygTerm+です。
    CygTerm+のソースはAES-CTR対応版バイナリの中のProtocols/Cygtermディレクトリにあります。 また、ここでも配布しています。

パッチ

poderosa-cygwinfix-pl3.diff

バイナリ

poderosa-cygwinfix-pl3.zip
Poderosa 4.1.0用
poderosa-cygwinfix-aesctr-pl3.zip
AES-CTR対応版用

プロトコルモジュールのみ含まれています。Protocols/直下のファイル(Cygtermディレクトリ以外)を置き換えて使用してください。
別途Poderosa 4.1.0本体、またはAES-CTR対応版が必要です。
オリジナルのPoderosa 4.1.0とAES-CTR対応版とで別のバイナリになっていますので、注意して下さい。

履歴

2010/08/30 (pl3)
64bit環境への対応を追加。[参考]
2010/02/02 (pl2)
名称変更。cygwin 1.7への対応を追加。
2008/12/17 (pl1)
初版。

いわもと こういち
# なるようになれ、明日もイケイケ♪