diff --git a/sys/msdos/video.c b/sys/msdos/video.c index 02a461f8e..03ca3f18f 100644 --- a/sys/msdos/video.c +++ b/sys/msdos/video.c @@ -354,7 +354,10 @@ term_start_color(int color) if (monoflag) { g_attribute = attrib_text_normal; } else { - if (color >= 0 && color < CLR_MAX) { + if (color == NO_COLOR) { /* 3.7 behave like term_end_color() */ + g_attribute = iflags.grmode ? attrib_gr_normal : attrib_text_normal; + curframecolor = NO_COLOR; + } else if (color >= 0 && color < CLR_MAX) { if (iflags.grmode) g_attribute = color; else diff --git a/sys/windows/consoletty.c b/sys/windows/consoletty.c index 5c31ad534..fdc42f07a 100644 --- a/sys/windows/consoletty.c +++ b/sys/windows/consoletty.c @@ -1747,7 +1747,9 @@ term_start_raw_bold(void) void term_start_color(int color) { - if (color >= 0 && color < CLR_MAX) { + if (color == NO_COLOR) { + term_end_color(); + } else if (color >= 0 && color < CLR_MAX) { console.current_nhcolor = color; } else { console.current_nhcolor = NO_COLOR; @@ -1757,7 +1759,7 @@ term_start_color(int color) void term_start_bgcolor(int color) { - if (color >= 0 && color < CLR_MAX) { + if (color != NO_COLOR && (color >= 0 && color < CLR_MAX)) { console.current_nhbkcolor = color; } else { console.current_nhbkcolor = NO_COLOR;