プロジェクトについて

Tera Term は、オリジナルの Tera Term Pro 2.3 の原作者公認の後継版です。オープンソースで開発されており、UTF-8 表示に対応しています。 また、SSH1 対応モジュール TTSSH を拡張し、SSH2 プロトコルをサポートしています。

最新リリース情報

Tera Term (4.106)2021-06-05 00:00
Tera Term 5 RC (5.0 alpha1)2022-04-19 00:00
Tera Term old archive (4.68)2010-12-07 00:00
Tera Term RC (4.106 RC)2021-05-22 01:26

最新のプロジェクトアクティビティ

2022-07-07

最近の更新 (Recent Changes)

2022-06-20
2022-05-08
2022-04-20
2022-04-04
2022-03-08
2022-01-17

Wikiガイド(Guide)

サイドバー (Side Bar)

Unicode化基本方針

  • 基本方針
    • 最新環境で動くものを目指す
      • 最新以外のためのコミットすることを禁止することはない
    • サポートOS,サポート開発ツールは今後検討する
  • 開発ツール
    • 最新の Visual Studio
    • 最新の Windows SDK
  • 使用ライブラリ
    • 最新のものを使用する
      • 古いOSをサポートするためにパッチすることはしない方向

内部Unicode化の進捗状況

開発環境

  • Visual Studio 2019
    • 開発で主に使用
    • ソースツリー内の2019用ソリューションファイルは更新している
    • Tera Term 4 系に反映することもあるので2005でもビルドできるようにしておきたい
  • 95をサポートするためにVisual Studio 2005を使用する必要があるがプライオリティは低い
    • 2005,2019以外のソリューションファイルは更新していない状態
  • cmakeビルド(試験的)
    • Visual Studio 2005~2019, MinGW でビルド可能

サポートWindowsのバージョン

r9153 ぐらいの状況、現在はWindows 10(最新)に注力している。

  • ○ Windows 10
  • ○ Windows 8
  • ○ Windows 7
  • ○ Windows Vista
  • ○ Windows XP
  • ○ Windows 2000
  • ○ Windows NT4.0
  • ○ Windows Me
  • ○ Windows 98
  • ○ Windows 95

注:

  • VS2019でビルドしたものはVista/7/10で動作した。XPでは起動できない。
  • 10では動作。(開発は主にWindows10上で行っているため)
  • 7: クーリエフォントでは絵文字が豆腐になる。和田研中丸ゴシック2004絵文字フォントでは問題なし。
  • Vista/XP: クーリエフォントでは韓国語と絵文字が豆腐になる。和田研中丸ゴシック2004絵文字フォントでは韓国語が・になる。
  • 2000: クーリエフォントでは日本語、中国語、韓国語、絵文字、たすけてが豆腐になる。和田研中丸ゴシック2004絵文字フォントでは中国語、韓国語、絵文字が・になる。
  • NT4.0: クーリエフォントでは日本語、中国語、韓国語、絵文字、たすけてが豆腐になる。和田研中丸ゴシック2004絵文字フォントでは中国語、韓国語、絵文字が・になる。
  • Me/98: クーリエフォントでは日本語、中国語、韓国語、絵文字、たすけてが豆腐になる。和田研中丸ゴシック2004絵文字フォントでは多少マシになるが、実用は難しい。ダイアログ表示がおかしい(r8299で解決)。
  • 95: ドイツ語だけまともに表示される。クーリエフォントでも和田研中丸ゴシック2004絵文字フォントでも大差ない。ダイアログ表示がおかしい(r8299で解決)。

使用しているライブラリ、ツールの状況

  • OpenSSL 1.1系
    • XP より古いOSでのサポートが終了
    • ttssh が XP より古いOSで使えなくなる
  • Visual Studio 2005
    • EOL
    • 入手性が悪い
    • Windows 95 対応バイナリが作れる
      • 対応できるようソース側で工夫している
  • Visual Studio 2019
    • 最新開発環境
    • 古いOSで動かないバイナリとなる
  • MinGW
    • 新しいOSで起動するバイナリは作れる
    • 調査中
      • 95で起動するバイナリは作れた
      • 安定して動作するかは未検証

