From aebb2322ebc282b7fd27cb5dcaa88111cc48bfd5 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Wed, 14 Feb 2018 14:17:13 +0900 Subject: [PATCH 1/2] read buffered input --- windows_input.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/windows_input.go b/windows_input.go index cde28c1..6eec2c7 100644 --- a/windows_input.go +++ b/windows_input.go @@ -49,6 +49,13 @@ func (p *WindowsParser) Read() ([]byte, error) { return []byte{}, err } n := utf8.EncodeRune(buf[:], r) + for p.tty.Buffered() { + r, err := p.tty.ReadRune() + if err != nil { + break + } + n += utf8.EncodeRune(buf[n:], r) + } return buf[:n], nil } From a318362be30c1b8852f6faace8355ff61721228f Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Wed, 14 Feb 2018 14:55:48 +0900 Subject: [PATCH 2/2] check maxReadBytes --- windows_input.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows_input.go b/windows_input.go index 6eec2c7..13b332a 100644 --- a/windows_input.go +++ b/windows_input.go @@ -49,7 +49,7 @@ func (p *WindowsParser) Read() ([]byte, error) { return []byte{}, err } n := utf8.EncodeRune(buf[:], r) - for p.tty.Buffered() { + for p.tty.Buffered() && n < maxReadBytes { r, err := p.tty.ReadRune() if err != nil { break