Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package senpai for openSUSE:Factory checked 
in at 2026-03-11 20:57:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/senpai (Old)
 and      /work/SRC/openSUSE:Factory/.senpai.new.8177 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "senpai"

Wed Mar 11 20:57:53 2026 rev:2 rq:1338349 version:0.4.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/senpai/senpai.changes    2025-04-07 
17:37:33.463184413 +0200
+++ /work/SRC/openSUSE:Factory/.senpai.new.8177/senpai.changes  2026-03-11 
21:00:18.642268387 +0100
@@ -1,0 +2,8 @@
+Fri Aug 22 09:58:41 UTC 2025 - Alessio Biancalana <[email protected]>
+
+- Upgrade to v0.4.1:
+  * Defer unimportant caps until CAP LS response
+  * Fix incorrect cursor position when editing mutli-line text
+  * Fix theoretical crash on read event on overlay tab
+
+-------------------------------------------------------------------

Old:
----
  v0.4.0.tar.gz

New:
----
  v0.4.1.tar.gz

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

Other differences:
------------------
++++++ senpai.spec ++++++
--- /var/tmp/diff_new_pack.CWoMeq/_old  2026-03-11 21:00:19.322296481 +0100
+++ /var/tmp/diff_new_pack.CWoMeq/_new  2026-03-11 21:00:19.326296646 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           senpai
-Version:        0.4.0
+Version:        0.4.1
 Release:        0
 Summary:        Your everyday IRC student
 License:        ISC

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2025-03-29 11:16:58.000000000 +0100
@@ -0,0 +1,2 @@
+*.obscpio
+*.osc

++++++ v0.4.0.tar.gz -> v0.4.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/senpai-v0.4.0/irc/session.go 
new/senpai-v0.4.1/irc/session.go
--- old/senpai-v0.4.0/irc/session.go    2025-03-16 14:43:47.000000000 +0100
+++ new/senpai-v0.4.1/irc/session.go    2025-03-18 00:04:56.000000000 +0100
@@ -50,28 +50,29 @@
 }
 
 // SupportedCapabilities is the set of capabilities supported by this library.
-var SupportedCapabilities = map[string]struct{}{
-       "away-notify":      {},
-       "batch":            {},
-       "cap-notify":       {},
-       "echo-message":     {},
-       "extended-monitor": {},
-       "invite-notify":    {},
-       "labeled-response": {},
-       "message-tags":     {},
-       "multi-prefix":     {},
-       "server-time":      {},
-       "sasl":             {},
-       "setname":          {},
-       "standard-replies": {},
-
-       "draft/chathistory":               {},
-       "draft/event-playback":            {},
-       "draft/metadata-2":                {},
-       "draft/read-marker":               {},
-       "soju.im/bouncer-networks-notify": {},
-       "soju.im/bouncer-networks":        {},
-       "soju.im/search":                  {},
+// Value is false if the cap is deferred (to work around some daemons 
agfressive rate pre-conn-reg backlog limiting)
+var SupportedCapabilities = map[string]bool{
+       "away-notify":      false,
+       "batch":            true,
+       "cap-notify":       true,
+       "echo-message":     true,
+       "extended-monitor": false,
+       "invite-notify":    false,
+       "labeled-response": true,
+       "message-tags":     true,
+       "multi-prefix":     true,
+       "sasl":             true,
+       "server-time":      true,
+       "setname":          false,
+       "standard-replies": true,
+
+       "draft/chathistory":               true,
+       "draft/event-playback":            true,
+       "draft/metadata-2":                true,
+       "draft/read-marker":               true,
+       "soju.im/bouncer-networks-notify": true,
+       "soju.im/bouncer-networks":        true,
+       "soju.im/search":                  false,
 }
 
 // Values taken by the "@+typing=" client tag.  TypingUnspec means the value or
@@ -199,8 +200,10 @@
        }
 
        s.out <- NewMessage("CAP", "LS", "302")
-       for capability := range SupportedCapabilities {
-               s.out <- NewMessage("CAP", "REQ", capability)
+       for capability, immediate := range SupportedCapabilities {
+               if immediate || s.netID != "" {
+                       s.out <- NewMessage("CAP", "REQ", capability)
+               }
        }
        s.out <- NewMessage("NICK", s.nick)
        s.out <- NewMessage("USER", s.user, "0", "*", s.real)
@@ -877,9 +880,18 @@
                // do nothing
        case "CAP":
                var subcommand, caps string
-               if err := msg.ParseParams(nil, &subcommand, &caps); err != nil {
+               if err := msg.ParseParams(nil, &subcommand); err != nil {
                        return nil, err
                }
+               if len(msg.Params) > 3 && msg.Params[2] == "*" {
+                       if err := msg.ParseParams(nil, nil, nil, &caps); err != 
nil {
+                               return nil, err
+                       }
+               } else {
+                       if err := msg.ParseParams(nil, nil, &caps); err != nil {
+                               return nil, err
+                       }
+               }
 
                switch subcommand {
                case "ACK":
@@ -912,16 +924,25 @@
                        }
                case "NAK":
                        // do nothing
-               case "NEW":
+               case "LS", "NEW":
+                       var reqs []string
                        for _, c := range ParseCaps(caps) {
                                s.availableCaps[c.Name] = c.Value
-                               if _, ok := SupportedCapabilities[c.Name]; !ok {
+                               immediate, ok := SupportedCapabilities[c.Name]
+                               if !ok {
+                                       continue
+                               }
+                               if subcommand == "LS" && (immediate || s.netID 
!= "") {
+                                       // Already sent CAP, ignore
                                        continue
                                }
                                if _, ok := s.enabledCaps[c.Name]; ok {
                                        continue
                                }
-                               s.out <- NewMessage("CAP", "REQ", c.Name)
+                               reqs = append(reqs, c.Name)
+                       }
+                       if len(reqs) > 0 {
+                               s.out <- NewMessage("CAP", "REQ", 
strings.Join(reqs, " "))
                        }
                case "DEL":
                        for _, c := range ParseCaps(caps) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/senpai-v0.4.0/ui/buffers.go 
new/senpai-v0.4.1/ui/buffers.go
--- old/senpai-v0.4.0/ui/buffers.go     2025-03-16 14:43:47.000000000 +0100
+++ new/senpai-v0.4.1/ui/buffers.go     2025-03-18 00:04:56.000000000 +0100
@@ -647,7 +647,7 @@
 
 func (bs *BufferList) SetRead(netID, title string, timestamp time.Time) {
        i, b := bs.at(netID, title)
-       if b == nil {
+       if b == nil || i < 0 {
                return
        }
        clearRead := true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/senpai-v0.4.0/ui/draw_utils.go 
new/senpai-v0.4.1/ui/draw_utils.go
--- old/senpai-v0.4.0/ui/draw_utils.go  2025-03-16 14:43:47.000000000 +0100
+++ new/senpai-v0.4.1/ui/draw_utils.go  2025-03-18 00:04:56.000000000 +0100
@@ -48,6 +48,9 @@
                return len(s)
        }
        if len(s) == 1 { // Single-character ASCII fast path
+               if s[0] == '\n' { // Replaced with ↲
+                       return 1
+               }
                if s[0] <= 0x1F {
                        return 0
                }

++++++ vendor.tar.zst ++++++

Reply via email to