Merge branch 'master' into nohook
[apps/madmutt.git] / lib-ui / madtty.c
index 7a5c222..4cc53fb 100644 (file)
@@ -955,9 +955,8 @@ void madtty_keypress(madtty_t *t, int keycode)
 
 void madtty_init_colors(void)
 {
-    if (COLORS > 8) {
+    if (COLOR_PAIRS > 64) {
         use_default_colors();
-        assume_default_colors(-1, -1);
         has_default = 1;
 
         for (int bg = -1; bg < 8; bg++) {
@@ -966,9 +965,16 @@ void madtty_init_colors(void)
             }
         }
     } else {
+        int use_default = use_default_colors() == OK;
         for (int bg = 0; bg < 8; bg++) {
             for (int fg = 0; fg < 8; fg++) {
-                init_pair((7 - fg) * 8 + bg, fg, bg);
+                if (use_default) {
+                    init_pair((7 - fg) * 8 + bg,
+                              fg == COLOR_WHITE ? -1 : fg,
+                              bg == COLOR_BLACK ? -1 : bg);
+                } else {
+                    init_pair((7 - fg) * 8 + bg, fg, bg);
+                }
             }
         }
     }
@@ -976,9 +982,16 @@ void madtty_init_colors(void)
 
 int madtty_color_pair(int fg, int bg)
 {
-    if (fg < -1)
-        fg = -1;
-    if (bg < -1)
-        bg = -1;
-    return COLOR_PAIR(has_default ? (fg + 1) * 16 + bg + 1 : (7 - fg) * 8 + bg);
+    if (has_default) {
+        if (fg < -1)
+            fg = -1;
+        if (bg < -1)
+            bg = -1;
+        return COLOR_PAIR((fg + 1) * 16 + bg + 1);
+    }
+    if (fg < 0)
+        fg = COLOR_WHITE;
+    if (bg < 0)
+        bg = COLOR_BLACK;
+    return COLOR_PAIR((7 - fg) * 8 + bg);
 }