• R/O
  • SSH
  • HTTPS

ttssh2: コミット


コミットメタ情報

リビジョン9959 (tree)
日時2022-05-24 23:21:17
作者zmatsuo

ログメッセージ

tttypes にテーマ関連のパスのUnicode版を追加

- BGImageFilePathW
- EtermLookfeel.BGThemeFileW
- EtermLookfeel.BGSPIPathW

ticket #44048

変更サマリ

差分

--- trunk/teraterm/common/teraterm.h (revision 9958)
+++ trunk/teraterm/common/teraterm.h (revision 9959)
@@ -59,12 +59,15 @@
5959
6060 // Eterm look-feel
6161 #define BG_SECTION "BG"
62+#define BG_SECTIONW L"BG"
6263 #define BG_DESTFILE "BGDestFile"
64+#define BG_DESTFILEW L"BGDestFile"
6365 #define BG_THEME_DIR L"theme"
6466 #define BG_THEME_IMAGEFILE "theme\\ImageFile.INI"
6567 #define BG_THEME_IMAGEFILE_DEFAULT "theme\\*.INI"
6668 #define BG_THEME_IMAGE_BRIGHTNESS_DEFAULT 64
6769 #define BG_THEME_IMAGE_BRIGHTNESS1 "BGSrc1Alpha"
70+#define BG_THEME_IMAGE_BRIGHTNESS1W L"BGSrc1Alpha"
6871 #define BG_THEME_IMAGE_BRIGHTNESS2 "BGSrc2Alpha"
6972 #define BG_THEME_IMAGEFILE_NAME "ImageFile.INI"
7073 #define BG_THEME_THEMEFILE_SCALE "Scale.INI"
--- trunk/teraterm/common/tttypes.h (revision 9958)
+++ trunk/teraterm/common/tttypes.h (revision 9959)
@@ -330,6 +330,8 @@
330330 char BGThemeFile[MAX_PATH];
331331 int BGIgnoreThemeFile;
332332 char reserve[20];
333+ wchar_t *BGThemeFileW;
334+ wchar_t *BGSPIPathW;
333335 } eterm_lookfeel_t;
334336
335337 typedef struct cygterm {
@@ -648,6 +650,7 @@
648650 wchar_t *ExeDirW; // ttermpro.exe のあるフォルダ
649651 wchar_t *LogDirW; // logやダンプを置くフォルダ
650652 wchar_t *FileDirW; // ダウンロードパス("%APPDATA%" 等が含まれる,使用前に環境変数を展開すること)
653+ wchar_t *BGImageFilePathW;
651654 wchar_t *LogDefaultPathW; // ログフォルダ([file]/[log]メニューのログ)
652655 };
653656
--- trunk/teraterm/teraterm/vtdisp.c (revision 9958)
+++ trunk/teraterm/teraterm/vtdisp.c (revision 9959)
@@ -42,6 +42,7 @@
4242 #include "setting.h"
4343 #include "codeconv.h"
4444 #include "libsusieplugin.h"
45+#include "asprintf.h"
4546 #include "inifile_com.h"
4647 #include "win32helper.h"
4748
@@ -1370,12 +1371,10 @@
13701371 */
13711372 void BGInitialize(BOOL initialize_once)
13721373 {
1373- char path[MAX_PATH], config_file[MAX_PATH], tempPath[MAX_PATH];
1374- char BGSPIPath[MAX_PATH];
1374+ char path[MAX_PATH];
1375+ char config_file[MAX_PATH];
13751376
1376- ZeroMemory(path, sizeof(path));
13771377 ZeroMemory(config_file, sizeof(config_file));
1378- ZeroMemory(tempPath, sizeof(tempPath));
13791378
13801379 // VTColor を読み込み
13811380 BGVTColor[0] = ts.VTColor[0];
@@ -1390,18 +1389,8 @@
13901389 BGVTReverseColor[0] = ts.VTReverseColor[0];
13911390 BGVTReverseColor[1] = ts.VTReverseColor[1];
13921391
1393-#if 1
1394- // ハイパーリンク描画の復活。(2009.8.26 yutaka)
1395- /* begin - ishizaki */
13961392 BGURLColor[0] = ts.URLColor[0];
13971393 BGURLColor[1] = ts.URLColor[1];
1398- /* end - ishizaki */
1399-#else
1400- // TODO: ハイパーリンクの描画がリアルタイムに行われないことがあるので、
1401- // 色属性変更はいったん取りやめることにする。将来、対応する。(2005.4.3 yutaka)
1402- BGURLColor[0] = ts.VTColor[0];
1403- BGURLColor[1] = ts.VTColor[1];
1404-#endif
14051394
14061395 // ANSI color設定のほうを優先させる (2005.2.3 yutaka)
14071396 InitColorTable();
@@ -1419,22 +1408,29 @@
14191408 BGEnable = BGGetOnOff("BGEnable", FALSE, ts.SetupFNameW);
14201409 }
14211410
1422- GetPrivateProfileString(BG_SECTION, "BGSPIPath", "plugin", BGSPIPath, MAX_PATH, ts.SetupFName);
1423- strncpy_s(ts.EtermLookfeel.BGSPIPath, sizeof(ts.EtermLookfeel.BGSPIPath), BGSPIPath, _TRUNCATE);
1411+ hGetPrivateProfileStringW(BG_SECTIONW, L"BGSPIPath", L"plugin", ts.SetupFNameW, &ts.EtermLookfeel.BGSPIPathW);
1412+ WideCharToACP_t(ts.EtermLookfeel.BGSPIPathW, ts.EtermLookfeel.BGSPIPath, sizeof(ts.EtermLookfeel.BGSPIPath));
14241413
14251414 if (ts.EtermLookfeel.BGThemeFile[0] == '\0') {
1426- //コンフィグファイルの決定
1427- GetPrivateProfileString(BG_SECTION, "BGThemeFile", "", path, MAX_PATH, ts.SetupFName);
1428- strncpy_s(ts.EtermLookfeel.BGThemeFile, sizeof(ts.EtermLookfeel.BGThemeFile), path, _TRUNCATE);
1415+ wchar_t *theme_imagefile;
14291416
1417+ //コンフィグファイル(テーマファイル)の決定
1418+ hGetPrivateProfileStringW(BG_SECTIONW, L"BGThemeFile", L"", ts.SetupFNameW, &ts.EtermLookfeel.BGThemeFileW);
1419+ WideCharToACP_t(ts.EtermLookfeel.BGThemeFileW, ts.EtermLookfeel.BGThemeFile, sizeof(ts.EtermLookfeel.BGThemeFile));
1420+
1421+ // テーマファイルImageFile.INIから
1422+ aswprintf(&theme_imagefile, L"%s\\%hs", ts.HomeDirW, BG_THEME_IMAGEFILE);
1423+
14301424 // 背景画像の読み込み
1431- _snprintf_s(path, sizeof(path), _TRUNCATE, "%s\\%s", ts.HomeDir, BG_THEME_IMAGEFILE);
1432- GetPrivateProfileString(BG_SECTION, BG_DESTFILE, "", ts.BGImageFilePath, sizeof(ts.BGImageFilePath), path);
1425+ hGetPrivateProfileStringW(BG_SECTIONW, BG_DESTFILEW, L"", theme_imagefile, &ts.BGImageFilePathW);
1426+ WideCharToACP_t(ts.BGImageFilePathW, ts.BGImageFilePath, _countof(ts.BGImageFilePath));
14331427
14341428 // 背景画像の明るさの読み込み。
14351429 // BGSrc1Alpha と BGSrc2Alphaは同値として扱う。
14361430 ts.BGImgBrightness =
1437- GetPrivateProfileInt(BG_SECTION, BG_THEME_IMAGE_BRIGHTNESS1, BG_THEME_IMAGE_BRIGHTNESS_DEFAULT, path);
1431+ GetPrivateProfileIntW(BG_SECTIONW, BG_THEME_IMAGE_BRIGHTNESS1W, BG_THEME_IMAGE_BRIGHTNESS_DEFAULT, theme_imagefile);
1432+
1433+ free(theme_imagefile);
14381434 }
14391435
14401436 // BGEnableが真でも、initialize_once == FALSEの場合は初期化をしない。
@@ -1458,10 +1454,14 @@
14581454 BGNoCopyBits = ts.EtermLookfeel.BGNoCopyBits;
14591455
14601456 //テンポラリーファイル名を生成
1461- GetTempPath(MAX_PATH, tempPath);
1462- GetTempFileName(tempPath, "ttAK", 0, BGDest.fileTmp);
1463- GetTempFileName(tempPath, "ttAK", 0, BGSrc1.fileTmp);
1464- GetTempFileName(tempPath, "ttAK", 0, BGSrc2.fileTmp);
1457+ {
1458+ char tempPath[MAX_PATH];
1459+ ZeroMemory(tempPath, sizeof(tempPath));
1460+ GetTempPathA(MAX_PATH, tempPath);
1461+ GetTempFileNameA(tempPath, "ttAK", 0, BGDest.fileTmp);
1462+ GetTempFileNameA(tempPath, "ttAK", 0, BGSrc1.fileTmp);
1463+ GetTempFileNameA(tempPath, "ttAK", 0, BGSrc2.fileTmp);
1464+ }
14651465
14661466 //デフォルト値
14671467 BGDest.type = BG_PICTURE;
旧リポジトリブラウザで表示