diff options
Diffstat (limited to 'sys/pc98/cbus/scterm-sck.c')
-rw-r--r-- | sys/pc98/cbus/scterm-sck.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/pc98/cbus/scterm-sck.c b/sys/pc98/cbus/scterm-sck.c index 2577f66..ce2324f 100644 --- a/sys/pc98/cbus/scterm-sck.c +++ b/sys/pc98/cbus/scterm-sck.c @@ -907,18 +907,24 @@ scterm_scan_esc(scr_stat *scp, term_stat *tcp, u_char c) } static void -scterm_puts(scr_stat *scp, u_char *buf, int len) +scterm_puts(scr_stat *scp, u_char *buf, int len, int kernel) { term_stat *tcp; u_char *ptr; #ifdef KANJI u_short kanji_code; #endif + color_t backup; tcp = scp->ts; ptr = buf; outloop: scp->sc->write_in_progress++; + backup = tcp->cur_color; + if (kernel) { + tcp->cur_color.fg = SC_KERNEL_CONS_ATTR & 0x0f; + tcp->cur_color.bg = (SC_KERNEL_CONS_ATTR >> 4) & 0x0f; + } if (tcp->esc) { scterm_scan_esc(scp, tcp, *ptr++); @@ -1101,6 +1107,8 @@ ascii_end: sc_term_gen_scroll(scp, scp->sc->scr_map[0x20], tcp->cur_attr); + if (kernel) + tcp->cur_color = backup; scp->sc->write_in_progress--; if (len) goto outloop; |