X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=lib-ui%2Fmadtty.c;h=4cc53fbf38748040866880e6c52ed441b0e31d9e;hb=d8c2844a5a8b0fcf09158dcdd452f6e43e29b5db;hp=7a5c22223a111a4dac168438f2d6ef0f13002813;hpb=3438f31945bb94bc4f4b9603ac47fcde03d5c073;p=apps%2Fmadmutt.git diff --git a/lib-ui/madtty.c b/lib-ui/madtty.c index 7a5c222..4cc53fb 100644 --- a/lib-ui/madtty.c +++ b/lib-ui/madtty.c @@ -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); }