diff options
author | June McEnroe <june@causal.agency> | 2020-02-10 05:33:31 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2020-02-10 05:33:31 -0500 |
commit | b9a6d35b659e5eba69897d27cee0091821fbe897 (patch) | |
tree | 2a85b8d7abc63679c703f50a9654ad3e938e1386 | |
parent | Support all 99 IRC colors (diff) | |
download | test-b9a6d35b659e5eba69897d27cee0091821fbe897.tar.gz test-b9a6d35b659e5eba69897d27cee0091821fbe897.zip |
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.
-rw-r--r-- | ui.c | 6 |
1 files 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); |