Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package fzf for openSUSE:Factory checked in at 2023-06-11 19:54:36 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/fzf (Old) and /work/SRC/openSUSE:Factory/.fzf.new.15902 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fzf" Sun Jun 11 19:54:36 2023 rev:35 rq:1091832 version:0.41.1 Changes: -------- --- /work/SRC/openSUSE:Factory/fzf/fzf.changes 2023-05-27 00:51:15.298920470 +0200 +++ /work/SRC/openSUSE:Factory/.fzf.new.15902/fzf.changes 2023-06-11 19:57:25.899938136 +0200 @@ -1,0 +2,9 @@ +Fri Jun 9 03:32:26 UTC 2023 - Joshua Smith <jsmith...@gmail.com> + +- Update to version 0.41.1: + * Fixed a bug where preview window is not updated when + --disabled is set and a reload is triggered by change:reload + binding + * Added fix-go-test.patch to make test cases work on 0.41.1 + +------------------------------------------------------------------- Old: ---- fzf-0.41.0.tar.gz New: ---- fix-go-test.patch fzf-0.41.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fzf.spec ++++++ --- /var/tmp/diff_new_pack.ZASY66/_old 2023-06-11 19:57:26.507941803 +0200 +++ /var/tmp/diff_new_pack.ZASY66/_new 2023-06-11 19:57:26.515941851 +0200 @@ -18,7 +18,7 @@ %global _lto_cflags %{nil} Name: fzf -Version: 0.41.0 +Version: 0.41.1 Release: 0 Summary: A command-line fuzzy finder License: MIT @@ -26,6 +26,7 @@ URL: https://github.com/junegunn/fzf Source0: https://github.com/junegunn/fzf/archive/refs/tags/%{version}.tar.gz#/%{name}-%{version}.tar.gz Source1: vendor.tar.zst +Patch0: fix-go-test.patch BuildRequires: zstd BuildRequires: golang(API) >= 1.19 ++++++ fix-go-test.patch ++++++ >From 448d7e0c5a717128d499f6a09a978b7addd1d925 Mon Sep 17 00:00:00 2001 From: Junegunn Choi <junegun...@gmail.com> Date: Sat, 27 May 2023 16:01:30 +0900 Subject: [PATCH] Update test case --- src/merger_test.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/merger_test.go b/src/merger_test.go index 5894bea015..5fd1576fd7 100644 --- a/src/merger_test.go +++ b/src/merger_test.go @@ -23,10 +23,10 @@ func randResult() Result { } func TestEmptyMerger(t *testing.T) { - assert(t, EmptyMerger.Length() == 0, "Not empty") - assert(t, EmptyMerger.count == 0, "Invalid count") - assert(t, len(EmptyMerger.lists) == 0, "Invalid lists") - assert(t, len(EmptyMerger.merged) == 0, "Invalid merged list") + assert(t, EmptyMerger(0).Length() == 0, "Not empty") + assert(t, EmptyMerger(0).count == 0, "Invalid count") + assert(t, len(EmptyMerger(0).lists) == 0, "Invalid lists") + assert(t, len(EmptyMerger(0).merged) == 0, "Invalid merged list") } func buildLists(partiallySorted bool) ([][]Result, []Result) { ++++++ fzf-0.41.0.tar.gz -> fzf-0.41.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.41.0/CHANGELOG.md new/fzf-0.41.1/CHANGELOG.md --- old/fzf-0.41.0/CHANGELOG.md 2023-05-25 17:25:09.000000000 +0200 +++ new/fzf-0.41.1/CHANGELOG.md 2023-05-27 08:54:22.000000000 +0200 @@ -1,6 +1,11 @@ CHANGELOG ========= +0.41.1 +------ +- Fixed a bug where preview window is not updated when `--disabled` is set and + a reload is triggered by `change:reload` binding + 0.41.0 ------ - Added color name `preview-border` and `preview-scrollbar` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.41.0/install new/fzf-0.41.1/install --- old/fzf-0.41.0/install 2023-05-25 17:25:09.000000000 +0200 +++ new/fzf-0.41.1/install 2023-05-27 08:54:22.000000000 +0200 @@ -2,7 +2,7 @@ set -u -version=0.41.0 +version=0.41.1 auto_completion= key_bindings= update_config=2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.41.0/install.ps1 new/fzf-0.41.1/install.ps1 --- old/fzf-0.41.0/install.ps1 2023-05-25 17:25:09.000000000 +0200 +++ new/fzf-0.41.1/install.ps1 2023-05-27 08:54:22.000000000 +0200 @@ -1,4 +1,4 @@ -$version="0.41.0" +$version="0.41.1" $fzf_base=Split-Path -Parent $MyInvocation.MyCommand.Definition diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.41.0/man/man1/fzf-tmux.1 new/fzf-0.41.1/man/man1/fzf-tmux.1 --- old/fzf-0.41.0/man/man1/fzf-tmux.1 2023-05-25 17:25:09.000000000 +0200 +++ new/fzf-0.41.1/man/man1/fzf-tmux.1 2023-05-27 08:54:22.000000000 +0200 @@ -21,7 +21,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. .. -.TH fzf-tmux 1 "May 2023" "fzf 0.41.0" "fzf-tmux - open fzf in tmux split pane" +.TH fzf-tmux 1 "May 2023" "fzf 0.41.1" "fzf-tmux - open fzf in tmux split pane" .SH NAME fzf-tmux - open fzf in tmux split pane diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.41.0/man/man1/fzf.1 new/fzf-0.41.1/man/man1/fzf.1 --- old/fzf-0.41.0/man/man1/fzf.1 2023-05-25 17:25:09.000000000 +0200 +++ new/fzf-0.41.1/man/man1/fzf.1 2023-05-27 08:54:22.000000000 +0200 @@ -21,7 +21,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. .. -.TH fzf 1 "May 2023" "fzf 0.41.0" "fzf - a command-line fuzzy finder" +.TH fzf 1 "May 2023" "fzf 0.41.1" "fzf - a command-line fuzzy finder" .SH NAME fzf - a command-line fuzzy finder diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.41.0/src/core.go new/fzf-0.41.1/src/core.go --- old/fzf-0.41.0/src/core.go 2023-05-25 17:25:09.000000000 +0200 +++ new/fzf-0.41.1/src/core.go 2023-05-27 08:54:22.000000000 +0200 @@ -138,7 +138,9 @@ opts.Fuzzy, opts.FuzzyAlgo, opts.Extended, opts.Case, opts.Normalize, forward, withPos, opts.Filter == nil, opts.Nth, opts.Delimiter, runes) } - matcher := NewMatcher(patternBuilder, sort, opts.Tac, eventBox) + inputRevision := 0 + snapshotRevision := 0 + matcher := NewMatcher(patternBuilder, sort, opts.Tac, eventBox, inputRevision) // Filtering mode if opts.Filter != nil { @@ -209,8 +211,6 @@ // Event coordination reading := true - clearCache := util.Once(false) - clearSelection := util.Once(false) ticks := 0 var nextCommand *string eventBox.Watch(EvtReadNew) @@ -231,26 +231,20 @@ useSnapshot := false var snapshot []*Chunk - var prevSnapshot []*Chunk var count int restart := func(command string) { reading = true - clearCache = util.Once(true) - clearSelection = util.Once(true) - // We should not update snapshot if reload is triggered again while - // the previous reload is in progress - if useSnapshot && prevSnapshot != nil { - snapshot, count = chunkList.Snapshot() - } chunkList.Clear() itemIndex = 0 + inputRevision++ header = make([]string, 0, opts.HeaderLines) go reader.restart(command) } for { delay := true ticks++ - input := func(reloaded bool) []rune { + input := func() []rune { + reloaded := snapshotRevision != inputRevision paused, input := terminal.Input() if reloaded && paused { query = []rune{} @@ -280,22 +274,21 @@ } if useSnapshot && evt == EvtReadFin { useSnapshot = false - prevSnapshot = nil } if !useSnapshot { snapshot, count = chunkList.Snapshot() + snapshotRevision = inputRevision } total = count terminal.UpdateCount(total, !reading, value.(*string)) if opts.Sync { opts.Sync = false - terminal.UpdateList(PassMerger(&snapshot, opts.Tac), false) + terminal.UpdateList(PassMerger(&snapshot, opts.Tac, snapshotRevision)) } if heightUnknown && !deferred { determine(!reading) } - reset := !useSnapshot && clearCache() - matcher.Reset(snapshot, input(reset), false, !reading, sort, reset) + matcher.Reset(snapshot, input(), false, !reading, sort, snapshotRevision) case EvtSearchNew: var command *string @@ -320,17 +313,16 @@ if !changed { break } - reset := false if !useSnapshot { newSnapshot, _ := chunkList.Snapshot() // We want to avoid showing empty list when reload is triggered // and the query string is changed at the same time i.e. command != nil && changed if command == nil || len(newSnapshot) > 0 { snapshot = newSnapshot - reset = clearCache() + snapshotRevision = inputRevision } } - matcher.Reset(snapshot, input(reset), true, !reading, sort, reset) + matcher.Reset(snapshot, input(), true, !reading, sort, snapshotRevision) delay = false case EvtSearchProgress: @@ -370,7 +362,7 @@ determine(val.final) } } - terminal.UpdateList(val, clearSelection()) + terminal.UpdateList(val) } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.41.0/src/matcher.go new/fzf-0.41.1/src/matcher.go --- old/fzf-0.41.0/src/matcher.go 2023-05-25 17:25:09.000000000 +0200 +++ new/fzf-0.41.1/src/matcher.go 2023-05-27 08:54:22.000000000 +0200 @@ -12,11 +12,11 @@ // MatchRequest represents a search request type MatchRequest struct { - chunks []*Chunk - pattern *Pattern - final bool - sort bool - clearCache bool + chunks []*Chunk + pattern *Pattern + final bool + sort bool + revision int } // Matcher is responsible for performing search @@ -29,6 +29,7 @@ partitions int slab []*util.Slab mergerCache map[string]*Merger + revision int } const ( @@ -38,7 +39,7 @@ // NewMatcher returns a new Matcher func NewMatcher(patternBuilder func([]rune) *Pattern, - sort bool, tac bool, eventBox *util.EventBox) *Matcher { + sort bool, tac bool, eventBox *util.EventBox, revision int) *Matcher { partitions := util.Min(numPartitionsMultiplier*runtime.NumCPU(), maxPartitions) return &Matcher{ patternBuilder: patternBuilder, @@ -48,7 +49,8 @@ reqBox: util.NewEventBox(), partitions: partitions, slab: make([]*util.Slab, partitions), - mergerCache: make(map[string]*Merger)} + mergerCache: make(map[string]*Merger), + revision: revision} } // Loop puts Matcher in action @@ -70,8 +72,9 @@ events.Clear() }) - if request.sort != m.sort || request.clearCache { + if request.sort != m.sort || request.revision != m.revision { m.sort = request.sort + m.revision = request.revision m.mergerCache = make(map[string]*Merger) clearChunkCache() } @@ -140,11 +143,11 @@ numChunks := len(request.chunks) if numChunks == 0 { - return EmptyMerger, false + return EmptyMerger(request.revision), false } pattern := request.pattern if pattern.IsEmpty() { - return PassMerger(&request.chunks, m.tac), false + return PassMerger(&request.chunks, m.tac, request.revision), false } cancelled := util.NewAtomicBool(false) @@ -218,11 +221,11 @@ partialResult := <-resultChan partialResults[partialResult.index] = partialResult.matches } - return NewMerger(pattern, partialResults, m.sort, m.tac), false + return NewMerger(pattern, partialResults, m.sort, m.tac, request.revision), false } // Reset is called to interrupt/signal the ongoing search -func (m *Matcher) Reset(chunks []*Chunk, patternRunes []rune, cancel bool, final bool, sort bool, clearCache bool) { +func (m *Matcher) Reset(chunks []*Chunk, patternRunes []rune, cancel bool, final bool, sort bool, revision int) { pattern := m.patternBuilder(patternRunes) var event util.EventType @@ -231,5 +234,5 @@ } else { event = reqRetry } - m.reqBox.Set(event, MatchRequest{chunks, pattern, final, sort && pattern.sortable, clearCache}) + m.reqBox.Set(event, MatchRequest{chunks, pattern, final, sort && pattern.sortable, revision}) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.41.0/src/merger.go new/fzf-0.41.1/src/merger.go --- old/fzf-0.41.0/src/merger.go 2023-05-25 17:25:09.000000000 +0200 +++ new/fzf-0.41.1/src/merger.go 2023-05-27 08:54:22.000000000 +0200 @@ -3,32 +3,36 @@ import "fmt" // EmptyMerger is a Merger with no data -var EmptyMerger = NewMerger(nil, [][]Result{}, false, false) +func EmptyMerger(revision int) *Merger { + return NewMerger(nil, [][]Result{}, false, false, revision) +} // Merger holds a set of locally sorted lists of items and provides the view of // a single, globally-sorted list type Merger struct { - pattern *Pattern - lists [][]Result - merged []Result - chunks *[]*Chunk - cursors []int - sorted bool - tac bool - final bool - count int - pass bool + pattern *Pattern + lists [][]Result + merged []Result + chunks *[]*Chunk + cursors []int + sorted bool + tac bool + final bool + count int + pass bool + revision int } // PassMerger returns a new Merger that simply returns the items in the // original order -func PassMerger(chunks *[]*Chunk, tac bool) *Merger { +func PassMerger(chunks *[]*Chunk, tac bool, revision int) *Merger { mg := Merger{ - pattern: nil, - chunks: chunks, - tac: tac, - count: 0, - pass: true} + pattern: nil, + chunks: chunks, + tac: tac, + count: 0, + pass: true, + revision: revision} for _, chunk := range *mg.chunks { mg.count += chunk.count @@ -37,17 +41,18 @@ } // NewMerger returns a new Merger -func NewMerger(pattern *Pattern, lists [][]Result, sorted bool, tac bool) *Merger { +func NewMerger(pattern *Pattern, lists [][]Result, sorted bool, tac bool, revision int) *Merger { mg := Merger{ - pattern: pattern, - lists: lists, - merged: []Result{}, - chunks: nil, - cursors: make([]int, len(lists)), - sorted: sorted, - tac: tac, - final: false, - count: 0} + pattern: pattern, + lists: lists, + merged: []Result{}, + chunks: nil, + cursors: make([]int, len(lists)), + sorted: sorted, + tac: tac, + final: false, + count: 0, + revision: revision} for _, list := range mg.lists { mg.count += len(list) @@ -55,6 +60,11 @@ return &mg } +// Revision returns revision number +func (mg *Merger) Revision() int { + return mg.revision +} + // Length returns the number of items func (mg *Merger) Length() int { return mg.count diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.41.0/src/merger_test.go new/fzf-0.41.1/src/merger_test.go --- old/fzf-0.41.0/src/merger_test.go 2023-05-25 17:25:09.000000000 +0200 +++ new/fzf-0.41.1/src/merger_test.go 2023-05-27 08:54:22.000000000 +0200 @@ -57,7 +57,7 @@ cnt := len(items) // Not sorted: same order - mg := NewMerger(nil, lists, false, false) + mg := NewMerger(nil, lists, false, false, 0) assert(t, cnt == mg.Length(), "Invalid Length") for i := 0; i < cnt; i++ { assert(t, items[i] == mg.Get(i), "Invalid Get") @@ -69,7 +69,7 @@ cnt := len(items) // Sorted sorted order - mg := NewMerger(nil, lists, true, false) + mg := NewMerger(nil, lists, true, false, 0) assert(t, cnt == mg.Length(), "Invalid Length") sort.Sort(ByRelevance(items)) for i := 0; i < cnt; i++ { @@ -79,7 +79,7 @@ } // Inverse order - mg2 := NewMerger(nil, lists, true, false) + mg2 := NewMerger(nil, lists, true, false, 0) for i := cnt - 1; i >= 0; i-- { if items[i] != mg2.Get(i) { t.Error("Not sorted", items[i], mg2.Get(i)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.41.0/src/terminal.go new/fzf-0.41.1/src/terminal.go --- old/fzf-0.41.0/src/terminal.go 2023-05-25 17:25:09.000000000 +0200 +++ new/fzf-0.41.1/src/terminal.go 2023-05-27 08:54:22.000000000 +0200 @@ -228,6 +228,7 @@ merger *Merger selected map[int32]selectedItem version int64 + revision int reqBox *util.EventBox initialPreviewOpts previewOpts previewOpts previewOpts @@ -644,7 +645,7 @@ jumpLabels: opts.JumpLabels, printer: opts.Printer, printsep: opts.PrintSep, - merger: EmptyMerger, + merger: EmptyMerger(0), selected: make(map[int32]selectedItem), reqBox: util.NewEventBox(), initialPreviewOpts: opts.Preview, @@ -930,9 +931,10 @@ } // UpdateList updates Merger to display the list -func (t *Terminal) UpdateList(merger *Merger, reset bool) { +func (t *Terminal) UpdateList(merger *Merger) { t.mutex.Lock() var prevIndex int32 = -1 + reset := t.revision != merger.Revision() if !reset && t.track != trackDisabled { if t.merger.Length() > 0 { prevIndex = t.merger.Get(t.cy).item.Index() @@ -944,6 +946,7 @@ t.merger = merger if reset { t.selected = make(map[int32]selectedItem) + t.revision = merger.Revision() t.version++ } if t.triggerLoad { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fzf-0.41.0/test/test_go.rb new/fzf-0.41.1/test/test_go.rb --- old/fzf-0.41.0/test/test_go.rb 2023-05-25 17:25:09.000000000 +0200 +++ new/fzf-0.41.1/test/test_go.rb 2023-05-27 08:54:22.000000000 +0200 @@ -2935,6 +2935,14 @@ tmux.send_keys "sleep 0.5 | #{FZF} --bind 'start:reload:ls' --bind 'load:become:tty'", :Enter tmux.until { |lines| assert_includes lines, '/dev/tty' } end + + def test_disabled_preview_update + tmux.send_keys "echo bar | #{FZF} --disabled --bind 'change:reload:echo foo' --preview 'echo [{q}-{}]'", :Enter + tmux.until { |lines| assert_equal 1, lines.match_count } + tmux.until { |lines| assert(lines.any? { |line| line.include?('[-bar]') }) } + tmux.send_keys :x + tmux.until { |lines| assert(lines.any? { |line| line.include?('[x-foo]') }) } + end end module TestShell ++++++ vendor.tar.zst ++++++ Binary files /var/tmp/diff_new_pack.ZASY66/_old and /var/tmp/diff_new_pack.ZASY66/_new differ