内部構造

Tera Term 5 以前の内部バッファの文字コードはDBCS(Double byte Character Set)でした。 例えば「Language[言語]」を"Japanese"としたとき内部バッファの文字コードはShift_JISでした。

Tera Term 5 の内部バッファの文字コードは Unicodeです。

大まかなデータの流れは次のようになっています。

                                                                              +--------------+
                              +------------------------+ Code:Unicode         |              |
                              |                        +--------------------->+  Window      |
                              |  buffer@buffer.c       |                      |   Display    |
                              |   Code:Unicode         | Code:Unicode         |   Print      |
                              |                        |  BuffPutUnicode()    |              |                                         +----------+
                              |                        +<------------------+  +--------------+          +-----------------------+      |          |
                              +------------------------+                   |                            |                       |      |Log File  |
                                                                           +----------------------------+ VTParse()@vtterm.c    +----->+          |
                              +------------------------+ CommRead1Byte()                                |  Terminal             |      |          |
                              |                        +----------------------------------------------->+                       |      +----------+
                              |  Input buffer@ttpcmn   |                                                |                       |
+-----------+                 |   Code:Input           | Code:                                          +----+------------------+
|           |                 |                        |  Unicode to Input    +--------------+               |
|  Socket   +---------------->+                        +<---------------------+              |               |
|  Serial   |  CommReceive()  +------------------------+  CommTextEchoW()     |  Talker      |               |
|  Pipe     |                                             CommBinaryEcho()    |   Keyboard   |               | Code:Unicode(UTF-8)
|  Plugin   |                 +------------------------+                      |   SendMem    |               |  DDEPut1()
|           +<----------------+                        | Code:                |    File      |               |
+-----------+  CommSend()     |  Output buffer@ttpcmn  |  Unicode to Output   |    Clipboard |               |
                              |   Code:Output          +<---------------------+    macro     +<---------+    |
                              |                        |  CommTextOutW()      |              |          |    |
                              |                        |  CommBinaryOut()     +--------------+          |    |
                              +------------------------+  CommRawOut()                                  |    |
                                                                                                        |    |
                                                                                                        |    |
                                                                                                        |    |
                                                                                                        |    v
                                           +-------------------+      DDE, UTF-8/binary               +-+----+-----------+
                                           |                   +------------------------------------->+                  |
                                           |  ttpmacro.exe     |                                      |  ttdde.c         |
                                           |                   |                                      |                  |
                                           |                   |      DDE, UTF-8                      |                  |
                                           |                   +<-------------------------------------+                  |
                                           +-------------------+                                      +------------------+

Windows 95/98/Meのとき、キー入力は Unicode に変換してから処理を行います。 描画は UnicodeをMBCSに変換して描画します。