File reduce-inverse-color.patch of Package iptraf-ng

From: Jan Engelhardt <jengelh@inai.de>
Date: 2025-01-04 19:58 +0100
Subject: Tone down use of inverse color attr in monochrome mode
References: https://github.com/iptraf-ng/iptraf-ng/pull/41

diff --git src/attrs.h src/attrs.h
index d963550..64c8fcf 100644
--- src/attrs.h
+++ src/attrs.h
@@ -13,8 +13,9 @@ extern int BARPTRATTR;
 extern int DLGTEXTATTR;
 extern int DLGHIGHATTR;
 extern int DLGBOXATTR;
-extern int DESCATTR;
 extern int STATUSBARATTR;
+extern int KEYBARATTR;
+extern int KEYHIGHATTR;
 extern int IPSTATATTR;
 extern int IPSTATLABELATTR;
 extern int DESKTEXTATTR;
diff --git src/deskman.c src/deskman.c
index 812552f..7c00a28 100644
--- src/deskman.c
+++ src/deskman.c
@@ -29,8 +29,9 @@ int BARPTRATTR;
 int DLGTEXTATTR;
 int DLGBOXATTR;
 int DLGHIGHATTR;
-int DESCATTR;
 int STATUSBARATTR;
+int KEYBARATTR;
+int KEYHIGHATTR;
 int IPSTATLABELATTR;
 int IPSTATATTR;
 int DESKTEXTATTR;
@@ -57,7 +58,7 @@ void draw_desktop(void)
 	int row;		/* counter for desktop construction */
 
 	scrollok(stdscr, 0);
-	attrset(STATUSBARATTR);
+	attrset(KEYBARATTR);
 	move(0, 0);
 	printw("%*c", COLS, ' ');	/* these two print the top n' bottom */
 	move(LINES - 1, 0);
@@ -149,19 +150,19 @@ void stdkeyhelp(WINDOW * win)
 
 void sortkeyhelp(void)
 {
-	tx_printkeyhelp("S", "-sort  ", stdscr, HIGHATTR, STATUSBARATTR);
+	tx_printkeyhelp("S", "-sort  ", stdscr, KEYHIGHATTR, KEYBARATTR);
 }
 
 void stdexitkeyhelp(void)
 {
-	tx_printkeyhelp("X", "-exit", stdscr, HIGHATTR, STATUSBARATTR);
+	tx_printkeyhelp("X", "-exit", stdscr, KEYHIGHATTR, KEYBARATTR);
 	tx_coloreol();
 }
 
 void scrollkeyhelp(void)
 {
 	tx_printkeyhelp("Up/Down/PgUp/PgDn", "-scroll window  ", stdscr,
-			HIGHATTR, STDATTR);
+			KEYHIGHATTR, KEYBARATTR);
 }
 
 void tabkeyhelp(WINDOW * win)
