diff --git a/src/Native/Unix/System.Native/pal_console.c b/src/Native/Unix/System.Native/pal_console.c index f59d5e70cb2e..e2f15174001f 100644 --- a/src/Native/Unix/System.Native/pal_console.c +++ b/src/Native/Unix/System.Native/pal_console.c @@ -192,7 +192,7 @@ static bool ConfigureTerminal(bool signalForBreak, bool forChild, uint8_t minCha if (g_currentTermios.c_lflag == termios.c_lflag && g_currentTermios.c_iflag == termios.c_iflag && g_currentTermios.c_cc[VMIN] == termios.c_cc[VMIN] && - g_currentTermios.c_cc[VMIN] == termios.c_cc[VMIN]) + g_currentTermios.c_cc[VTIME] == termios.c_cc[VTIME]) { return true; } diff --git a/src/System.Diagnostics.Process/src/System/Diagnostics/Process.Unix.cs b/src/System.Diagnostics.Process/src/System/Diagnostics/Process.Unix.cs index 10762644e4bf..26b486b60366 100644 --- a/src/System.Diagnostics.Process/src/System/Diagnostics/Process.Unix.cs +++ b/src/System.Diagnostics.Process/src/System/Diagnostics/Process.Unix.cs @@ -398,8 +398,9 @@ private bool StartCore(ProcessStartInfo startInfo) // Unix applications expect the terminal to be in an echoing state by default. // To support processes that interact with the terminal (e.g. 'vi'), we need to configure the // terminal to echo. We keep this configuration as long as there are children possibly using the terminal. - // We consider the child to be interactively using the terminal when both stdin and stdout are connected. - bool usesTerminal = !startInfo.RedirectStandardInput && !startInfo.RedirectStandardOutput; + bool usesTerminal = !(startInfo.RedirectStandardInput && + startInfo.RedirectStandardOutput && + startInfo.RedirectStandardError); if (startInfo.UseShellExecute) {