about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-02-10 05:33:31 -0500
committerJune McEnroe <june@causal.agency>2020-02-10 05:33:31 -0500
commitb9a6d35b659e5eba69897d27cee0091821fbe897 (patch)
tree2a85b8d7abc63679c703f50a9654ad3e938e1386
parentSupport all 99 IRC colors (diff)
downloadcatgirl-b9a6d35b659e5eba69897d27cee0091821fbe897.tar.gz
catgirl-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.c6
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);