os: use small buffer when reading from windows console

Fixes #5481.

R=golang-dev, dominik.honnef, bradfitz
CC=golang-dev
https://golang.org/cl/9437044
This commit is contained in:
Alex Brainman 2013-05-16 17:20:13 +10:00
parent 78f5b616fc
commit a65f861bfa
1 changed files with 7 additions and 1 deletions

View File

@ -251,8 +251,14 @@ func (f *File) readConsole(b []byte) (n int, err error) {
return 0, nil
}
if len(f.readbuf) == 0 {
// syscall.ReadConsole seems to fail, if given large buffer.
// So limit the buffer to 16000 characters.
readN := 16000
if len(b) < readN {
readN = len(b)
}
// get more input data from os
wchars := make([]uint16, len(b))
wchars := make([]uint16, readN)
var p *uint16
if len(b) > 0 {
p = &wchars[0]