From 037e6dd0794674264cee0049f49f39a60fe7cb40 Mon Sep 17 00:00:00 2001
From: Sven Joachim <svenjoac@gmx.de>
Date: Mon, 18 Dec 2023 17:14:36 +0100
Subject: [PATCH] Fix FTBFS with opaque ncurses

Since ncurses patchlevel 20231021 the ITEM structure is opaque, its
members cannot be addressed directly.  Use the item_index function
instead.
---
 src/interface.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/interface.c b/src/interface.c
index 2692b18..25a174d 100644
--- a/src/interface.c
+++ b/src/interface.c
@@ -1066,7 +1066,7 @@ char *tv_file_select(int next) {
 		post_menu(menu);

 		for(y = 0; items[y]; y++)
-			if(items[y]->index != index) menu_driver(menu, REQ_DOWN_ITEM);
+			if(item_index(items[y]) != index) menu_driver(menu, REQ_DOWN_ITEM);
 			else break;

 		if(next) {
@@ -1076,7 +1076,7 @@ char *tv_file_select(int next) {
 		}

 		current = current_item(menu);
-		index = current->index;
+		index = item_index(current);
 		wrefresh(wf);
 		while((ch = getch()) != 13) {
 			switch(ch) {
@@ -1108,7 +1108,7 @@ char *tv_file_select(int next) {
 					break;
 				case TD_KEY_ESCAPE:
 					current = current_item(menu);
-					index = current->index;
+					index = item_index(current);

 					unpost_menu(menu);
 					free_menu(menu);
@@ -1133,7 +1133,7 @@ char *tv_file_select(int next) {
 					}
 			}
 			current = current_item(menu);
-			index = current->index;
+			index = item_index(current);
 			wrefresh(wf);
 		}
 		if(strcmp("", input)) {
@@ -1143,7 +1143,7 @@ char *tv_file_select(int next) {
 		} else {
 hugehack:
 			current = current_item(menu);
-			index = current->index;
+			index = item_index(current);
 			unpost_menu(menu);
 			free_menu(menu);
 			free_items(items);
@@ -1214,11 +1214,11 @@ char *file_select() {
 		post_menu(menu);

 		for(y = 0; items[y]; y++)
-			if(items[y]->index != index) menu_driver(menu, REQ_DOWN_ITEM);
+			if(item_index(items[y]) != index) menu_driver(menu, REQ_DOWN_ITEM);
 			else break;

 		current = current_item(menu);
-		index = current->index;
+		index = item_index(current);
 		memset(&sauce_title, 0, sizeof(sauce_title));
 		memset(&sauce_group, 0, sizeof(sauce_group));
 		memset(&sauce_author, 0, sizeof(sauce_author));
@@ -1256,7 +1256,7 @@ char *file_select() {
 					break;
 				case TD_KEY_ESCAPE:
 					current = current_item(menu);
-					index = current->index;
+					index = item_index(current);

 					unpost_menu(menu);
 					free_menu(menu);
@@ -1281,7 +1281,7 @@ char *file_select() {
 					}
 			}
 			current = current_item(menu);
-			index = current->index;
+			index = item_index(current);
 			memset(&sauce_title, 0, sizeof(sauce_title));
 			memset(&sauce_group, 0, sizeof(sauce_group));
 			memset(&sauce_author, 0, sizeof(sauce_author));
@@ -1296,7 +1296,7 @@ char *file_select() {
 			return fname;
 		} else {
 			current = current_item(menu);
-			index = current->index;
+			index = item_index(current);
 			unpost_menu(menu);
 			free_menu(menu);
 			free_items(items);
--
2.43.0

