From fddbfe7b0ed01fe9c23950e0e9eaf1f576c0eecd Mon Sep 17 00:00:00 2001 From: Junegunn Choi Date: Thu, 25 Apr 2024 16:42:13 +0900 Subject: [PATCH] Fix 'reload' not terminating closed standard input stream Fix #3750 --- src/reader.go | 2 +- test/test_go.rb | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/reader.go b/src/reader.go index a7e002c0..82648a68 100644 --- a/src/reader.go +++ b/src/reader.go @@ -147,7 +147,7 @@ func (r *Reader) feed(src io.Reader) { } // We're not making any progress after 100 tries. Stop. - if n == 0 && err == nil { + if n == 0 { break } diff --git a/test/test_go.rb b/test/test_go.rb index 537a9bd4..ba067997 100755 --- a/test/test_go.rb +++ b/test/test_go.rb @@ -1955,6 +1955,11 @@ class TestGoFZF < TestBase tmux.until { |lines| assert_equal 10, lines.item_count } end + def test_reload_should_terminate_stadard_input_stream + tmux.send_keys %(ruby -e "STDOUT.sync = true; loop { puts 1; sleep 0.1 }" | fzf --bind 'start:reload(seq 100)'), :Enter + tmux.until { |lines| assert_equal 100, lines.item_count } + end + def test_clear_list_when_header_lines_changed_due_to_reload tmux.send_keys %(seq 10 | #{FZF} --header 0 --header-lines 3 --bind 'space:reload(seq 1)'), :Enter tmux.until { |lines| assert_includes lines, ' 9' }