Date: Wed, 25 Sep 2019 13:21:07 +0000 (UTC) From: Toomas Soome <tsoome@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r352680 - head/sys/kern Message-ID: <201909251321.x8PDL7o9011443@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: tsoome Date: Wed Sep 25 13:21:07 2019 New Revision: 352680 URL: https://svnweb.freebsd.org/changeset/base/352680 Log: kernel: terminal_init() should check for teken colors from kenv Check for teken.fg_color and teken.bg_color and prepare the color attributes accordingly. When white background is used, make it light to improve visibility. When black background is used, make kernel messages light. Modified: head/sys/kern/subr_terminal.c Modified: head/sys/kern/subr_terminal.c ============================================================================== --- head/sys/kern/subr_terminal.c Wed Sep 25 13:04:34 2019 (r352679) +++ head/sys/kern/subr_terminal.c Wed Sep 25 13:21:07 2019 (r352680) @@ -124,13 +124,13 @@ static teken_funcs_t terminal_drawmethods = { }; /* Kernel message formatting. */ -static const teken_attr_t kernel_message = { +static teken_attr_t kernel_message = { .ta_fgcolor = TCHAR_FGCOLOR(TERMINAL_KERN_ATTR), .ta_bgcolor = TCHAR_BGCOLOR(TERMINAL_KERN_ATTR), .ta_format = TCHAR_FORMAT(TERMINAL_KERN_ATTR) }; -static const teken_attr_t default_message = { +static teken_attr_t default_message = { .ta_fgcolor = TCHAR_FGCOLOR(TERMINAL_NORM_ATTR), .ta_bgcolor = TCHAR_BGCOLOR(TERMINAL_NORM_ATTR), .ta_format = TCHAR_FORMAT(TERMINAL_NORM_ATTR) @@ -168,10 +168,33 @@ static const teken_attr_t default_message = { static void terminal_init(struct terminal *tm) { + int fg, bg; if (tm->tm_flags & TF_CONS) mtx_init(&tm->tm_mtx, "trmlck", NULL, MTX_SPIN); + teken_init(&tm->tm_emulator, &terminal_drawmethods, tm); + + TUNABLE_INT_FETCH("teken.fg_color", &fg); + TUNABLE_INT_FETCH("teken.bg_color", &bg); + + if (fg != -1) { + default_message.ta_fgcolor = fg; + kernel_message.ta_fgcolor = fg; + } + if (bg != -1) { + default_message.ta_bgcolor = bg; + kernel_message.ta_bgcolor = bg; + } + + if (default_message.ta_bgcolor == TC_WHITE) { + default_message.ta_bgcolor |= TC_LIGHT; + kernel_message.ta_bgcolor |= TC_LIGHT; + } + + if (default_message.ta_bgcolor == TC_BLACK && + default_message.ta_fgcolor < TC_NCOLORS) + kernel_message.ta_fgcolor |= TC_LIGHT; teken_set_defattr(&tm->tm_emulator, &default_message); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201909251321.x8PDL7o9011443>