Fix madtty_color_pair for terms with only 8 colors.
authorPierre Habouzit <madcoder@debian.org>
Sat, 10 Nov 2007 20:09:00 +0000 (21:09 +0100)
committerPierre Habouzit <madcoder@debian.org>
Sat, 10 Nov 2007 20:09:00 +0000 (21:09 +0100)
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
madtty/madtty.c

index 5b51618..8994454 100644 (file)
@@ -671,7 +671,7 @@ static uint16_t const vt100_0[62] = { // 41 .. 7e
     0x2502, 0x2264, 0x2265, 0x03c0, 0x2260, 0x00a3, 0x00b7,         // 78-7e
 };
 
-void madtty_putc(madtty_t *t, wchar_t wc)
+static void madtty_putc(madtty_t *t, wchar_t wc)
 {
     int width = 0;
 
@@ -963,7 +963,7 @@ 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;
@@ -984,5 +984,16 @@ void madtty_init_colors(void)
 
 int madtty_color_pair(int fg, int bg)
 {
-    return 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);
 }