@@ -171,7 +172,7 @@ void tabkeyhelp(WINDOW * win)
 
 void indicate(char *message)
 {
-	attrset(STATUSBARATTR);
+	attrset(KEYBARATTR);
 	mvprintw(LINES - 1, 0, "%*c", COLS, ' ');
 	mvprintw(LINES - 1, 1, "%s", message);
 	refresh();
@@ -240,11 +241,12 @@ void standardcolors(int color)
 		BARSTDATTR = COLOR_PAIR(15) | A_BOLD;
 		BARHIGHATTR = COLOR_PAIR(11) | A_BOLD;
 		BARPTRATTR = COLOR_PAIR(18) | A_BOLD;
-		DESCATTR = COLOR_PAIR(2);
+		STATUSBARATTR = COLOR_PAIR(2);
 		DLGTEXTATTR = COLOR_PAIR(2);
 		DLGBOXATTR = COLOR_PAIR(6);
 		DLGHIGHATTR = COLOR_PAIR(12);
-		STATUSBARATTR = STDATTR;
+		KEYBARATTR = STDATTR;
+		KEYHIGHATTR = HIGHATTR;
 		IPSTATLABELATTR = COLOR_PAIR(2);
 		IPSTATATTR = COLOR_PAIR(12);
 		DESKTEXTATTR = COLOR_PAIR(7);
@@ -264,22 +266,23 @@ void standardcolors(int color)
 		IPV6ATTR = COLOR_PAIR(19);
 		UNKNATTR = COLOR_PAIR(4) | A_BOLD;
 	} else {
-		STDATTR = A_REVERSE;
-		HIGHATTR = A_REVERSE;
-		BOXATTR = A_REVERSE;
+		STDATTR = A_NORMAL;
+		HIGHATTR = A_BOLD;
+		BOXATTR = A_NORMAL;
 		ACTIVEATTR = A_BOLD;
-		BARSTDATTR = A_NORMAL;
-		BARHIGHATTR = A_BOLD;
+		BARSTDATTR = A_REVERSE;
+		BARHIGHATTR = A_REVERSE | A_BOLD;
 		BARPTRATTR = A_NORMAL;
-		DESCATTR = A_BOLD;
+		STATUSBARATTR = A_REVERSE;
 		DLGBOXATTR = A_REVERSE;
 		DLGTEXTATTR = A_REVERSE;
-		DLGHIGHATTR = A_BOLD;
-		STATUSBARATTR = A_REVERSE;
+		DLGHIGHATTR = A_REVERSE | A_BOLD;
+		KEYBARATTR = A_REVERSE;
+		KEYHIGHATTR = A_REVERSE | A_BOLD;
 		IPSTATLABELATTR = A_REVERSE;
 		IPSTATATTR = A_STANDOUT;
 		DESKTEXTATTR = A_NORMAL;
-		PTRATTR = A_REVERSE;
+		PTRATTR = A_BOLD;
 		FIELDATTR = A_BOLD;
 		ERRBOXATTR = A_BOLD;
 		ERRTXTATTR = A_NORMAL;
diff --git src/fltedit.c src/fltedit.c
index 300487f..b5e96c2 100644
--- src/fltedit.c
+++ src/fltedit.c
@@ -222,13 +222,13 @@ void modify_host_parameters(struct filterlist *fl)
 	tx_colorwin(win);
 
 	move(LINES - 1, 1);
-	tx_printkeyhelp("Up/Down", "-move ptr ", stdscr, HIGHATTR,
-			STATUSBARATTR);
-	tx_printkeyhelp("I", "-insert ", stdscr, HIGHATTR, STATUSBARATTR);
-	tx_printkeyhelp("A", "-add to list ", stdscr, HIGHATTR, STATUSBARATTR);
-	tx_printkeyhelp("D", "-delete ", stdscr, HIGHATTR, STATUSBARATTR);
-	tx_printkeyhelp("Enter", "-edit ", stdscr, HIGHATTR, STATUSBARATTR);
-	tx_printkeyhelp("X/Ctrl+X", "-exit", stdscr, HIGHATTR, STATUSBARATTR);
+	tx_printkeyhelp("Up/Down", "-move ptr ", stdscr, KEYHIGHATTR,
+			KEYBARATTR);
+	tx_printkeyhelp("I", "-insert ", stdscr, KEYHIGHATTR, KEYBARATTR);
+	tx_printkeyhelp("A", "-add to list ", stdscr, KEYHIGHATTR, KEYBARATTR);
+	tx_printkeyhelp("D", "-delete ", stdscr, KEYHIGHATTR, KEYBARATTR);
+	tx_printkeyhelp("Enter", "-edit ", stdscr, KEYHIGHATTR, KEYBARATTR);
+	tx_printkeyhelp("X/Ctrl+X", "-exit", stdscr, KEYHIGHATTR, KEYBARATTR);
 
 	update_panels();
 	doupdate();
diff --git src/fltmgr.c src/fltmgr.c
index 5b7e19c..beac32a 100644
--- src/fltmgr.c
+++ src/fltmgr.c
@@ -25,8 +25,7 @@ fltmgr.c - filter list management routines
 
 void makestdfiltermenu(struct MENU *menu)
 {
-	tx_initmenu(menu, 9, 31, (LINES - 8) / 2, (COLS - 31) / 2 + 15, BOXATTR,
-		    STDATTR, HIGHATTR, BARSTDATTR, BARHIGHATTR, DESCATTR);
+	tx_initmenu(menu, 9, 31, (LINES - 8) / 2, (COLS - 31) / 2 + 15);
 	tx_additem(menu, " ^D^efine new filter...",
 		   "Defines a new set of IP filter parameters");
 	tx_additem(menu, " ^A^pply filter...", "Applies a defined filter");
@@ -224,15 +223,14 @@ void operate_select(struct ffnode *ffiles, struct ffnode **item, int *aborted)
 	struct ffnode *pptr;
 	struct scroll_list list;
 
-	tx_listkeyhelp(STDATTR, HIGHATTR);
+	tx_listkeyhelp(KEYBARATTR, KEYHIGHATTR);
 	update_panels();
 	doupdate();
 
 	pptr = ffiles;
 
 	tx_init_listbox(&list, 60, 10, (COLS - 60) / 2 - 2,
-			(LINES - 10) / 2 - 2, STDATTR, BOXATTR, BARSTDATTR,
-			HIGHATTR);
+			(LINES - 10) / 2 - 2);
 
 	tx_set_listbox_title(&list, "Select Filter", 1);
 
diff --git src/fltselect.c src/fltselect.c
index 4be6243..c660eff 100644
--- src/fltselect.c
+++ src/fltselect.c
@@ -28,8 +28,7 @@ struct filterstate ofilter;
 
 void makemainfiltermenu(struct MENU *menu)
 {
-	tx_initmenu(menu, 8, 18, (LINES - 8) / 2, (COLS - 31) / 2, BOXATTR,
-		    STDATTR, HIGHATTR, BARSTDATTR, BARHIGHATTR, DESCATTR);
+	tx_initmenu(menu, 8, 18, (LINES - 8) / 2, (COLS - 31) / 2);
 	tx_additem(menu, " ^I^P...", "Manages IP packet filters");
 	tx_additem(menu, " ^A^RP",
 		   "Toggles Address Resolution Protocol filter");
diff --git src/ifstats.c src/ifstats.c
index 1b687b6..dd85985 100644
--- src/ifstats.c
+++ src/ifstats.c
@@ -692,13 +692,12 @@ void selectiface(char *ifname, int withall, int *aborted)
 		ptmp->next_entry = list;
 		list = ptmp;
 	}
-	tx_listkeyhelp(STDATTR, HIGHATTR);
+	tx_listkeyhelp(KEYBARATTR, KEYHIGHATTR);
 
 	ptmp = list;
 
 	tx_init_listbox(&scrolllist, 24, 14, (COLS - 24) / 2 - 9,
-			(LINES - 14) / 2, STDATTR, BOXATTR, BARSTDATTR,
-			HIGHATTR);
+			(LINES - 14) / 2);
 
 	tx_set_listbox_title(&scrolllist, "Select Interface", 1);
 
