Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package nwg-drawer for openSUSE:Factory 
checked in at 2025-07-15 16:43:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nwg-drawer (Old)
 and      /work/SRC/openSUSE:Factory/.nwg-drawer.new.7373 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "nwg-drawer"

Tue Jul 15 16:43:17 2025 rev:8 rq:1292456 version:0.7.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/nwg-drawer/nwg-drawer.changes    2025-05-15 
17:01:16.477945681 +0200
+++ /work/SRC/openSUSE:Factory/.nwg-drawer.new.7373/nwg-drawer.changes  
2025-07-15 16:43:58.676143611 +0200
@@ -1,0 +2,15 @@
+Sat Jul 12 19:08:44 UTC 2025 - Lukas Müller <[email protected]>
+
+- Update to version 0.7.3.
+  Changelog: https://github.com/nwg-piotr/nwg-drawer/releases/tag/v0.7.3
+  - destroy proper window on key or button pressed after a math operation; 
closes #166;
+  - if the fore-mentioned key is the Esc key, clear the search box as well;
+  - also support the KP_Enter key (enter on the numeric pad), in addition to 
KEY_Return.
+- Changes from version 0.7.2:
+  Changelog: https://github.com/nwg-piotr/nwg-drawer/releases/tag/v0.7.2
+  - Improved search function using loose character matching; #165 by 
@sunwoo101.
+- Changes from version 0.7.1:
+  Changelog: https://github.com/nwg-piotr/nwg-drawer/releases/tag/v0.7.1
+  - Added two new values for the `-wm` flag: 'niri' and 'uwsm'; closes #160 
proposed by @aljus7.
+
+-------------------------------------------------------------------

Old:
----
  nwg-drawer-0.7.0.tar.gz

New:
----
  nwg-drawer-0.7.3.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ nwg-drawer.spec ++++++
--- /var/tmp/diff_new_pack.0qomvL/_old  2025-07-15 16:43:59.704181843 +0200
+++ /var/tmp/diff_new_pack.0qomvL/_new  2025-07-15 16:43:59.704181843 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           nwg-drawer
-Version:        0.7.0
+Version:        0.7.3
 Release:        0
 Summary:        Wlroots application drawer
 License:        MIT

++++++ nwg-drawer-0.7.0.tar.gz -> nwg-drawer-0.7.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nwg-drawer-0.7.0/README.md 
new/nwg-drawer-0.7.3/README.md
--- old/nwg-drawer-0.7.0/README.md      2025-05-14 21:58:50.000000000 +0200
+++ new/nwg-drawer-0.7.3/README.md      2025-07-09 02:27:13.000000000 +0200
@@ -50,12 +50,13 @@
 ## Command line arguments
 
 ```text
-$ nwg-drawer -h
 Usage of nwg-drawer:
   -c uint
        number of Columns (default 6)
   -close
        close drawer of existing instance
+  -closebtn string
+       close button position: 'left' or 'right', 'none' by default (default 
"none")
   -d   Turn on Debug messages
   -fm string
        File Manager (default "thunar")
@@ -64,7 +65,7 @@
   -fslen int
        File Search name LENgth Limit (default 80)
   -ft
-       Force Theme for libadwaita apps, by adding 
'GTK_THEME=<default-gtk-theme>' env var
+       Force Theme for libadwaita apps, by adding 
'GTK_THEME=<default-gtk-theme>' env var; ignored if wm argument == 'uwsm'
   -g string
        GTK theme name
   -i string
@@ -115,11 +116,26 @@
        Terminal emulator (default "foot")
   -v   display Version information
   -wm string
-       use swaymsg exec (with 'sway' argument) or hyprctl dispatch exec (with 
'hyprland') to launch programs
+       use swaymsg exec (with 'sway' argument) or hyprctl dispatch exec (with 
'hyprland') or riverctl spawn (with 'river') or niri msg action spawn -- (with 
'niri') or uwsm app -- (with 'uwsm' for Universal Wayland Session Manager) to 
launch programs
   ```
 
   *NOTE: the `$TERM` environment variable overrides the `-term` argument.*
 
