Просмотр исходного кода

Merge pull request #24961 from jstarks/vt_th2_fix

Windows: Restore console mode on set mode failure
Vincent Demeester 9 лет назад
Родитель
Сommit
bff9a0556f
1 измененных файлов с 3 добавлено и 1 удалено
  1. 3 1
      pkg/term/term_windows.go

+ 3 - 1
pkg/term/term_windows.go

@@ -44,9 +44,11 @@ func StdStreams() (stdIn io.ReadCloser, stdOut, stdErr io.Writer) {
 		if err = winterm.SetConsoleMode(fd, mode|enableVirtualTerminalInput); err != nil {
 			emulateStdin = true
 		} else {
-			winterm.SetConsoleMode(fd, mode)
 			vtInputSupported = true
 		}
+		// Unconditionally set the console mode back even on failure because SetConsoleMode
+		// remembers invalid bits on input handles.
+		winterm.SetConsoleMode(fd, mode)
 	}
 
 	fd = os.Stdout.Fd()