From 3d4164bcce59fea52e9f6207d1540964d1d6d331 Mon Sep 17 00:00:00 2001 From: PatR Date: Fri, 15 Mar 2019 01:12:59 -0700 Subject: [PATCH] curses STATUS_HILITES Honor hilite_status rules specifying color even if curses-specific option 'guicolor' is off. Update status from scratch when 'O' is used to manipulate hilite_status rules. --- doc/fixes36.2 | 4 +++- win/curses/cursmain.c | 3 +++ win/curses/cursmisc.c | 5 ++++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/doc/fixes36.2 b/doc/fixes36.2 index e71bfd09a..593ed02d2 100644 --- a/doc/fixes36.2 +++ b/doc/fixes36.2 @@ -1,4 +1,4 @@ -$NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.274 $ $NHDT-Date: 1552521022 2019/03/13 23:50:22 $ +$NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.275 $ $NHDT-Date: 1552637574 2019/03/15 08:12:54 $ This fixes36.2 file is here to capture information about updates in the 3.6.x lineage following the release of 3.6.1 in April 2018. Please note, however, @@ -479,6 +479,8 @@ curses: when getting multi-character responses from player, support to core if ESC is typed when there is no input entered curses: extend preceding support to typing of extended command names curses: support hilite_pet and hilite_pile even when color is disabled +curses: support color hilite_status rules even if 'guicolor' is off +curses: update status if 'O' is used to add/change/remove hilite_status rules vms: add compile of isaac64.c to Makefile.src and vmsbuild.com diff --git a/win/curses/cursmain.c b/win/curses/cursmain.c index db7cc4aed..f357fe84c 100644 --- a/win/curses/cursmain.c +++ b/win/curses/cursmain.c @@ -850,6 +850,9 @@ preference_update(preference) void curses_preference_update(const char *pref) { + if (!strcmp(pref, "hilite_status") || !strcmp(pref, "align_status")) + status_initialize(REASSESS_ONLY); + if (!strcmp(pref, "align_status") || !strcmp(pref, "align_message")) { curses_create_main_windows(); diff --git a/win/curses/cursmisc.c b/win/curses/cursmisc.c index e8a829996..b11083b0c 100644 --- a/win/curses/cursmisc.c +++ b/win/curses/cursmisc.c @@ -87,7 +87,10 @@ curses_toggle_color_attr(WINDOW *win, int color, int attr, int onoff) int curses_color; /* if color is disabled, just show attribute */ - if ((win == mapwin) ? !iflags.wc_color : !iflags.wc2_guicolor) { + if ((win == mapwin) ? !iflags.wc_color + /* statuswin is for #if STATUS_HILITES + but doesn't need to be conditional */ + : !(iflags.wc2_guicolor || win == statuswin)) { #endif if (attr != NONE) { if (onoff == ON)