ログデフォルトファイル名に strftime が正しく置換されない
Eröffnet am: 2023-01-07 14:23
Letztes Update: 2023-01-18 22:34
Auswertung: | tomo3136 | Verantwortlicher: | (Keine) |
---|---|---|---|
Priorität: | 5 - Mittel | Meilenstein: | Tera Term 5.0 |
Typ: | Fehler | Schweregrad: | 5 - Mittel |
Komponente: | Tera Term | Status: | Offen |
Lösung | Keine |
Einzelheiten
ログデフォルトファイル名に strftime 文字列で指定した場合、置換は行われるが、地域に合った文字列に置換されない。
teraterm/teraterm/terater.cpp の WinMain() でロケールクリアすれば正しく置換される。(コントロールパネル「言語と地域設定」の設定が使われる)
setlocale(LC_ALL, "");
以下の環境で行っています。(win11 でビルドしているけど vs2022 にあげてないからかも)
実行環境:Windows 11 Home 22H2 22621.963
ビルド環境:Visual Studio 2019 Community/Windows SDK version 10.0.17763.0/cmake version 3.25.0-rc1
Kommentar
Tera Term 4 はプログラム内で
とやっているので環境変数の影響は受けないのではないかと思います。ハングアップするのは腑に落ちないですね。
Tera Term 5 は setlocale()を行っていません。
起動時に setlocale(LC_ALL, "C") と同等な処理が行われるようです。
https://learn.microsoft.com/ja-jp/cpp/c-runtime-library/reference/setlocale-wsetlocale?view=msvc-170
Tera Term 5 の起動最初の方で
を実行しておいた方がよさそうですね。入れようと思いますが、 特に問題なさそうですか?