summaryrefslogtreecommitdiff
path: root/payloads/libpayload/curses
diff options
context:
space:
mode:
Diffstat (limited to 'payloads/libpayload/curses')
-rw-r--r--payloads/libpayload/curses/tinycurses.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/payloads/libpayload/curses/tinycurses.c b/payloads/libpayload/curses/tinycurses.c
index 16e06ec473..960e74fc9e 100644
--- a/payloads/libpayload/curses/tinycurses.c
+++ b/payloads/libpayload/curses/tinycurses.c
@@ -669,10 +669,12 @@ int wnoutrefresh(WINDOW *win)
// FIXME.
int serial_is_bold = 0;
int serial_is_altcharset = 0;
+ int serial_cur_pair = 0;
int x, y;
chtype ch;
int need_altcharset;
+ short fg, bg;
serial_end_bold();
serial_end_altcharset();
@@ -703,6 +705,7 @@ int wnoutrefresh(WINDOW *win)
if (serial_is_bold) {
serial_end_bold();
serial_is_bold = 0;
+ serial_cur_pair = 0;
}
}
@@ -723,6 +726,13 @@ int wnoutrefresh(WINDOW *win)
serial_is_altcharset = 0;
}
+ if (serial_cur_pair != PAIR_NUMBER(attr)) {
+ pair_content(PAIR_NUMBER(attr),
+ &fg, &bg);
+ serial_set_color(fg, bg);
+ serial_cur_pair = PAIR_NUMBER(attr);
+ }
+
serial_putchar(ch);
}