From 40a3c10c110806c88f477ac2920dc44cd0b95647 Mon Sep 17 00:00:00 2001
From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
Date: Wed, 29 May 2024 22:01:43 -0500
Subject: user/libgnt: Update to 2.14.3 and patch

Upstream has an unreleased 2.14.4 with this patch, that fixes an
attempted access on an internal ncurses struct.
---
 user/libgnt/APKBUILD      | 10 +++++---
 user/libgnt/ncurses.patch | 62 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 68 insertions(+), 4 deletions(-)
 create mode 100644 user/libgnt/ncurses.patch

(limited to 'user/libgnt')

diff --git a/user/libgnt/APKBUILD b/user/libgnt/APKBUILD
index bd4b921c4..55703f4e8 100644
--- a/user/libgnt/APKBUILD
+++ b/user/libgnt/APKBUILD
@@ -1,7 +1,7 @@
 # Contributor: A. Wilcox <awilfox@adelielinux.org>
 # Maintainer: A. Wilcox <awilfox@adelielinux.org>
 pkgname=libgnt
-pkgver=2.14.0
+pkgver=2.14.3
 pkgrel=0
 pkgdesc="Glib Ncurses Toolkit"
 url="https://pidgin.im/"
@@ -12,6 +12,7 @@ makedepends="glib-dev gtk-doc meson ncurses-dev ninja"
 subpackages="$pkgname-dev $pkgname-doc"
 source="https://downloads.sourceforge.net/pidgin/libgnt-$pkgver.tar.xz
 	tinfo.patch
+	ncurses.patch
 	"
 
 build() {
@@ -20,7 +21,7 @@ build() {
 		--sysconfdir=/etc \
 		--mandir=/usr/share/man \
 		--localstatedir=/var \
-		--buildtype=release \
+		-Dpython2=false \
 		. output
 	ninja -C output
 }
@@ -33,5 +34,6 @@ package() {
 	DESTDIR="$pkgdir" ninja -C output install
 }
 
-sha512sums="0d9c5550374696a0e6ede5246cda3c372d7055d21b9ffaf10be88d6a469bdf18c7dd1113ec612acf4889c0e5686ea87bb0e8348ca8985fd5ff8913afc5813b38  libgnt-2.14.0.tar.xz
-56ce8dab03e74714ecfe0cb7dd274c5fce996d84793fff5e247ee329b1c5bebf2d933b96cc6fe916dafb4f402269d3b1b8cacda07deff4c149869d509ee5c416  tinfo.patch"
+sha512sums="7131834cfe585177865bebf26167de08a04fced3da4e9a072d9b09b3becd1194914757b1a1fc8f129ae6c8fefe3ec1ce0d80d6c50cb624a5698b66ee2e06c6c8  libgnt-2.14.3.tar.xz
+56ce8dab03e74714ecfe0cb7dd274c5fce996d84793fff5e247ee329b1c5bebf2d933b96cc6fe916dafb4f402269d3b1b8cacda07deff4c149869d509ee5c416  tinfo.patch
+cfdd0667238948ac45ce992c3b0ef7aa90fc9c8a06ee695d5b516deac17e3e57460dbb3072ee0248ada3bf5d24d2a75736259dd873a6c72483a1040259831b49  ncurses.patch"
diff --git a/user/libgnt/ncurses.patch b/user/libgnt/ncurses.patch
new file mode 100644
index 000000000..0d91c2dbf
--- /dev/null
+++ b/user/libgnt/ncurses.patch
@@ -0,0 +1,62 @@
+# HG changeset patch
+# Node ID 7c4e8ad1e3c7
+# Parent  73d8724225e7
+diff --git a/gntwm.c b/gntwm.c
+--- a/gntwm.c
++++ b/gntwm.c
+@@ -166,38 +166,40 @@
+ 		int sx, ex, sy, ey, w, y;
+ 		cchar_t ch;
+ 		PANEL *below = panel;
++		WINDOW *window = panel_window(panel);
+ 
+-		sx = getbegx(panel->win);
+-		ex = getmaxx(panel->win) + sx;
+-		sy = getbegy(panel->win);
+-		ey = getmaxy(panel->win) + sy;
++		sx = getbegx(window);
++		ex = getmaxx(window) + sx;
++		sy = getbegy(window);
++		ey = getmaxy(window) + sy;
+ 
+ 		while ((below = panel_below(below)) != NULL) {
+-			if (sy > getbegy(below->win) + getmaxy(below->win) ||
+-					ey < getbegy(below->win))
++			window = panel_window(below);
++			if (sy > getbegy(window) + getmaxy(window) ||
++					ey < getbegy(window))
+ 				continue;
+-			if (sx > getbegx(below->win) + getmaxx(below->win) ||
+-					ex < getbegx(below->win))
++			if (sx > getbegx(window) + getmaxx(window) ||
++					ex < getbegx(window))
+ 				continue;
+-			for (y = MAX(sy, getbegy(below->win)); y <= MIN(ey, getbegy(below->win) + getmaxy(below->win)); y++) {
+-				if (mvwin_wch(below->win, y - getbegy(below->win), sx - 1 - getbegx(below->win), &ch) != OK)
++			for (y = MAX(sy, getbegy(window)); y <= MIN(ey, getbegy(window) + getmaxy(window)); y++) {
++				if (mvwin_wch(window, y - getbegy(window), sx - 1 - getbegx(window), &ch) != OK)
+ 					goto right;
+ 				w = widestringwidth(ch.chars);
+ 				if (w > 1 && (ch.attr & 1)) {
+ 					ch.chars[0] = ' ';
+ 					ch.attr &= ~ A_CHARTEXT;
+-					mvwadd_wch(below->win, y - getbegy(below->win), sx - 1 - getbegx(below->win), &ch);
+-					touchline(below->win, y - getbegy(below->win), 1);
++					mvwadd_wch(window, y - getbegy(window), sx - 1 - getbegx(window), &ch);
++					touchline(window, y - getbegy(window), 1);
+ 				}
+ right:
+-				if (mvwin_wch(below->win, y - getbegy(below->win), ex + 1 - getbegx(below->win), &ch) != OK)
++				if (mvwin_wch(window, y - getbegy(window), ex + 1 - getbegx(window), &ch) != OK)
+ 					continue;
+ 				w = widestringwidth(ch.chars);
+ 				if (w > 1 && !(ch.attr & 1)) {
+ 					ch.chars[0] = ' ';
+ 					ch.attr &= ~ A_CHARTEXT;
+-					mvwadd_wch(below->win, y - getbegy(below->win), ex + 1 - getbegx(below->win), &ch);
+-					touchline(below->win, y - getbegy(below->win), 1);
++					mvwadd_wch(window, y - getbegy(window), ex + 1 - getbegx(window), &ch);
++					touchline(window, y - getbegy(window), 1);
+ 				}
+ 			}
+ 		}
-- 
cgit v1.2.3-70-g09d2