diff options
Diffstat (limited to 'sys/dev/syscons/scterm-sc.c')
-rw-r--r-- | sys/dev/syscons/scterm-sc.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sys/dev/syscons/scterm-sc.c b/sys/dev/syscons/scterm-sc.c index fdf92b0..8362220 100644 --- a/sys/dev/syscons/scterm-sc.c +++ b/sys/dev/syscons/scterm-sc.c @@ -172,10 +172,22 @@ static void scterm_scan_esc(scr_stat *scp, term_stat *tcp, u_char c) { static u_char ansi_col[16] = { +#ifdef __alpha__ + /* + * DEC is evil. They switch the red and blue attributes in the + * palette in the system console. As a simple work-around, re-map + * the ANSI colors appropriately. + */ + FG_BLACK, FG_BLUE, FG_GREEN, FG_CYAN, + FG_RED, FG_MAGENTA, FG_BROWN, FG_LIGHTGREY, + FG_DARKGREY, FG_LIGHTBLUE, FG_LIGHTGREEN, FG_LIGHTCYAN, + FG_LIGHTRED, FG_LIGHTMAGENTA, FG_YELLOW, FG_WHITE +#else FG_BLACK, FG_RED, FG_GREEN, FG_BROWN, FG_BLUE, FG_MAGENTA, FG_CYAN, FG_LIGHTGREY, FG_DARKGREY, FG_LIGHTRED, FG_LIGHTGREEN, FG_YELLOW, FG_LIGHTBLUE, FG_LIGHTMAGENTA, FG_LIGHTCYAN, FG_WHITE +#endif }; sc_softc_t *sc; int i, n; |