Note for development
- Add entry to TERATERM.INI
- Support i18n message
- What to do when new macro command is added?
- Naming rule to add menu ID
- Icon
- Parts that need to be corrected when update a library
- Dump
Add entry to TERATERM.INI
When a new entry is added
When a new feature is add, the behavior is changed.
But some users don't hope new behavior, they hopes traditional behavior.
Provide a way to select the behavior by adding a new entry to TERATERM.INI.
Default value
For almost users, if new behavior is useful, safety and doesn't make confuse, default value will be `on.'
Otherwise it should to be 'off.'
Entry name
Unfortunately, the confusing entries such as EnableFoo... and DisableBar... are included.
It recommends that the new name like as Baz....
Changes
- source code
- read/write INI file
teraterm\ttpset\ttset.c
- struct tttset
teraterm\common\tttypes.h
To make a plugin work in both Tera Term 4 (TT4) and Tera Term 5 (TT5), it is necessary to ensure compatibility with the structure of TT4.
Therefore, new members should be added at the end.
Similarly, any members that are no longer needed should not be deleted but renamed to reserve_XXX and kept.
- Document
- All items of Tera Term setup file
setup/teraterm-ini.html
- help for setup dialog (when UI for change is present in a dialog)
dialog page under menu
- help for setup item (when UI for change is not present in a dialog)
category page under setup
- Default INI file
installer\release\TERATERM.INI
Support i18n message
Add new i18n message
- Source code
Read langage file
- If a message is on dialog, put English message as default text
- Modify language file
Modify files under installer/release/lang_utf8 folder.
- English.lng (English)
- Add English message.
- Describe today as message update date.
- Last translate date is not present in this file.
- This language file is not read from program. This is a reference for translate to other language.
- Japanese.lng (Japanese)
- Add Japanese message.
- Describe today as message update date.
- Last translate date is not present in this file.
- Modify other language file
- Add English message
- Describe today as message update date.
- Do not update last translate date, because translation is not updated.
Translate i18n message
- Modify language file
- Translate English message in language file to target language.
- Do not update update date.
- Describe today as last translate date.
What to do when new macro command is added?
- Coding
- get a new number of command internal ID.
... teraterm/ttmacro/ttmparse.h
- add a if statement to below function.
... CheckReservedWord@teraterm/ttmacro/ttmparse.c
- add a caller doing the macro command.
... ExecCmnd@teraterm/ttmacro/ttl.c
- make a function code for the macro command.
- Help topic
- make the command help file.
... doc/LANG/html/macro/command/hogefunc.html
- add to command index page.
... doc/LANG/html/macro/command/index.html
- add the file to help topic.
... doc/LANG/teraterm.hhc
- get a new number of context ID in help page.
The value is internal ID + 92000.
... teraterm/common/helpid.h
- make the alias between context ID and calling file.
Open the .hhp file by using Text Editor, added a html line in [ALIAS] tag.
... doc/LANG/teraterm.hhp
The first digit is 5.
The second digit is:
Tera Term VT window 0
Tera Term TEK window 1
TTSSH 2
TTProxy 3
TTXKanjiMenu 4
The third digit is:
[File] menu 1
[Edit] menu 2
[Setup] menu 3
[Control] menu 4
[Window] menu 8
[Help] menu 9
Example: adding a TTSSH menu under File menu
#define ID_SSHSCPMENU 52110
Icon
Icon file includes 4bit 32px and 16px images, 32bit 256px, 48px, 32px and 16px images.
Each icon files include following kind images.
T (Tera Term)
icon file | icon name | 4bit 32px | 4bit 16px | 32bit 256px | 32bit 48px | 32bit 32px | 32bit 16px |
teraterm\common\teraterm.ico | TTERM (Default) | BMP | BMP | PNG | BMP | BMP | BMP |
teraterm\common\teraterm_classic.ico | TTERM_CLASSIC | BMP | BMP | - | - | - | - |
teraterm\common\teraterm_3d.ico | TTERM_3D | BMP | BMP | PNG | BMP | BMP | BMP |
teraterm\common\teraterm_flat.ico | TTERM_FLAT | BMP | BMP | PNG | BMP | BMP | BMP |
VT (VT Window)
icon file | icon name | 4bit 32px | 4bit 16px | 32bit 256px | 32bit 48px | 32bit 32px | 32bit 16px |
teraterm\common\vt.ico | VT (Default) | BMP | BMP | PNG | BMP | BMP | BMP |
teraterm\common\vt_classic.ico | VT_CLASSIC | BMP | BMP | - | - | - | - |
teraterm\common\vt_3d.ico | VT_3D | BMP | BMP | PNG | BMP | BMP | BMP |
teraterm\common\vt_flat.ico | VT_FLAT | BMP | BMP | PNG | BMP | BMP | BMP |
TEK (TEK Windows)
icon file | icon name | 4bit 32px | 4bit 16px | 32bit 256px | 32bit 48px | 32bit 32px | 32bit 16px |
teraterm\common\tek.ico | TEK | BMP | BMP | - | - | - | - |
M (Macro)
icon file | icon name | 4bit 32px | 4bit 16px | 32bit 256px | 32bit 48px | 32bit 32px | 32bit 16px |
teraterm\ttpmacro\ttmacro.ico | - | BMP | BMP | PNG | BMP | BMP | BMP |
teraterm\ttpmacro\ttmacro_3d.ico | - | BMP | BMP | PNG | BMP | BMP | BMP |
teraterm\ttpmacro\ttmacro_flat.ico | - | BMP | BMP | PNG | BMP | BMP | BMP |
MF (Macro File)
icon file | icon name | 4bit 32px | 4bit 16px | 32bit 256px | 32bit 48px | 32bit 32px | 32bit 16px |
teraterm\ttpmacro\ttmacrof.ico | - | BMP | BMP | PNG | BMP | BMP | BMP |
keycode
icon file | icon name | 4bit 32px | 4bit 16px | 32bit 256px | 32bit 48px | 32bit 32px | 32bit 16px |
teraterm\keycode\keycode.ico | - | BMP | BMP | - | BMP | - | - |
TTSSH
icon file | icon name | 4bit 32px | 4bit 16px | 32bit 256px | 32bit 48px | 32bit 32px | 32bit 16px |
teraterm\ttpmacro\ttsecure.ico | flat2 (Default) | BMP | BMP | PNG | BMP | BMP | BMP |
teraterm\ttpmacro\ttsecure_classic.ico | classic | BMP | BMP | - | - | - | - |
teraterm\ttpmacro\ttsecure_yellow.ico | yellow | BMP | BMP | PNG | BMP | BMP | BMP |
teraterm\ttpmacro\ttsecure_green.ico | green | BMP | BMP | PNG | BMP | BMP | BMP |
teraterm\ttpmacro\ttsecure_flat.ico | flat | BMP | BMP | PNG | BMP | BMP | BMP |
TeraTerm Menu
icon file | icon name | 4bit 32px | 4bit 16px | 32bit 256px | 32bit 48px | 32bit 32px | 32bit 16px |
ttpmenu\teraterm.ico | - | BMP | BMP | - | BMP | BMP | BMP |
Cygterm+
icon file | icon name | 4bit 32px | 4bit 16px | 32bit 256px | 32bit 48px | 32bit 32px | 32bit 16px |
cygwin\cygterm\cygterm.ico | CYGTERM | BMP | BMP | - | BMP | BMP | BMP |
The store order of image files in icon file is "bit depth ASC", "pixel size DESC."
Otherwise, when a program load an icon image without specifying pixel size for get maximum size image, API returns first image.
Icon file include 4-bit images.
Windows NT 4.0 supports only 4-bit icon. And notification area icon on Windows 2000 supports only 4-bit icon.
4-bit color palette is followings:
| #000000 | (0,0,0) |
| #800000 | (128,0,0) |
| #ff0000 | (255,0,0) |
| #ff00ff | (255,0,255) |
| #008080 | (0,128,128) |
| #008000 | (0,128,0) |
| #00ff00 | (0,255,0) |
| #00ffff | (0,255,255) |
| #000080 | (0,0,128) |
| #800080 | (128,0,128) |
| #0000ff | (0,0,255) |
| #c0c0c0 | (192,192,192) |
| #808080 | (128,128,128) |
| #808000 | (128,128,0) |
| #ffff00 | (255,255,0) |
| #ffffff | 255,255,255 |
Source file of each icon images are followings:
source file |
bit |
T |
VT |
Macro |
SSH |
Cygwin |
teraterm\common\flat_icon_16.psd |
4bit |
v |
v |
v |
v |
v |
32bit |
v |
v |
v |
v |
v |
teraterm\common\flat_icon_32.psd |
4bit |
v |
v |
v |
v |
v |
32bit |
v |
v |
v |
v |
v |
teraterm\common\flat_icon_48.psd |
32bit |
v |
v |
v |
v |
v |
teraterm\common\flat_icon_256.psd |
32bit |
v |
v |
v |
v |
- |
source file |
bit |
Keycode |
teraterm\common\keycode_48.psd |
4bit |
v |
source file |
bit |
T |
VT |
Macro |
Macro File |
SSH |
Cygwin |
teraterm\common\flat2_icon_16.psd |
4bit |
v |
v |
v |
v |
v |
v |
32bit |
v |
v |
v |
v |
v |
v |
teraterm\common\flat2_icon_32.psd |
4bit |
v |
v |
v |
v |
v |
v |
32bit |
v |
v |
v |
v |
v |
v |
teraterm\common\flat2_icon_48.psd |
32bit |
v |
v |
v |
v |
v |
v |
teraterm\common\flat2_icon_256.psd |
32bit |
v |
v |
v |
v |
v |
- |
Parts that need to be corrected when update a library
Files
- doc/(en|ja)/html/about/history.html
- Add to "Misc" section of a component which uses the library.
- doc/(en|ja)/html/reference/develop.html
- libs/download.cmake
- Modify version in SRC_URL
- Modify version in DIR_IN_ARC
- Modify ARC_HASH (for check corruption due to download)
- Use hash from official site. (LibreSSL, Oniguruma, zlib)
- If official site does not post hash, calc it. (argon2, cJSON, SFMT)
- Modify CHECK_HASH (for check version)
- Calc hash of a file for version check.
- Under add/manual folder of TeraTermProject/update_website repository
- License files for web site is managed in TeraTermProject/update_website repository.
Replace a license file when it is cahnged.
Calc hash
% sha256sum foo.bar
% openssl dgst -sha256 foo.bar
Dump
About debug with dump file.
Required Files
- dmp file(mini dump file)
-
Output to folder
%LOCALAPPDATA%\teraterm5
when ttermpro.exe crash.
File name will be teraterm_YYYMMDD-HHMMSS_HASH.dmp.
- pdb file
-
pdb = program database files (symbol files)
debug infomation file for exe file
- exe file
-
ttermpro.exe
How to use
- click dump file to start Visual Studio
- click [Debugging in native only]