Revision: 10464 https://osdn.net/projects/ttssh2/scm/svn/commits/10464 Author: zmatsuo Date: 2023-01-08 00:12:14 +0900 (Sun, 08 Jan 2023) Log Message: ----------- 標準ログファイル名の文字長の制限をなくした - ドロップダウンのエディットボックス部分は表示幅が文字長上限となるようだ - CBS_AUTOHSCROLLを付ければ制限なく入力できるようになる - wcsftime()でフォーマットする時文字長を自動拡張するようにした - 修正前(r10444)は最大128文字固定だった ticket #46481 Revision Links: -------------- https://osdn.net/projects/ttssh2/scm/svn/commits/10444 Ticket Links: ------------ https://osdn.net/projects/ttssh2/tracker/detail/46481 Modified Paths: -------------- trunk/teraterm/teraterm/addsetting.cpp trunk/teraterm/teraterm/filesys_log.cpp trunk/teraterm/teraterm/ttermpro.rc -------------- next part -------------- Modified: trunk/teraterm/teraterm/addsetting.cpp =================================================================== --- trunk/teraterm/teraterm/addsetting.cpp 2023-01-07 15:12:04 UTC (rev 10463) +++ trunk/teraterm/teraterm/addsetting.cpp 2023-01-07 15:12:14 UTC (rev 10464) @@ -1457,6 +1457,7 @@ const wchar_t *pattern = logfile_patterns[i]; SendDlgItemMessageW(IDC_DEFAULTNAME_EDITOR, CB_ADDSTRING, 0, (LPARAM)pattern); } + ExpandCBWidth(m_hWnd, IDC_DEFAULTNAME_EDITOR); // Log Default File Path (2007.5.30 maya) SetDlgItemTextW(IDC_DEFAULTPATH_EDITOR, ts.LogDefaultPathW); Modified: trunk/teraterm/teraterm/filesys_log.cpp =================================================================== --- trunk/teraterm/teraterm/filesys_log.cpp 2023-01-07 15:12:04 UTC (rev 10463) +++ trunk/teraterm/teraterm/filesys_log.cpp 2023-01-07 15:12:14 UTC (rev 10464) @@ -1385,14 +1385,24 @@ wchar_t *FLogGetLogFilenameBase(const wchar_t *filename) { // \x83t\x83@\x83C\x83\x8B\x96\xBC\x95\x94\x95\xAA\x82𒊏o - wchar_t *format = ExtractFileNameW(filename); - if (format == NULL) { - format = wcsdup(L""); + const wchar_t *last_path_sep = wcsrchr(filename, L'\\'); + wchar_t *format; + if (last_path_sep == NULL) { + format = wcsdup(filename); } + else { + format = wcsdup(last_path_sep + 1); + } // strftime \x82Ɏg\x97p\x82ł\xAB\x82Ȃ\xA2\x95\xB6\x8E\x9A\x82\xF0\x8D폜 deleteInvalidStrftimeCharW(format); + // \x95\xB6\x8E\x9A\x97\xAA0\x82ɂȂ\xC1\x82\xBD? + if (format[0] == 0) { + free(format); + return wcsdup(L""); + } + // \x8C\xBB\x8Dݎ\x9E\x8D\x8F\x82\xF0\x8E擾 time_t time_local; time(&time_local); @@ -1400,12 +1410,23 @@ localtime_s(&tm_local, &time_local); // strftime()\x82ŕϊ\xB7 - size_t len = 128; - wchar_t *formated = (wchar_t*)malloc(sizeof(wchar_t) * len); - size_t r = wcsftime(formated, len, format, &tm_local); - if (r == 0) { - // \x83G\x83\x89\x81[\x82\xAA\x95Ԃ\xC1\x82Ă\xAB\x82\xBD - wcscpy(formated, format); + // \x95\xB6\x8E\x9A\x97̈\xE6\x82͎\xA9\x93\xAE\x8Ag\x92\xA3 + size_t len = 32; + wchar_t *formated = NULL; + while (1) { + wchar_t *formated_realloc = (wchar_t *)realloc(formated, sizeof(wchar_t) * len); + if (formated_realloc == NULL) { + free(format); + free(formated); + return wcsdup(L""); + } + formated = formated_realloc; + size_t r = wcsftime(formated, len, format, &tm_local); + if (r != 0) { + // \x83t\x83H\x81[\x83}\x83b\x83g\x82ł\xAB\x82\xBD + break; + } + len *= 2; } free(format); Modified: trunk/teraterm/teraterm/ttermpro.rc =================================================================== --- trunk/teraterm/teraterm/ttermpro.rc 2023-01-07 15:12:04 UTC (rev 10463) +++ trunk/teraterm/teraterm/ttermpro.rc 2023-01-07 15:12:14 UTC (rev 10464) @@ -211,7 +211,7 @@ EDITTEXT IDC_VIEWLOG_EDITOR,11,21,120,12,ES_AUTOHSCROLL PUSHBUTTON "...",IDC_VIEWLOG_PATH,135,22,13,10 LTEXT "Default log &file name(strftime format)",IDC_DEFAULTNAME_LABEL,10,41,139,8 - COMBOBOX IDC_DEFAULTNAME_EDITOR,11,52,120,67,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + COMBOBOX IDC_DEFAULTNAME_EDITOR,11,52,120,67,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP LTEXT "Default log &save folder",IDC_DEFAULTPATH_LABEL,10,72,139,8 EDITTEXT IDC_DEFAULTPATH_EDITOR,11,83,120,12,ES_AUTOHSCROLL PUSHBUTTON "...",IDC_DEFAULTPATH_PUSH,135,84,13,10