mirror of
https://github.com/vim/vim.git
synced 2026-05-28 00:21:37 +02:00
patch 9.2.0114: MS-Windows: terminal output may go to wrong terminal
Problem: MS-Windows: terminal output may go to wrong terminal with
ConPTY
Solution: Explicitly disable inheriting the terminal handles
(gcrtnst).
closes: #19589
Signed-off-by: gcrtnst <52910071+gcrtnst@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
bd77d327d3
commit
78ae2ff094
@@ -7134,6 +7134,15 @@ conpty_term_and_job_init(
|
||||
|
||||
term->tl_siex.StartupInfo.cb = sizeof(term->tl_siex);
|
||||
|
||||
// Explicitly invalidate std handles to prevent inheritance of
|
||||
// the debugger's stdout (e.g., in Visual Studio debugging sessions),
|
||||
// which could cause job output to go to the debugger instead of
|
||||
// the intended ConPTY, even with bInheritHandles set to FALSE in CreateProcess.
|
||||
term->tl_siex.StartupInfo.dwFlags = STARTF_USESTDHANDLES;
|
||||
term->tl_siex.StartupInfo.hStdInput = INVALID_HANDLE_VALUE;
|
||||
term->tl_siex.StartupInfo.hStdOutput = INVALID_HANDLE_VALUE;
|
||||
term->tl_siex.StartupInfo.hStdError = INVALID_HANDLE_VALUE;
|
||||
|
||||
// Set up pipe inheritance safely: Vista or later.
|
||||
pInitializeProcThreadAttributeList(NULL, 1, 0, &breq);
|
||||
term->tl_siex.lpAttributeList = alloc(breq);
|
||||
|
||||
@@ -734,6 +734,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
114,
|
||||
/**/
|
||||
113,
|
||||
/**/
|
||||
|
||||
Reference in New Issue
Block a user