Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package fzf for openSUSE:Factory checked in at 2025-06-30 13:04:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/fzf (Old) and /work/SRC/openSUSE:Factory/.fzf.new.7067 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fzf" Mon Jun 30 13:04:46 2025 rev:70 rq:1288912 version:0.63.0 Changes: -------- --- /work/SRC/openSUSE:Factory/fzf/fzf.changes 2025-05-06 16:42:01.865699247 +0200 +++ /work/SRC/openSUSE:Factory/.fzf.new.7067/fzf.changes 2025-06-30 13:06:10.061113404 +0200 @@ -1,0 +2,16 @@ +Sat Jun 28 04:17:13 UTC 2025 - Avindra Goolcharan <[email protected]> + +- Update to version 0.63.0: + * Added footer. The default border style for footer is `line`, + which draws a single separator line. + * `line` border style is now allowed for all types of border + except for `--list-border`. + * Added `{*}` placeholder flag that evaluates to matched items. + * Added asynchronous transform actions with `bg-` prefix that + run asynchronously in the background, along with `bg-cancel` + action to cancel currently running `bg-transform` actions. + * Added support for full-line background color in the list section + * SSH completion enhancements +- Bug fixes and improvements + +------------------------------------------------------------------- Old: ---- fzf-0.62.0.tar.gz New: ---- fzf-0.63.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fzf.spec ++++++ --- /var/tmp/diff_new_pack.KLh0Hg/_old 2025-06-30 13:06:11.689180859 +0200 +++ /var/tmp/diff_new_pack.KLh0Hg/_new 2025-06-30 13:06:11.689180859 +0200 @@ -19,7 +19,7 @@ %global _lto_cflags %{nil} Name: fzf -Version: 0.62.0 +Version: 0.63.0 Release: 0 Summary: A command-line fuzzy finder License: MIT ++++++ fzf-0.62.0.tar.gz -> fzf-0.63.0.tar.gz ++++++ ++++ 4900 lines of diff (skipped) ++++++ vendor.tar.zst ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/charlievieth/fastwalk/Makefile new/vendor/github.com/charlievieth/fastwalk/Makefile --- old/vendor/github.com/charlievieth/fastwalk/Makefile 2025-04-21 10:29:55.000000000 +0200 +++ new/vendor/github.com/charlievieth/fastwalk/Makefile 2025-06-27 18:11:00.000000000 +0200 @@ -1,5 +1,5 @@ .PHONY: all -all: test test_build +all: test .PHONY: test_build_darwin_arm64 test_build_darwin_arm64: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/charlievieth/fastwalk/dirent.go new/vendor/github.com/charlievieth/fastwalk/dirent.go --- old/vendor/github.com/charlievieth/fastwalk/dirent.go 2025-04-21 10:29:55.000000000 +0200 +++ new/vendor/github.com/charlievieth/fastwalk/dirent.go 2025-06-27 18:11:00.000000000 +0200 @@ -53,3 +53,21 @@ } return os.Stat(path) } + +// DirEntryDepth returns the depth at which entry de was generated relative +// to the root being walked or -1 if de does not have type [fastwalk.DirEntry]. +// +// This is a helper function that saves the user from having to cast the +// [fs.DirEntry] argument to their walk function to a [fastwalk.DirEntry] +// and is equivalent to the below code: +// +// if d, _ := de.(DirEntry); d != nil { +// return d.Depth() +// } +// return -1 +func DirEntryDepth(de fs.DirEntry) int { + if d, _ := de.(DirEntry); d != nil { + return d.Depth() + } + return -1 +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/charlievieth/fastwalk/dirent_portable.go new/vendor/github.com/charlievieth/fastwalk/dirent_portable.go --- old/vendor/github.com/charlievieth/fastwalk/dirent_portable.go 2025-04-21 10:29:55.000000000 +0200 +++ new/vendor/github.com/charlievieth/fastwalk/dirent_portable.go 2025-06-27 18:11:00.000000000 +0200 @@ -20,12 +20,17 @@ fs.DirEntry parent string stat *fileInfo + depth uint32 } func (d *portableDirent) String() string { return fmtdirent.FormatDirEntry(d) } +func (d *portableDirent) Depth() int { + return int(d.depth) +} + func (d *portableDirent) Stat() (fs.FileInfo, error) { if d.DirEntry.Type()&os.ModeSymlink == 0 { return d.DirEntry.Info() @@ -37,15 +42,16 @@ return stat.FileInfo, stat.err } -func newDirEntry(dirName string, info fs.DirEntry) DirEntry { +func newDirEntry(dirName string, info fs.DirEntry, depth int) DirEntry { return &portableDirent{ DirEntry: info, parent: dirName, + depth: uint32(depth), } } func fileInfoToDirEntry(dirname string, fi fs.FileInfo) DirEntry { - return newDirEntry(dirname, fs.FileInfoToDirEntry(fi)) + return newDirEntry(dirname, fs.FileInfoToDirEntry(fi), 0) } var direntSlicePool = sync.Pool{ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/charlievieth/fastwalk/dirent_unix.go new/vendor/github.com/charlievieth/fastwalk/dirent_unix.go --- old/vendor/github.com/charlievieth/fastwalk/dirent_unix.go 2025-04-21 10:29:55.000000000 +0200 +++ new/vendor/github.com/charlievieth/fastwalk/dirent_unix.go 2025-06-27 18:11:00.000000000 +0200 @@ -15,6 +15,7 @@ parent string name string typ fs.FileMode + depth uint32 // uint32 so that we can pack it next to typ info *fileInfo stat *fileInfo } @@ -22,6 +23,7 @@ func (d *unixDirent) Name() string { return d.name } func (d *unixDirent) IsDir() bool { return d.typ.IsDir() } func (d *unixDirent) Type() fs.FileMode { return d.typ } +func (d *unixDirent) Depth() int { return int(d.depth) } func (d *unixDirent) String() string { return fmtdirent.FormatDirEntry(d) } func (d *unixDirent) Info() (fs.FileInfo, error) { @@ -43,11 +45,12 @@ return stat.FileInfo, stat.err } -func newUnixDirent(parent, name string, typ fs.FileMode) *unixDirent { +func newUnixDirent(parent, name string, typ fs.FileMode, depth int) *unixDirent { return &unixDirent{ parent: parent, name: name, typ: typ, + depth: uint32(depth), } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/charlievieth/fastwalk/fastwalk.go new/vendor/github.com/charlievieth/fastwalk/fastwalk.go --- old/vendor/github.com/charlievieth/fastwalk/fastwalk.go 2025-04-21 10:29:55.000000000 +0200 +++ new/vendor/github.com/charlievieth/fastwalk/fastwalk.go 2025-06-27 18:11:00.000000000 +0200 @@ -259,6 +259,7 @@ ToSlash: DefaultToSlash(), NumWorkers: DefaultNumWorkers(), Sort: SortNone, + MaxDepth: 0, } // A Config controls the behavior of [Walk]. @@ -304,6 +305,11 @@ // Number of parallel workers to use. If NumWorkers if ≤ 0 then // DefaultNumWorkers is used. NumWorkers int + + // MaxDepth limits the depth of directory traversal to MaxDepth levels + // beyond the root directory being walked. By default, there is no limit + // on the search depth and a value of zero or less disables this feature. + MaxDepth int } // Copy returns a copy of c. If c is nil an empty [Config] is returned. @@ -330,6 +336,10 @@ // If the entry denotes a symbolic link, Stat reports the information // about the target itself, not the link. Stat() (fs.FileInfo, error) + + // Depth returns the depth at which this entry was generated relative to the + // root being walked. + Depth() int } // Walk is a faster implementation of [filepath.WalkDir] that walks the file @@ -380,6 +390,11 @@ // file. The result of Stat() and Info() are cached. The [StatDirEntry] // helper can be used to call Stat() on the returned [fastwalk.DirEntry]. // +// - Additionally, the [fs.DirEntry] argument (which has type [fastwalk.DirEntry]), +// has a Depth() method that returns the depth at which the entry was generated +// relative to the root being walked. The [DirEntryDepth] helper function +// can be used to call Depth() on the [fs.DirEntry] argument. +// // - Walk can follow symlinks in two ways: the fist, and simplest, is to // set Follow [Config] option to true - this will cause Walk to follow // symlinks and detect/ignore any symlink loops; the second, is for walkFn @@ -431,6 +446,7 @@ resc: make(chan error, numWorkers), // TODO: we should just pass the Config + maxDepth: conf.MaxDepth, follow: conf.Follow, toSlash: conf.ToSlash, sortMode: conf.Sort, @@ -517,6 +533,7 @@ resc chan error // from workers ignoredDirs []fs.FileInfo + maxDepth int follow bool toSlash bool sortMode SortMode @@ -631,7 +648,11 @@ } } - err := w.readDir(root) + depth := info.Depth() + if w.maxDepth > 0 && depth >= w.maxDepth { + return nil + } + err := w.readDir(root, depth+1) if err != nil { // Second call, to report ReadDir error. return w.fn(root, info, err) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/charlievieth/fastwalk/fastwalk_darwin.go new/vendor/github.com/charlievieth/fastwalk/fastwalk_darwin.go --- old/vendor/github.com/charlievieth/fastwalk/fastwalk_darwin.go 2025-04-21 10:29:55.000000000 +0200 +++ new/vendor/github.com/charlievieth/fastwalk/fastwalk_darwin.go 2025-06-27 18:11:00.000000000 +0200 @@ -8,7 +8,7 @@ "unsafe" ) -func (w *walker) readDir(dirName string) (err error) { +func (w *walker) readDir(dirName string, depth int) (err error) { var fd uintptr for { fd, err = opendir(dirName) @@ -68,7 +68,7 @@ continue } nm := string(name) - de := newUnixDirent(dirName, nm, typ) + de := newUnixDirent(dirName, nm, typ, depth) if w.sortMode == SortNone { if err := w.onDirEnt(dirName, nm, de); err != nil { if err != ErrSkipFiles { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/charlievieth/fastwalk/fastwalk_portable.go new/vendor/github.com/charlievieth/fastwalk/fastwalk_portable.go --- old/vendor/github.com/charlievieth/fastwalk/fastwalk_portable.go 2025-04-21 10:29:55.000000000 +0200 +++ new/vendor/github.com/charlievieth/fastwalk/fastwalk_portable.go 2025-06-27 18:11:00.000000000 +0200 @@ -2,15 +2,13 @@ package fastwalk -import ( - "os" -) +import "os" // readDir calls fn for each directory entry in dirName. // It does not descend into directories or follow symlinks. // If fn returns a non-nil error, readDir returns with that error // immediately. -func (w *walker) readDir(dirName string) error { +func (w *walker) readDir(dirName string, depth int) error { f, err := os.Open(dirName) if err != nil { return err @@ -33,7 +31,7 @@ continue } // Need to use FileMode.Type().Type() for fs.DirEntry - e := newDirEntry(dirName, d) + e := newDirEntry(dirName, d, depth) if w.sortMode == SortNone { if err := w.onDirEnt(dirName, d.Name(), e); err != nil { if err != ErrSkipFiles { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/charlievieth/fastwalk/fastwalk_unix.go new/vendor/github.com/charlievieth/fastwalk/fastwalk_unix.go --- old/vendor/github.com/charlievieth/fastwalk/fastwalk_unix.go 2025-04-21 10:29:55.000000000 +0200 +++ new/vendor/github.com/charlievieth/fastwalk/fastwalk_unix.go 2025-06-27 18:11:00.000000000 +0200 @@ -20,7 +20,7 @@ // value used to represent a syscall.DT_UNKNOWN Dirent.Type. const unknownFileMode os.FileMode = ^os.FileMode(0) -func (w *walker) readDir(dirName string) error { +func (w *walker) readDir(dirName string, depth int) error { fd, err := open(dirName, 0, 0) if err != nil { return &os.PathError{Op: "open", Path: dirName, Err: err} @@ -72,7 +72,7 @@ if skipFiles && typ.IsRegular() { continue } - de := newUnixDirent(dirName, name, typ) + de := newUnixDirent(dirName, name, typ, depth) if w.sortMode == SortNone { if err := w.onDirEnt(dirName, name, de); err != nil { if err == ErrSkipFiles { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/charlievieth/fastwalk/internal/dirent/dirent.go new/vendor/github.com/charlievieth/fastwalk/internal/dirent/dirent.go --- old/vendor/github.com/charlievieth/fastwalk/internal/dirent/dirent.go 2025-04-21 10:29:55.000000000 +0200 +++ new/vendor/github.com/charlievieth/fastwalk/internal/dirent/dirent.go 2025-06-27 18:11:00.000000000 +0200 @@ -9,55 +9,6 @@ "unsafe" ) -// readInt returns the size-bytes unsigned integer in native byte order at offset off. -func readInt(b []byte, off, size uintptr) (u uint64, ok bool) { - if len(b) < int(off+size) { - return 0, false - } - if isBigEndian { - return readIntBE(b[off:], size), true - } - return readIntLE(b[off:], size), true -} - -func readIntBE(b []byte, size uintptr) uint64 { - switch size { - case 1: - return uint64(b[0]) - case 2: - _ = b[1] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[1]) | uint64(b[0])<<8 - case 4: - _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[3]) | uint64(b[2])<<8 | uint64(b[1])<<16 | uint64(b[0])<<24 - case 8: - _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 | - uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56 - default: - panic("syscall: readInt with unsupported size") - } -} - -func readIntLE(b []byte, size uintptr) uint64 { - switch size { - case 1: - return uint64(b[0]) - case 2: - _ = b[1] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[0]) | uint64(b[1])<<8 - case 4: - _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 - case 8: - _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 - return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | - uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 - default: - panic("syscall: readInt with unsupported size") - } -} - const InvalidMode = os.FileMode(1<<32 - 1) func Parse(buf []byte) (consumed int, name string, typ os.FileMode) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/charlievieth/fastwalk/internal/dirent/endian_big.go new/vendor/github.com/charlievieth/fastwalk/internal/dirent/endian_big.go --- old/vendor/github.com/charlievieth/fastwalk/internal/dirent/endian_big.go 2025-04-21 10:29:55.000000000 +0200 +++ new/vendor/github.com/charlievieth/fastwalk/internal/dirent/endian_big.go 2025-06-27 18:11:00.000000000 +0200 @@ -1,9 +1,35 @@ // Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// + //go:build armbe || arm64be || m68k || mips || mips64 || mips64p32 || ppc || ppc64 || s390 || s390x || shbe || sparc || sparc64 package dirent -const isBigEndian = true +// readInt returns the size-bytes unsigned integer in native byte order at offset off. +func readInt(b []byte, off, size uintptr) (uint64, bool) { + if len(b) < int(off+size) { + return 0, false + } + b = b[off:] + switch size { + case 1: + return uint64(b[0]), true + case 2: + _ = b[1] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[1]) | uint64(b[0])<<8, true + case 4: + _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[3]) | uint64(b[2])<<8 | uint64(b[1])<<16 | uint64(b[0])<<24, true + case 8: + _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 | + uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56, true + default: + // This case is impossible if the tests pass. Previously, we panicked + // here but for performance reasons (escape analysis) it's better to + // trigger a panic via an out-of-bounds reference. + _ = b[len(b)] + return 0, false + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/github.com/charlievieth/fastwalk/internal/dirent/endian_little.go new/vendor/github.com/charlievieth/fastwalk/internal/dirent/endian_little.go --- old/vendor/github.com/charlievieth/fastwalk/internal/dirent/endian_little.go 2025-04-21 10:29:55.000000000 +0200 +++ new/vendor/github.com/charlievieth/fastwalk/internal/dirent/endian_little.go 2025-06-27 18:11:00.000000000 +0200 @@ -1,9 +1,35 @@ // Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// + //go:build 386 || amd64 || amd64p32 || alpha || arm || arm64 || loong64 || mipsle || mips64le || mips64p32le || nios2 || ppc64le || riscv || riscv64 || sh || wasm package dirent -const isBigEndian = false +// readInt returns the size-bytes unsigned integer in native byte order at offset off. +func readInt(b []byte, off, size uintptr) (uint64, bool) { + if len(b) < int(off+size) { + return 0, false + } + b = b[off:] + switch size { + case 1: + return uint64(b[0]), true + case 2: + _ = b[1] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[0]) | uint64(b[1])<<8, true + case 4: + _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24, true + case 8: + _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | + uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56, true + default: + // This case is impossible if the tests pass. Previously, we panicked + // here but for performance reasons (escape analysis) it's better to + // trigger a panic via an out-of-bounds reference. + _ = b[len(b)] + return 0, false + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt --- old/vendor/modules.txt 2025-04-21 10:29:55.000000000 +0200 +++ new/vendor/modules.txt 2025-06-27 18:11:00.000000000 +0200 @@ -1,4 +1,4 @@ -# github.com/charlievieth/fastwalk v1.0.10 +# github.com/charlievieth/fastwalk v1.0.12 ## explicit; go 1.20 github.com/charlievieth/fastwalk github.com/charlievieth/fastwalk/internal/dirent
