Hello community,

here is the log from the commit of package irssi for openSUSE:Factory checked 
in at 2020-04-28 22:33:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/irssi (Old)
 and      /work/SRC/openSUSE:Factory/.irssi.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "irssi"

Tue Apr 28 22:33:30 2020 rev:57 rq:798724 version:1.2.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/irssi/irssi.changes      2019-08-30 
14:41:52.993418009 +0200
+++ /work/SRC/openSUSE:Factory/.irssi.new.2738/irssi.changes    2020-04-28 
22:33:57.769932033 +0200
@@ -1,0 +2,7 @@
+Tue Apr 28 16:33:09 UTC 2020 - Ailin Nemui <[email protected]>
+
+- added glib-2-63.patch:
+  - Backport a fix that froze Irssi on GLib >2.62 when typing
+    Ctrl+Space (#1180, #1183)
+
+-------------------------------------------------------------------

New:
----
  glib-2-63.patch

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

Other differences:
------------------
++++++ irssi.spec ++++++
--- /var/tmp/diff_new_pack.neljAJ/_old  2020-04-28 22:33:58.817933987 +0200
+++ /var/tmp/diff_new_pack.neljAJ/_new  2020-04-28 22:33:58.817933987 +0200
@@ -31,6 +31,7 @@
 # https://sks-keyservers.net/pks/lookup?op=get&search=0x00CCB587DDBEF0E1
 Source4:        %{name}.keyring
 Source99:       irssi-rpmlintrc
+Patch0:         https://github.com/ailin-nemui/irssi/commit/glib-2-63.patch
 # PATCH-FIX-OPENSUSE irssi-0.8.16_missing_prototype_warnings.patch
 Patch1:         irssi-0.8.16_missing_prototype_warnings.patch
 BuildRequires:  glib2-devel
@@ -78,6 +79,7 @@
 
 %prep
 %setup -q
+%patch0 -p1
 %patch1
 
 %build

++++++ glib-2-63.patch ++++++
>From a0544571a80196e5b7705f56e6e2cbcdf7b4d80e Mon Sep 17 00:00:00 2001
From: ailin-nemui <[email protected]>
Date: Thu, 23 Apr 2020 21:45:15 +0200
Subject: [PATCH] manually handle NUL unicode in g_utf8_get_next_char_validated

A change in GLib 2.63 broke some assumptions in Irssi that the null-byte
NUL / U+0000 is a valid Unicode character. This would occur when the
user types Ctrl+Space. As a result, the input loop never manages to
process the NUL-byte (and any other user input that follows, ever).

This patch adds a manual check that properly advances the input loop if
GLib returns -2 (incomplete character) despite the length being positive
and a NUL is in first position.

Fixes #1180
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/967
https://gitlab.gnome.org/GNOME/glib/-/issues/2093
---
 src/fe-text/term-terminfo.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/fe-text/term-terminfo.c b/src/fe-text/term-terminfo.c
index 5235f72d2..78496a64f 100644
--- a/src/fe-text/term-terminfo.c
+++ b/src/fe-text/term-terminfo.c
@@ -672,7 +672,11 @@ void term_stop(void)
 
 static int input_utf8(const unsigned char *buffer, int size, unichar *result)
 {
-       unichar c = g_utf8_get_char_validated((char *)buffer, size);
+       unichar c = g_utf8_get_char_validated((char *) buffer, size);
+
+       /* GLib >= 2.63 do not accept Unicode NUL anymore */
+       if (c == (unichar) -2 && *buffer == 0 && size > 0)
+               c = 0;
 
        switch (c) {
        case (unichar)-1:




Reply via email to