From b9a6d35b659e5eba69897d27cee0091821fbe897 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Mon, 10 Feb 2020 05:33:31 -0500 Subject: [PATCH] Improve color fudging Prevent fudged colors from ever being pure black. Distribute fudged colors between normal and bold if COLORS is 8. Fudge colors before checking if it's a pre-allocated pair. --- ui.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ui.c b/ui.c index e36585a..3f730d2 100644 --- a/ui.c +++ b/ui.c @@ -133,13 +133,15 @@ static void colorInit(void) { } static attr_t colorAttr(short fg) { - return (fg >= COLORS && fg < 16 ? A_BOLD : A_NORMAL); + if (fg != COLOR_BLACK && fg % COLORS == COLOR_BLACK) return A_BOLD; + if (COLORS > 8) return A_NORMAL; + return (fg / COLORS & 1 ? A_BOLD : A_NORMAL); } static short colorPair(short fg, short bg) { - if (bg == -1 && fg < 16) return 1 + fg; fg %= COLORS; bg %= COLORS; + if (bg == -1 && fg < 16) return 1 + fg; for (short pair = 17; pair < colorPairs; ++pair) { short f, b; pair_content(pair, &f, &b);