diff --git src/iptraf.c src/iptraf.c
index e5dcb64..1883edf 100644
--- src/iptraf.c
+++ src/iptraf.c
@@ -115,8 +115,7 @@ static void term_usr2_handler(int s __unused)
 
 static void init_break_menu(struct MENU *break_menu)
 {
-	tx_initmenu(break_menu, 6, 20, (LINES - 6) / 2, COLS / 2, BOXATTR,
-		    STDATTR, HIGHATTR, BARSTDATTR, BARHIGHATTR, DESCATTR);
+	tx_initmenu(break_menu, 6, 20, (LINES - 6) / 2, COLS / 2);
 	tx_additem(break_menu, " By packet ^s^ize",
 		   "Displays packet counts by packet size range");
 	tx_additem(break_menu, " By TCP/UDP ^p^ort",
@@ -149,8 +148,7 @@ static void program_interface(void)
 	loadfilters();
 	indicate("");
 
-	tx_initmenu(&menu, 15, 35, (LINES - 16) / 2, (COLS - 35) / 2, BOXATTR,
-		    STDATTR, HIGHATTR, BARSTDATTR, BARHIGHATTR, DESCATTR);
+	tx_initmenu(&menu, 15, 35, (LINES - 16) / 2, (COLS - 35) / 2);
 
 	tx_additem(&menu, " IP traffic ^m^onitor",
 		   "Displays current IP traffic information");
@@ -521,7 +519,7 @@ int main(int argc, char **argv)
 	 * hide all into tui_top_panel(char *msg)
 	 * */
 	draw_desktop();
-	attrset(STATUSBARATTR);
+	attrset(KEYBARATTR);
 	mvprintw(0, 1, "%s %s", IPTRAF_NAME, IPTRAF_VERSION);
 
 	/* simplify */
diff --git src/itrafmon.c src/itrafmon.c
index 6255160..3e72859 100644
--- src/itrafmon.c
+++ src/itrafmon.c
@@ -47,12 +47,12 @@ static void rotate_ipmon_log(int s __unused)
 static void ipmonhelp(void)
 {
 	move(LINES - 1, 1);
-	tx_printkeyhelp("Up/Dn/PgUp/PgDn", "-scroll  ", stdscr, HIGHATTR,
-			STATUSBARATTR);
+	tx_printkeyhelp("Up/Dn/PgUp/PgDn", "-scroll  ", stdscr, KEYHIGHATTR,
+			KEYBARATTR);
 	move(LINES - 1, 43);
-	tx_printkeyhelp("W", "-chg actv win  ", stdscr, HIGHATTR,
-			STATUSBARATTR);
-	tx_printkeyhelp("S", "-sort TCP  ", stdscr, HIGHATTR, STATUSBARATTR);
+	tx_printkeyhelp("W", "-chg actv win  ", stdscr, KEYHIGHATTR,
+			KEYBARATTR);
+	tx_printkeyhelp("S", "-sort TCP  ", stdscr, KEYHIGHATTR, KEYBARATTR);
 	stdexitkeyhelp();
 }
 
@@ -60,11 +60,11 @@ static void uniq_help(int what)
 {
 	move(LINES - 1, 25);
 	if (!what)
-		tx_printkeyhelp("M", "-more TCP info   ", stdscr, HIGHATTR,
-				STATUSBARATTR);
+		tx_printkeyhelp("M", "-more TCP info   ", stdscr, KEYHIGHATTR,
+				KEYBARATTR);
 	else
-		tx_printkeyhelp("Lft/Rt", "-vtcl scrl  ", stdscr, HIGHATTR,
-				STATUSBARATTR);
+		tx_printkeyhelp("Lft/Rt", "-vtcl scrl  ", stdscr, KEYHIGHATTR,
+				KEYBARATTR);
 }
 
 static void markactive(int curwin, WINDOW * tw, WINDOW * ow)
diff --git src/landesc.c src/landesc.c
index d51c094..2c5be20 100644
--- src/landesc.c
+++ src/landesc.c
@@ -203,8 +203,7 @@ static struct eth_desc *select_eth_desc(const struct eth_desc *hd)
 		return NULL;
 	}
 
-	tx_init_listbox(&slist, COLS, 20, 0, (LINES - 20) / 2, STDATTR, BOXATTR,
-			BARSTDATTR, HIGHATTR);
+	tx_init_listbox(&slist, COLS, 20, 0, (LINES - 20) / 2);
 
 	tx_set_listbox_title(&slist, "Address", 1);
 	tx_set_listbox_title(&slist, "Description", 19);
@@ -327,8 +326,7 @@ void manage_eth_desc(unsigned linktype)
 	int row = 1;
 	int aborted = 0;
 
-	tx_initmenu(&menu, 7, 31, (LINES - 6) / 2, (COLS - 31) / 2, BOXATTR,
-		    STDATTR, HIGHATTR, BARSTDATTR, BARHIGHATTR, DESCATTR);
+	tx_initmenu(&menu, 7, 31, (LINES - 6) / 2, (COLS - 31) / 2);
 	tx_additem(&menu, " ^A^dd description...",
 		   "Adds a description for a MAC address");
 	tx_additem(&menu, " ^E^dit description...",
diff --git src/options.c src/options.c
index 64830f2..1c332c3 100644
--- src/options.c
+++ src/options.c
@@ -28,9 +28,7 @@ struct OPTIONS options;
 
 static void makeoptionmenu(struct MENU *menu)
 {
-	tx_initmenu(menu, 20, 40, (LINES - 19) / 2 - 1, (COLS - 40) / 16,
-		    BOXATTR, STDATTR, HIGHATTR, BARSTDATTR, BARHIGHATTR,
-		    DESCATTR);
+	tx_initmenu(menu, 20, 40, (LINES - 19) / 2 - 1, (COLS - 40) / 16);
 	tx_additem(menu, " ^R^everse DNS lookups",
 		   "Toggles resolution of IP addresses into host names");
 	tx_additem(menu, " TCP/UDP ^s^ervice names",
@@ -65,8 +63,7 @@ static void makeoptionmenu(struct MENU *menu)
 
 static void maketimermenu(struct MENU *menu)
 {
-	tx_initmenu(menu, 8, 35, (LINES - 19) / 2 + 7, (COLS - 35) / 2, BOXATTR,
-		    STDATTR, HIGHATTR, BARSTDATTR, BARHIGHATTR, DESCATTR);
+	tx_initmenu(menu, 8, 35, (LINES - 19) / 2 + 7, (COLS - 35) / 2);
 
 	tx_additem(menu, " TCP ^t^imeout...",
 		   "Sets the length of time before inactive TCP entries are considered idle");
diff --git src/serv.c src/serv.c
index 8354af6..f97d37f 100644
--- src/serv.c
+++ src/serv.c
@@ -1270,8 +1270,7 @@ static void operate_portselect(struct porttab **table, struct porttab **node,
 	struct scroll_list list;
 	char listtext[20];
 
-	tx_init_listbox(&list, 25, 22, (COLS - 25) / 2, (LINES - 22) / 2,
-			STDATTR, BOXATTR, BARSTDATTR, HIGHATTR);
+	tx_init_listbox(&list, 25, 22, (COLS - 25) / 2, (LINES - 22) / 2);
 
 	tx_set_listbox_title(&list, "Select Port/Range", 1);
 
diff --git src/tui/listbox.c src/tui/listbox.c
index daecf66..ab8b0d9 100644
--- src/tui/listbox.c
+++ src/tui/listbox.c
@@ -7,6 +7,7 @@
 
 #include "iptraf-ng-compat.h"
 
+#include "attrs.h"
 #include "winops.h"
 #include "labels.h"
 #include "listbox.h"
@@ -16,25 +17,25 @@
 #define SCROLLDOWN 1
 
 void tx_init_listbox(struct scroll_list *list, int width, int height,
-		     int startx, int starty, int mainattr, int borderattr,
-		     int selectattr, int keyattr)
+		     int startx, int starty)
 {
 	memset(list, 0, sizeof(struct scroll_list));
 	list->borderwin = newwin(height, width, starty, startx);
 	list->borderpanel = new_panel(list->borderwin);
-	wattrset(list->borderwin, borderattr);
+	wattrset(list->borderwin, BOXATTR);
 	tx_box(list->borderwin, ACS_VLINE, ACS_HLINE);
 
 	list->win = newwin(height - 2, width - 2, starty + 1, startx + 1);
 	list->panel = new_panel(list->win);
-	wattrset(list->win, mainattr);
+	wattrset(list->win, STDATTR);
 	tx_colorwin(list->win);
 
-	list->mainattr = mainattr;
-	list->selectattr = selectattr;
+	list->mainattr = STDATTR;
+	list->selectattr = BARSTDATTR;
 	list->height = height;
 	list->width = width;
-	list->keyattr = keyattr;
+	list->keybarattr = KEYBARATTR;
+	list->keyhighattr = KEYHIGHATTR;
 	list->row = 0;
 
 	tx_stdwinset(list->win);
@@ -141,7 +142,7 @@ void tx_operate_listbox(struct scroll_list *list, int *aborted)
 
 	list->textptr = list->textlist;
 
-	tx_listkeyhelp(list->mainattr, list->keyattr);
+	tx_listkeyhelp(list->keybarattr, list->keyhighattr);
 	update_panels();
 	doupdate();
 
diff --git src/tui/listbox.h src/tui/listbox.h
index 510bbf1..f7c683d 100644
--- src/tui/listbox.h
+++ src/tui/listbox.h
@@ -18,7 +18,8 @@ struct scroll_list {
 	int width;
 	int mainattr;
 	int selectattr;
-	int keyattr;
+	int keybarattr;
+	int keyhighattr;
 	int row;
 
 	WINDOW *win;
@@ -28,8 +29,7 @@ struct scroll_list {
 };
 
 void tx_init_listbox(struct scroll_list *list, int width, int height,
-		     int startx, int starty, int mainattr, int borderattr,
-		     int selectattr, int keyattr);
+		     int startx, int starty);
 void tx_set_listbox_title(struct scroll_list *list, char *text, int x);
 void tx_add_list_entry(struct scroll_list *list, char *node, char *text);
 void tx_show_listbox(struct scroll_list *list);
diff --git src/tui/menurt.c src/tui/menurt.c
index fb3f002..bf95698 100644
--- src/tui/menurt.c
+++ src/tui/menurt.c
@@ -9,15 +9,14 @@ menurt.c - ncurses-based menu definition module
 
 #include "iptraf-ng-compat.h"
 
+#include "attrs.h"
 #include "menurt.h"
 #include "winops.h"
 #include "labels.h"
 
 /* initialize menu system */
 
-void tx_initmenu(struct MENU *menu, int y1, int x1, int y2, int x2,
-		 int borderattr, int normalattr, int highattr,
-		 int barnormalattr, int barhighattr, int descattr)
+void tx_initmenu(struct MENU *menu, int y1, int x1, int y2, int x2)
 {
 	menu->itemlist = NULL;
 	menu->itemcount = 0;
@@ -38,12 +37,14 @@ void tx_initmenu(struct MENU *menu, int y1, int x1, int y2, int x2,
 	nonl();
 	cbreak();
 
-	menu->borderattr = borderattr;
-	menu->normalattr = normalattr;
-	menu->highattr = highattr;
-	menu->barnormalattr = barnormalattr;
-	menu->barhighattr = barhighattr;
-	menu->descriptionattr = descattr;
+	menu->borderattr = BOXATTR;
+	menu->normalattr = STDATTR;
+	menu->highattr = HIGHATTR;
+	menu->barnormalattr = BARSTDATTR;
+	menu->barhighattr = BARHIGHATTR;
+	menu->statusattr = STATUSBARATTR;
+	menu->keybarattr = KEYBARATTR;
+	menu->keyhighattr = KEYHIGHATTR;
 }
 
 /* add menu item */
@@ -183,7 +184,7 @@ void tx_operatemenu(struct MENU *menu, int *position, int *aborted)
 	int ch;
 	char *keyptr;
 
-	tx_menukeyhelp(menu->normalattr, menu->highattr);
+	tx_menukeyhelp(menu->keybarattr, menu->keyhighattr);
 	*aborted = 0;
 	menumoveto(menu, &itemptr, row);
 
@@ -198,7 +199,7 @@ void tx_operatemenu(struct MENU *menu, int *position, int *aborted)
 		 * Print item description
 		 */
 
-		wattrset(menu->descwin, menu->descriptionattr);
+		wattrset(menu->descwin, menu->statusattr);
 		tx_colorwin(menu->descwin);
 		mvwprintw(menu->descwin, 0, 0, " %s", itemptr->desc);
 		update_panels();
diff --git src/tui/menurt.h src/tui/menurt.h
index 03c8b5a..ad3d6c5 100644
--- src/tui/menurt.h
+++ src/tui/menurt.h
@@ -41,13 +41,13 @@ struct MENU {
 	int highattr;
 	int barnormalattr;
 	int barhighattr;
-	int descriptionattr;
+	int statusattr;
+	int keybarattr;
+	int keyhighattr;
 	char shortcuts[SHORTCUTSTRLEN_MAX];
 };
 
-void tx_initmenu(struct MENU *menu, int y1, int x1, int y2, int x2,
-		 int borderattr, int normalattr, int highattr,
-		 int barnormalattr, int barhighattr, int descattr);
+void tx_initmenu(struct MENU *menu, int y1, int x1, int y2, int x2);
 void tx_additem(struct MENU *menu, char *item, char *desc);
 void tx_showitem(struct MENU *menu, struct ITEM *itemptr, int selected);
 void tx_showmenu(struct MENU *menu);
openSUSE Build Service is sponsored by