[ttssh2-commit] [10936] ウィンドウタイトルをスタックに保存(CSI 22)が行えない場合があったので修正

Back to archive index
scmno****@osdn***** scmno****@osdn*****
2023年 9月 16日 (土) 23:32:22 JST


Revision: 10936
          https://osdn.net/projects/ttssh2/scm/svn/commits/10936
Author:   zmatsuo
Date:     2023-09-16 23:32:22 +0900 (Sat, 16 Sep 2023)
Log Message:
-----------
ウィンドウタイトルをスタックに保存(CSI 22)が行えない場合があったので修正

- リモートタイトルが設定されていない場合

Modified Paths:
--------------
    trunk/teraterm/teraterm/vtterm.c

-------------- next part --------------
Modified: trunk/teraterm/teraterm/vtterm.c
===================================================================
--- trunk/teraterm/teraterm/vtterm.c	2023-09-16 14:32:12 UTC (rev 10935)
+++ trunk/teraterm/teraterm/vtterm.c	2023-09-16 14:32:22 UTC (rev 10936)
@@ -2451,6 +2451,7 @@
 		MoveCursor(0, 0);
 }
 
+// CSI sequence
 static void CSSunSequence() /* Sun terminal private sequences */
 {
 	int x, y, len;
@@ -2706,10 +2707,15 @@
 		  case 2: {
 			PTStack t;
 			if (ts.AcceptTitleChangeRequest && (t=malloc(sizeof(TStack))) != NULL) {
-				if ((t->title = _wcsdup(cv.TitleRemoteW)) != NULL) {
+				if (cv.TitleRemoteW == NULL) {
+					t->title = NULL;
 					t->next = TitleStack;
 					TitleStack = t;
 				}
+				else if ((t->title = _wcsdup(cv.TitleRemoteW)) != NULL) {
+					t->next = TitleStack;
+					TitleStack = t;
+				}
 				else {
 					free(t);
 				}
@@ -4985,6 +4991,7 @@
 	}
 }
 
+// OSC Sequence
 static void XSequence(BYTE b)
 {
 	static char *StrBuff = NULL;
@@ -5032,10 +5039,15 @@
 		  case 1: /* Change icon name */
 		  case 2: /* Change window title */
 			if (StrBuff && ts.AcceptTitleChangeRequest) {
-				size_t len = strlen(StrBuff);
-				wchar_t *titleW = ConvertUTF16(StrBuff, len);
+				const size_t len = strlen(StrBuff);
 				free(cv.TitleRemoteW);
-				cv.TitleRemoteW = titleW;
+				if (len == 0) {
+					cv.TitleRemoteW = NULL;
+				}
+				else {
+					wchar_t *titleW = ConvertUTF16(StrBuff, len);
+					cv.TitleRemoteW = titleW;
+				}
 				ChangeTitle();
 			}
 			break;


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