実装状況

Unicode(内部文字コード)

  • (△) 全角の行末処理
  • 文字幅(1/2cell)
    • EastAsianWidth.txtをもとに決定
      • Ambiguous chalacter 文字幅の設定可
    • 絵文字
      • 絵文字幅上書き設定OFF時
        • Unicode文字幅で描画
      • 絵文字幅上書き設定ON時
        • emoji-data.txtをもとに絵文字を判定
        • 2cell設定の時
          • すべてを2cellとする
        • 1cell設定時
          • U+1f000未満は1cell
          • U+1f000以上は2cell
  • 結合文字
  • VariationSelector(異体字セレクタ)
  • EMOJI MODIFIER
  • Zero Width Joiner(ZWJ,ゼロ幅接合子)
  • Zero Width non-joiner(ZWNJ, ゼロ幅非接合子)

画面描画

  • OSの機能を利用して描画
  • Unicode系APIと非Unicode系APIのどちらでも利用可能
  • (×)カラー絵文字 (あとまわし)
    • DirectWrite というDirect Xの機能を使う
    • Windows8以降のサポートとなる

表示,機能

  • URL
    • 強調表示
    • クリッカブルURL
      • クリックでブラウザなど実行
      • (△) おかしいことが残っている
  • クリップボード
  • ファイルドロップ
    • ファイル名のペースト
    • ファイルの送信
    • scp
      • ファイル名は UTF-8でホストに送る
  • ファイル送信
  • ファイル転送
    • ローカルのファイル名は Unicodeに対応
    • 送信するファイル名は ANSIで送る(UTF-8/ANSI切り替えUIがほしい)
  • ファイル受信(ログ)
    • 文字コード選択できるUIを追加
  • 印字
    • ファイル/印刷 Unicode対応
    • エスケープシーケンスによる印刷
      • 印刷
        • (△) 難しそう、ANSIで実装しておく
      • パススルー印字
        • 文字コードを何で送るか設定が必要
  • duplicate session
  • (作業中)パス、ファイル名などのUnicode化
  • (作業中)iniファイルのパースなどのUnicode化
  • 設定ファイル(iniファイル)のデフォルト保存場所の変更
    • %APPDATA%\teraterm5\
    • (未)theme\
  • (作業中)pluginの互換性
    • Tera Term 4 以前とのバイナリ互換性は失われる
    • 新しい機能は入れず、なるべく変更なくソース再コンパイル(ソース互換)で使えるようにする方針

追加設定

  • Debug設定
    • 文字情報ポップアップ
      • on/off
      • キー設定
  • 設定のダイアログ

OS対応

  • 非Unicode系APIしかない場合は、Unicode APIの動作を内部でエミュレートする
    • ある程度は9xでも動作
    • プライオリティは低い

マクロ

  • 内部文字コードをUTF-8に変更
    • 従来はANSIだった

実装未検討

Unicode

  • アラビア語など
    • 左横書き
  • Bengali, Khmer, Tibetan など。
    • これらの言語での 結合文字(合字) が未実装

テスト

テストの観点

レグレッション

  • 従来バージョン(v4.103)でサポートしている機能が、漏れなく動作するか。

言語全般

  • 日本語
    • UTF-8だけではなく EUC-JP/JIS/Shift_JIS に関しても検証する。
  • 多言語(UTF-8)
    • 中国語、韓国語、ドイツ語、フランス語、ロシア語、ほか。
  • Unicodeで実装が難しいもの
    • ゼロ幅接合子、Emoji_Modifier、ほか。

レガシーWindows

  • Windows95/98/Me
  • WindowsNT4.0/2000/XP/Vista/7/8/10
  • 英語版Windows

操作全般

  • 端末上で多言語を使った操作を行う
    • man
    • vim, emacs
    • TUI (Text User Interface)
  • ログファイル
  • ブロードキャストコマンド
  • コピー&ペースト
  • ウィンドウのリサイズや最大化