@@ -175,16 +175,16 @@ static void __console_drawc(int c)
175175 bgcolor = currentConsole -> bg ;
176176
177177 if (!(currentConsole -> flags & CONSOLE_FG_CUSTOM )) {
178- if (currentConsole -> flags & CONSOLE_COLOR_BOLD ) {
179- fgcolor = colorTable [ fgcolor + 8 ] ;
178+ if (currentConsole -> flags & ( CONSOLE_COLOR_BOLD | CONSOLE_COLOR_FG_BRIGHT ) ) {
179+ fgcolor += 8 ;
180180 } else if (currentConsole -> flags & CONSOLE_COLOR_FAINT ) {
181- fgcolor = colorTable [fgcolor + 16 ];
182- } else {
183- fgcolor = colorTable [fgcolor ];
181+ fgcolor += 16 ;
184182 }
183+ fgcolor = colorTable [fgcolor ];
185184 }
186185
187186 if (!(currentConsole -> flags & CONSOLE_BG_CUSTOM )) {
187+ if (currentConsole -> flags & CONSOLE_COLOR_BG_BRIGHT ) bgcolor += 8 ;
188188 bgcolor = colorTable [bgcolor ];
189189 }
190190
@@ -630,6 +630,18 @@ static void consoleHandleColorEsc(int code)
630630 escapeSeq .color .flags &= ~CONSOLE_BG_CUSTOM ;
631631 escapeSeq .color .fg = 0 ;
632632 break ;
633+ case 90 ... 97 : // bright foreground
634+ escapeSeq .color .flags &= ~CONSOLE_COLOR_FAINT ;
635+ escapeSeq .color .flags |= CONSOLE_COLOR_FG_BRIGHT ;
636+ escapeSeq .color .flags &= ~CONSOLE_BG_CUSTOM ;
637+ escapeSeq .color .fg = code - 90 ;
638+ break ;
639+ case 100 ... 107 : // bright background
640+ escapeSeq .color .flags &= ~CONSOLE_COLOR_FAINT ;
641+ escapeSeq .color .flags |= CONSOLE_COLOR_BG_BRIGHT ;
642+ escapeSeq .color .flags &= ~CONSOLE_BG_CUSTOM ;
643+ escapeSeq .color .bg = code - 100 ;
644+ break ;
633645 }
634646 break ;
635647 case ESC_BUILDING_FORMAT_FG :
0 commit comments