[ttssh2-commit] [10464] 標準ログファイル名の文字長の制限をなくした

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2023年 1月 8日 (日) 00:12:14 JST


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


ttssh2-commit メーリングリストの案内
Back to archive index