+### About the `-wm` argument
+
+If you want to run commands through the compositor or through the Universal 
Wayland Session Manager, use the `-wm` flag.
+
+| Flag value | Will run command with      |
+| ---------- |----------------------------|
+| sway       | `swaymsg exec`             |
+| hyprland   | `hyprctl dispatch exec`    |
+| river      | `riverctl spawn`           |
+| niri       | `niri msg action spawn --` |
+| uwsm       | `uwsm app --`              |
+
+Nwg-drawer will check if it's actually running on the given compositor, or if 
`uwsm` is installed. If not, it will run 
+the command directly. The only exception is `-wm river`, as I have no idea how 
to confirm it's running.
+
 ## Running
 
 You may use the drawer in two ways:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nwg-drawer-0.7.0/go.mod new/nwg-drawer-0.7.3/go.mod
--- old/nwg-drawer-0.7.0/go.mod 2025-05-14 21:58:50.000000000 +0200
+++ new/nwg-drawer-0.7.3/go.mod 2025-07-09 02:27:13.000000000 +0200
@@ -8,7 +8,7 @@
        github.com/allan-simon/go-singleinstance 
v0.0.0-20210120080615-d0997106ab37
        github.com/diamondburned/gotk4-layer-shell/pkg 
v0.0.0-20240109211357-6efa9f6dc438
        github.com/diamondburned/gotk4/pkg v0.3.1
-       github.com/expr-lang/expr v1.17.2
+       github.com/expr-lang/expr v1.17.5
        github.com/fsnotify/fsnotify v1.9.0
        github.com/joshuarubin/go-sway v1.2.0
        github.com/sirupsen/logrus v1.9.3
@@ -19,6 +19,6 @@
        github.com/joshuarubin/lifecycle v1.1.4 // indirect
        go.uber.org/multierr v1.11.0 // indirect
        go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6 
// indirect
-       golang.org/x/sync v0.14.0 // indirect
+       golang.org/x/sync v0.15.0 // indirect
        golang.org/x/sys v0.33.0 // indirect
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nwg-drawer-0.7.0/go.sum new/nwg-drawer-0.7.3/go.sum
--- old/nwg-drawer-0.7.0/go.sum 2025-05-14 21:58:50.000000000 +0200
+++ new/nwg-drawer-0.7.3/go.sum 2025-07-09 02:27:13.000000000 +0200
@@ -15,6 +15,8 @@
 github.com/expr-lang/expr v1.17.0/go.mod 
h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40VO/1IT4=
 github.com/expr-lang/expr v1.17.2 
h1:o0A99O/Px+/DTjEnQiodAgOIK9PPxL8DtXhBRKC+Iso=
 github.com/expr-lang/expr v1.17.2/go.mod 
h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40VO/1IT4=
+github.com/expr-lang/expr v1.17.5 
h1:i1WrMvcdLF249nSNlpQZN1S6NXuW9WaOfF5tPi3aw3k=
+github.com/expr-lang/expr v1.17.5/go.mod 
h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40VO/1IT4=
 github.com/fsnotify/fsnotify v1.7.0 
h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
 github.com/fsnotify/fsnotify v1.7.0/go.mod 
h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
 github.com/fsnotify/fsnotify v1.8.0 
h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M=
@@ -53,6 +55,8 @@
 golang.org/x/sync v0.13.0/go.mod 
h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
 golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ=
 golang.org/x/sync v0.14.0/go.mod 
h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
+golang.org/x/sync v0.15.0 h1:KWH3jNZsfyT6xfAfKiz6MRNmd46ByHDYaZ7KSkCtdW8=
+golang.org/x/sync v0.15.0/go.mod 
h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
 golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo=
 golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nwg-drawer-0.7.0/main.go new/nwg-drawer-0.7.3/main.go
--- old/nwg-drawer-0.7.0/main.go        2025-05-14 21:58:50.000000000 +0200
+++ new/nwg-drawer-0.7.3/main.go        2025-07-09 02:27:13.000000000 +0200
@@ -28,7 +28,7 @@
        "github.com/diamondburned/gotk4/pkg/gtk/v3"
 )
 
