提交 30f5a9dd 编写于 作者: M Matthew Kilgore 提交者: Gerd Hoffmann

curses: correctly pass the color pair to setcchar()

The current code does not correctly pass the color pair information to
setcchar(), it instead always passes zero. This results in the curses
output always being in white on black.

This patch fixes this by using PAIR_NUMBER() to retrieve the color pair
number from the chtype value, and then passes that value as an argument
to setcchar().
Signed-off-by: NMatthew Kilgore <mattkilgore12@gmail.com>
Reviewed-by: NSamuel Thibault <samuel.thibault@ens-lyon.org>
Tested-by: NSamuel Thibault <samuel.thibault@ens-lyon.org>
Message-id: 20191004035338.25601-3-mattkilgore12@gmail.com
Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
上级 cd54ea45
......@@ -77,12 +77,14 @@ static void curses_update(DisplayChangeListener *dcl,
for (x = 0; x < width; x++) {
chtype ch = line[x] & A_CHARTEXT;
chtype at = line[x] & A_ATTRIBUTES;
short color_pair = PAIR_NUMBER(line[x]);
ret = getcchar(&vga_to_curses[ch], wch, &attrs, &colors, NULL);
if (ret == ERR || wch[0] == 0) {
wch[0] = ch;
wch[1] = 0;
}
setcchar(&curses_line[x], wch, at, 0, NULL);
setcchar(&curses_line[x], wch, at, color_pair, NULL);
}
mvwadd_wchnstr(screenpad, y, 0, curses_line, width);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册