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;