-const version = "0.7.0"
+const version = "0.7.3"
 
 var (
        appDirs          []string
@@ -153,9 +153,9 @@
 }
 
 func validateWm() {
-       if !(*wm == "sway" || *wm == "hyprland" || *wm == "Hyprland") && *wm != 
"" {
+       if !(*wm == "sway" || *wm == "hyprland" || *wm == "Hyprland" || *wm == 
"river" || *wm == "niri" || *wm == "uwsm") && *wm != "" {
                *wm = ""
-               log.Warn("-wm argument supports only 'sway' or 'hyprland' 
string.")
+               log.Warn("-wm argument can be only 'sway', 'hyprland', 'river', 
'niri' or 'uwsm'")
        }
 }
 
@@ -175,13 +175,13 @@
 var marginRight = flag.Int("mr", 0, "Margin Right")
 var marginBottom = flag.Int("mb", 0, "Margin Bottom")
 var fsColumns = flag.Uint("fscol", 2, "File Search result COLumns")
-var forceTheme = flag.Bool("ft", false, "Force Theme for libadwaita apps, by 
adding 'GTK_THEME=<default-gtk-theme>' env var")
+var forceTheme = flag.Bool("ft", false, "Force Theme for libadwaita apps, by 
adding 'GTK_THEME=<default-gtk-theme>' env var; ignored if wm argument == 
'uwsm'")
 var columnsNumber = flag.Uint("c", 6, "number of Columns")
 var itemSpacing = flag.Uint("spacing", 20, "icon spacing")
 var lang = flag.String("lang", "", "force lang, e.g. \"en\", \"pl\"")
 var fileManager = flag.String("fm", "thunar", "File Manager")
 var term = flag.String("term", defaultTermIfBlank(os.Getenv("TERM"), "foot"), 
"Terminal emulator")
-var wm = flag.String("wm", "", "use swaymsg exec (with 'sway' argument) or 
hyprctl dispatch exec (with 'hyprland') or riverctl spawn (with 'river') to 
launch programs")
+var wm = flag.String("wm", "", "use swaymsg exec (with 'sway' argument) or 
hyprctl dispatch exec (with 'hyprland') or riverctl spawn (with 'river') or 
niri msg action spawn -- (with 'niri') or uwsm app -- (with 'uwsm' for 
Universal Wayland Session Manager) to launch programs")
 var nameLimit = flag.Int("fslen", 80, "File Search name LENgth Limit")
 var noCats = flag.Bool("nocats", false, "Disable filtering by category")
 var noFS = flag.Bool("nofs", false, "Disable file search")
@@ -506,7 +506,7 @@
                                firstPowerBtn.GrabFocus()
                        }
 
-               } else if key.Keyval() == gdk.KEY_Return {
+               } else if key.Keyval() == gdk.KEY_Return || key.Keyval() == 
gdk.KEY_KP_Enter {
                        s := searchEntry.Text()
                        if s != "" {
                                // Check if execute command input
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nwg-drawer-0.7.0/tools.go 
new/nwg-drawer-0.7.3/tools.go
--- old/nwg-drawer-0.7.0/tools.go       2025-05-14 21:58:50.000000000 +0200
+++ new/nwg-drawer-0.7.3/tools.go       2025-07-09 02:27:13.000000000 +0200
@@ -579,16 +579,22 @@
                }
        }
 
-       themeToPrepend := ""
-       //add "GTK_THEME=<default_gtk_theme>" environment variable
-       if *forceTheme {
-               settings := gtk.SettingsGetDefault()
-               th := settings.ObjectProperty("gtk-theme-name")
-               themeToPrepend = th.(string)
-       }
+       if *wm != "uwsm" {
+               themeToPrepend := ""
+               //add "GTK_THEME=<default_gtk_theme>" environment variable
+               if *forceTheme {
+                       settings := gtk.SettingsGetDefault()
+                       th := settings.ObjectProperty("gtk-theme-name")
+                       themeToPrepend = th.(string)
+               }
 
-       if themeToPrepend != "" {
-               command = fmt.Sprintf("GTK_THEME=%q %s", themeToPrepend, 
command)
+               if themeToPrepend != "" {
+                       command = fmt.Sprintf("GTK_THEME=%q %s", 
themeToPrepend, command)
+               }
+       } else {
+               if *forceTheme {
+                       log.Warn("We can't force GTK_THEME= while running a 
command through uwsm")
+               }
        }
 
        var elements = []string{"/usr/bin/env", "-S", command}
@@ -605,11 +611,32 @@
                }
                cmd = exec.Command(prefixCommand, args...)
        } else if *wm == "sway" {
-               cmd = exec.Command("swaymsg", "exec", strings.Join(elements, " 
"))
+               if _, ok := os.LookupEnv("SWAYSOCK"); ok {
+                       cmd = exec.Command("swaymsg", "exec", 
strings.Join(elements, " "))
+               } else {
+                       log.Warn("Unable to find SWAYSOCK, running command 
directly")
+               }
        } else if *wm == "hyprland" || *wm == "Hyprland" {
-               cmd = exec.Command("hyprctl", "dispatch", "exec", 
strings.Join(elements, " "))
+               if _, ok := os.LookupEnv("HYPRLAND_INSTANCE_SIGNATURE"); ok {
+                       cmd = exec.Command("hyprctl", "dispatch", "exec", 
strings.Join(elements, " "))
+               } else {
+                       log.Warn("Unable to find HYPRLAND_INSTANCE_SIGNATURE, 
running command directly")
+               }
        } else if *wm == "river" {
+               // a check if we're actually on river would be of use here, but 
we have none
                cmd = exec.Command("riverctl", "spawn", strings.Join(elements, 
" "))
+       } else if *wm == "niri" {
+               if os.Getenv("XDG_CURRENT_DESKTOP") == "niri" {
+                       cmd = exec.Command("niri", append([]string{"msg", 
"action", "spawn", "--"}, elements...)...)
+               } else {
+                       log.Warn("$XDG_CURRENT_DESKTOP != 'niri', running 
command directly")
+               }
+       } else if *wm == "uwsm" {
+               if _, err := exec.LookPath("uwsm"); err == nil {
+                       cmd = exec.Command("uwsm", append([]string{"app", 
"--"}, elements...)...)
+               } else {
+                       log.Warn("Unable to find uwsm, running command 
directly")
+               }
        }
 
        msg := fmt.Sprintf("Executing command: %q; args: %q\n", cmd.Args[0], 
cmd.Args[1:])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nwg-drawer-0.7.0/uicomponents.go 
new/nwg-drawer-0.7.3/uicomponents.go
--- old/nwg-drawer-0.7.0/uicomponents.go        2025-05-14 21:58:50.000000000 
+0200
+++ new/nwg-drawer-0.7.3/uicomponents.go        2025-07-09 02:27:13.000000000 
+0200
@@ -2,11 +2,12 @@
 
 import (
        "fmt"
-       "github.com/diamondburned/gotk4-layer-shell/pkg/gtklayershell"
        "io/fs"
        "path/filepath"
        "strings"
 
+       "github.com/diamondburned/gotk4-layer-shell/pkg/gtklayershell"
+
        log "github.com/sirupsen/logrus"
 
        "github.com/diamondburned/gotk4/pkg/gdk/v3"
@@ -181,6 +182,20 @@
        return false
 }
 
+func subsequenceMatch(needle, haystack string) bool {
+       needle = strings.ToLower(strings.TrimSpace(needle))
+       haystack = strings.ToLower(haystack)
+
+       n, h := 0, 0
+       for n < len(needle) && h < len(haystack) {
+               if needle[n] == haystack[h] {
+                       n++
+               }
+               h++
+       }
+       return n == len(needle)
+}
+
 func setUpAppsFlowBox(categoryList []string, searchPhrase string) *gtk.FlowBox 
{
        if appFlowBox != nil && appFlowBox.Widget.Native() != 0 {
                log.Debugf("Destroying appFlowBox (native=%x)", 
appFlowBox.Widget.Native())
@@ -213,7 +228,8 @@
                                }
                        }
                } else {
-                       if !entry.NoDisplay && 
(strings.Contains(strings.ToLower(entry.NameLoc), 
strings.ToLower(searchPhrase)) ||
+                       needle := strings.ToLower(searchPhrase)
+                       if !entry.NoDisplay && (subsequenceMatch(needle, 
strings.ToLower(entry.NameLoc)) ||
                                
strings.Contains(strings.ToLower(entry.CommentLoc), 
strings.ToLower(searchPhrase)) ||
                                
strings.Contains(strings.ToLower(entry.Comment), strings.ToLower(searchPhrase)) 
||
                                strings.Contains(strings.ToLower(entry.Exec), 
strings.ToLower(searchPhrase))) {
@@ -671,15 +687,19 @@
 
        // any key to close the window
        window.Connect("key-release-event", func(_ *gtk.Window, event 
*gdk.Event) bool {
-               resultWindow.Destroy()
-               resultWindow = nil
+               key := event.AsKey()
+               if key.Keyval() == gdk.KEY_Escape {
+                       searchEntry.SetText("")
+               }
+               mathResultWindow.Destroy()
+               mathResultWindow = nil
                return true
        })
 
        // any button to close the window
        window.Connect("button-release-event", func(_ *gtk.Window, event 
*gdk.Event) bool {
-               resultWindow.Destroy()
-               resultWindow = nil
+               mathResultWindow.Destroy()
+               mathResultWindow = nil
                return true
        })
 

++++++ vendor.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/expr-lang/expr/builtin/lib.go 
new/vendor/github.com/expr-lang/expr/builtin/lib.go
--- old/vendor/github.com/expr-lang/expr/builtin/lib.go 2025-05-14 
21:58:50.000000000 +0200
+++ new/vendor/github.com/expr-lang/expr/builtin/lib.go 2025-07-09 
02:27:13.000000000 +0200
@@ -374,6 +374,10 @@
        i := params[1]
        v := reflect.ValueOf(from)
 
+       if from == nil {
+               return nil, nil
+       }
+
        if v.Kind() == reflect.Invalid {
                panic(fmt.Sprintf("cannot fetch %v from %T", i, from))
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/expr-lang/expr/checker/nature/utils.go 
new/vendor/github.com/expr-lang/expr/checker/nature/utils.go
--- old/vendor/github.com/expr-lang/expr/checker/nature/utils.go        
2025-05-14 21:58:50.000000000 +0200
+++ new/vendor/github.com/expr-lang/expr/checker/nature/utils.go        
2025-07-09 02:27:13.000000000 +0200
@@ -14,6 +14,11 @@
 }
 
 func fetchField(t reflect.Type, name string) (reflect.StructField, bool) {
+       // If t is not a struct, early return.
+       if t.Kind() != reflect.Struct {
+               return reflect.StructField{}, false
+       }
+
        // First check all structs fields.
        for i := 0; i < t.NumField(); i++ {
                field := t.Field(i)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/expr-lang/expr/conf/config.go 
new/vendor/github.com/expr-lang/expr/conf/config.go
--- old/vendor/github.com/expr-lang/expr/conf/config.go 2025-05-14 
21:58:50.000000000 +0200
+++ new/vendor/github.com/expr-lang/expr/conf/config.go 2025-07-09 
02:27:13.000000000 +0200
@@ -10,43 +10,41 @@
        "github.com/expr-lang/expr/vm/runtime"
 )
 
-const (
-       // DefaultMemoryBudget represents an upper limit of memory usage
+var (
+       // DefaultMemoryBudget represents default maximum allowed memory usage 
by the vm.VM.
        DefaultMemoryBudget uint = 1e6
 
-       // DefaultMaxNodes represents an upper limit of AST nodes
-       DefaultMaxNodes uint = 10000
+       // DefaultMaxNodes represents default maximum allowed AST nodes by the 
compiler.
+       DefaultMaxNodes uint = 1e4
 )
 
 type FunctionsTable map[string]*builtin.Function
 
 type Config struct {
-       EnvObject    any
-       Env          nature.Nature
-       Expect       reflect.Kind
-       ExpectAny    bool
-       Optimize     bool
-       Strict       bool
-       Profile      bool
-       MaxNodes     uint
-       MemoryBudget uint
-       ConstFns     map[string]reflect.Value
-       Visitors     []ast.Visitor
-       Functions    FunctionsTable
-       Builtins     FunctionsTable
-       Disabled     map[string]bool // disabled builtins
+       EnvObject any
+       Env       nature.Nature
+       Expect    reflect.Kind
+       ExpectAny bool
+       Optimize  bool
+       Strict    bool
+       Profile   bool
+       MaxNodes  uint
+       ConstFns  map[string]reflect.Value
+       Visitors  []ast.Visitor
+       Functions FunctionsTable
+       Builtins  FunctionsTable
+       Disabled  map[string]bool // disabled builtins
 }
 
 // CreateNew creates new config with default values.
 func CreateNew() *Config {
        c := &Config{
-               Optimize:     true,
-               MaxNodes:     DefaultMaxNodes,
-               MemoryBudget: DefaultMemoryBudget,
-               ConstFns:     make(map[string]reflect.Value),
-               Functions:    make(map[string]*builtin.Function),
-               Builtins:     make(map[string]*builtin.Function),
-               Disabled:     make(map[string]bool),
+               Optimize:  true,
+               MaxNodes:  DefaultMaxNodes,
+               ConstFns:  make(map[string]reflect.Value),
+               Functions: make(map[string]*builtin.Function),
+               Builtins:  make(map[string]*builtin.Function),
+               Disabled:  make(map[string]bool),
        }
        for _, f := range builtin.Builtins {
                c.Builtins[f.Name] = f
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/expr-lang/expr/expr.go 
new/vendor/github.com/expr-lang/expr/expr.go
--- old/vendor/github.com/expr-lang/expr/expr.go        2025-05-14 
21:58:50.000000000 +0200
+++ new/vendor/github.com/expr-lang/expr/expr.go        2025-07-09 
02:27:13.000000000 +0200
@@ -195,6 +195,15 @@
        })
 }
 
+// MaxNodes sets the maximum number of nodes allowed in the expression.
+// By default, the maximum number of nodes is conf.DefaultMaxNodes.
+// If MaxNodes is set to 0, the node budget check is disabled.
+func MaxNodes(n uint) Option {
+       return func(c *conf.Config) {
+               c.MaxNodes = n
+       }
+}
+
 // Compile parses and compiles given input expression to bytecode program.
 func Compile(input string, ops ...Option) (*vm.Program, error) {
        config := conf.CreateNew()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/expr-lang/expr/vm/vm.go 
new/vendor/github.com/expr-lang/expr/vm/vm.go
--- old/vendor/github.com/expr-lang/expr/vm/vm.go       2025-05-14 
21:58:50.000000000 +0200
+++ new/vendor/github.com/expr-lang/expr/vm/vm.go       2025-07-09 
02:27:13.000000000 +0200
@@ -75,7 +75,6 @@
        if len(vm.Variables) < program.variables {
                vm.Variables = make([]any, program.variables)
        }
-
        if vm.MemoryBudget == 0 {
                vm.MemoryBudget = conf.DefaultMemoryBudget
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sync/errgroup/errgroup.go 
new/vendor/golang.org/x/sync/errgroup/errgroup.go
--- old/vendor/golang.org/x/sync/errgroup/errgroup.go   2025-05-14 
21:58:50.000000000 +0200
+++ new/vendor/golang.org/x/sync/errgroup/errgroup.go   2025-07-09 
02:27:13.000000000 +0200
@@ -76,10 +76,8 @@
 }
 
 // Go calls the given function in a new goroutine.
-// The first call to Go must happen before a Wait.
-// It blocks until the new goroutine can be added without the number of
-// active goroutines in the group exceeding the configured limit.
 //
+// The first call to Go must happen before a Wait.
 // It blocks until the new goroutine can be added without the number of
 // goroutines in the group exceeding the configured limit.
 //
@@ -185,8 +183,9 @@
 }
 
 func (p PanicError) Error() string {
-       // A Go Error method conventionally does not include a stack dump, so 
omit it
-       // here. (Callers who care can extract it from the Stack field.)
+       if len(p.Stack) > 0 {
+               return fmt.Sprintf("recovered from errgroup.Group: %v\n%s", 
p.Recovered, p.Stack)
+       }
        return fmt.Sprintf("recovered from errgroup.Group: %v", p.Recovered)
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt
--- old/vendor/modules.txt      2025-05-14 21:58:50.000000000 +0200
+++ new/vendor/modules.txt      2025-07-09 02:27:13.000000000 +0200
@@ -27,7 +27,7 @@
 github.com/diamondburned/gotk4/pkg/glib/v2
 github.com/diamondburned/gotk4/pkg/gtk/v3
 github.com/diamondburned/gotk4/pkg/pango
-# github.com/expr-lang/expr v1.17.2
+# github.com/expr-lang/expr v1.17.5
 ## explicit; go 1.18
 github.com/expr-lang/expr
 github.com/expr-lang/expr/ast
@@ -66,7 +66,7 @@
 # go4.org/unsafe/assume-no-moving-gc v0.0.0-20231121144256-b99613f794b6
 ## explicit; go 1.11
 go4.org/unsafe/assume-no-moving-gc
-# golang.org/x/sync v0.14.0
+# golang.org/x/sync v0.15.0
 ## explicit; go 1.23.0
 golang.org/x/sync/errgroup
 golang.org/x/sync/singleflight

Reply via email to