mirror of
https://github.com/junegunn/fzf.git
synced 2026-10-08 05:04:52 +08:00
Fix #248 - Premature termination of Reader on long input
This commit is contained in:
1 parent
fdbfe36c0b
commit
b00bcf506e
2 files changed
+34
-3
No files matched your search
+23
-3
@@ -30,9 +30,29 @@ func (r *Reader) ReadSource() {
|
||||
}
|
||||
|
||||
func (r *Reader) feed(src io.Reader) {
|
||||
if scanner := bufio.NewScanner(src); scanner != nil {
|
||||
for scanner.Scan() {
|
||||
r.pusher(scanner.Text())
|
||||
reader := bufio.NewReader(src)
|
||||
eof := false
|
||||
Loop:
|
||||
for !eof {
|
||||
buf := []byte{}
|
||||
iter := 0 // TODO: max size?
|
||||
for {
|
||||
// "ReadLine either returns a non-nil line or it returns an error, never both"
|
||||
line, isPrefix, err := reader.ReadLine()
|
||||
eof = err == io.EOF
|
||||
if eof {
|
||||
break
|
||||
} else if err != nil {
|
||||
break Loop
|
||||
}
|
||||
iter++
|
||||
buf = append(buf, line...)
|
||||
if !isPrefix {
|
||||
break
|
||||
}
|
||||
}
|
||||
if iter > 0 {
|
||||
r.pusher(string(buf))
|
||||
r.eventBox.Set(EvtReadNew, nil)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user