tttset 構造体に ExeDirW と LogDirW を追加
- ttsset.ExeDirW
- tttset.HomeDirW
- tttset.LogDirW
@@ -361,7 +361,7 @@ | ||
361 | 361 | struct tttset { |
362 | 362 | /*------ VTSet --------*/ |
363 | 363 | /* Tera Term home directory */ |
364 | - char HomeDir[MAXPATHLEN]; // ttermpro.exe のあるフォルダ | |
364 | + char HomeDir[MAXPATHLEN]; // ttermpro.exe のあるフォルダ(個人設定ファイルのあるフォルダ) | |
365 | 365 | |
366 | 366 | /* Setup file name */ |
367 | 367 | char SetupFName[MAX_PATH]; |
@@ -645,13 +645,15 @@ | ||
645 | 645 | BYTE UnicodeAmbiguousWidth; |
646 | 646 | BYTE UnicodeEmojiOverride; |
647 | 647 | BYTE UnicodeEmojiWidth; |
648 | - wchar_t *HomeDirW; // ttermpro.exe のあるフォルダ | |
649 | - wchar_t *SetupFNameW; | |
650 | - wchar_t *KeyCnfFNW; | |
648 | + wchar_t *HomeDirW; // ttermpro.exe のあるフォルダ(個人設定ファイルのあるフォルダ) | |
649 | + wchar_t *SetupFNameW; // "TERATERM.INI" のフルパス | |
650 | + wchar_t *KeyCnfFNW; // "KEYBOARD.CNF" のフルパス | |
651 | 651 | wchar_t *LogFNW; |
652 | 652 | wchar_t *MacroFNW; |
653 | 653 | wchar_t *UILanguageFileW; // 絶対パス |
654 | 654 | wchar_t *UILanguageFileW_ini; // 相対パス,iniファイルの中身 |
655 | + wchar_t *ExeDirW; // ttermpro.exe のあるフォルダ | |
656 | + wchar_t *LogDirW; // logやダンプを置くフォルダ | |
655 | 657 | }; |
656 | 658 | |
657 | 659 | typedef struct tttset TTTSet, *PTTSet; |
@@ -109,6 +109,17 @@ | ||
109 | 109 | memcpy(&pm->ts, ts, sizeof(TTTSet)); |
110 | 110 | } |
111 | 111 | |
112 | +static wchar_t* GetLogDirW() | |
113 | +{ | |
114 | + wchar_t *local_app_data; | |
115 | + wchar_t *log; | |
116 | + _SHGetKnownFolderPath(&FOLDERID_LocalAppData, 0, NULL, &local_app_data); | |
117 | + aswprintf(&log, L"%s\\%s", local_app_data, L"teraterm5"); | |
118 | + free(local_app_data); | |
119 | + CreateDirectoryW(log, NULL); | |
120 | + return log; | |
121 | +} | |
122 | + | |
112 | 123 | BOOL WINAPI StartTeraTerm(PTTSet ts) |
113 | 124 | { |
114 | 125 | if (FirstInstance) { |
@@ -128,6 +139,8 @@ | ||
128 | 139 | // if (FirstInstance) { の部分から移動 (2008.3.13 maya) |
129 | 140 | // 起動時には、共有メモリの HomeDir と SetupFName は空になる |
130 | 141 | /* Get home directory (ttermpro.exeのフォルダ) */ |
142 | + ts->ExeDirW = GetHomeDirW(hInst); | |
143 | + ts->LogDirW = GetLogDirW(); | |
131 | 144 | ts->HomeDirW = GetHomeDirW(hInst); |
132 | 145 | WideCharToACP_t(ts->HomeDirW, ts->HomeDir, _countof(ts->HomeDir)); |
133 | 146 | SetCurrentDirectoryW(ts->HomeDirW); |